<?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.7 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-coral-06" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="Constrained RESTful Application Language">The Constrained RESTful Application Language (CoRAL)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-coral-06"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>ARM</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <workgroup>CoRE Working Group</workgroup>
    <abstract>
      <?line 119?>

<t>The Constrained RESTful Application Language (CoRAL) defines a data
model and interaction model as well as a compact serialization
formats for the description of typed connections between resources on
the Web ("links"), possible operations on such resources ("forms"), and
simple resource metadata.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Note to Readers</name>
      <?line 128?>

<t>The issues list for this Internet-Draft can be found at
&lt;<eref target="https://github.com/core-wg/coral/labels/coral"/>&gt;.
Companion material for this Internet-Draft can be found at
&lt;<eref target="https://github.com/core-wg/coral"/>&gt;.</t>
    </note>
  </front>
  <middle>
    <?line 134?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained RESTful Application Language (CoRAL) is a language for
the description of typed connections between resources on the Web
("links"), possible operations on such resources ("forms"), and
simple resource metadata.</t>
      <t>CoRAL is intended for driving automated software agents that navigate a
Web application based on a standardized vocabulary of link relation
types and operation types.
It is designed to be used in conjunction with a Web transfer protocol,
such as the <xref target="RFC7230">Hypertext Transfer Protocol (HTTP)</xref> or the
<xref target="RFC7252">Constrained Application Protocol (CoAP)</xref>.</t>
      <t>This document defines the CoRAL data model and interaction model as well
as a compact serialization format.</t>
      <section anchor="data-and-interaction-model">
        <name>Data and Interaction Model</name>
        <t>The data model is similar to the <xref target="W3C.REC-rdf11-concepts-20140225">Resource Description Framework (RDF)</xref> model,
with provisions to enable form based interaction
and to express data from Web Linking (<xref target="RFC8288"/>) based models such as <xref target="RFC6690"/>'s Link Format.</t>
        <t>The interaction model derives from the processing model of <xref target="W3C.REC-html52-20171214">HTML</xref> and specifies how an
automated software agent can change the application state by
navigating between resources following links and performing operations
on resources submitting forms.</t>
      </section>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
        <?line -18?>

<t>Terms defined in this document appear in <em>cursive</em> where they
are introduced (rendered in plain text as the new term surrounded by
underscores).</t>
      </section>
    </section>
    <section anchor="model">
      <name>Data and Interaction Model</name>
      <t>The Constrained RESTful Application Language (CoRAL) is designed for
building <xref target="W3C.REC-webarch-20041215">Web-based applications</xref> in which
automated software agents navigate between resources by following
links and perform operations on resources by submitting forms.</t>
      <section anchor="browsing-context">
        <name>Browsing Context</name>
        <t>Borrowing from <xref target="W3C.REC-html52-20171214">HTML 5</xref>,
each such agent maintains a <em>browsing context</em> in which the
representations of Web resources are processed.
(In HTML, the browsing context typically corresponds to a tab or
window in a Web browser.)</t>
        <t>At any time, one representation in a browsing context is designated
the <em>active</em> representation.</t>
      </section>
      <section anchor="documents">
        <name>Documents</name>
        <t>A resource representation in one of the CoRAL serialization formats is
called a CoRAL <em>document</em>.
The URI that was used to retrieve such a document is called the
document's <em>retrieval context</em>.
This URI is also considered the base URI for relative URI references
in the document.</t>
        <t>A CoRAL document consists of a list of zero or more statements
that can express links or (in a composition of statements) forms.
CoRAL serialization formats may contain additional elements
for efficiency or convenience, such as an embedded base URI that takes
precedence over the document's base URI,
or to concisely represent compound statements (e.g., to express forms).</t>
      </section>
      <section anchor="data-model">
        <name>Data model</name>
        <t>The <em>basic CoRAL information model</em> is similar to the <xref target="W3C.REC-rdf11-concepts-20140225">Resource Description Framework (RDF)</xref> information model:
Data is expressed as an (unordered) set of triples (also called statements),
consisting of a subject, a predicate and an object.
The predicate is always a URI,
the subject is a URI or a blank node,
and the object is either a URI, a blank node or a litreal.
All URIs here are limited to the syntax-based normalized form of <xref target="RFC3986"/> Section 6.2.2.</t>
        <t>Blank nodes are unnamed entities.
Literals are CBOR objects.</t>
        <t>These triples form a directed multigraph with the subject and object being source and destination, and the predicate a description <!-- not "label", because that implies uniqueness of the labels in Wikipedia definition --> on the edge.
That graph is equivalent to the data.</t>
        <t>To form a set and a graph, we define an equivalence relation:
URIs are only equal to URIs and if they are identical byte-wise.
A blank node is only equal to itself.
A literal is equal to a different literal if
its value is equal to the other literal's value in the CBOR generic data model.</t>
        <t>Triples are equivalent to each other if their subject, predicate and object are pair-wise equivalent.</t>
        <t>The <em>CoRAL structured information model</em> is a sequence of "passings" of the basic model's edges,
starting at a node identifying the document (its retrieval context, typically URI from which it was obtained)
where</t>
        <ul spacing="normal">
          <li>
            <t>each edge is passed at least one time in total,</t>
          </li>
          <li>
            <t>each edge is passed at most one time after each passing that ends in its start point
(with the obvious exception that edges from the retrieval context can be passed once from the start), and</t>
          </li>
          <li>
            <t>between a passing of an edge from A to B and a later passing from B to C,
passings can only be along edges that can be reached from B along the graph,
until B is the end of a different passing.</t>
          </li>
        </ul>
        <!-- Terminology still to be enhanced, asking around at https://cs.stackexchange.com/questions/144008/terminology-for-multiply-visiting-walks-of-dags -->

