<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-polli-restapi-ld-keywords-08" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>REST API Linked Data Keywords</title>
    <seriesInfo name="Internet-Draft" value="draft-polli-restapi-ld-keywords-08"/>
    <author initials="R." surname="Polli" fullname="Roberto Polli">
      <organization>Digital Transformation Department, Italian Government</organization>
      <address>
        <postal>
          <country>Italy</country>
        </postal>
        <email>robipolli@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="December" day="12"/>
    <area>General</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 95?>

<t>This document defines two
keywords to provide semantic information in
OpenAPI Specification and JSON Schema documents,
and support contract-first semantic schema design.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-polli-restapi-ld-keywords/"/>.
      </t>
      <t>
         information can be found at <eref target="https://github.com/ioggstream/draft-polli-restapi-ld-keywords"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ioggstream/draft-polli-restapi-ld-keywords/issues"/>.</t>
    </note>
  </front>
  <middle>
    <?line 102?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>API providers usually specify semantic information in text or out-of-band documents;
at best, this information is described in prose into specific sections of interface definition documents (see <xref target="prosaic-semantics"/>).</t>
      <t>This is because API providers do not always value machine-readable semantics,
or because they have no knowledge of semantic technologies -
that are perceived as unnecessarily complex.</t>
      <t>A full-semantic approach (e.g. writing RDF oriented APIs) has not become widespread
because
transferring and processing the semantics on every message
significantly increases data transfer and computation requirements.</t>
      <t>Moreover the semantic landscape do not provide easy ways of defining / constraining
the syntax of an object:
tools like <xref target="SHACL"/> and <xref target="OWL"/> restrictions are considered
computationally intensive to process and complex to use
from web and mobile developers.</t>
      <t>This document provides a simple mechanism
to attach semantic information to REST APIs
that rely on different dialects of <xref target="JSONSCHEMA"/>,
thus supporting a contract-first schema design.</t>
      <t>For example, the OpenAPI Specifications (see <xref target="OAS"/>)
allow to describe REST APIs
interactions and capabilities using a machine-readable format
based on <xref target="JSON"/> or <xref target="YAML"/>.
OAS 3.0 is based on JSON Schema draft-4
while OAS 3.1 relies on the latest JSON Schema draft.</t>
      <section anchor="goals-and-design-choices">
        <name>Goals and Design Choices</name>
        <t>This document has the following goals:</t>
        <ul spacing="normal">
          <li>
            <t>describe in a single specification document backed by <xref target="JSONSCHEMA"/>
(e.g. an OpenAPI document)
both the syntax and semantics of JSON objects.
This information can be either be provided
editing the document by hand or via automated tools;</t>
          </li>
          <li>
            <t>easy for non-semantic experts and with reduced complexity;</t>
          </li>
          <li>
            <t>support for OAS 3.0 / JSON Schema Draft4;</t>
          </li>
        </ul>
        <t>while it is not intended to:</t>
        <ul spacing="normal">
          <li>
            <t>integrate the syntax defined using <xref target="JSONSCHEMA"/>;</t>
          </li>
          <li>
            <t>infer semantic information where it is not provided;</t>
          </li>
          <li>
            <t>convert <xref target="JSONSCHEMA"/> documents to RDF Schema (see <xref target="RDFS"/>) or XML Schema.</t>
          </li>
        </ul>
        <t>Thus, the following design choices have been made:</t>
        <ul spacing="normal">
          <li>
            <t>the semantic context of a JSON object will be described
using <xref target="JSON-LD-11"/> and its keywords;</t>
          </li>
          <li>
            <t>property names are limited to characters that can be used in variable
names (e.g. excluding <tt>:</tt> and <tt>.</tt>)
to avoid interoperability issues with code-generation tools;</t>
          </li>
          <li>
            <t>privilege a deterministic behavior over automation and composability;</t>
          </li>
          <li>
            <t>interoperable with the mechanisms described in Section 6.1 of <xref target="JSON-LD-11"/>
for conveying semantic context in REST APIs.</t>
          </li>
        </ul>
      </section>
      <section anchor="prosaic-semantics">
        <name>Prosaic semantics</name>
        <t><xref target="JSONSCHEMA"/> allows to define the structure of the exchanged data using specific keywords.
Properties' semantics can be expressed in prose via the <tt>description</tt> keyword.</t>
        <figure anchor="ex-semantic-prose">
          <name>Example of JSON Schema model that provides semantic prose.</name>
          <sourcecode type="yaml"><![CDATA[
Person:
  description: A Person.
  type: object
  properties:
    givenName:
      description: The given name of a Person.
      type: string
    familyName:
      description: The family name, or surname, of a Person.
      type: string
  example:
    givenName: John
    familyName: Doe
]]></sourcecode>
        </figure>
        <t><xref target="JSON-LD-11"/> defines a way to interpret a JSON object as JSON-LD:
