<?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.39 (Ruby 3.4.9) -->
<?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-09" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>REST API Linked Data Keywords</title>
    <seriesInfo name="Internet-Draft" value="draft-polli-restapi-ld-keywords-09"/>
    <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="2026" month="June" day="22"/>
    <area>General</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 95?>

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

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

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

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

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

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

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

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

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

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

        1. it treats a CPV:taxCode as an owl:Class,
           while it's an owl:DataTypeProperty;
        2. the `rdfs:range` for CPV:taxCode is `rdfs:Literal`.
]]></sourcecode>
      </figure>
    </section>
    <section numbered="false" removeInRFC="true" anchor="json-schema-vocabulary">
      <name>JSON Schema Vocabulary</name>
      <t>A JSON Schema Vocabulary is provided in the <tt>vocab/</tt> directory.
See the associated <eref target="vocab/README.md">README</eref> for details.</t>
    </section>
    <section numbered="false" removeInRFC="true" anchor="semantic-frictionless-data-packages">
      <name>Semantic Frictionless Data Packages</name>
      <t>This specification can be used to add semantic information
in a Frictionless Data Package
(see https://frictionlessdata.io/specs/data-package/).
See the associated <eref target="vocab/README.md">README</eref> for details.</t>
    </section>
    <section numbered="false" removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
eZSMDXdgsyOzk/it52vYhx8excskhS2UWS3IelHjNYU0Ymmq3v1Jmp2qyQr6
1gzcRBeFtlo6qcyqbNQw53c+2hNj5VFb+FuBjv+p8rF+GUr0YLpBu/UMQ7Fh
j602MGnTwhneu0rwLb5aRfXcLGK57pJDwrKz4ECs7fg4qm6tk90EWSe0eE/L
sA7NVsdwyX1H6FbxPDs8/U+P5aPmnpHg/z/srtLfdusCLu4/nI2tZ9fg4/bT
vCxunXWqDv1TQpugG0b328eE0c9gI4CYiOui5ArBOF+7MbYSJqPO9EGuzvFu
mMmpFtJeWYbMIJgmfsDjgH8g3vrBOx+AXUB8JiC7gPkkIS0xm//6pL0dN6q/
A/0uOdEdGPmKQEyArbMk74w6qTrISnrJPvV6nbQFgL0QTPY/c0nvKKmSX0zj
N3pVZPT+W0yH58R3WxXpKRrpHeTi//frkN5L1Acak4ig9Vynpfl1KuMTOf/e
+j9PL3jOgdzqvOVJNLc8bwNAVhOed6jTS3nUXNZ8eRg1cHUgv8FfMiMMJnQ7
9AgokI+OTv8y+s5oPN7dTZ4uWuwYK3Rs3LbleNJShwGu3R5yl4P827jHATq3
4Xsrr34DALvwhP7aqLl5AlhZ5isH/tNrs0ziFDfwjAMZn/Do0YSwo8jPxs5t
83175Vt3H9kGcgsandOxL3WjSzXNi903K7WIvjV0gpeQpOulHjyjO73smZ70
++wZg+3X7JDz16Fvjftjy4f242ISBbZZIeJ+8VO/JufvYoZdditr8SF8V4HC
U3gtYNSIbbpUIhDS7bR4nmHSyEwRmY2zxtU+XlrQWmOG8qPST16Qe/F4CFda
QgrUXkn0mRZlEKMWGdkV1CYxyS8aOdnYI5YPsOnpZW8r8N4DdnB2SjtUeZ+E
vOfup9/cOupY4E4b6HNktG/zgHS0ohn/9F9tn1Z0y/J+8LolL8OXXaD/trKd
/925v++8FXnMsWNJTvz/9mv6LdVBxzIfYIcqC6oNI0nGxpZUacoSJG/Lix6S
4RkUIzeXg4V5Ae1zoN/k+MeLMZrai0Nu7SG/Jaw/aLpjX3DEsS2eMK7ozpFg
TgktYhgQfjVbVNGJkzz2Y4wssewb75DIiblo2DquQoBF5lA//N1suF8RVAXp
940/ouX33dj5W1j09PKbaBgyX3N4aGgJcuu4sMcO9hrwW6mHbWYjPYeByleY
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

-->

</rfc>