<t>For better understanding,
think of the structured information model as a sort of tree spanning from the retrieval context,
with the oddity that when a node is reached along two different edges (which a normal tree doesn't do),
it is up to the builder of the tree whether to describe anything children of the entered node
on one parent or on the other parent,
on both,
or to describe some children at the first and others at a later occasion.
<!-- also the sequences can even be different, which is something at least the serialization supports;
maybe we may want to put a stop to the madness there and impose order,
or someone comes up with a reason why we actually want that. -->
        </t>
        <t>Exceeding the RDF-like model,
this represents CoRAL's focus on the discovery of possivble future application states
over the description of a graph of resources.</t>
        <section anchor="observations">
          <name>Observations</name>
          <t>The structured form of a data set is in general not unique:
If a node has more than one child, their sequence can be varied.
If a node has more than one parent, its children may be expressed on any non-empty set of its parents
to obtain a structured data set that expresses the same data set.</t>
          <t>In general, arbitrary basic data can not be expressed in a structured data set, because</t>
          <ul spacing="normal">
            <li>
              <t>There may not be a tree that covers the directed graph, or the tree's root may not be the retrieval context.</t>
            </li>
            <li>
              <t>There may be multiple edges into a blank node.</t>
            </li>
          </ul>
          <t>In particular, the precise data from one structured information document can only be expressed with the same retrieval context.
However, statements can be added to make a data set that is expressible elsewhere
<!-- possibly shove around to make use of CURIEs introduced at some point -->
(this document defines the <tt>carries-information-about</tt> relation type leading to the <tt>http://www.iana.org/assignments/relation/carries-information-about</tt> predicate being usable here),
and subsets of the data can be taken and expressed.</t>
          <t>Forms are not special in the information model, but are merely statements around a blank node.
They can be special in serialization formats (which have more efficient notations for them),
and are used by the interaction model for special operations.</t>
          <t>The structured information model contains more information than the basic information model.
[ TBD put this into a different context because it's not an observation any more: ]
Which precise structure is picked is to suit the processing application, typically by profiling the information and its serialization.
It is recommended that the information encoded in the structure (including the order) be derived from data available in the general data set,
even though the statements that guide the structure are not necessarily encoded in the subset of data that is being structured.</t>
          <t>Serializations like the one in <xref target="binary"/> have even more choices than the structured information model:
They can choose to use or not use packed CBOR to compress parts,
can spell out URIs in full or use relative references,
or can exercise freedoms of the CBOR encoding.
Variation there is not to have an influence on the interpretation of a CoRAL document.
<!--
However, applications using CBOR can require that a particular subset of the choices taken.
or
Applications should not make any particular requirements on these to ensure interoperability.
or
Some of these may be profiled, some not.
-->
          </t>
        </section>
        <section anchor="possible-variations">
          <name>Possible variations</name>
          <ul spacing="normal">
            <li>
              <t>Each URI is tagged with whether it is intended to be dereferenced or used as an identifier. <!-- from CB: think about alternative universe in which links and identifiers can be separated...? -->
              </t>
            </li>
          </ul>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <t>This subsection illustrates the information model and serialization based on an example from <xref target="RFC6690"/>:</t>
          <figure anchor="fig-6690-orig">
            <name>Original example at coap://.../.well-known/core</name>
            <artwork><![CDATA[
</sensors>;ct=40;title="Sensor Index",
</sensors/temp>;rt="temperature-c";if="sensor",
</sensors/light>;rt="light-lux";if="sensor",
<http://www.example.com/sensors/t123>;anchor="/sensors/temp";rel="describedby",
</t>;anchor="/sensors/temp";rel="alternate"
]]></artwork>
          </figure>
          <t>After an extraction described in <xref target="convert-6690"/>, this list represents the content of the basic information model representing the above.
For the basic model, the table is to be considered unsorted in the first step.</t>
          <table anchor="fig-6690-data">
            <name>Basic (and, through the sequence, Strucutred) Information Model extracted from there (using CURIEs: rel = http://www.iana.org/assignments/relation/, linkformat is TBD in the conversion, if, rt is TBD with IANA).</name>
            <thead>
              <tr>
                <th align="left">Subject</th>
                <th align="left">Predicate</th>
                <th align="left">Object</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">coap://.../</td>
                <td align="left">rel:hosts</td>
                <td align="left">coap://.../sensors</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors</td>
                <td align="left">linkformat:ct</td>
                <td align="left">40</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors</td>
                <td align="left">linkformat:title</td>
                <td align="left">"Sensor Index"</td>
              </tr>
              <tr>
                <td align="left">coap://.../</td>
                <td align="left">http://www.iana.org/assignments/relation/hosts</td>
                <td align="left">coap://.../sensors/temp</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors/temp</td>
                <td align="left">linkformat:rt</td>
                <td align="left">rt:temperature-c</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors/temp</td>
                <td align="left">linkformat:if</td>
                <td align="left">if:sensor</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors/temp</td>
                <td align="left">rel:describedby</td>
                <td align="left">http://www.example.com/sensors/t123</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors/temp</td>
                <td align="left">rel:alternate</td>
                <td align="left">coap://.../t</td>
              </tr>
              <tr>
                <td align="left">coap://.../</td>
                <td align="left">http://www.iana.org/assignments/relation/hosts</td>
                <td align="left">coap://.../sensors/light</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors/light</td>
                <td align="left">linkformat:rt</td>
                <td align="left">rt:light-lux</td>
              </tr>
              <tr>
                <td align="left">coap://.../sensors/light</td>
                <td align="left">linkformat:if</td>
                <td align="left">if:sensor</td>
              </tr>
            </tbody>
          </table>
          <t>During extraction, some information on item ordering was preserved into the structured data.
Note that while the CoRAL structured data preserves some sequence aspects of the Link-Format file
(like the order of attributes),
others (like the relative order of links from different contexts) are deemed irrelevant and not preserved.</t>
          <t>For serialization,
the use of the packing described with the conversion results in a binary CBOR file with this CBOR diagnostic notation:</t>
          <figure anchor="fig-6690-serialized">
            <name>Serialized CoRAL file in diagnostic notation.</name>
            <artwork><![CDATA[
[
  [2, simple(10) / item 10 for rel:hosts /, cri"/sensors", [
    [2, 6(2) / item 20 for linkformat:ct /, 40],
    [2, simple(15) / item 15 for linkformat:title /, "Sensor Index"]
  ]],
  [2, simple(10) / item 10 for rel:hosts /, cri"/sensors/temp", [
    [2, 6(1) / item 18 for linkformat:if /, 6(200) / cri"http:∕∕TBD∕...∕temperature-c" /],
    [2, 6(-2) / item 19 for linkformat:rt /, 6(250) / cri"http:∕∕TBD∕...∕sensor" /],
    [2, simple(12) / item 12 for rel:describedby /, cri"http://www.example.com/sensors/t123"],
    [2, simple(11) / item 11 for rel:alternate /, cri"/t"]
  ]],
  [2, 10 / item10 for rel:hosts /, cri"/sensors/light", [
    [2, 6(1) / item 18 for linkformat:if /, 6(-201)],
    [2, 6(-2) / item 19 for linkformat:rt /, 6(250)]
  ]]
]
]]></artwork>
          </figure>
          <t>[ TBD: Numbers are made up ]</t>
          <t>Note that the "temperature-c" interface and "sensor" resource type get code points in the link-format dictionary because they are of reg-name style and thus would be registered as CoRE Parameters, and be included in the packing as well.</t>
          <section anchor="literalexample">
            <name>Literal example</name>
            <t>To illustrate non-trivial literals, a link example of <xref target="RFC8288"/> is converted.</t>
            <t>(Note that even the conversion scheme hinted at above for <xref target="RFC6690"/> link format makes no claims at being applicable to general purpose web links like the below;
this is merely done to demonstrate how literals can be handled.
The example even so happens well illustrate that point:
General link attributes may only be valid on the target when the link is followed in that direction ("letztes Kapitel" means last chapter),
whereas convertible <!-- a term that'll need more explaining when it's later defined --> link-format documents use titles that apply to the described resource independent of which link is currently being followed.)</t>
            <figure anchor="fig-8288-orig">
              <name>Original link about a book chapter from RFC8288</name>
              <artwork><![CDATA[
 Link: </TheBook/chapter2>;
         rel="previous"; title*=UTF-8'de'letztes%20Kapitel,
]]></artwork>
            </figure>
            <t>The model this would be converted to is:</t>
            <table anchor="fig-8288-tagged-literals">
              <name>Information model extracted from above</name>
              <thead>
                <tr>
                  <th align="left">Subject</th>
                  <th align="left">Predicate</th>
                  <th align="left">Object</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">http://.../</td>
                  <td align="left">rel:previous</td>
                  <td align="left">http://.../TheBook/chapter2</td>
                </tr>
                <tr>
                  <td align="left">http://.../TheBook/chapter2</td>
                  <td align="left">linkformat:title</td>
                  <td align="left">"letztes Kapitel" with language tag "de"</td>
                </tr>
              </tbody>
            </table>
            <t>In CBOR serialization, this produces:</t>
            <figure anchor="fig-8288-serialized">
              <name>Serialization of the RFC8288-based example</name>
              <artwork><![CDATA[
[
  [2, 6(...) / rel:previous /, cri"/TheBook/chapter2", [
    [2, simple(15) / item 15 for linkformat:title /, 38(["de", "letztes Kapitel"])]
  ]]
]
]]></artwork>
            </figure>
          </section>
        </section>
      </section>
      <section anchor="serialization-format">
        <name>Serialization Format</name>
        <t>The primary serialization format is a compact, binary encoding of
links and forms in <xref target="RFC8949">Concise Binary Object Representation (CBOR)</xref>.
This format is intended for <xref target="RFC7228">environments with constraints on power,
memory, and processing resources</xref> and
shares many similarities with the message format of CoAP:
In place of verbose strings, small numeric identifiers are used to encode
link relation types and operation types. <xref target="RFC3986">Uniform Resource Identifiers (URIs)</xref> are
expressed as <xref target="I-D.ietf-core-href">Constrained Resource Identifier (CRI) references</xref>
and thus pre-parsed for easy use with CoAP.
As a result, link serializations in CoRAL are often much more compact
and easier to process than equivalent serializations in <xref target="RFC6690">CoRE Link
Format</xref>.</t>
        <t>For easy representation of CoRAL documents in text,
CBOR diagnostic notation is used.
Along with indentation and comments,
the notation introduced in <xref target="I-D.bormann-cbor-edn-literals"/> is used to represent CRIs.
This format is not expected to be sent over the network.</t>
        <t>[ To be discussed:
For even better readability,
the RDF <xref target="W3C.REC-turtle-20140225">Turtle</xref> format
can be used when only the basic information model content is to be conveyed.
When used like this, the conversion according to the RDF appendix is implied.
]</t>
      </section>
      <section anchor="links">
        <name>Links</name>
        <t>Any statement "links" a resource with a second resource or literal,
and is thus also referred to as a link.</t>
        <t>In <xref target="RFC8288"/> terminology, a CoRAL link's
subject is the <em>link context</em>,
the predicate is the <em>link relation type</em>, and
the object is the <em>link target</em>.</t>
        <t>However, a link in CoRAL does not have target attributes. Instead, a
link may have a list of zero or more nested elements. These enable
both the description of resource metadata and the chaining of links,
which is done in <xref target="RFC8288"/> by setting the anchor of one link to the
target of another.</t>
        <ul empty="true">
          <li>
            <t>A link can be viewed as a statement of the form "{link context}
  has a {link relation type} resource at {link target}" where the
  link target may be further described by nested elements.</t>
          </li>
        </ul>
        <t>A link relation type identifies the semantics of a link.
In HTML and in <xref target="RFC8288"/>, link relation types are typically denoted by an
IANA-registered name, such as <tt>stylesheet</tt> or <tt>type</tt>. In CoRAL, all
link relation types are, in contrast, denoted by a <xref target="RFC3986">Universal
Resource Identifier (URI)</xref>,
such as &lt;http://www.iana.org/assignments/relation/stylesheet&gt; or
&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;.
This allows for the decentralized creation of new link relation types
without the risk of collisions when they come from different
organizations or domains of knowledge.
URIs can also lead to documentation, schema, and other information
about a link relation type.
In CoRAL documents, these URIs are only used as identity tokens,
though, and are compared with Simple String Comparison as specified in
<xref section="6.2.1" sectionFormat="of" target="RFC3986"/>.</t>
        <t>If the link target is a URI and the URI scheme indicates a Web
transfer protocol like HTTP or CoAP, an agent can dereference the URI
and navigate the browsing context to its target resource; this is
called <em>following the link</em>.
An anonymous resource is a resource that is identified by neither a
URI nor a literal representation.
The agent can still follow the link,
but can not dereference it
and is limited in its next steps by the outgoing links
that are expressed in the current document.</t>
        <t>A link can occur as a top-level element in a document or as a nested
element within a link. When a link occurs as a top-level element, the
link context implicitly is the document's retrieval context. When a
link occurs nested within a link, the link context of the nested link
is the link target of the enclosing link.</t>
        <t>There are no restrictions on the cardinality of links; there can be
multiple links to and from a particular target, and multiple links of
the same or different types between a given link context and target.
However, the nesting nature of the data model constrains the
description of resource relations to a tree: Relations between linked
resources can only be described by further nesting links.</t>
      </section>
      <section anchor="forms">
        <name>Forms</name>
        <t>A <em>form</em> provides instructions to an agent for performing an
operation on a resource on the Web.
A form has
a <em>form context</em>,
an <em>operation type</em>,
a <em>request method</em>, and
a <em>submission target</em>.
Additionally, a form may be accompanied by a list of zero or more
<em>form fields</em>.</t>
        <t>In the basic information model,
the form is identified with an anonymous node.
The form context and operation type are the subject and predicate of an incoming link, respectively;
request method and submission target of an outgoing link.
Form fields are additional links from that form.</t>
        <ul empty="true">
          <li>
            <t>A form can be viewed as an instruction of the form "To perform an
  {operation type} operation on {form context}, make a {request
  method} request to {submission target}" where the request may be
  further described by form fields.</t>
          </li>
        </ul>
        <t>An operation type identifies the semantics of the operation.
Operation types are denoted (like link relation types) by a URI.</t>
        <t>Form contexts and submission targets are both denoted by a URI.
The form context is the resource on which the operation is ultimately
performed.
To perform the operation, an agent needs to construct a request with
the specified method as the request method and the specified
submission target as the request URI. Usually, the submission target
is the same resource as the form context, but may be a different
resource.
Constructing and sending the request is called <em>submitting the form</em>.</t>
        <t>A form can occur as a top-level element in a document or as a nested
element within a link. When a form occurs as a top-level element, the
form context implicitly is the document's retrieval context. When a
form occurs nested within a link, the form context is the link target
of the enclosing link.</t>
      </section>
      <section anchor="form-fields">
        <name>Form Fields</name>
        <t>Form fields can be used to provide more detailed instructions to
agents for constructing the request when submitting a form.
For example, a form field could instruct an agent to include a certain
payload or header field in the request.
A payload could, for instance, be described by form fields providing
acceptable media types, a reference to schema information, or a number
of individual data items that the agents needs to supply.
Form fields can be specific to the Web transfer protocol that is used
for submitting the form.</t>
        <t>A form field is a pair of
a <em>form field type</em> and
a <em>form field value</em>.
Additionally, a form field may have a list of zero or more nested
elements that further describe the form field value.</t>
        <t>A form field type identifies the semantics of the form field.
Form field types are predicates and thus URIs.
Form field values are URIs, blank nodes or literals.</t>
      </section>
      <section anchor="navigation">
        <name>Navigation</name>
        <t>An agent begins the interaction with an application by performing a
GET request on an <em>entry point URI</em>. The entry point URI is the
only URI that the agent is expected to know beforehand. From then on,
the agent is expected to make all requests by following links and
submitting forms that are provided in the responses resulting from the
requests. The entry point URI could be obtained through some discovery
process or manual configuration.</t>
        <t>If dereferencing the entry point URI yields a CoRAL document (or any
other representation that implements the CoRAL data and interaction
model), the agent makes this document the active representation in the
browsing context and proceeds as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The first step for the agent is to decide what to do next, i.e.,
which type of link to follow or form to submit, based on the link
relation types and operation types it understands.  </t>
            <t>
An agent may follow a link without understanding the link relation
type, e.g., for the sake of pre-fetching or building a search
index. However, an agent <bcp14>MUST NOT</bcp14> submit a form without
understanding the operation type.</t>
          </li>
          <li>
            <t>The agent then finds the link(s) or form(s) with the respective
type in the active representation.
This may yield one or more candidates, from which the agent will
have to select the most appropriate one.
The set of candidates can be empty, for example, when an
application state transition is not supported or not allowed.</t>
          </li>
          <li>
            <t>The agent selects one of the candidates based on the metadata
associated them (in the form of form fields and nested elements)
and their order of appearance in the document.
Examples for relevant metadata could include the indication of a
media type for the target resource representation, the URI
scheme of a target resource, or the request method of an
operation.</t>
          </li>
          <li>
            <t>The agent obtains the <em>request URI</em> from the link target or
submission target.
Fragment identifiers are not part of the request URI and <bcp14>MUST</bcp14> be
separated from the rest of the URI prior to the next step.</t>
          </li>
          <li>
            <t>The agent constructs a new request with the request URI.
If the agent is following a link, then the request method <bcp14>MUST</bcp14> be
GET.
If the agent is submitting a form, then the request method <bcp14>MUST</bcp14> be
the one supplied by the form.  </t>
            <t>
The agent <bcp14>SHOULD</bcp14> set HTTP header fields and CoAP request options
according to the metadata (e.g., set the HTTP Accept header field
or the CoAP Accept option when a media type for the target
resource is provided).
Depending on the operation type of a form, the agent may also have
to include a request payload that matches the specifications of
some form fields.</t>
          </li>
          <li>
            <t>The agent sends the request and receives the response.</t>
          </li>
          <li>
            <t>If a fragment identifier was separated from the request URI, the
agent selects the fragment indicated by the fragment
identifier within the received representation according to the
semantics of its media type.</t>
          </li>
          <li>
            <t>The agent updates the browsing context by making the (selected
fragment of the) received representation the active
representation.</t>
          </li>
          <li>
            <t>Finally, the agent processes the representation according to the
semantics of its media type.
If the representation is a CoRAL document (or any other
representation that implements the CoRAL data and interaction
model), the agent again has the choice of what to do next. Go to
step 1.</t>
          </li>
        </ol>
      </section>
      <section anchor="history-traversal">
        <name>History Traversal</name>
        <t>A browsing context has a <em>session history</em>, which lists the
resource representations that the agent has processed, is processing,
or will process.</t>
        <t>A session history consists of session history entries.
The number of session history entries may be limited and dependent on
the agent. An agent with severe constraints on memory size might only
have enough memory for the most recent entry.</t>
        <t>An entry in the session history consists of a resource representation
and the representation's retrieval context. New entries are added to
the session history as the agent navigates from resource to resource,
discarding entries that are no longer used.</t>
        <t>An agent can decide to navigate a browsing context (in addition to
following links and submitting forms) by <em>traversing the session
          history</em>.
For example, when an agent receives a response with a representation
that does not contain any further links or forms, it can navigate back
to a resource representation it has visited earlier and make that the
active representation.</t>
        <t>Traversing the history <bcp14>SHOULD</bcp14> take advantage of caches to avoid new
requests.
An agent may reissue a safe request (e.g., a GET) when it does
not have a fresh representation in its cache.
An agent <bcp14>MUST NOT</bcp14> reissue an unsafe request (e.g., a PUT or
POST) unless it actually intends to perform that operation again.</t>
      </section>
      <section anchor="designing-interactions-in-an-open-world">
        <name>Designing interactions in an Open World</name>
        <t>CoRAL can be used to build both open world systems
("if something is not said, it may or may not be true")
and closed world systems ("if something is not said, it is not true").</t>
        <t>In constrained environments (and the web in general),
partial representations are often used for efficiency.
For example, a device can query another for particular statements
using a yet to be defined FETCH version of CoRAL.
It is expected that some tools
(e.g., server or agent libraries)
require the application to be tolerant of unprocessed statements.
Furthermore, it can be easier to evolve applications
and their packing dictionaries
if loss of statements leads to graceful degradation.</t>
        <t>Therefore, it is convenient to build applications on open world assumptions.
Such applications can only use statements that add possibilities,
and none that limit interactions.
Any limitations need to be encoded in statements the agent necesarily has to perform an action in the first place,
and can then be relaxed in additional statements.</t>
        <t>For example, an application built with open-world assumptions
can not create a form that allows feeding gremlins,
and in an additional statement (e.g., a form field) forbid after midnight.
Instead, the application needs to describe a limited-feeding form,
which can only be used if any of the attached conditions is met;
the condition "before midnight" can then be expressed in an additional statement.</t>
      </section>
    </section>
    <section anchor="binary">
      <name>Binary Format</name>
      <t>This section defines the encoding of documents in the CoRAL binary
format.</t>
      <t>A document in the binary format is encoded in <xref target="RFC8949">Concise Binary Object
Representation (CBOR)</xref>.</t>
      <t>The CBOR structure of a document is presented in the <xref target="RFC8610">Concise Data
Definition Language (CDDL)</xref>.
All CDDL rules not defined in this document are defined in <xref section="D" sectionFormat="of" target="RFC8610"/>.</t>
      <t>The media type of documents in the binary format is <tt>application/coral+cbor</tt>.</t>
      <section anchor="data-structure">
        <name>Data Structure</name>
        <t>The data structure of a document in the binary format is made up of
three kinds of elements:
links,
forms (as short hands for the statements they are constructed of), and
(as an extension to the CoRAL data model) directives.
Directives provide a way to encode URI references with a common base
more efficiently.</t>
        <section anchor="documents-1">
          <name>Documents</name>
          <t>A document in the binary format is encoded as a CBOR array that
contains zero or more elements.
An element is either
a link,
a form, or
a directive.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
document = [*element]
element = link / form / directive
]]></sourcecode>
            </li>
          </ul>
          <t>The elements are processed in the order they appear in the document.
Document processors need to maintain an <em>environment</em> while
iterating an array of elements.
The environment consists of two variables:
the <em>current context</em> and
the <em>current base</em>.
The current context and the current base are both initially set to
the document's retrieval context.</t>
        </section>
        <section anchor="directives">
          <name>Directives</name>
          <t>Directives provide the ability to manipulate the environment while
processing elements.</t>
          <t>There is a single type of directives available:
the Base directive.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
directive = base-directive
]]></sourcecode>
            </li>
          </ul>
          <t>It is an error if a document processor encounters any other type of