the example schema instance (a JSON document conformant to a given schema)
provided in the above "Person" schema can be integrated with
semantic information adding the <tt>@type</tt> and <tt>@context</tt> properties.</t>
        <figure anchor="ex-json-ld">
          <name>Example of a schema instance transformed in a JSON-LD object.</name>
          <sourcecode type="json"><![CDATA[
{
  "@context": {
    "@vocab": "https://w3.org/ns/person#"
  },
  "@type": "Person",
  "givenName": "John",
  "familyName": "Doe"
}
]]></sourcecode>
        </figure>
        <t>This document shows how
to integrate into a JSON Schema document
information that can be used
to add the <tt>@context</tt> and <tt>@type</tt>
properties to the associated JSON Schema instances.</t>
      </section>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.
<?line -8?>
        </t>
        <t>The terms  "content", "content negotiation", "resource",
and "user agent"
in this document are to be interpreted as in <xref target="HTTP"/>.</t>
        <t>The terms "fragment" and "fragment identifier"
in this document are to be interpreted as in <xref target="URI"/>.</t>
        <t>The terms "node", "alias node", "anchor" and "named anchor"
in this document are to be intepreded as in <xref target="YAML"/>.</t>
        <t>The terms "schema" and "schema instance"
in this document are to be intepreded as in <xref target="JSONSCHEMA"/>
draft-4 and higher.</t>
        <t>The terms "JSON object", "JSON document", "member", "member name"
in this document are to be intepreded as in <xref target="JSON"/>.
The term "property" - when referred to a JSON document
such as a schema instance -
is a synonym of "member name",
and the term "property value" is a synonym of "member value".</t>
        <t>The terms "@context", "@type", "@id", "@value" and "@language" are to be interpreted as JSON-LD keywords in <xref target="JSON-LD-11"/>,
whereas the term "context" is to be interpreted as a JSON-LD Context
defined in the same document.</t>
        <t>Since JSON-LD is a serialization format for RDF,
the document can use JSON-LD and RDF interchangeably
when it refers to the semantic interpretation of a resource.</t>
        <t>The JSON Schema keywords defined in <xref target="keywords"/>
are collectively named "semantic keywords".</t>
      </section>
    </section>
    <section anchor="keywords">
      <name>JSON Schema keywords</name>
      <t>A schema (see <xref target="JSONSCHEMA"/>) MAY
use the following JSON Schema keywords,
collectively named "semantic keywords"
to provide semantic information
for all related schema instances.</t>
      <dl>
        <dt>x-jsonld-type:</dt>
        <dd>
          <t>This keyword conveys an RDF type (see <xref target="RDF"/>)
 for the JSON schema instances described by the associate
 schema. It is defined in <xref target="keywords-type"/>.</t>
        </dd>
        <dt>x-jsonld-context:</dt>
        <dd>
          <t>This keyword conveys a JSON-LD context
 for the JSON schema instances described by the associate
 schema. It is defined in <xref target="keywords-context"/>.</t>
        </dd>
      </dl>
      <t>This specification MAY be used to:</t>
      <ul spacing="normal">
        <li>
          <t>populate the <tt>@type</tt> property along the schema instance objects;</t>
        </li>
        <li>
          <t>compose an "instance context" to populate the <tt>@context</tt>
property at the root of the schema instance.</t>
        </li>
      </ul>
      <t>The schema MUST be of type "object".
This is because <xref target="JSON-LD-11"/> does not define a way
to provide semantic information on JSON values that
are not JSON objects.</t>
      <t>The schema MUST NOT describe a JSON-LD
(e.g. of <tt>application/ld+json</tt> media type)
or conflicts will arise, such as
which is the correct <tt>@context</tt> or <tt>@type</tt>
(see <xref target="sec-conflicts"/>).</t>
      <t>Both JSON Schema keywords defined in this document
might contain URI references.
Those references MUST NOT be dereferenced automatically,
since there is no guarantee that they point to actual
locations.
Moreover they could reference unsecured resources
(e.g. using the "http://" URI scheme <xref target="HTTP"/>).</t>
      <t><xref target="ex"/> provides various examples of integrating
semantic information in schema instances.</t>
      <section anchor="keywords-type">
        <name>The x-jsonld-type JSON Schema keyword</name>
        <t>The x-jsonld-type value
provides information on the RDF type of the associate
schema instances.</t>
        <t>This value MUST be valid according to the JSON-LD <tt>@type</tt> keyword
as described in <eref target="https://www.w3.org/TR/json-ld11/#specifying-the-type">Section 3.5 of JSON-LD-11</eref>;
it is thus related to the information provided via the x-jsonld-context keyword (see <xref target="keywords-context"/>).</t>
        <t>It SHOULD NOT reference an <eref target="https://www.w3.org/TR/rdf11-concepts/#section-Datatypes">RDF Datatype</eref>
because it is not intended to provide
syntax information, but only semantic information.</t>
      </section>
      <section anchor="keywords-context">
        <name>The x-jsonld-context JSON Schema keyword</name>
        <t>The x-jsonld-context value
