<?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-07" 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-07"/>
    <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="November" day="03"/>
    <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="example"><![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
       "@language": en
  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
  },
  "@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:country     "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="example"><![CDATA[
Person:
  "x-jsonld-type": "https://schema.org/Person"
  "x-jsonld-context":
     "@vocab": "https://schema.org/"
     email: "@id"
     custom_id: null  # detach this property from the @vocab
     country:
       "@id": addressCountry
       "@type": "@id"
       "@context":
          "@base": "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/> .

<mailto:jon@doe.example>
  schema:familyName "Doe"          ;
  schema:givenName "John"          ;
  schema:addressCountry country:FRA .
]]></sourcecode>
        </figure>
      </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="json"><![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[
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": "@id"
      "@context":
        "@base": "http://publications.europa.eu/resource/authority/country/"
    province:
      "@id": "hasProvince"
      "@type": "@id"
      "@context":
        "@base": "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
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

]]></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": "RM",
    "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": "@id",
          "@context": {
            "@base": "http://publications.europa.eu/resource/authority/country/"
          }
        },
        "province": {
          "@id": "hasProvince",
          "@type": "@id",
          "@context": {
            "@base": "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/RM>
.
]]></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: 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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
Mb9/PH75zVHwf6BY6m8UeQAA

-->

</rfc>
