<?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.3.6) -->
<?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-06" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title>REST API Linked Data Keywords</title>
    <seriesInfo name="Internet-Draft" value="draft-polli-restapi-ld-keywords-06"/>
    <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="April" day="23"/>
    <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>
    <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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

-->

</rfc>