provides the information required to interpret the associated
schema instances as JSON-LD
according to the specification in <eref target="https://www.w3.org/TR/json-ld11/#interpreting-json-as-json-ld">Section 6.1 of JSON-LD-11</eref>.</t>
        <t>Its value MUST be a valid JSON-LD Context
(see
<eref target="https://www.w3.org/TR/json-ld11/#context-definitions">Section 9.15 of JSON-LD-11</eref>
).</t>
        <t>When context composition (see <xref target="int-composability"/>) is needed,
the context SHOULD be provided in the form of a JSON object;
in fact, if the x-jsonld-context is a URL string,
that URL needs to be dereferenced and processed
to generate the instance context.</t>
        <figure anchor="ex-url-contexts">
          <name>Composing URL contexts requires dereferencing them.</name>
          <sourcecode type="yaml"><![CDATA[
Place:
  type: object
  x-jsonld-context:
    "@vocab": "https://my.context/location.jsonld"
  properties:
    country: {type: string}

Person:
  x-jsonld-context: https://my.context/person.jsonld
  type: object
  properties:
    birthplace:
      $ref: "#/Place"
]]></sourcecode>
        </figure>
      </section>
      <section anchor="interpreting">
        <name>Interpreting schema instances</name>
        <t>This section describes an OPTIONAL workflow
to interpret a schema instance as JSON-LD.</t>
        <ol spacing="normal" type="1"><li>
            <t>ensure that the initial schema instance does not contain
any <tt>@context</tt> or <tt>@type</tt> property.
For further information see <xref target="sec-conflicts"/>;</t>
          </li>
          <li>
            <t>add the <tt>@context</tt> property with the value of x-jsonld-context.
This will be the initial "instance context": the only one that will be mangled;</t>
          </li>
          <li>
            <t>add the <tt>@type</tt> property with the value of x-jsonld-type;</t>
          </li>
          <li>
            <t>iterate on each instance property like the following:  </t>
            <ul spacing="normal">
              <li>
                <t>identify the sub-schema associated to the property
(e.g. resolving $refs)
and check the presence of semantic keywords;</t>
              </li>
              <li>
                <t>for the x-jsonld-type, add the <tt>@type</tt> property to the sub-instance;</t>
              </li>
              <li>
                <t>for the x-jsonld-context, integrate its information in the instance context
when they are not already present;</t>
              </li>
              <li>
                <t>iterate this process in case of nested entries.</t>
              </li>
            </ul>
          </li>
        </ol>
        <t>The specific algorithm
for integrating the values of x-jsonld-context
present in sub-schemas
into the instance context (see <xref target="keywords"/>)
is an implementation detail.</t>
      </section>
    </section>
    <section anchor="int">
      <name>Interoperability Considerations</name>
      <t>See the interoperability considerations for the media types
and specifications used, including <xref target="YAML-IANA"/>, <xref target="JSON"/>, <xref target="OAS"/>,
<xref target="JSONSCHEMA"/> and <xref target="JSON-LD-11"/>.</t>
      <t>Annotating a schema with semantic keywords
containing JSON-LD keywords
(e.g. <tt>@context</tt>, <tt>@type</tt> and <tt>@language</tt>)
may hinder its ability to be interpreted as a JSON-LD document
(e.g. using the <eref target="https://www.w3.org/2019/wot/json-schema#json-ld11-ctx">JSON-LD 1.1 context for the JSON Schema vocabulary</eref>);
this can be mitigated extending that context and specifying
that Linked Data keywords are JSON Literals.</t>
      <sourcecode type="json"><![CDATA[
{ "@context": {
    "x-jsonld-context": { "@type": "@json"},
    "x-jsonld-type": { "@type": "@json"}
  }
}
]]></sourcecode>
      <t>This is generally not a problem, since a generic
<xref target="JSONSCHEMA"/> document cannot be reliably interpreted
as JSON-LD using a single context: this is because the same
JSON member keys can have different meanings depending
on their JSON Schema position (see <eref target="https://www.w3.org/2019/wot/json-schema#interpreting-json-schema-as-json-ld-1-1">the notes in the  Interpreting JSON Schema as JSON-LD 1.1</eref> section of <xref target="JSON-SCHEMA-RDF"/>).</t>
      <section anchor="int-syntax-oos">
        <name>Syntax is out of scope</name>
        <t>This specification is not designed to restrict
the syntax of a JSON value nor to support a conversion
between JSON Schema and XMLSchema
(see <xref target="keywords-type"/>).</t>
      </section>
      <section anchor="int-expressivity">
        <name>Limited expressivity</name>
        <t>Not all RDF resources can be expressed as JSON documents
annotated with <tt>@context</tt> and <tt>@type</tt>:
this specification is limited by the possibilities
of <eref target="https://www.w3.org/TR/json-ld11/#interpreting-json-as-json-ld">Section 6.1 of JSON-LD-11</eref>.
On the other hand, since this approach
delegates almost all the processing to of JSON-LD,
as long as JSON-LD evolves
it will cover further use cases.</t>
      </section>
      <section anchor="int-no-jsonld">
        <name>Disjoint with JSON-LD</name>
        <t>This specification is not designed to pre-process