directive.</t>
          <section anchor="base-directives">
            <name>Base Directives</name>
            <t>A Base directive is encoded as a CBOR array that contains the
unsigned integer 1 and a base URI.</t>
            <ul empty="true">
              <li>
                <sourcecode type="cddl"><![CDATA[
base-directive = [1, baseURI]
]]></sourcecode>
              </li>
            </ul>
            <t>The base URI is denoted by a <xref target="I-D.ietf-core-href">Constrained Resource Identifier (CRI) reference</xref>.
The CRI reference <bcp14>MUST</bcp14> be resolved against the current context
(not the current base).</t>
            <ul empty="true">
              <li>
                <sourcecode type="cddl"><![CDATA[
baseURI = CRI-Reference
CRI-Reference = <Defined in Section XX of RFC XXXX>
]]></sourcecode>
              </li>
            </ul>
            <t>The directive is processed by resolving the CRI reference against
the current context and assigning the result to the current base.</t>
          </section>
        </section>
        <section anchor="uris">
          <name>URIs</name>
          <t>URIs in links and forms are encoded as CRI references.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
URI = CRI-Reference
]]></sourcecode>
            </li>
          </ul>
          <t>A CRI reference is processed by resolving it to a URI as specified
in <xref section="5.2" sectionFormat="of" target="I-D.ietf-core-href"/> using the current base.</t>
        </section>
        <section anchor="links-1">
          <name>Links</name>
          <t>A link is encoded as a CBOR array that contains the unsigned integer
2, the link relation type, the link target, and, optionally, an array
of zero or more nested elements.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
link = [2, relation-type, link-target, ?[*element]]
]]></sourcecode>
            </li>
          </ul>
          <t>The link relation type is a URI.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
relation-type = URI
]]></sourcecode>
            </li>
          </ul>
          <t>The link target is either a URI, a literal value, or null.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
link-target = URI / literal / null
literal = bool / int / float / time / bytes / text
]]></sourcecode>
            </li>
          </ul>
          <t>The nested elements, if any, <bcp14>MUST</bcp14> be processed in a fresh environment.
The current context is set to the link target of the enclosing link.
The current base is initially set to the link target, if the link
target is a URI; otherwise, it is set to the current base of the
current environment.</t>
        </section>
        <section anchor="forms-1">
          <name>Forms</name>
          <t>A form is encoded as a CBOR array that contains the unsigned integer
3, the operation type, the submission target, and, optionally, an
array of zero or more form fields.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
form = [3, operation-type, submission-target, ?[*form-field]]
]]></sourcecode>
            </li>
          </ul>
          <t>The operation type is a URI.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
operation-type = URI
]]></sourcecode>
            </li>
          </ul>
          <t>The submission target is a URI.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
submission-target = URI
]]></sourcecode>
            </li>
          </ul>
          <t>The request method is either implied by the operation type or
encoded as a form field.
If both are given, the form field takes precedence over the operation
type.
Either way, the method <bcp14>MUST</bcp14> be applicable to the Web transfer protocol
identified by the scheme of the submission target.</t>
          <t>The form fields, if any, <bcp14>MUST</bcp14> be processed in a fresh environment.
The current context is set to an unspecified URI that represents the
enclosing form.
The current base is initially set to the submission target of the
enclosing form.</t>
        </section>
        <section anchor="form-fields-1">
          <name>Form Fields</name>
          <t>A form field is encoded as a CBOR sequence that consists of a form
field type, a form field value, and, optionally, an array of zero or
more nested elements.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
form-field = (form-field-type, form-field-value, ?[*element])
]]></sourcecode>
            </li>
          </ul>
          <t>The form field type is a URI.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
form-field-type = URI
]]></sourcecode>
            </li>
          </ul>
          <t>The form field value is either a URI, a literal value, or null.</t>
          <ul empty="true">
            <li>
              <sourcecode type="cddl"><![CDATA[
form-field-value = URI / literal / null
]]></sourcecode>
            </li>
          </ul>
          <t>The nested elements, if any, <bcp14>MUST</bcp14> be processed in a fresh environment.
The current context is set to the form field value of the enclosing
form field.
The current base is initially set to the form field value, if the form
field value is a URI; otherwise, it is set to the current base of the
current environment.</t>
        </section>
      </section>
      <section anchor="dictionary-compression">
        <name>Dictionary Compression</name>
        <t>A document in the binary format <bcp14>MAY</bcp14> reference values from an external
dictionary using Packed CBOR <xref target="I-D.ietf-cbor-packed"/>.
This helps to reduce representation size and processing cost.</t>
        <t>Dictionary references can be used
subject to [ yet to be defined ] profiling.</t>
        <t>Implementers should note that Packed CBOR is not designed to be uncompressed,
but to be used in a compressed form.
In particular, constrained devices may operate without even knowing what a given dictionary entry expands to
(as long as they know its meaning)
<!-- and may ignore unknown entries under certain conditions, depending on the outcome of https://github.com/core-wg/coral/issues/3 -->.</t>
        <section anchor="media-type-parameter">
          <name>Media Type Parameter</name>
          <t>The <tt>application/coral+cbor</tt> media type for documents in the binary
format is defined to have a <tt>dictionary</tt> parameter that specifies
the dictionary in use. The dictionary is identified by a URI.
For example, a CoRAL document that uses the dictionary identified by
the URI &lt;http://example.com/dictionary&gt; would have the following
content type:</t>
          <ul empty="true">
            <li>
              <artwork><![CDATA[
application/coral+cbor;dictionary="http://example.com/dictionary"
]]></artwork>
            </li>
          </ul>
          <t>The URI serves only as an identifier; it does not necessarily have
to be dereferencable (or even use a dereferencable URI scheme). It
is permissible, though, to use a dereferencable URI and to serve a
representation that provides information about the dictionary in a
machine- or human-readable way. (The representation format and
security considerations of such a representation are outside the
scope of this document.)</t>
          <t>For simplicity, a CoRAL document can reference values only from one
dictionary; the value of the <tt>dictionary</tt> parameter <bcp14>MUST</bcp14> be a single
URI.</t>
          <t>The <tt>dictionary</tt> parameter is <bcp14>OPTIONAL</bcp14>. If it is absent, the default
dictionary specified in <xref target="default-dictionary"/> of this
document is assumed.</t>
          <t>Once a dictionary has made an assignment, the assignment <bcp14>MUST NOT</bcp14> be
changed or removed. A dictionary, however, may contain additional
information about an assignment, which may change over time.</t>
          <t>In CoAP, media types (including
specific values for their parameters, plus an optional content
coding) are encoded as an unsigned integer called the "content
format" of a representation.
For use with CoAP, each new CoRAL dictionary therefore needs to have
a new content format registered in the <xref target="CORE-PARAMETERS">CoAP Content Formats Registry</xref>.</t>
        </section>
      </section>
      <section anchor="export-interface">
        <name>Export Interface</name>
        <t>The definition of documents, links, and forms in the CoRAL binary
format can be reused in other CBOR-based protocols.
Specifications using CDDL should reference the following rules for
this purpose:</t>
        <ul empty="true">
          <li>
            <sourcecode type="cddl"><![CDATA[
CoRAL-Document = document
CoRAL-Link = link
CoRAL-Form = form
]]></sourcecode>
          </li>
        </ul>
        <t>For each embedded document, link, and form, the CBOR-based protocol
needs to specify the document retrieval context, link context, and
form context, respectively.</t>
      </section>
    </section>
    <section anchor="docsemantics">
      <name>Document Semantics</name>
      <section anchor="submitting-documents">
        <name>Submitting Documents</name>
        <t>By default, a CoRAL document is a representation that captures the
current state of a resource. The meaning of a CoRAL document changes
when it is submitted in a request. Depending on the request method,
the CoRAL document can capture the intended state of a resource (PUT)
or be subject to application-specific processing (POST).</t>
        <section anchor="put-requests">
          <name>PUT Requests</name>
          <t>A PUT request with a CoRAL document enclosed in the request payload
requests that the state of the target resource be created or
replaced with the state described by the CoRAL document.
A successful PUT of a CoRAL document generally means that a
subsequent GET on that same target resource would result in an
equivalent document being sent in a success response.</t>
          <t>An origin server <bcp14>SHOULD</bcp14> verify that a submitted CoRAL document is
consistent with any constraints the server has for the target
resource.
When a document is inconsistent with the target resource, the origin
server <bcp14>SHOULD</bcp14> either make it consistent (e.g., by removing
inconsistent elements) or respond with an appropriate error message
containing sufficient information to explain why the document is
unsuitable.</t>
          <t>The retrieval context and the base URI of a CoRAL document in a PUT
are the request URI of the request.</t>
        </section>
        <section anchor="post-requests">
          <name>POST Requests</name>
          <t>A POST request with a CoRAL document enclosed in the request payload
requests that the target resource process the CoRAL document
according to the resource's own specific semantics.</t>
          <t>The retrieval context of a CoRAL document in a POST is defined by
the target resource's processing semantics; it may be an unspecified
URI. The base URI of the document is the request URI of the request.</t>
        </section>
      </section>
      <section anchor="returning-documents">
        <name>Returning Documents</name>
        <t>In a response, the meaning of a CoRAL document changes depending on
the request method and the response status code.
For example, a CoRAL document in a successful response to a GET
represents the current state of the target resource, whereas a CoRAL
document in a successful response to a POST might represent either the
processing result or the new resource state.
A CoRAL document in an error response represents the error condition,
usually describing the error state and what next steps are suggested
for resolving it.</t>
        <section anchor="success-responses">
          <name>Success Responses</name>
          <t>Success responses have a response status code that indicates that
the client's request was successfully received, understood, and
accepted (2xx in HTTP, 2.xx in CoAP).
When the representation in a success response does not describe the
state of the target resource, it describes result of processing the
request.
For example, when a request has been fulfilled and has resulted in
one or more new resources being created, a CoRAL document in the
response can link to and describe the resource(s) created.</t>
          <t>The retrieval context and the base URI of a CoRAL document
representing the current state of a resource are the request URI of
the request.</t>
          <t>The retrieval context of a CoRAL document representing a processing
result is an unspecified URI that refers to the processing result
itself. The base URI of the document is the request URI of the
request.</t>
        </section>
        <section anchor="redirection-responses">
          <name>Redirection Responses</name>
          <t>Redirection responses have a response status code that indicates
that further action needs to be taken by the agent (3xx in HTTP).
A redirection response, for example, might indicate that the target
resource is available at a different URI or the server offers a
choice of multiple matching resources, each with its own specific
URI.</t>
          <t>In the latter case, the representation in the response might contain
a list of resource metadata and URI references (i.e., links) from
which the agent can choose the most preferred one.</t>
          <t>The retrieval context of a CoRAL document representing such multiple
choices in a redirection response is an unspecified URI that refers
to the redirection itself. The base URI of the document is the
request URI of the request.</t>
        </section>
        <section anchor="error-responses">
          <name>Error Responses</name>
          <t>Error response have a response status code that indicates that
either the request cannot be fulfilled or the server failed to
fulfill an apparently valid request (4xx or 5xx in HTTP, 4.xx or
5.xx in CoAP). A representation in an error response describes the
error condition.</t>
          <t>The retrieval context of a CoRAL document representing such an error
condition is an unspecified URI that refers to the error condition
itself. The base URI of the document is the request URI of the
request.</t>
        </section>
      </section>
    </section>
    <section anchor="usage-considerations">
      <name>Usage Considerations</name>
      <t>This section discusses some considerations in creating CoRAL-based
applications and vocabularies.</t>
      <section anchor="specifying-coral-based-applications">
        <name>Specifying CoRAL-based Applications</name>
        <t>CoRAL-based applications naturally implement the <xref target="W3C.REC-webarch-20041215">Web architecture</xref> and thus are
centered around orthogonal specifications for identification,
interaction, and representation:</t>
        <ul spacing="normal">
          <li>
            <t>Resources are identified by URIs or represented by literal values.</t>
          </li>
          <li>
            <t>Interactions are based on the hypermedia interaction model of the
Web and the methods provided by the Web transfer protocol.
The semantics of possible interactions are identified by link
relation types and operation types.</t>
          </li>
          <li>
            <t>Representations are CoRAL documents encoded in the binary format
defined in <xref target="binary"/>.
Depending on the application, additional representation formats may
be used.</t>
          </li>
        </ul>
        <section anchor="application-interfaces">
          <name>Application Interfaces</name>
          <t>Specifications for CoRAL-based applications need to list the
specific components used in the application interface and their
identifiers. This should include the following items:</t>
          <ul spacing="normal">
            <li>
              <t>The Web transfer protocols supported.</t>
            </li>
            <li>
              <t>The representation formats used, identified by their Internet
media types, including the CoRAL serialization formats.</t>
            </li>
            <li>
              <t>The link relation types used.</t>
            </li>
            <li>
              <t>The operation types used. Additionally, for each operation type,
the permissible request methods.</t>
            </li>
            <li>
              <t>The form field types used. Additionally, for each form field type,
the permissible form field values.</t>
            </li>
          </ul>
        </section>
        <section anchor="resource-identifiers">
          <name>Resource Identifiers</name>
          <t>URIs are a cornerstone of Web-based
applications. They enable the uniform identification of resources
and are used every time a client interacts with a server or a
resource representation needs to refer to another resource.</t>
          <t>URIs often include structured application data in the path and query
components, such as paths in a filesystem or keys in a database. It
is a common practice in HTTP-based application programming
interfaces (APIs) to make this part of the application
specification, i.e., to prescribe fixed URI templates that are
hard-coded in implementations. However, there are
a number of problems with this
practice <xref target="RFC8820"/>.</t>
          <t>In CoRAL-based applications, resource names are therefore not part
of the application specification --- they are an implementation
detail.
The specification of a CoRAL-based application <bcp14>MUST NOT</bcp14> mandate any
particular form of resource name structure.</t>
          <t><xref target="RFC8820"/> describes the problematic practice of fixed URI structures
in more detail and provides some acceptable alternatives.</t>
        </section>
        <section anchor="implementation-limits">
          <name>Implementation Limits</name>
          <t>This document places no restrictions on the number of elements in a
CoRAL document or the depth of nested elements.
Applications using CoRAL (in particular those running in constrained
environments) may limit these numbers and define specific
implementation limits that an implementation must support at
least to be interoperable.</t>
          <t>Applications may also mandate the following and other restrictions:</t>
          <ul spacing="normal">
            <li>
              <t>Use of only either HTTP or CoAP as the supported Web transfer
protocol.</t>
            </li>
            <li>
              <t>Use of only dictionary references in the binary format for certain
vocabulary.</t>
            </li>
            <li>
              <t>Use of URI references and CRI references only up to a specific
length.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="minting-vocabulary">
        <name>Minting Vocabulary</name>
        <t>New link relation types, operation types, and form field types can be
minted by defining a URI that uniquely
identifies the item.
Although the URI may point to a resource that contains a definition of
the semantics, clients <bcp14>SHOULD NOT</bcp14> automatically access that resource
to avoid overburdening its server. The URI <bcp14>SHOULD</bcp14> be under the control
of the person or party defining it, or be delegated to them.</t>
        <t>To avoid interoperability problems, it is <bcp14>RECOMMENDED</bcp14> that only URIs