or mangle JSON-LD documents
(e.g. to add a missing <tt>@type</tt> to a JSON-LD document),
but only to support schemas that do not describe JSON-LD documents.</t>
        <t>Applications exchanging JSON-LD documents
need to explicitly populate <tt>@type</tt> and <tt>@context</tt>,
and use a proper media type
since Linked Data processing and interpretation
requires further checks.</t>
        <t>If these applications describe messages using <xref target="JSONSCHEMA"/> or <xref target="OAS"/>,
they need to
process them with a JSON-LD processor
and declare all required properties
in the schema - like in the example below.</t>
        <figure anchor="ex-jsonld-schema">
          <name>A JSON-Schema describing a JSON-LD document.</name>
          <sourcecode type="yaml"><![CDATA[
PersonLD:
  type: object
  required: [ "@context", "@type", "givenName", "familyName" ]
  properties:
    "@context":
      type: object
      enum:
      - "@vocab": "https://w3.org/ns/person#"
    "@type":
      type: string
      enum:
      - Person
    givenName:
      type: string
    familyName:
      type: string
]]></sourcecode>
        </figure>
      </section>
      <section anchor="int-composability">
        <name>Composability</name>
        <t>Limited composability can be achieved applying the process described
in <xref target="interpreting"/>.
Automatic composability is not an explicit goal of this specification
because of its complexity. One of the issue is that
the meaning of a JSON-LD keyword is affected by
its position. For example, the <tt>@type</tt> keyword:</t>
        <ul spacing="normal">
          <li>
            <t>in a node object, adds an <tt>rdf:type</tt> arc to the RDF graph
(it also has a few other effects on processing, e.g. by enabling type-scoped contexts);</t>
          </li>
          <li>
            <t>in a value object, specifies the datatype of the produced literal;</t>
          </li>
          <li>
            <t>in the context, and more precisely in a term definition,
specifies <eref target="https://www.w3.org/TR/json-ld11/#type-coercion">type coercion</eref>.
It only applies when the value of the term is a string.</t>
          </li>
        </ul>
        <t>These issues can be tackled in future versions of this specifications.</t>
        <t>Moreover, well-designed schemas do not usually have
more than 3 or 4 nested levels.
This means that, when needed, it is possible
to assemble and optimize an instance context (see <xref target="keywords"/>)
at design time and use it to valorize x-jsonld-context
(see <xref target="ex-redundant-context"/>).</t>
        <t>Once a context is assembled, the RDF data can be
generated using the algorithms described in <xref target="JSONLD-11-API"/>
for example through a library.</t>
        <sourcecode type="python"><![CDATA[
from pyld import jsonld
...
jsonld_text = jsonld.expand(schema_instance, context)
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec">
      <name>Security Considerations</name>
      <t>See the interoperability considerations for the media types
and specifications used, including <xref target="YAML-IANA"/>, <xref target="JSON"/>, <xref target="OAS"/>,
<xref target="JSONSCHEMA"/> and <xref target="JSON-LD-11"/>.</t>
      <section anchor="sec-integrity">
        <name>Integrity and Authenticity</name>
        <t>Adding a semantic context to a JSON document
alters its value and, in an implementation-dependent way,
can lead to reordering of fields.
This process can thus affect the processing of digitally signed content.</t>
      </section>
      <section anchor="sec-conflicts">
        <name>Conflicts</name>
        <t>If an OAS document includes the keywords defined in <xref target="keywords"/>
the provider explicitly states that the semantic of the schema instance:</t>
        <ul spacing="normal">
          <li>
            <t>is defined at contract level;</t>
          </li>
          <li>
            <t>is the same for every message;</t>
          </li>
          <li>
            <t>and is not conveyed nor specific for each message.</t>
          </li>
        </ul>
        <t>In this case, processing the semantic conveyed in a message
might have security implications.</t>
        <t>An application that relies on this specification
might want to define separate processing streams for JSON documents
and RDF graphs, even when RDF graphs are serialized as JSON-LD documents.
For example, it might want to raise an error
when an <tt>application/json</tt> resource contains unexpected properties
impacting on the application logic
like <tt>@type</tt> and <tt>@context</tt>.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>None</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="YAML" target="https://yaml.org/spec/1.2.2/">
          <front>
            <title>YAML Ain't Markup Language Version 1.2</title>
            <author initials="" surname="Oren Ben-Kiki">
              <organization/>
            </author>
            <author initials="" surname="Clark Evans">
              <organization/>
            </author>
            <author initials="" surname="Ingy dot Net">
              <organization/>
            </author>
            <author initials="" surname="Tina Müller">
              <organization/>
            </author>
            <author initials="" surname="Pantelis Antoniou">
              <organization/>
            </author>
            <author initials="" surname="Eemeli Aro">
              <organization/>
            </author>
            <author initials="" surname="Thomas Smith">
              <organization/>
            </author>
            <date year="2021" month="October" day="01"/>
          </front>
        </reference>
        <reference anchor="OAS">
          <front>
            <title>OpenAPI Specification 3.0.0</title>
            <author initials="" surname="Darrel Miller">
              <organization/>
            </author>
            <author initials="" surname="Jeremy Whitlock">
              <organization/>
            </author>
            <author initials="" surname="Marsh Gardiner">
              <organization/>
            </author>
            <author initials="" surname="Mike Ralphson">
              <organization/>
            </author>
            <author initials="" surname="Ron Ratovsky">
              <organization/>
            </author>
            <author initials="" surname="Uri Sarid">
              <organization/>
            </author>
            <date year="2017" month="July" day="26"/>
          </front>
        </reference>
        <reference anchor="JSON-LD-11" target="https://www.w3.org/TR/json-ld11/">
          <front>
            <title>JSON-LD 1.1</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSONSCHEMA" target="https://json-schema.org/specification.html">
          <front>
            <title>JSON Schema</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSON">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="HTTP">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RDF" target="https://www.w3.org/TR/rdf11-concepts/">
          <front>
            <title>RDF Concepts and Abstract Syntax</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RDFS" target="https://www.w3.org/TR/rdf-schema/">
          <front>
            <title>RDF Schema 1.1</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="YAML-IANA" target="https://www.iana.org/assignments/media-types/application/yaml">
          <front>
            <title>The application/yaml Media Type</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-jsonpath-base">
          <front>
            <title>JSONPath: Query expressions for JSON</title>
            <author fullname="Stefan Gössner" initials="S." surname="Gössner">
              <organization>Fachhochschule Dortmund</organization>
            </author>
            <author fullname="Glyn Normington" initials="G." surname="Normington">
         </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="24" month="September" year="2023"/>
            <abstract>
              <t>   JSONPath defines a string syntax for selecting and extracting JSON
   (RFC 8259) values from a JSON value.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-jsonpath-base-21"/>
        </reference>
        <reference anchor="JSON-POINTER">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan"/>
            <author fullname="K. Zyp" initials="K." surname="Zyp"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6901"/>
          <seriesInfo name="DOI" value="10.17487/RFC6901"/>
        </reference>
        <reference anchor="JSONLD-11-API" target="https://www.w3.org/TR/json-ld11-api/">
          <front>
            <title>JSON-LD 1.1 Processing Algorithms and API</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSON-SCHEMA-RDF" target="https://www.w3.org/2019/wot/json-schema/">
          <front>
            <title>JSON Schema in RDF</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SHACL" target="https://www.w3.org/TR/shacl/">
          <front>
            <title>Shapes Constraint Language (SHACL)</title>
            <author>
              <organization/>
            </author>
            <date year="2017" month="July" day="20"/>
          </front>
        </reference>
        <reference anchor="OWL" target="https://www.w3.org/TR/owl2-overview/">
          <front>
            <title>OWL 2 Web Ontology Language Document Overview</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="XS" target="https://www.w3.org/2001/XMLSchema">
          <front>
            <title>XML Schema</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 534?>

<section anchor="ex">
      <name>Examples</name>
      <section anchor="schema-with-semantic-information">
        <name>Schema with semantic information</name>
        <t>The following example shows a
Person JSON Schema with semantic information
provided by the x-jsonld-type and x-jsonld-context.
Type information is provided as a URI reference.</t>
        <figure anchor="ex-base">
          <name>A JSON Schema data model with semantic context and type.</name>
          <sourcecode type="yaml"><![CDATA[
Person:
  "x-jsonld-type": "https://schema.org/Person"
  "x-jsonld-context":
     "@vocab": "https://schema.org/"
     custom_id: null  # detach this property from the @vocab
     country:
       "@id": addressCountry
  type: object
  required:
  - given_name
  - family_name
  properties:
    familyName: { type: string, maxLength: 255  }
    givenName:  { type: string, maxLength: 255  }
    country:    { type: string, maxLength: 3, minLength: 3 }
    custom_id:  { type: string, maxLength: 255  }
  example:
    familyName: "Doe"
    givenName: "John"
    country: "FRA"
    custom_id: "12345"
]]></sourcecode>
        </figure>
        <t>The example object is assembled as a JSON-LD object as follows.</t>
        <sourcecode type="json"><![CDATA[
{
  "@context": {
    "@vocab": "https://schema.org/",
    "custom_id": null
    "country": {
       "@id": "addressCountry"
    }
  },
  "@type": "https://schema.org/Person",
  "familyName": "Doe",
  "givenName": "John",
  "country": "FRA",
  "custom_id": "12345"
}
]]></sourcecode>
        <t>The above JSON-LD can be represented as <tt>text/turtle</tt> as follows.</t>
        <sourcecode type="text"><![CDATA[
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix schema: <https://schema.org/>

_:b0 rdf:type schema:Person    ;
     schema:addressCountry  "FRA"  ;
     schema:familyName  "Doe"  ;
     schema:givenName   "John" .
]]></sourcecode>
      </section>
      <section anchor="ex-semantic-and-vocabulary">
        <name>Schema with semantic and vocabulary information</name>
        <t>The following example shows a
"Person" schema with semantic information
provided by the x-jsonld-type and x-jsonld-context.</t>
        <figure anchor="ex-complete-example">
          <name>A JSON Schema data model with semantic context and type.</name>
          <sourcecode type="yaml"><![CDATA[
Person:
  "x-jsonld-type": "https://schema.org/Person"
  "x-jsonld-context":
     "@vocab": "https://schema.org/"
     "@base": "https://example.org/people/"
     email: "@id"
     custom_id: null  # detach this property from the @vocab
     country:
       "@id": addressCountry
       "@type": "@vocab"
       "@context":
          "@vocab": "http://publications.europa.eu/resource/authority/country/"

  type: object
  required:
  - email
  - given_name
  - family_name
  properties:
    email: { type: string, maxLength: 255  }
    familyName: { type: string, maxLength: 255  }
    givenName:  { type: string, maxLength: 255  }
    country:    { type: string, maxLength: 3, minLength: 3 }
    custom_id:  { type: string, maxLength: 255  }
  example:
    familyName: "Doe"
    givenName: "John"
    email: "jon@doe.example"
    country: "FRA"
    custom_id: "12345"
]]></sourcecode>
        </figure>
        <t>The resulting RDF graph is</t>
        <figure anchor="ex-rdf-from-json">
          <name>An RDF graph with semantic context and type.</name>
          <sourcecode type="text"><![CDATA[
@prefix schema: <https://schema.org/> .
@prefix country: <http://publications.europa.eu/resource/authority/country/> .

<https://example.org/people/jon@doe.example>
  a schema:Person           ;
  schema:familyName "Doe"          ;
  schema:givenName "John"          ;
  schema:addressCountry country:FRA .
]]></sourcecode>
        </figure>
        <t>Note that in the above example:</t>
        <ul spacing="normal">
          <li>
            <t>the <tt>email</tt> property is mapped to <tt>@id</tt>,
thus making the instance IRI dependent on its value.
Since it's not an absolute IRI,
the <tt>@base</tt> keyword is used to provide a base IRI
i.e. <tt>https://example.org/people/</tt> + <tt>jon@doe.example</tt>;</t>
          </li>
          <li>
            <t>the <tt>country</tt> property is associated with the country
vocabulary using the <tt>@type: @vocab</tt> keyword.</t>
          </li>
        </ul>
      </section>
      <section anchor="ex-cyclic-schema">
        <name>Cyclic schema</name>
        <t>The following schema contains a cyclic reference.
Type information is resolved using the <tt>@vocab</tt> keyword
specified in the x-jsonld-context.</t>
        <sourcecode type="yaml"><![CDATA[
Person:
  description: Simple cyclic example.
  x-jsonld-type: Person
  x-jsonld-context:
    "email": "@id"
    "@vocab": "https://w3.org/ns/person#"
    children:
      "@container": "@set"
  type: object
  properties:
    email: { type: string }
    children:
      type: array
      items:
        $ref: '#/Person'
  example:
    email: "mailto:a@example"
    children:
    - email: "mailto:dough@example"
    - email: "mailto:son@example"
]]></sourcecode>
        <t>The example schema instance contained in the above schema
results in the following JSON-LD document.</t>
        <sourcecode type="json"><![CDATA[
{
  "email": "mailto:a@example",
  "children": [
    {
      "email": "mailto:dough@example",
      "@type": "Person"
    },
    {
      "email": "mailto:son@example",
      "@type": "Person"
    }
  ],
  "@type": "Person",
  "@context": {
    "email": "@id",
    "@vocab": "https://w3.org/ns/person#",
    "children": {
      "@container": "@set"
    }
  }
}
]]></sourcecode>
        <t>Applying the workflow described in <xref target="interpreting"/>
just recursively copying the x-jsonld-context,
the instance context could have been more complex.</t>
        <figure anchor="ex-redundant-context">
          <name>An instance context containing redundant information</name>
          <sourcecode type="example"><![CDATA[
{
  ...
  "@context": {
    "email": "@id",
    "@vocab": "https://w3.org/ns/person#",
    "children": {
      "@container": "@set",
      "@context": {
        "email": "@id",
        "@vocab": "https://w3.org/ns/person#",
        "children": {
          "@container": "@set"
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="ex-instance-context">
        <name>Composite instance context</name>
        <t>In the following schema document,
the "Citizen" schema references the "BirthPlace" schema.</t>
        <figure anchor="ex-object-contexts">
          <name>A schema with object contexts.</name>
          <sourcecode type="yaml"><![CDATA[
Citizen:
  x-jsonld-type: Person
  x-jsonld-context:
    "email": "@id"
    "@vocab": "https://w3.org/ns/person#"
  type: object
  properties:
    email: { type: string }
    birthplace:
      $ref: "#/BirthPlace"
  example:
    email: "mailto:a@example"
    givenName: Roberto
    familyName: Polli
    birthplace:
      province: LT
      country: ITA
BirthPlace:
  x-jsonld-type: https://w3id.org/italia/onto/CLV/Feature
  x-jsonld-context:
    "@vocab": "https://w3id.org/italia/onto/CLV/"
    country:
      "@id": "hasCountry"
      "@type": "@vocab"
      "@context":
        "@vocab": "http://publications.europa.eu/resource/authority/country/"
    province:
      "@id": "hasProvince"
      "@type": "@vocab"
      "@context":
        "@vocab": "https://w3id.org/italia/data/identifiers/provinces-identifiers/vehicle-code/"
  type: object
  required:
    - province
    - country
  properties:
    province:
      description: The province where the person was born.
      type: string
    country:
      description: The iso alpha-3 code of the country where the person was born.
      type: string
  example:
    province: RM
    country: ITA

]]></sourcecode>
        </figure>
        <t>The example schema instance contained in the above schema
results in the following JSON-LD document.
The instance context contains information from both
"Citizen" and "BirthPlace" semantic keywords.</t>
        <figure anchor="ex-composite-context">
          <name>A @context that includes information from different schemas.</name>
          <sourcecode type="json"><![CDATA[
{
  "email": "mailto:a@example",
  "givenName": "Roberto",
  "familyName": "Polli",
  "birthplace": {
    "province": "LT",
    "country": "ITA",
    "@type": "https://w3id.org/italia/onto/CLV/Feature"
  },
  "@type": "Person",
  "@context": {
    "email": "@id",
    "@vocab": "https://w3.org/ns/person#",
    "birthplace": {
      "@context": {
        "@vocab": "https://w3id.org/italia/onto/CLV/",
        "city": "hasCity",
        "country": {
          "@id": "hasCountry",
          "@type": "@vocab",
          "@context": {
            "@vocab": "http://publications.europa.eu/resource/authority/country/"
          }
        },
        "province": {
          "@id": "hasProvince",
          "@type": "@vocab",
          "@context": {
            "@vocab": "https://w3id.org/italia/data/identifiers/provinces-identifiers/vehicle-code/"
          }
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <t>That can be serialized as <tt>text/turtle</tt> as</t>
        <figure anchor="ex-composite-context-turtle">
          <name>The above entry in text/turtle</name>
          <sourcecode type="text"><![CDATA[
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix eu: <https://w3.org/ns/person#> .
@prefix itl: <https://w3id.org/italia/onto/CLV/> .

<mailto:a@example>
  rdf:type eu:Person ;
  eu:birthplace _:b0 ;
  eu:familyName "Polli" ;
  eu:givenName  "Roberto"
.
_:b0 rdf:type itl:Feature ;
  itl:hasCountry <http://publications.europa.eu/resource/authority/country/ITA> ;
  itl:hasProvince <https://w3id.org/italia/data/identifiers/provinces-identifiers/vehicle-code/LT>
.
]]></sourcecode>
        </figure>
      </section>
      <section anchor="ex-iri-expansions">
        <name>Identifiers and IRI Expansion</name>
        <t>IRI expansion expects string identifiers,
so an <tt>@id</tt> that should be expanded in conjunction with a <tt>@base</tt>
can only be assigned to <tt>string</tt> properties.</t>
        <figure anchor="ex-iri-expansion">
          <name>A schema that uses IRI expansion with a string property.</name>
          <sourcecode type="yaml"><![CDATA[
Person:
  type: object
  x-jsonld-type: "Person"
  x-jsonld-context:
    "@vocab": "https://w3id.org/italia/onto/CPV/"
    "@base": "https://example.org/people/"
    taxCode: "@id"  # taxCode is a string property.
  required:
  - taxCode
  properties:
    # Since taxCode is an identifier to be expanded
    #   with @base, it must be a string.
    taxCode:
      type: string
  example:
    taxCode: "RSSMRA85M01H501U"
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Giorgia Lodi, Matteo Fortini and Saverio Pulizzi for being the initial contributors of this work.</t>
      <t>In addition to the people above, this document owes a lot to the extensive discussion inside
and outside the workgroup.
The following contributors have helped improve this specification by
opening pull requests, reporting bugs, asking smart questions,
drafting or reviewing text, and evaluating open issues:</t>
      <t>Pierre-Antoine Champin,
and Vladimir Alexiev.</t>
    </section>
    <section numbered="false" removeInRFC="true" anchor="faq">
      <name>FAQ</name>
      <dl>
        <dt>Q: Why this document?</dt>
        <dd>
          <t>There's currently no standard way to provide machine-readable semantic
information in <xref target="OAS"/> / <xref target="JSONSCHEMA"/> to be used at contract time.</t>
        </dd>
        <dt>Q: Does this document support the exchange of JSON-LD resources?</dt>
        <dd>
          <t>This document is focused on annotating schemas that are used
at contract/design time, so that application can exchange compact
JSON object without dereferencing nor interpreting
external resources at runtime.
</t>
          <t>While you can use the provided semantic information to generate
JSON-LD objects, it is not the primary goal of this specification:
context information are not expected to be dereferenced at runtime
(see security considerations in JSON-LD)
and the semantics of exchanged messages is expected
to be constrained inside the application.</t>
        </dd>
        <dt>Q: Why don't use existing <xref target="JSONSCHEMA"/> keywords like <tt>externalDocs</tt> ?</dt>
        <dd>
          <t>We already tried, but this was actually squatting a keyword designed
for <eref target="https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#externalDocumentationObject">human readable documents</eref>.</t>
        </dd>
        <dt>Q: Why using <tt>x-</tt> keywords?</dt>
        <dd>
          <t>OpenAPI 3.0 considers invalid unregistered keywords that don't start with <tt>x-</tt>,
and we want a solution that is valid for all OAS versions &gt;= 3.0.</t>
        </dd>
        <dt>Q: Why not using a full-semantic approach?</dt>
        <dd>
          <t>This approach allows API providers to attach metadata to their
specification without modifying their actual services nor their
implementation, since custom keywords are ignored by OpenAPI toolings
like Gateways and code generators.</t>
        </dd>
        <dt>Q: Why not defining a mechanism to attach semantic information to</dt>
        <dd>
          <t/>
        </dd>
        <dt>   non-object schemas (e.g. JSON Strings) like other implementations?</dt>
        <dd>
          <t>This is actually problematic. Look at this example that reuses
the <tt>TaxCode</tt> schema and semantic in different properties.</t>
        </dd>
        <dt>Q: Why don't use SHACL or OWL restrictions instead of JSON Schema?</dt>
        <dd>
          <t>Web and mobile developers consider JSON Schema is easier to use than SHACL.
Moreover, OWL restrictions are about semantics,
and are not designed to restrict the syntax.</t>
        </dd>
        <dt>Q: Why don't design for composability first?</dt>
        <dd>
          <t>JSON-LD is a complex specification.
Consider the following schemas, where <tt>Contract</tt> references <tt>TaxCode</tt>.</t>
        </dd>
      </dl>
      <sourcecode type="yaml"><![CDATA[
    TaxCode:
      type: string
      $linkedData:
        "@id": "https://w3id.org/italia/onto/CPV/taxCode"
        "term": "taxCode"
    Contract:
      ...
      properties:
        employer_tax_code:
          # Beware! TaxCode.$linkedData.term == 'taxCode'
          $ref: "#/components/schemas/TaxCode"
        employee_tax_code:
          # Here we are reusing not only the schema,
          #   but even the same term.
          $ref: "#/components/schemas/TaxCode"
]]></sourcecode>
      <t>The result will be that only one of the properties will be correctly annotated.
  For this reason, composability is limited to the object level.</t>
      <dl>
        <dt>Q: Why not use keywords such as <tt>x-refersTo</tt>, <tt>x-kindOf</tt>, etc.?</dt>
        <dd>
          <t>When we started enriching OAS documents with <tt>x-refersTo</tt> and similar keywords,
we realized that composing a JSON-LD <tt>@context</tt> from multiple keywords
was increasingly complex when considering nested objects and cyclic references,
especially when we needed to adapt existing
OAS documents to ontologies defined by third parties.
Then, we realized that
JSON-LD provided most of the needed features to describe semantics
without the need of re-assembling a <tt>@context</tt> from multiple keywords.
Moreover, as long as JSON-LD is evolving, our approach
does not require the addition of new keywords.</t>
        </dd>
        <dt>Q: Can the value of <tt>x-jsonld-type</tt> be an <tt>rdf:Property</tt>? Would this allow to reuse the same schema in different objects without modifying the <tt>@context</tt>?</dt>
        <dd>
          <t>Under normal circumstances, i.e. when designing public or financial service APIs,
you don't want <tt>x-jsonld-type</tt> to be an <tt>rdf:Property</tt>.
The value of <tt>x-jsonld-type</tt> usually maps to a <tt>owl:Class</tt>, not an <tt>owl:DataTypeProperty</tt>;
for example a sensible value for <tt>x-jsonld-type</tt> would be <tt>rdfs:Literal</tt> (that is, the <tt>rdfs:range</tt> of <tt>CPV:taxCode</tt>),
but this would be mostly a syntactic information, which instead is provided by JSON Schema.</t>
        </dd>
      </dl>
      <figure anchor="ex-invalid-x-jsonld-type">
        <name>The above code is ambiguous, because the rdfs:range of CPV:taxCode is rdfs:Literal</name>
        <sourcecode type="yaml"><![CDATA[
    TaxCode:
      type: string
      x-jsonld-type: "https://w3id.org/italia/onto/CPV/taxCode"
      description: |-
        This example is ambiguous, because:

        1. it treats a CPV:taxCode as an owl:Class,
           while it's an owl:DataTypeProperty;
        2. the `rdfs:range` for CPV:taxCode is `rdfs:Literal`.
]]></sourcecode>
      </figure>
    </section>
    <section numbered="false" removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