are minted that are normalized according to <xref section="6.2" sectionFormat="of" target="RFC3986"/>.
This is easily achieved when the URIs are defined in CRI form
(in which they also become part of the dictionary),
as this avoids many common non-normalized forms of URIs by construction.</t>
        <t>Non-normalized forms that are still to be avoided include:</t>
        <ul spacing="normal">
          <li>
            <t>Uppercase characters in scheme names and domain names</t>
          </li>
          <li>
            <t>Explicitly stated HTTP default port (e.g., &lt;http://example.com/&gt; is
preferable over &lt;http://example.com:80/&gt;)</t>
          </li>
          <li>
            <t>Punycode-encoding of Internationalized Domain Names in URIs</t>
          </li>
          <li>
            <t>URIs that are not in Unicode Normalization Form C</t>
          </li>
        </ul>
        <t>URIs that identify vocabulary do not need to be registered. The
inclusion of domain names in URIs allows for the decentralized
creation of new URIs without the risk of collisions.</t>
        <t>However, URIs can be relatively verbose and impose a high overhead on
a representation.
This can be a problem in <xref target="RFC7228">constrained environments</xref>.
Therefore, CoRAL alternatively allows the use of packed references
that abbreviate CBOR data items from a dictionary, as specified in
<xref target="dictionary-compression"/>.
These impose a much smaller overhead but instead need to be assigned
by an authority to avoid collisions.</t>
      </section>
      <section anchor="expressing-registered-link-relation-types">
        <name>Expressing Registered Link Relation Types</name>
        <t>Link relation types registered in the <xref target="LINK-RELATIONS">Link Relations
Registry</xref>, such as <tt>collection</tt> <xref target="RFC6573"/> or <tt>icon</tt>
          <xref target="W3C.REC-html52-20171214"/>, can be used in CoRAL by appending the
registered name to the URI
&lt;http://www.iana.org/assignments/relation/&gt;:</t>
        <ul empty="true">
          <li>
            <sourcecode type="coral"><![CDATA[
#using iana = <http://www.iana.org/assignments/relation/>

iana:collection </items>
iana:icon       </favicon.png>
]]></sourcecode>
          </li>
        </ul>
        <t>The convention of appending the relation type name to the prefix
&lt;http://www.iana.org/assignments/relation/&gt; to form URIs is adopted
from the <xref target="RFC4287">Atom Syndication Format</xref>; see also <xref section="A.2" sectionFormat="of" target="RFC8288"/>.</t>
        <t>Note that registered relation type names are required to be lowercase
ASCII letters (see <xref section="3.3" sectionFormat="of" target="RFC8288"/>).</t>
      </section>
      <section anchor="expressing-simple-rdf-statements">
        <name>Expressing Simple RDF Statements</name>
        <t>In <xref target="W3C.REC-rdf11-concepts-20140225">RDF</xref>, a statement
says that some relationship, indicated by a predicate, holds between
two resources. Existing RDF vocabularies can therefore be a good source
for link relation types that describe resource metadata.
For example, a CoRAL document could use the <xref target="FOAF">FOAF vocabulary</xref> to describe the person or software that made it:</t>
        <ul empty="true">
          <li>
            <sourcecode type="coral"><![CDATA[
#using rdf = <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
#using foaf = <http://xmlns.com/foaf/0.1/>

foaf:maker null {
   rdf:type        <http://xmlns.com/foaf/0.1/Person>
   foaf:familyName "Hartke"
   foaf:givenName  "Klaus"
   foaf:mbox       <mailto:klaus.hartke@ericsson.com>
}
]]></sourcecode>
          </li>
        </ul>
      </section>
      <section anchor="expressing-natural-language-texts">
        <name>Expressing Natural Language Texts</name>
        <t>Text strings can be associated with a <xref target="RFC5646">Language Tag</xref> and a base text direction
(right-to-left or left-to-right) by using CBOR tag 38.</t>
        <ul empty="true">
          <li>
            <sourcecode type="coral"><![CDATA[
#using base = <http://coreapps.org/base#>
#using iana = <http://www.iana.org/assignments/relation/>

iana:terms-of-service </tos> {
   base:title 38(["de", "Nutzungsbedingungen"])
   base:title 38(["en-US", "Terms of use"])
   base:title 38(["az", "ltr", "İstifadə şərtləri"])
}
]]></sourcecode>
          </li>
        </ul>
        <t>[ Maturity note: Whether direction will actually be expressed in an updated tag 38,
   how precisely that is done, or whether a new tag will be allocated for text with direction
   is currently still under discussion. ]</t>
      </section>
      <section anchor="embedding-representations-in-coral">
        <name>Embedding Representations in CoRAL</name>
        <t>When a document links to many Web resources and an agent needs a
representation of each of them, it can be inefficient to retrieve each
representations individually. To minimize round-trips, documents can
embed representations of resources.</t>
        <t>A representation can be embedded in a document by including a link of
type &lt;http://coreapps.org/base#representation&gt;:</t>
        <ul empty="true">
          <li>
            <sourcecode type="coral"><![CDATA[
#using base = <http://coreapps.org/base#>
#using http = <http://coreapps.org/http#>
#using iana = <http://www.iana.org/assignments/relation/>

iana:icon </favicon.gif> {
   base:representation
      b64'R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAIAOw==' {
      http:type "image/gif"
   }
}
]]></sourcecode>
          </li>
        </ul>
        <t>An embedded representation <bcp14>SHOULD</bcp14> have a nested link of type
&lt;http://coreapps.org/http#type&gt; or
&lt;http://coreapps.org/coap#type&gt; that indicates the content type
of the representation.</t>
        <t>The link relation types
&lt;http://coreapps.org/base#representation&gt;,
&lt;http://coreapps.org/http#type&gt;, and
&lt;http://coreapps.org/coap#type&gt; are defined in <xref target="core-vocabulary"/>.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>CoRAL document processors need to be fully prepared for all types of
hostile input that may be designed to corrupt, overrun, or achieve
control of the agent processing the document. For example, hostile input
may be constructed to overrun buffers, allocate very big data
structures, or exhaust the stack depth by setting up deeply nested
elements. Processors need to have appropriate resource management to
mitigate these attacks.</t>
      <t>CoRAL serialization formats intentionally do not feature the equivalent
of XML entity references so as to preclude the entire class of attacks
relating to them, such as exponential XML entity expansion ("billion
laughs") <xref target="CAPEC-197"/> and malicious XML entity linking <xref target="CAPEC-201"/>.</t>
      <t>Implementers of the CoRAL binary format need to consider the security
aspects of decoding CBOR. See <xref section="10" sectionFormat="of" target="RFC8949"/> for security
considerations relating to CBOR.
In particular, different number encodings for the same numeric value
are not equivalent in CoRAL (e.g., a floating-point value of 0.0 is
not the same as the integer 0).</t>
      <t>CoRAL makes extensive use of resource identifiers.
See <xref section="7" sectionFormat="of" target="RFC3986"/> for security considerations relating to
URIs.
See <xref section="7" sectionFormat="of" target="I-D.ietf-core-href"/> for security considerations
relating to CRIs.</t>
      <t>The security of applications using CoRAL can depend on the proper
preparation and comparison of internationalized strings. For example,
such strings can be used to make authentication and authorization
decisions, and the security of an application could be compromised if an
entity providing a given string is connected to the wrong account or
online resource based on different interpretations of the string.
See <xref target="RFC6943"/> for security considerations relating to identifiers in
URIs and other strings.</t>
      <t>CoRAL is intended to be used in conjunction with a Web transfer protocol
like HTTP or CoAP. See <xref section="9" sectionFormat="of" target="RFC7230"/>, <xref section="9" sectionFormat="of" target="RFC7231"/>, etc.,
for security considerations relating to HTTP.
See <xref section="11" sectionFormat="of" target="RFC7252"/> for security considerations relating to
CoAP.</t>
      <t>CoRAL does not define any specific mechanisms for protecting the
confidentiality and integrity of CoRAL documents.
It relies on security mechanisms on the application layer or transport
layer for this, such as <xref target="RFC8446">Transport Layer Security (TLS)</xref>.</t>
      <t>CoRAL documents and the structure of a web of resources revealed from
automatically following links can disclose personal information and
other sensitive information.
Implementations need to prevent the unintentional disclosure of such
information.
See <xref section="9" sectionFormat="of" target="RFC7231"/> for additional considerations.</t>
      <t>Applications using CoRAL ought to consider the attack vectors opened by
automatically following, trusting, or otherwise using links and forms in
CoRAL documents. See <xref section="5" sectionFormat="of" target="RFC8288"/> for related considerations.</t>
      <t>In particular, when a CoRAL document is the representation of a
resource, the server that is authoritative for that resource may not
necessarily be authoritative for nested elements in the document. In
this case, unless an application defines specific rules, any link or
form where the link/form context and the document's retrieval context do
not share the same <xref target="RFC6454">Web Origin</xref> should be
discarded ("same-origin policy").</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="media-type-applicationcoralcbor">
        <name>Media Type "application/coral+cbor"</name>
        <t>This document registers the media type <tt>application/coral+cbor</tt> according to the procedures of <xref target="RFC6838"/>.</t>
        <dl newline="true">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>coral+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>dictionary - See <xref target="dictionary-compression"/> of [I-D.ietf-core-coral].</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary - See <xref target="binary"/> of [I-D.ietf-core-coral].</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of [I-D.ietf-core-coral].</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>[I-D.ietf-core-coral]</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>See <xref target="introduction"/> of [I-D.ietf-core-coral].</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>As specified for <tt>application/cbor</tt>.</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <dl spacing="compact">
              <dt>Deprecated alias names for this type:</dt>
              <dd>
                <t>N/A</t>
              </dd>
              <dt>Magic number(s):</dt>
              <dd>
                <t>N/A</t>
              </dd>
              <dt>File extension(s):</dt>
              <dd>
                <t>.coral.cbor</t>
              </dd>
              <dt>Macintosh file type code(s):</dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>See the Author's Address section of [I-D.ietf-core-coral].</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>See the Author's Address section of [I-D.ietf-core-coral].</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IESG</t>
          </dd>
          <dt>Provisional registration?</dt>
          <dd>
            <t>No</t>
          </dd>
        </dl>
      </section>
      <section anchor="coap-content-formats">
        <name>CoAP Content Formats</name>
        <t>This document registers CoAP content formats for the content types <tt>application/coral+cbor</tt> and <tt>text/coral</tt> according to the procedures
of <xref target="RFC7252"/>.</t>
        <ul spacing="normal">
          <li>
            <dl spacing="compact">
              <dt>Content Type:</dt>
              <dd>
                <t>application/coral+cbor</t>
              </dd>
              <dt>Content Coding:</dt>
              <dd>
                <t>identity</t>
              </dd>
              <dt>ID:</dt>
              <dd>
                <t>TBD3</t>
              </dd>
              <dt>Reference:</dt>
              <dd>
                <t>[I-D.ietf-core-coral]</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>[[NOTE TO RFC EDITOR: Please replace all occurrences of TBD3
in this document with the code points assigned by IANA.]]</t>
        <t>[[NOTE TO IMPLEMENTERS: Experimental implementations may use content
format ID 65087 for <tt>application/coral+cbor</tt>
until IANA has assigned code points.]]</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC3629">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </reference>
        <reference anchor="RFC3986">
          <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="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. 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="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="RFC6657">
          <front>
            <title>Update to MIME regarding "charset" Parameter Handling in Textual Media Types</title>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document changes RFC 2046 rules regarding default "charset" parameter values for "text/*" media types to better align with common usage by existing clients and servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6657"/>
          <seriesInfo name="DOI" value="10.17487/RFC6657"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="I-D.ietf-core-href">
          <front>
            <title>Constrained Resource Identifiers</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="9" month="January" year="2024"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) instead of a sequence
   of characters.  This simplifies parsing, comparison, and reference
   resolution in environments with severe limitations on processing
   power, code size, and memory size.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –14 of this draft picks up comments from the
   // shepherd review and adds sections on CoAP integration and on cri
   // application-oriented literals for the Extended Diagnostic
   // Notation.  This revision still contains open issues and is
   // intended to serve as a snapshot while the processing of the
   // shepherd review is being completed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-14"/>
        </reference>
        <reference anchor="Unicode" target="https://www.unicode.org/versions/Unicode13.0.0/">
          <front>
            <title>The Unicode Standard, Version 13.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-26-9"/>
        </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>
        <reference anchor="I-D.bormann-cbor-edn-literals">
          <front>
            <title>Application-Oriented Literals in CBOR Extended Diagnostic Notation</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="28" month="March" year="2023"/>
            <abstract>
              <t>   The Concise Binary Object Representation, CBOR (RFC 8949), defines a
   "diagnostic notation" in order to be able to converse about CBOR data
   items without having to resort to binary data.

   This document specifies how to add application-oriented extensions to
   the diagnostic notation.  It then defines two such extensions for the
   use of CBOR diagnostic notation with CoRAL and Constrained Resource
   Identifiers (draft-ietf-core-coral, draft-ietf-core-href).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-edn-literals-02"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-packed">
          <front>
            <title>Packed CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mikolai Gütschow" initials="M." surname="Gütschow">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="2" month="March" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949 == STD 94)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR does not provide any forms of data compression.  CBOR data
   items, in particular when generated from legacy data models, often
   allow considerable gains in compactness when applying data
   compression.  While traditional data compression techniques such as
   DEFLATE (RFC 1951) can work well for CBOR encoded data items, their
   disadvantage is that the receiver needs to decompress the compressed
   form to make use of the data.

   This specification describes Packed CBOR, a simple transformation of
   a CBOR data item into another CBOR data item that is almost as easy
   to consume as the original CBOR data item.  A separate decompression
   step is therefore often not required at the receiver.


   // The present version (-12) updates the IANA "Values for Tag
   // Numbers" table, sorting it and cleaning up the "Data Item" column.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-12"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4287">
          <front>
            <title>The Atom Syndication Format</title>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="R. Sayre" initials="R." role="editor" surname="Sayre"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document specifies Atom, an XML-based Web content and metadata syndication format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4287"/>
          <seriesInfo name="DOI" value="10.17487/RFC4287"/>
        </reference>
        <reference anchor="RFC5789">
          <front>
            <title>PATCH Method for HTTP</title>
            <author fullname="L. Dusseault" initials="L." surname="Dusseault"/>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>Several applications extending the Hypertext Transfer Protocol (HTTP) require a feature to do partial resource modification. The existing HTTP PUT method only allows a complete replacement of a document. This proposal adds a new HTTP method, PATCH, to modify an existing HTTP resource. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5789"/>
          <seriesInfo name="DOI" value="10.17487/RFC5789"/>
        </reference>
        <reference anchor="RFC6573">
          <front>
            <title>The Item and Collection Link Relations</title>
            <author fullname="M. Amundsen" initials="M." surname="Amundsen"/>
            <date month="April" year="2012"/>
            <abstract>
              <t>RFC 5988 standardized a means of indicating the relationships between resources on the Web. This specification defines a pair of reciprocal link relation types that may be used to express the relationship between a collection and its members. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6573"/>
          <seriesInfo name="DOI" value="10.17487/RFC6573"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC6943">
          <front>
            <title>Issues in Identifier Comparison for Security Purposes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>Identifiers such as hostnames, URIs, IP addresses, and email addresses are often used in security contexts to identify security principals and resources. In such contexts, an identifier presented via some protocol is often compared using some policy to make security decisions such as whether the security principal may access the resource, what level of authentication or encryption is required, etc. If the parties involved in a security decision use different algorithms to compare identifiers, then failure scenarios ranging from denial of service to elevation of privilege can result. This document provides a discussion of these issues that designers should consider when defining identifiers and protocols, and when constructing architectures that use multiple protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6943"/>
          <seriesInfo name="DOI" value="10.17487/RFC6943"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7230"/>
          <seriesInfo name="DOI" value="10.17487/RFC7230"/>
        </reference>
        <reference anchor="RFC7231">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7231"/>
          <seriesInfo name="DOI" value="10.17487/RFC7231"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource. In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable. Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8820">
          <front>
            <title>URI Design and Ownership</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
              <t>This document provides guidance on the specification of URI substructure in standards.</t>
              <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="190"/>
          <seriesInfo name="RFC" value="8820"/>
          <seriesInfo name="DOI" value="10.17487/RFC8820"/>
        </reference>
        <reference anchor="W3C.REC-html52-20171214" target="https://www.w3.org/TR/2017/REC-html52-20171214/">
          <front>
            <title>HTML 5.2</title>
            <author fullname="Alex Danilo" role="editor"/>
            <author fullname="Arron Eicholz" role="editor"/>
            <author fullname="Sangwhan Moon" role="editor"/>
            <author fullname="Steve Faulkner" role="editor"/>
            <author fullname="Travis Leithead" role="editor"/>
            <date day="14" month="December" year="2017"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-html52-20171214"/>
          <seriesInfo name="W3C" value="REC-html52-20171214"/>
        </reference>
        <reference anchor="W3C.REC-rdf11-concepts-20140225" target="https://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/">
          <front>
            <title>RDF 1.1 Concepts and Abstract Syntax</title>
            <author fullname="David Wood" role="editor"/>
            <author fullname="Markus Lanthaler" role="editor"/>
            <author fullname="Richard Cyganiak" role="editor"/>
            <date day="25" month="February" year="2014"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-rdf11-concepts-20140225"/>
          <seriesInfo name="W3C" value="REC-rdf11-concepts-20140225"/>
        </reference>
        <reference anchor="W3C.REC-rdf-schema-20140225" target="https://www.w3.org/TR/2014/REC-rdf-schema-20140225/">
          <front>
            <title>RDF Schema 1.1</title>
            <author fullname="Dan Brickley" role="editor"/>
            <author fullname="Ramanathan Guha" role="editor"/>
            <date day="25" month="February" year="2014"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-rdf-schema-20140225"/>
          <seriesInfo name="W3C" value="REC-rdf-schema-20140225"/>
        </reference>
        <reference anchor="W3C.REC-turtle-20140225" target="https://www.w3.org/TR/2014/REC-turtle-20140225/">
          <front>
            <title>RDF 1.1 Turtle</title>
            <author fullname="Eric Prud'hommeaux" role="editor"/>
            <author fullname="Gavin Carothers" role="editor"/>
            <date day="25" month="February" year="2014"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-turtle-20140225"/>
          <seriesInfo name="W3C" value="REC-turtle-20140225"/>
        </reference>
        <reference anchor="W3C.REC-webarch-20041215" target="https://www.w3.org/TR/2004/REC-webarch-20041215/">
          <front>
            <title>Architecture of the World Wide Web, Volume One</title>
            <author fullname="Ian Jacobs" role="editor"/>
            <author fullname="Norman Walsh" role="editor"/>
            <date day="15" month="December" year="2004"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-webarch-20041215"/>
          <seriesInfo name="W3C" value="REC-webarch-20041215"/>
        </reference>
        <reference anchor="CORE-PARAMETERS" target="http://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="HTTP-METHODS" target="http://www.iana.org/assignments/http-methods">
          <front>
            <title>Hypertext Transfer Protocol (HTTP) Method Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="LINK-RELATIONS" target="http://www.iana.org/assignments/link-relations">
          <front>
            <title>Link Relations</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="MEDIA-TYPES" target="http://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="UAX31" target="https://www.unicode.org/reports/tr31/tr31-33.html">
          <front>
            <title>Unicode Standard Annex #31: Unicode Identifier and Pattern Syntax</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="Revision" value="33"/>
        </reference>
        <reference anchor="UTR36" target="https://www.unicode.org/reports/tr36/tr36-15.html">
          <front>
            <title>Unicode Technical Report #36: Unicode Security Considerations</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2014" month="September"/>
          </front>
          <seriesInfo name="Revision" value="15"/>
        </reference>
        <reference anchor="UTS39" target="https://www.unicode.org/reports/tr39/tr39-22.html">
          <front>
            <title>Unicode Technical Standard #39: Unicode Security Mechanisms</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="February"/>
          </front>
          <seriesInfo name="Revision" value="22"/>
        </reference>
        <reference anchor="FOAF" target="http://xmlns.com/foaf/spec/20140114.html">
          <front>
            <title>FOAF Vocabulary Specification 0.99</title>
            <author initials="D." surname="Brickley" fullname="Dan Brickley">
              <organization/>
            </author>
            <author initials="L." surname="Miller" fullname="Libby Miller">
              <organization/>
            </author>
            <date year="2014" month="January"/>
          </front>
        </reference>
        <reference anchor="CAPEC-197" target="https://capec.mitre.org/data/definitions/197.html">
          <front>
            <title>CAPEC-197: XML Entity Expansion</title>
            <author>
              <organization>MITRE</organization>
            </author>
            <date year="2019" month="September"/>
          </front>
        </reference>
        <reference anchor="CAPEC-201" target="https://capec.mitre.org/data/definitions/201.html">
          <front>
            <title>CAPEC-201: XML Entity Linking</title>
            <author>
              <organization>MITRE</organization>
            </author>
            <date year="2019" month="September"/>
          </front>
        </reference>
        <reference anchor="HAL">
          <front>
            <title>JSON Hypertext Application Language</title>
            <author fullname="Mike Kelly" initials="M." surname="Kelly">
              <organization>Stateless</organization>
            </author>
            <date day="19" month="October" year="2023"/>
            <abstract>
              <t>   This document proposes a media type for representing resources and
   their relations with hyperlinks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kelly-json-hal-11"/>
        </reference>
        <reference anchor="RFC7089">
          <front>
            <title>HTTP Framework for Time-Based Access to Resource States -- Memento</title>
            <author fullname="H. Van de Sompel" initials="H." surname="Van de Sompel"/>
            <author fullname="M. Nelson" initials="M." surname="Nelson"/>
            <author fullname="R. Sanderson" initials="R." surname="Sanderson"/>
            <date month="December" year="2013"/>
            <abstract>
              <t>The HTTP-based Memento framework bridges the present and past Web. It facilitates obtaining representations of prior states of a given resource by introducing datetime negotiation and TimeMaps. Datetime negotiation is a variation on content negotiation that leverages the given resource's URI and a user agent's preferred datetime. TimeMaps are lists that enumerate URIs of resources that encapsulate prior states of the given resource. The framework also facilitates recognizing a resource that encapsulates a frozen prior state of another resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7089"/>
          <seriesInfo name="DOI" value="10.17487/RFC7089"/>
        </reference>
        <reference anchor="I-D.ietf-httpapi-linkset">
          <front>
            <title>Linkset: Media Types and a Link Relation Type for Link Sets</title>
            <author fullname="Erik Wilde" initials="E." surname="Wilde">
              <organization>Axway</organization>
            </author>
            <author fullname="Herbert Van de Sompel" initials="H." surname="Van de Sompel">
              <organization>Data Archiving and Networked Services</organization>
            </author>
            <date day="5" month="May" year="2022"/>
            <abstract>
              <t>This specification defines two formats and associated media types for representing sets of links as standalone documents.  One format is based on JSON, and the other is aligned with the format for representing links in the HTTP "Link" header field.  This specification also introduces a link relation type to support the discovery of sets of links.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-linkset-10"/>
        </reference>
      </references>
    </references>
    <?line 1510?>

<section anchor="core-vocabulary">
      <name>Core Vocabulary</name>
      <t>This section defines the core vocabulary for CoRAL: a set of link
relation types, operation types, and form field types.</t>
      <section anchor="base">
        <name>Base</name>
        <t>Link Relation Types:</t>
        <dl newline="true">
          <dt>&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;</dt>
          <dd>
            <t>Indicates that the link's context is an instance of the class
specified as the link's target, as defined by <xref target="W3C.REC-rdf-schema-20140225">RDF
Schema</xref>.</t>
          </dd>
          <dt>&lt;http://coreapps.org/base#title&gt;</dt>
          <dd>
            <t>Indicates that the link target is a human-readable label (e.g., a
menu entry).
</t>
            <t>The link target <bcp14>MUST</bcp14> be a literal. The text string <bcp14>SHOULD</bcp14> be
wrapped in a tag indicating language and, if necessary, direction
if applicable.</t>
          </dd>
          <dt>&lt;http://coreapps.org/base#representation&gt;</dt>
          <dd>
            <t>Indicates that the link target is a representation of the link
context.
</t>
            <t>The link target <bcp14>MUST</bcp14> be a byte string.</t>
            <t>The representation may be a full, partial, or inconsistent version
of the representation served from the URI of the resource.</t>
            <t>A link with this link relation type can occur as a top-level element in
a document or as a nested element within a link. When it occurs as
a top-level element, it provides an alternate representation of
the document's retrieval context. When it occurs nested within a
link, it provides a representation of link target of the enclosing
link.</t>
          </dd>
        </dl>
        <t>Operation Types:</t>
        <dl newline="true">
          <dt>&lt;http://coreapps.org/base#update&gt;</dt>
          <dd>
            <t>Indicates that the state of the form's context can be replaced
with the state described by a representation submitted to the
server.
</t>
            <t>This operation type defaults to the PUT method <xref target="RFC7231"/>  <xref target="RFC7252"/> for both HTTP and
CoAP.
  Typical overrides by a form field include the PATCH method <xref target="RFC5789"/>  <xref target="RFC8132"/> for HTTP and CoAP and
the iPATCH method <xref target="RFC8132"/> for CoAP.</t>
          </dd>
          <dt>&lt;http://coreapps.org/base#search&gt;</dt>
          <dd>
            <t>Indicates that the form's context can be searched by submitting a
search query.
</t>
            <t>This operation type defaults to the POST method <xref target="RFC7231"/> for HTTP
and the FETCH method <xref target="RFC8132"/> for CoAP.
Typical overrides by a form field include the POST method <xref target="RFC7252"/>
for CoAP.</t>
          </dd>
        </dl>
      </section>
      <section anchor="collections">
        <name>Collections</name>
        <t>Link Relation Types:</t>
        <dl newline="true">
          <dt>&lt;http://www.iana.org/assignments/relation/item&gt;</dt>
          <dd>
            <t>Indicates that the link's context is a collection and that the
link's target is a member of that collection, as defined in
<xref section="2.1" sectionFormat="of" target="RFC6573"/>.</t>
          </dd>
          <dt>&lt;http://www.iana.org/assignments/relation/collection&gt;</dt>
          <dd>
            <t>Indicates that the link's target is a collection and that the link's
context is a member of that collection, as defined in <xref section="2.2" sectionFormat="of" target="RFC6573"/>.</t>
          </dd>
        </dl>
        <t>Operation Types:</t>
        <dl newline="true">
          <dt>&lt;http://coreapps.org/collections#create&gt;</dt>
          <dd>
            <t>Indicates that the form's context is a collection and that a new
item can be created in that collection with the state defined by a
representation submitted to the server.
</t>
            <t>This operation type defaults to the POST method <xref target="RFC7231"/> <xref target="RFC7252"/>
for both HTTP and CoAP.</t>
          </dd>
          <dt>&lt;http://coreapps.org/collections#delete&gt;</dt>
          <dd>
            <t>Indicates that the form's context is a member of a collection and
that the form's context can be removed from that collection.
</t>
            <t>This operation type defaults to the DELETE method <xref target="RFC7231"/>
              <xref target="RFC7252"/> for both HTTP and CoAP.</t>
          </dd>
        </dl>
      </section>
      <section anchor="http">
        <name>HTTP</name>
        <t>Form Field Types:</t>
        <dl newline="true">
          <dt>&lt;http://coreapps.org/http#method&gt;</dt>
          <dd>
            <t>Specifies the HTTP method for the request.
</t>
            <t>The form field value <bcp14>MUST</bcp14> be a text string in the format defined
in <xref section="4.1" sectionFormat="of" target="RFC7231"/>.
The possible set of values is maintained in the <xref target="HTTP-METHODS">HTTP Methods
Registry</xref>.</t>
            <t>A form field of this type <bcp14>MUST NOT</bcp14> occur more than once in a form.
If absent, it defaults to the request method implied by the form's
operation type.</t>
          </dd>
          <dt>&lt;http://coreapps.org/http#accept&gt;</dt>
          <dd>
            <t>Specifies an acceptable HTTP content type for the request payload.
There may be multiple form fields of this type. If a form does not
include a form field of this type, the server accepts any or no
request payload, depending on the operation type.
</t>
            <t>The form field value <bcp14>MUST</bcp14> be a text string in the format defined
in <xref section="3.1.1.1" sectionFormat="of" target="RFC7231"/>. The
possible set of media types and their parameters is maintained in
the <xref target="MEDIA-TYPES">Media Types Registry</xref>.</t>
          </dd>
        </dl>
        <t>Link Relation Types:</t>
        <dl newline="true">
          <dt>&lt;http://coreapps.org/http#type&gt;</dt>
          <dd>
            <t>Specifies the HTTP content type of the link context.
</t>
            <t>The link target <bcp14>MUST</bcp14> be a text string in the format defined in
<xref section="3.1.1.1" sectionFormat="of" target="RFC7231"/>. The possible set of media types and
their parameters is maintained in the <xref target="MEDIA-TYPES">Media Types
Registry</xref>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="coap">
        <name>CoAP</name>
        <t>Form Field Types:</t>
        <dl newline="true">
          <dt>&lt;http://coreapps.org/coap#method&gt;</dt>
          <dd>
            <t>Specifies the CoAP method for the request.
</t>
            <t>The form field value <bcp14>MUST</bcp14> be an integer identifying a CoAP method
(e.g., the integer 2 for the POST method). The possible set of
values is maintained in the <xref target="CORE-PARAMETERS">CoAP Method Codes
Registry</xref>.</t>
            <t>A form field of this type <bcp14>MUST NOT</bcp14> occur more than once in a form.
If absent, it defaults to the request method implied by the form's
operation type.</t>
          </dd>
          <dt>&lt;http://coreapps.org/coap#accept&gt;</dt>
          <dd>
            <t>Specifies an acceptable CoAP content format for the request
payload. There may be multiple form fields of this type. If a form
does not include a form field of this type, the server accepts any
or no request payload, depending on the operation type.
</t>
            <t>The form field value <bcp14>MUST</bcp14> be an integer identifying a CoAP content
format.
The possible set of values is maintained in the CoAP <xref target="CORE-PARAMETERS">Content
Formats Registry</xref>.</t>
          </dd>
        </dl>
        <t>Link Relation Types:</t>
        <dl newline="true">
          <dt>&lt;http://coreapps.org/coap#type&gt;</dt>
          <dd>
            <t>Specifies the CoAP content format of the link context.
</t>
            <t>The link target <bcp14>MUST</bcp14> be an integer identifying a CoAP content format
(e.g., the integer 42 for the content type
<tt>application/octet-stream</tt> without a content coding).
The possible set of values is maintained in the <xref target="CORE-PARAMETERS">CoAP Content
Formats Registry</xref>.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="default-dictionary">
      <name>Default Dictionary</name>
      <t>This section defines a default dictionary that is assumed when the <tt>application/coral+cbor</tt> media type is used without a <tt>dictionary</tt> parameter.</t>
      <table align="center" anchor="default-dictionary-entries">
        <name>Default Dictionary</name>
        <thead>
          <tr>
            <th align="right">Key</th>
            <th align="left">Value</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">0</td>
            <td align="left">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;</td>
          </tr>
          <tr>
            <td align="right">1</td>
            <td align="left">&lt;http://www.iana.org/assignments/relation/item&gt;</td>
          </tr>
          <tr>
            <td align="right">2</td>
            <td align="left">&lt;http://www.iana.org/assignments/relation/collection&gt;</td>
          </tr>
          <tr>
            <td align="right">3</td>
            <td align="left">&lt;http://coreapps.org/collections#create&gt;</td>
          </tr>
          <tr>
            <td align="right">4</td>
            <td align="left">&lt;http://coreapps.org/base#update&gt;</td>
          </tr>
          <tr>
            <td align="right">5</td>
            <td align="left">&lt;http://coreapps.org/collections#delete&gt;</td>
          </tr>
          <tr>
            <td align="right">6</td>
            <td align="left">&lt;http://coreapps.org/base#search&gt;</td>
          </tr>
          <tr>
            <td align="right">7</td>
            <td align="left">&lt;http://coreapps.org/coap#accept&gt;</td>
          </tr>
          <tr>
            <td align="right">8</td>
            <td align="left">&lt;http://coreapps.org/coap#type&gt;</td>
          </tr>
          <tr>
            <td align="right">10</td>
            <td align="left">&lt;http://coreapps.org/coap#method&gt;</td>
          </tr>
          <tr>
            <td align="right">14</td>
            <td align="left">&lt;http://coreapps.org/base#representation&gt;</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="mappings-to-other-formats">
      <name>Mappings to other formats</name>
      <t>While CoRAL has an information model of its own,
its data can be converted to different extents with other data formats.</t>
      <t>Using these conversions is generally application specific,
i.e., this document does not claim equivalence of (say) a given RDF its converted CoRAL document,
but applications can choose use these conversions if the limitations described with the conversion are acceptable to them.</t>
      <section anchor="rdf">
        <name>RDF</name>
        <t>[ TBD: Expand / introduce the common CURIEs used here. ]</t>
        <t>RDF and the CoRAL Basic Information Model can be interconverted losslessly,
as long as some basic restrictions are met:</t>
        <ul spacing="normal">
          <li>
            <t>All involved IRIs (on the RDF side) and CRIs (on the CoRAL side) can be converted;
that means that round-tripping IRIs through CoRAL converts them to the equivalent URIs.  </t>
            <t>
The precise limitations of what CRIs can not express are described in <xref target="I-D.ietf-core-href"/> and out of scope of this document.  </t>
            <t>
A possible extension to CoRAL that allows tagged URIs in place of CRIs could remove this limitation.
(CRIs that can not be expressed as URIs are not valid anyway).</t>
          </li>
          <li>
            <t>A blank node of CoRAL can only have one incoming edge in serialization.
RDF documents with multiply connected blank nodes need to undergo skolemization before they can be expressed in CoRAL.</t>
          </li>
          <li>
            <t>CoRAL supports arbitrary literal objects, including CBOR tags.
For each object that is used in a literal, a mapping to a datatype (typically XSD) needs to be defined.  </t>
            <t>
When literals are normalized in RDF according to XSD rules,
or the literal mappings to RDF datatypes are ambiguous on the CoRAL side,
round-tripping CoRAL through RDF can be lossy to the extent of the normalization or ambiguity.</t>
          </li>
          <li>
            <t>As always with expressing arbitrary graphs of the Basic Information Model in serialization,
if there is no directed tree spanning the directed graph,
statements need to be introduced to reach some topics.</t>
          </li>
        </ul>
        <t>Each statement in RDF is mapped to a statement in CoRAL.
Any IRI it contains in RDF is mapped to an equivalent CRI in CoRAL and vice versa.
Any blank node of RDF is converted to a blank node (serialized as a null) in CoRAL.
(Beware that depending on the context established in <xref target="docsemantics"/>, the retrieval context may be a URI or a blank node).
Literals are converted as follows:</t>
        <ul spacing="normal">
          <li>
            <t>CBOR text strings are coverted to RDF string literals without a language tag.</t>
          </li>
          <li>
            <t>CBOR literals from the following list are converted to their corresponding text representations of the datatype from the following table:</t>
          </li>
        </ul>
        <table anchor="cddl-xsd-mappings">
          <name>Mapping between CDDL types and XSD datatypes</name>
          <thead>
            <tr>
              <th align="left">CDDL</th>
              <th align="left">XSD datatype</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">bool</td>
              <td align="left">xsd:boolean</td>
            </tr>
            <tr>
              <td align="left">integer</td>
              <td align="left">xsd:integer</td>
            </tr>
            <tr>
              <td align="left">float</td>
              <td align="left">xsd:double</td>
            </tr>
            <tr>
              <td align="left">decfrac</td>
              <td align="left">xsd:decimal</td>
            </tr>
            <tr>
              <td align="left">bytes</td>
              <td align="left">xsd:base64Binary or xsd:base64hexBinary (?)</td>
            </tr>
            <tr>
              <td align="left">tdate</td>
              <td align="left">xsd:date</td>
            </tr>
            <tr>
              <td align="left">#6.38([lang: tstr, text: tstr])</td>
              <td align="left">rdf:langString with lang as language tag</td>
            </tr>
            <tr>
              <td align="left">#6.TBD([lang: tstr, dir: tstr, text: tstr])</td>
              <td align="left">i18n:{lang}_{dir}</td>
            </tr>
          </tbody>
        </table>
        <t>[ TBD: Check compatibilities, give type for at least the basic tags.
   Directional text might wind up in tag 38, ]</t>
        <ul spacing="normal">
          <li>
            <t>RDF literals are mapped to any CoRAL literal that yields an equivalent RDF literal in the opposite direction.</t>
          </li>
        </ul>
        <section anchor="example">
          <name>Example</name>
          <t>The FOAF namespace provides this example:</t>
          <figure anchor="fig-foaf-orig">
            <name>Original FOAF file at http://.../me.xml</name>
            <artwork><![CDATA[
<foaf:Person rdf:about="#danbri" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <foaf:name>Dan Brickley</foaf:name>
  <foaf:homepage rdf:resource="http://danbri.org/" />
  <foaf:openid rdf:resource="http://danbri.org/" />
  <foaf:img rdf:resource="/images/me.jpg" />
</foaf:Person>
]]></artwork>
          </figure>
          <t>Converted, assuming no particular profiling or dictionary setup
(and an ad-hoc table following <xref section="3.1" sectionFormat="of" target="I-D.ietf-cbor-packed"/>),
this could be:</t>
          <figure anchor="fig-foaf-converted">
            <name>Serialized FOAF file at http://.../me.coral</name>
            <artwork><![CDATA[
51([[cri'http://danbri.org/'], [<<-3, "xmlns.com", ["foaf", "0.1"], null>>], [], [
  [2, cri'http://www.iana.org/assignments/relation/carries-information-about', cri'/me.xml#danbri',
    [2, cri'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', 6(<<'Person'>>)],
    [2, 6(<<'name'>>), "Dan Brickley"],
    [2, 6(<<'homepage'>>), 6(0)],
    [2, 6(<<'openid'>>), 6(0)],
    [2, 6(<<'img'>>), cri'/images/me.jpg']
  ]
]])
]]></artwork>
          </figure>
          <t>The TBD:talks-about statement is introduced to bridge the gap between the basic and the necessarily structured information model.
[ TBD: Introduce that somewhere else more generally. ]</t>
          <t>In this packing, an invalid CRI (with trailing null leaving room for a fragment identifier to be added through packing)
is added into the prefixes list.
It is not sure whether this particular trick will ever be permitted by any of the profilings,
or whether this is better done with base URIs.
The mechanism is used because right now it works with the specifications involved without the need for further text,
and is likely to be replaced by better mechanisms in later revisions of this document.</t>
        </section>
      </section>
      <section anchor="convert-6690">
        <name>CoRE Link Format</name>
        <t>Generic information in Web Links as described in <xref target="RFC8288"/> can not be converted to CoRAL in any practical way:
Attributes are not managed,
and it is not clear from the syntax whether an attribute is making a statement about the link or its target.
(See <xref target="literalexample"/> for an example).
<!-- "It is broken, at least for our applications" -->
        </t>
        <!-- We can't usurp the semantics without incompatibly updating RFC6690, so we limit scope: -->
<t>Applications that use links with the attribute semantics common in the CoRE ecosystem
(typically used with <xref target="RFC6690"/> Link Format)
can use this conversion.
It defines terms for common properties used for discovering resources,
and describes a way to compatibly extend the mapping.</t>
        <t>The same mechanism
(but probably with a different mapping between names and attributes,
and different rules about the necessity of packing entries)
can be defined for any data model that builds on <xref target="RFC8288"/> semantics,
e.g., the links sent in headers or payloads about <xref target="RFC7089"/> mementos,
or applications building on <xref target="I-D.ietf-httpapi-linkset"/>.</t>
        <!-- Better terminology than "necessarily" (in all-caps?) appreciated! -->
<t>In several points the mapping describes URIs to necessarily have an entry in the packing table;
this refers to the profiling described further down.
Parts of a Link Format document that would need an entry but do not have one
can not be converted;
these are ignored in the conversion unless the converter is configured to be strict and fail the complete conversion in that case.</t>
        <t>This mapping from Link Format to CoRAL is performed as follows:
* For each relation in a link,
  a statement is created mapping
  the link context to the subject,
  the link target to the object
  and the relation to the predicate.</t>
        <t>If the relation is of ext-rel-type, it is used as a URI as is.
  Otherwise it is a registered value,
  prefixed with <tt>http://www.iana.org/assignments/relation/</tt>
  and necessarily packed using table TBD.
  (This is equivalent to the RPP mechanism for attribute values).</t>
        <ul spacing="normal">
          <li>
            <t>Each target attribute is converted to one or more statements by the mechanism indicated for the attribute name in the following table.
Statements produced from a link have the target as its subject,
the attribute name without any trailing asterisk (prefixed with <tt>https://TBD/</tt> [ to be picked together with IANA as it'll be a registry ]) as its predicate,
and the object(s) depending on the mechanism.  </t>
            <t>
Attributes are necessarily listed in this table.</t>
          </li>
        </ul>
        <table anchor="target-attributes">
          <name>Initial entries of the target attribute registry (TN = table number)</name>
          <thead>
            <tr>
              <th align="left">TN</th>
              <th align="left">Name</th>
              <th align="left">Mechanism</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">hreflang</td>
              <td align="left">[ do we need that? ]</td>
            </tr>
            <tr>
              <td align="left">TBD</td>
              <td align="left">media</td>
              <td align="left">[ do we need that? ]</td>
            </tr>
            <tr>
              <td align="left">16</td>
              <td align="left">title</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">TBD</td>
              <td align="left">type</td>
              <td align="left">[ do we need that? ]</td>
            </tr>
            <tr>
              <td align="left">0</td>
              <td align="left">rt</td>
              <td align="left">WSSP; RPP <tt>http://www.iana.org/TBDr/</tt></td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">if</td>
              <td align="left">WSSP; RPP <tt>http://www.iana.org/TBDi/</tt></td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">sz</td>
              <td align="left">int</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">ct</td>
              <td align="left">WSSP; int</td>
            </tr>
          </tbody>
        </table>
        <t>Available mechanisms are:</t>
        <ul spacing="normal">
          <li>
            <t>SPSP (space split):
Link format values are split at space characters (SP in the RFC6690 ABNF),
and all values treated using another mechanism.</t>
          </li>
          <li>
            <t>string:
The attribute value is stored as a text string literal.
If the Link Format attribute is language tagged
(i.e. when the attribute name ends with an asterisk and the value is of ext-value shape),
the literal is encapsulated in a CBOR language tag (38).</t>
          </li>
          <li>
            <t>int:
The target attribute is processed as an ASCII encoded number
and expressed as an integer literal.
A failing conversion is treated like an unknown registered value:
It is ignored unless configured otherwise.</t>
          </li>
          <li>
            <t>RPP (registered-prefix / packed):
The input value (often the result of the SPSP mechanism)
is parsed according to the relation-type ABNF production.
If it is of ext-rel-type,
it is expressed as that URI.
If it is prefixed with the string indicated with the mechanism,
and necessarily compressed through table TBD.</t>
          </li>
        </ul>
        <t>All currently registered link attributes are used in the CoRE ecosystem
as indicating a property of the target that is independent of the link being followed.
If this conversion is to be extended to cover attributes that pertain to the full link being followed
(typically along with one or more link relations),
the relevant relations are not expressed as a single statement,
but as a form, i.e. as two statements linking the context to a blank node
and the blank node to the target;
the attributes are attached to the blank node.
The precise mechanism out of scope for this document,
and left to those who first register such an attribute.</t>
        <t>Some structure can be carried over from Link Format to the structured model:
The sequences of links gets reused,
and the set and sequence of attributes in a particular occurrence of a link get applied to the statement produced from the link
(or all the statements, if the link has multiple link relations).
Statements whose subject is not the document itself
are attached to the retrieval context using the necessarily packed
<tt>http://www.iana.org/assignments/relation/carries-information-about</tt> property.
Statements about URLs mentioned elsewhere in the document
can be expressed there instead. <!-- generally once, but not stopping anybody... -->
        </t>
        <t>Link relations of the reg-name form,
link attributes,
and attribute values from the RPP mechanism
<bcp14>MUST</bcp14> be serialized using packed CBOR as initialized in table TBD.
No other packing is used.
A consumer <bcp14>MAY</bcp14> ignore any items compressed through the dictionary for which it does not know the expanded version:
These necessarily represent statements that involve terms the consumer does not understand.</t>
        <t>[ As an alternative,
packing attributes together with their URIs is considered:
Rather than <tt>[2, 6(/ attr:rt /), 6(/ rt:core.rd /)]</tt> we could have <tt>6(rt-core)</tt> right away;
unregistered values would stay <tt>[2, 6(/ attr:rt /), value]</tt> or maybe <tt>254([value])</tt> using prefix packing. ]</t>
      </section>
    </section>
    <section removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -05 to -06:</t>
      <ul spacing="normal">
        <li>
          <t>Unmodified resubmission.
(Recent work is going on in <xref target="I-D.ietf-core-href"/> and <xref target="I-D.ietf-cbor-packed"/>,
providing building blocks for CoRAL).</t>
        </li>
      </ul>
      <t>Changes from -04 to -05:</t>
      <ul spacing="normal">
        <li>
          <t>Literals can no longer have properties.
The only use case was annotating languages and directions, and that can be done in CBOR.</t>
        </li>
        <li>
          <t>Added section about open and close world modelling.</t>
        </li>
        <li>
          <t>Information model merged with the previous data model and interaction section.</t>
        </li>
      </ul>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Formalize information model, as basic and structured model.</t>
        </li>
        <li>
          <t>Remove textual representation, using CBOR diagnostig notation instead.</t>
        </li>
        <li>
          <t>Use Packed CBOR instead of custom dictionaries.</t>
        </li>
        <li>
          <t>Give explicit conversions from Link Format and with RDF.</t>
        </li>
        <li>
          <t>Remove references to IRIs (outside RDF) as CRIs are closer to URIs.</t>
        </li>
        <li>
          <t>Remove requirement for deterministic encoding.</t>
        </li>
        <li>
          <t>Many editorial changes.</t>
        </li>
        <li>
          <t>Update references.</t>
        </li>
        <li>
          <t>Change of authorship.</t>
        </li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Changed the binary format to express relation types, operation types and
form field types using <xref target="I-D.ietf-core-href"/> (#2).</t>
        </li>
        <li>
          <t>Clarified the current context and current base for nested elements and form
fields (#53).</t>
        </li>
        <li>
          <t>Minor editorial improvements (#27).</t>
        </li>
      </ul>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>Added nested elements to form fields.</t>
        </li>
        <li>
          <t>Replaced the special construct for embedded representations with links.</t>
        </li>
        <li>
          <t>Changed the textual format to allow simple/qualified names wherever IRI references
are allowed.</t>
        </li>
        <li>
          <t>Introduced predefined names in the textual format (#39).</t>
        </li>
        <li>
          <t>Minor editorial improvements and bug fixes (#16 #28 #31 #37 #39).</t>
        </li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>Added a section on the semantics of CoRAL documents in responses.</t>
        </li>
        <li>
          <t>Minor editorial improvements.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The concept and original version of CoRAL (as well as CRIs) was developed by Klaus Hartke.
It was heavily inspired by Mike Kelly's <xref target="HAL">JSON Hypertext Application Language</xref>.</t>
      <t>The recommendations for minting URIs have been adopted from <xref target="W3C.REC-rdf11-concepts-20140225">RDF 1.1
Concepts and Abstract Syntax</xref> to
ease the interoperability between RDF predicates and link relation
types.</t>
      <t>Thanks to
<contact fullname="Carsten Bormann"/>,
<contact fullname="Jaime Jiménez"/>,
<contact fullname="Jim Schaad"/>,
<contact fullname="Sebastian Käbisch"/>,
<contact fullname="Ari Keränen"/>,
<contact fullname="Michael Koster"/>,
<contact fullname="Matthias Kovatsch"/> and
<contact fullname="Niklas Widell"/>
for helpful comments and discussions that have shaped the document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9W9yXYbWbYYOj9fEUUtX4EsAGzVUU1dSKQqeVOdSaqyaim1
SgEgQEQpEIEbESCFVMpj/4AHHvkNPHkzf4BHvn4D/8b7Eu/2NIEARamyvJbz
3soEgYjT7LPP7pter2eqOs7Hf42zIk8Oo7pcJCadl/Spqvd2dh7s7JlxMcrj
Gfw8LuNJ3UuTetIbFWWC/4qz3s5dM4rrw6iqx2ZU5FWSV4tKxqoWw1laVWmR
18s5jHByfP7cZHF+cRgluZmnhyaK6mJ0GN3Gx2/zX+NkXk/hq338u1rOymRS
eU9URVkHX9VpncHY59Mkegbz12Wc5sk4Oj0+O58ssmgwn2cprBAWEb2AqRfx
RRJ1nhWngxebJh4Oy+Ty8MYvmqsLfPj0OPqpKD+m+UX0x7JYzE28qKdFeWh6
UZrDyp71o8Gs+rf/XlWwYAbes2mZVnUa594vySxOs8NopD/9czyrFklV9UfF
TIc670fPi6qCZdihzqfFLK68r4sSVjU4femGrOmR/oQf+ee4nNGYJs0nRTmD
ry4ThP3p82cHe/fvycc79+4/kI9379zb1493H+zoxwcH+u29vb379uP+jvu4
az/e2ZOP93f37ce9+/ra/YODu/rx/h6N8NP+s/7p8bPetJ5ld/Z6ezu793b3
dg/8n8rxZHcXMC8fAZZU+MjBzt7encYjvWo0BUi0/lwvSsCX1p+ukmFcjqbw
284BTEy/PXt9etx7MzgdvDw+Pz49AxwevBr0Cf/ncQnnUSclnuUP5+dvevDM
D6+P9KFpXc978MC0GOMTL05e/dg7PX4xOD95/UqfydL8Y69MMkIzfOrl8dHJ
oHf+lzfH+sgsGadxDy8Q/v528GeGMdyVuLxI4ObhPNXh9vbV1VV/kaejYpz0
ASW2y2QOd6Xarsv9XfpXb3+/j7Dlt/na3H7Lb0RnSAnichwN8jz5FN2CWSL9
7WSc5HU6SZMygoeiN3ENu86js2Vex59u03B6A/BzjzESb6SOgBcMFpMuZvTE
OK5h7r2dvZ3ezj59UyVlmlSInzwGIEZymSLpQFJAtODt+en+3W/e+l36V2/3
zvqtnyejKXyMM5gT34PN33WbP0tGizKtl7SHdJyUfFZ/z7Z3D3o7D76+7d07
vO2z/QffvO0H9K/e3t5Ntm3P/hbMtLrxl/BgnKfV7O/aNJ713tc3vbeHkzx/
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

-->

</rfc>
