<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-asdf-instance-information-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SDF Instance Information">Instance Information for SDF</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-instance-information-02"/>
    <author initials="J." surname="Romann" fullname="Jan Romann">
      <organization>Universität Bremen</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>jan.romann@uni-bremen.de</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2026" month="February" day="18"/>
    <area>Applications and Real-Time</area>
    <workgroup>ASDF</workgroup>
    <keyword>IoT</keyword>
    <keyword>Link</keyword>
    <keyword>Information Model</keyword>
    <keyword>Interaction Model</keyword>
    <keyword>Data Model</keyword>
    <abstract>
      <?line 75?>

<t>This document specifies instance-related messages to be used in conjunction with the Semantic Definition Format (SDF) for Data and Interactions of Things (RFC 9880).
Split into four "archetypes", instance-related messages are always governed by SDF models, strictly separating instance and class information.
<em>Context</em> information plays a crucial role both for lifecycle management and actual device interaction.</t>
      <t><cref anchor="status">This revision updates the base SDF reference to the recently published RFC 9880, improves the terminology section, and applies a bug fix to an example.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-asdf-instance-information/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        "A Semantic Definition Format for Data and Interactions of Things" (ASDF) Working Group mailing list (<eref target="mailto:asdf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/asdf/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/asdf/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-asdf/instance-information"/>.</t>
    </note>
  </front>
  <middle>
    <?line 85?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Semantic Definition Format for Data and Interactions of Things
(SDF, <xref target="RFC9880"/>) is a format for domain experts to use in the creation
and maintenance of data and interaction models in the Internet of
Things.</t>
      <t>SDF is an Interaction Modeling format, enabling a modeler to describe
the digital interactions that a class of Things (devices) offers,
including the abstract data types of messages used in these
interactions.</t>
      <t>SDF is designed to be independent of specific ecosystems that specify
conventions for performing these interactions, e.g., over Internet
protocols or over ecosystem-specific protocol stacks.</t>
      <t>SDF does not define representation formats for the <em>Instance Information</em> that is
exchanged in, or the subject of such, interactions; this is left to the
specific ecosystems, which tend to have rather different ways to
represent this information.</t>
      <t>This document discusses Instance Information in different types and roles.
It defines an <em>abstraction</em> of this, as an eco-system independent way to reason about this information.
This abstraction can be used at a <em>conceptual</em> level, e.g., to define models that govern the instance information.
However, where this is desired, it also can be used as the basis for a concrete <em>neutral representation</em> (Format) that can actually be used for interchange to exchange information and parameters for interactions to be performed.
In either case, the structure and semantics of this information are governed by SDF Models.</t>
      <t>This document is truly work in progress.
It freely copies examples from the <xref target="I-D.ietf-asdf-sdf-nonaffordance"/> document that evolves in
parallel, with a goal of further synchronizing the development where that
hasn't been fully achieved yet.
After the discussion stabilizes, we'll need to discuss how the
information should be distributed into the different documents and/or
how documents should be merged.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The definitions of <xref target="RFC6690"/>, <xref target="RFC8288"/>, and <xref target="RFC9880"/> apply.</t>
        <t>Terminology may need to be imported from <xref target="LAYERS"/>.</t>
        <dl>
          <dt>Representation:</dt>
          <dd>
            <t>As defined in Section <xref target="RFC9110" section="3.2" sectionFormat="bare"/> of RFC 9110 <xref target="STD97"/>, but understood to
analogously apply to other interaction styles than Representational
State Transfer <xref target="REST"/> as well.</t>
          </dd>
          <dt>Message:</dt>
          <dd>
            <t>A Representation that is exchanged in, or is the subject of, an
Interaction.
Messages are "data in flight", not instance "data at rest" (the
latter are called "Instance" and are modeled by the interaction
model).
</t>
            <t>Depending on the specific message, an abstract data model for the
message may be provided by the <tt>sdfData</tt> definitions (or of
declarations that look like these, such as <tt>sdfProperty</tt>) of an SDF
model.</t>
            <t>Deriving an ecosystem specific representation of a message may be
aided by <em>mapping files</em> <xref target="I-D.bormann-asdf-sdf-mapping"/> that apply to the SDF model
providing the abstract data model.</t>
          </dd>
          <dt>Instantiation:</dt>
          <dd>
            <t>Instantiation is a process that takes a Model, some Context
Information, and possibly information from a Device and creates an
Instance.</t>
          </dd>
          <dt>Instance:</dt>
          <dd>
            <t>Anything that can be interacted with based on the SDF model.
E.g., the Thing itself (device), a Digital Twin, an Asset Management
system...
Instances are modeled as "data at rest", not "data in flight" (the
latter are called "Message" and actually are/have a Representation).
Instances that relate to a single Thing are bound together by some
form of identity.
Instances become useful if they are "situated", i.e., with a
physical or digital "address" that they can be found at and made the
subject of an interaction.</t>
          </dd>
          <dt>Instance-related Message:</dt>
          <dd>
            <t>A message that describes the state or a state change of a specific instance.
(TBC -- also: do we need this additional term?)</t>
          </dd>
          <dt>Message Archetype:</dt>
          <dd>
            <t>In the context of instance-related messages:
A message with specific content and effect, covering a wider set of different use cases.
In this document, we are observing a total of four instance-related message archetypes:
Snapshot Messages, Construction Messages, Delta Messages, and Patch Messages.</t>
          </dd>
          <dt>Snapshot:</dt>
          <dd>
            <t>A message that attempts to describe the state of an Instance at a
particular moment (which may be part of the context).
This state information may either be related to interaction affordances
or to the Thing's context.
</t>
            <t>When a Snapshot message contains affordance-related information,
it may be considered a "proofshot" -- they are "proofs" in the
photographic sense, i.e., they may not be of perfect quality, as
inaccuracies could occur while capturing the affordance state.</t>
            <t>Conversely, Snapshot messages that (only) contain context information
may be referred to as "Context Snapshots".</t>
            <t>Not all state that is characteristic of an Instance may be included
in a Snapshot (e.g., information about an active action that is not
embedded in an action resource).
Snapshots may depend on additional context (such as the identity of
the Instance and a Timestamp).</t>
            <t>An interaction affordance to obtain a Snapshot may not be provided
by every Instance; instead, the affordance may be "baked into" the
device and could be discoverable via a well-known URI.</t>
          </dd>
          <dt>Delta:</dt>
          <dd>
            <t>Delta messages are syntactically similar to Snapshots, but may be
used to only report information that has <em>changed</em> compared to a
given reference Snapshot or Delta message.</t>
          </dd>
          <dt>Construction:</dt>
          <dd>
            <t>Construction messages enable the creation of a digital Instance,
e.g., initialization/commissioning of a device or creation of its
digital twins.
They are like Snapshots, in that they embody a state, however this
state needs to be precise so the construction can actually happen.</t>
          </dd>
          <dt>Patch:</dt>
          <dd>
            <t>Patch messages update the otherwise immutable state of a device or its
digital twin by triggering a reconfiguration or recommisioning.
Similar to Delta messages, Patch messages are referring to an already
existing state that is altered in accordance with the information
contained within the message.</t>
          </dd>
        </dl>
        <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 <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="instance-information-and-sdf">
      <name>Instance Information and SDF</name>
      <t>The instantiation of an SDF model does not directly express an instance, which is, for example, a physical device or a digital twin.
Instead, the instantiation produces an instance-related <em>message</em>, which adheres to a uniform message format and is always controlled by the corresponding SDF model.
Depending on the recipient and its purpose, a message can be interpreted as a report regarding the state of a Thing or the instruction to change it when consumed by the recipient.</t>
      <t>Taking into account previous revisions of this document as well as <xref target="I-D.ietf-asdf-sdf-nonaffordance"/>, we identified two main dimensions for covering the potential use cases for instance-related messages:</t>
      <ol spacing="normal" type="1"><li>
          <t>the intended effect of a message, which can either be a report or an update of a Thing's state, and</t>
        </li>
        <li>
          <t>the actual content of the message, which may be freestanding (without a reference to a previous message or state) or relative (with such a reference).</t>
        </li>
      </ol>
      <t>Based on these considerations (as illustrated by the systematization in <xref target="instance-message-dimensions"/>), we can identify the following four message archetypes:</t>
      <ol spacing="normal" type="1"><li>
          <t><em>Snapshot</em> messages that may contain contain both affordance-related and context information, including information about a Thing's identity,</t>
        </li>
        <li>
          <t><em>Construction</em> messages that trigger a Thing's initial configuration process or its commissioning,</t>
        </li>
        <li>
          <t><em>Delta</em> messages that indicate changes that have occurred since a reference state report, and</t>
        </li>
        <li>
          <t><em>Patch</em> messages that update the Thing's state.</t>
        </li>
      </ol>
      <table anchor="instance-message-dimensions">
        <name>Systematization of instance-related messages along the dimensions "Content" and "(Intended) Effect".</name>
        <thead>
          <tr>
            <!-- FIXME: This does not work with kramdown-rfc at the moment -->

            <!-- <th colspan="2" rowspan="2"></th> -->


            <th colspan="2"/>
            <th colspan="2" align="center">Content</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th colspan="2"/>
            <th align="center">Freestanding</th>
            <th align="center">Relative</th>
          </tr>
          <tr>
            <!-- TODO: Vertical alignment is apparently not supported at the moment -->

            <th rowspan="2" align="center">(Intended)        <br/>
Effect</th>
            <th align="center">State Exposure</th>
            <td align="center">Snapshot</td>
            <td align="center">Delta</td>
          </tr>
          <tr>
            <th align="center">State Change</th>
            <td align="center">Construction</td>
            <td align="center">Patch</td>
          </tr>
        </tbody>
      </table>
      <t>The uniform message format can be used for all four message archetypes.
<xref target="syntax"/> specifies the formal syntax of instance-related messages that all normative statements as well as the examples in this document will adhere to.
This syntax can serve to describe both the abstract structure and the concrete shape of the messages that can be used as a neutral form in interchange.</t>
      <t>In the following, we will first outline a number of general principles for instance-related messages, before detailing the specific archetypes we define in this document.
The specification text itself will be accompanied by examples that have been inspired by <xref target="I-D.ietf-asdf-sdf-nonaffordance"/> and <xref target="I-D.ietf-asdf-digital-twin"/> that each correspond with one of the four archetypes.</t>
      <section anchor="axioms-for-instance-related-messages">
        <name>Axioms for instance-related messages</name>
        <!-- TODO: Integrate this into the document in a better way -->

<t>Instance-related messages can be messages that relate to a property, action, or
event (input or output data), or they can be "proofshots" (extracted state
information, either in general or in a specific form such as a context snapshot etc.).</t>
        <t>Instance-related messages are controlled by a <em>model</em> (class-level information),
which normally is the interaction model of the device.
That interaction model may provide a model of the interaction during which the
instance-related message is interchanged (at least conceptually), or it may be a
"built-in" interaction (such as a proofshot, a context snapshot, ...) that is
implicitly described by the entirety of the interaction model.
This may need to be augmented/composed in some way, as device modeling may be
separate from e.g. asset management system modeling or digital twin modeling.
Instance-related messages use JSON pointers into the model in order to link the
instance-related information to the model.</t>
        <t>Instance-related messages are conceptual and will often be mapped into
ecosystem-specific protocol messages (e.g., a bluetooth command).
It is still useful to be able to represent them in a neutral ("red-star")
format, which we build here as an adaption of the JSON-based format of the
models themselves.
An ecosystem might even decide to use the neutral format as its
ecosystem-specific format (or as an alternative format).</t>
        <t>Instance-related messages may be plain messages, or they may be deltas (from a
previous state) and/or patches (leading from a previous or the current state to
a next state).
Several media types can be defined for deltas/patches; JSON merge-patch <xref target="RFC7396"/> is already in use in SDF (for <tt>sdfRef</tt>) and therefore is a likely candidate.
(Assume that some of the models will be using
<eref target="https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type">Conflict-free replicated data types (CRDTs)</eref> to facilitate patches.)</t>
      </section>
      <section anchor="context-information">
        <name>Context Information</name>
        <t>Messages always have context, typically describing the "me" and the
"you" of the interaction, the "now" and "here", allowing deictic
statements such as "the temperature here" or "my current draw".</t>
        <t>Messages may have to be complemented by this context for
interpretation, i.e., the context needed may need to be reified in the
message (compare the use of SenML "n").
Information that enables interactions via application-layer protocols (such as an IP address) can also be considered context information.</t>
        <t>For this purpose, we are using the <tt>sdfContext</tt> keyword introduced by <xref target="I-D.ietf-asdf-sdf-nonaffordance"/>.
Note that <tt>sdfContext</tt> <em>could</em> also be modelled via <tt>sdfProperty</tt>.</t>
        <t>TODO: explain how <xref target="RFC9039"/> could be used to obtain device names (using <tt>urn:dev:org</tt> in the example).</t>
        <t>Note that one interesting piece of context information is the model itself, including the information block and the default namespace.
This is of course not about the device or its twin (or even its asset management), because models and devices may want to associate freely.
Also note that multiple models may apply to the same device (including but not only revisions of the same models).</t>
      </section>
    </section>
    <section anchor="message-format">
      <name>Message Format</name>
      <t>The data model of instance-related messages makes use of the structural features of SDF models (e.g., when it comes to metadata and namespace information), but is also different in crucial aspects.</t>
      <section anchor="information-block">
        <name>Information Block</name>
        <t>The information block contains the same qualities as an SDF model and, additionally, a mandatory <tt>messageId</tt> to uniquely identify the message.
Furthermore, Delta messages can utilize the <tt>previousMessageId</tt> in order to link two messages and indicate the state change.</t>
        <table anchor="infoblockqual">
          <name>Qualities of the Information Block</name>
          <thead>
            <tr>
              <th align="left">Quality</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">title</td>
              <td align="left">string</td>
              <td align="left">A short summary to be displayed in search results, etc.</td>
            </tr>
            <tr>
              <td align="left">description</td>
              <td align="left">string</td>
              <td align="left">Long-form text description (no constraints)</td>
            </tr>
            <tr>
              <td align="left">version</td>
              <td align="left">string</td>
              <td align="left">The incremental version of the definition</td>
            </tr>
            <tr>
              <td align="left">modified</td>
              <td align="left">string</td>
              <td align="left">Time of the latest modification</td>
            </tr>
            <tr>
              <td align="left">copyright</td>
              <td align="left">string</td>
              <td align="left">Link to text or embedded text containing a copyright notice</td>
            </tr>
            <tr>
              <td align="left">license</td>
              <td align="left">string</td>
              <td align="left">Link to text or embedded text containing license terms</td>
            </tr>
            <tr>
              <td align="left">messageId</td>
              <td align="left">string</td>
              <td align="left">Unique identifier of this instance-related message</td>
            </tr>
            <tr>
              <td align="left">previousMessageId</td>
              <td align="left">string</td>
              <td align="left">Identifier used to connect this instance-related message to a previous one</td>
            </tr>
            <tr>
              <td align="left">timestamp</td>
              <td align="left">string</td>
              <td align="left">Indicates the point in time this instance-related message refers to</td>
            </tr>
            <tr>
              <td align="left">features</td>
              <td align="left">array of strings</td>
              <td align="left">List of extension features used</td>
            </tr>
            <tr>
              <td align="left">$comment</td>
              <td align="left">string</td>
              <td align="left">Source code comments only, no semantics</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="namespaces-block">
        <name>Namespaces Block</name>
        <t>Similar to SDF models, instance-related messages contain a namespaces block with a <tt>namespace</tt> map and the <tt>defaultNamespace</tt> setting.
In constrast to models, including a <tt>namespace</tt> quality is mandatory as at least one namespace reference is needed to be able to refer to the SDF model the instance-related message corresponds with.</t>
        <table anchor="nssec">
          <name>Namespaces Block</name>
          <thead>
            <tr>
              <th align="left">Quality</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">namespace</td>
              <td align="left">map</td>
              <td align="left">Defines short names mapped to namespace URIs, to be used as identifier prefixes</td>
            </tr>
            <tr>
              <td align="left">defaultNamespace</td>
              <td align="left">string</td>
              <td align="left">Identifies one of the prefixes in the namespace map to be used as a default in resolving identifiers</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="instance-of-block">
        <name>Instance-of Block</name>
        <t>Distinct from SDF models are two instance-specific blocks, the first of which is identified via the <tt>sdfInstanceOf</tt> keyword.
Via the <tt>model</tt> keyword, this quality defines the entry point the <tt>sdfInstance</tt> quality from the next section is referring to.
Furthermore, via the <tt>patchMethod</tt> field, a patch algorithm different from JSON Merge Patch can be specified.</t>
        <table anchor="iobsec">
          <name>Instance-of Block</name>
          <thead>
            <tr>
              <th align="left">Quality</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">model</td>
              <td align="left">string</td>
              <td align="left">Defines the entry point for <tt>sdfInstance</tt> by pointing to an <tt>sdfObject</tt> or an <tt>sdfThing</tt>. Has to be based on a namespace identifier from the <tt>namespaces</tt> map.</td>
            </tr>
            <tr>
              <td align="left">patchMethod</td>
              <td align="left">string</td>
              <td align="left">Allows for overriding the default patch method (JSON Merge Patch) by providing a registered value.</td>
            </tr>
            <tr>
              <td align="left">$comment</td>
              <td align="left">string</td>
              <td align="left">Source code comments only, no semantics</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="instance-block">
        <name>Instance Block</name>
        <t>In the instance block, state information for properties, actions, and events as well as context information can be included.
Depending on the archetype, this information will either be used to report a Thing's current state, to report state <em>changes</em>, or to update state via a patch or reconfiguration.</t>
        <t>In addition to the <tt>messageId</tt> and <tt>previousMessageId</tt> from the <tt>info</tt> block, we are able to refer to</t>
        <ul spacing="normal">
          <li>
            <t>the point in time when the information regarding the device state has been captured (via the <tt>timestamp</tt> quality) and</t>
          </li>
          <li>
            <t>the device identity (via the <tt>thingId</tt> qualitity in the <tt>sdfInstance</tt> block).</t>
          </li>
        </ul>
        <t>Since we are using the <tt>sdfInstance</tt> keyword as an entry point at the location pointed to via the <tt>model</tt> specfied in <tt>sdfInstanceOf</tt>, the instance-related message has to follow the structure of this part of the model (although, depending on the archetype, information that has not changed or will not be updated can be left out.)</t>
        <t>The alternating structure of the SDF model (e. g., <tt>sdfObject/envSensor/sdfProperty/temperature</tt>) is repeated within the instance-related message, with the top-level <tt>sdfObject</tt> or <tt>sdfThing</tt> being replaced by <tt>sdfInstance</tt> at the entry point.
Note that we also have to replicate a nested structure via <tt>sdfThing</tt> and/or <tt>sdfObject</tt> if present in the referenced SDF model.</t>
        <!-- TODO: The descriptions need some refinement here. Also: Maybe we need to specify the shape of the qualities in addional sections -->

<table anchor="ibsec">
          <name>Instance Block</name>
          <thead>
            <tr>
              <th align="left">Quality</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">thingId</td>
              <td align="left">string</td>
              <td align="left">(Optional) identifier of the instance (e.g., a UUID)</td>
            </tr>
            <tr>
              <td align="left">sdfThing</td>
              <td align="left">map</td>
              <td align="left">Values for the thing entries in the referenced SDF definition</td>
            </tr>
            <tr>
              <td align="left">sdfObject</td>
              <td align="left">map</td>
              <td align="left">Values for the object entries in the referenced SDF definition</td>
            </tr>
            <tr>
              <td align="left">sdfContext</td>
              <td align="left">map</td>
              <td align="left">Values for the context entries in the referenced SDF definition</td>
            </tr>
            <tr>
              <td align="left">sdfProperty</td>
              <td align="left">map</td>
              <td align="left">Values for the properties in the referenced SDF definition</td>
            </tr>
            <tr>
              <td align="left">sdfAction</td>
              <td align="left">map</td>
              <td align="left">Values for the actions in the referenced SDF definition</td>
            </tr>
            <tr>
              <td align="left">sdfEvent</td>
              <td align="left">map</td>
              <td align="left">Values for the events in the referenced SDF definition</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="message-archetypes">
      <name>Message Archetypes</name>
      <t>Based on the common message format defined in <xref target="message-format"/> and the systematization from <xref target="instance-message-dimensions"/>, we can derive a set of four archetypes that serve different use cases and recipients.</t>
      <t>TODO: Decide whether we want to add specific CDDL schemas for the four archetypes via extension points in the "base schema"</t>
      <section anchor="snapshot-messages">
        <name>Snapshot Messages</name>
        <t>This instance-related message contains information on a Thing's state, both in terms of context information and the state of individual affordances.
In the message, the <tt>previousMessageId</tt> field in the information block <bcp14>MUST NOT</bcp14> be present.
Furthermore, when transmitting this message in its JSON format, the content type <tt>application/sdf-snapshot+json</tt> <bcp14>MUST</bcp14> be indicated if supported by the protocol used for transmission.</t>
        <t>Snapshot messages <bcp14>MAY</bcp14> only contain values for a <em>subset</em> of all possible affordances and context information exposed by a Thing.
Security-related aspects, e.g. regarding authentication and authorization, <bcp14>MUST</bcp14> be taken into account when issueing a state report for a requesting party.</t>
        <t>In practical use, we can at least differentiate two use cases for snapshot messages.
The corresponding message variants are (colloquially) referred to as "Context Snapshots" and "Proofshots".</t>
        <t>Context Snapshots <em>only</em> contain context information related to a Thing (indicated via the <tt>sdfContext</tt> quality).
<xref target="example-context"/> gives an example for this kind of instance-related message.</t>
        <figure anchor="example-context">
          <name>Example of an SDF context snapshot.</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a42",
    "timestamp": "2025-07-01T12:00:00Z"
  },
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensors"
  },
  "defaultNamespace": "models",
  "sdfInstanceOf": {
    "model": "sensors:#/sdfObject/envSensor"
  },
  "sdfInstance": {
    "thingId": "envSensor:abc123",
    "sdfContext": {
      "installationInfo": {
        "floor": 3,
        "mountType": "ceiling",
        "indoorOutdoor": "indoor"
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <t>Proofshot Messages are supersets of context snapshots that may also include state information associated with a Thing's <em>interaction affordances</em>(properties, actions, and events).</t>
        <t><cref anchor="other-affordances">Note that while the format for describing the state of properties is clearly governed by the schema information from the corresponding <tt>sdfProperty</tt> definition, it is still unclear how to best model the state of <tt>sdfAction</tt>s and <tt>sdfEvent</tt>s.</cref></t>
        <t><xref target="code-off-device-instance"/> shows a proofshot that captures the state of a
sensor.
Here, every property and context definition of the corresponding SDF model
(see <xref target="code-off-device-model"/>) is mapped to a concrete value that satisfies
the associated schema.</t>
        <figure anchor="code-off-device-instance">
          <name>SDF proofshot example.</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a42",
    "timestamp": "2025-07-01T12:00:00Z"
  },
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfInstanceOf": {
    "model": "sensors:#/sdfObject/envSensor"
  },
  "sdfInstance": {
    "thingId": "envSensor:abc123",
    "sdfContext": {
      "installationInfo": {
        "mountType": "ceiling"
      }
    },
    "sdfProperty": {
      "temperature": 23.124
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="construction-messages">
        <name>Construction Messages</name>
        <t>Construction messages are structurally equivalent to snapshot messages but may only contain context information.
Furthermore, the recipient of a construction message is supposed to initiate a configuration or comissioning process upon recption.
Construction messages <bcp14>MUST</bcp14> be indicated by the media type <tt>application/sfd-construction+json</tt> if possible.</t>
        <t>A construction message for a temperature sensor might assign an identity and/or complement it by temporary identity information (e.g., an IP address);
its processing might also generate construction output (e.g., a public key or an IP address if those are generated on device) which can be described via instance-related messages such as snapshot messages.</t>
        <t>The creation of construction messages is linked to the invocation of a constructor that starts the actual construction process.
In practice, these constructors are going to be modeled as an <tt>sdfAction</tt>, although the way the <tt>sdfAction</tt> is going to be used exactly is not entirely clear yet.</t>
        <!-- TODO: Maybe this note could also be removed -->
<t><cref anchor="note-destructor">Note that it is not quite clear what a destructor would be for a physical instance -- apart from a scrap metal press, but according to RFC 8576 we would want to move a system to a re-usable initial state, which is pretty much a constructor.</cref></t>
        <t><xref target="code-sdf-construction-message"/> shows a potential SDF construction message that initializes a device, setting its <tt>manufacturer</tt> and <tt>firmwareVersion</tt> as context information.
The construction message also assigns a <tt>thingId</tt>, the <tt>unit</tt> of reported temperature values, and an initial <tt>ipAddress</tt> that can be used with the interaction affordances that may be present in the corresponding SDF model.</t>
        <figure anchor="code-sdf-construction-message">
          <name>Example for an SDF construction message</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a42"
  },
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfInstanceOf": {
    "model": "sensors:#/sdfObject/envSensor"
  },
  "sdfInstance": {
    "thingId": "envSensor:unit42",
    "sdfContext": {
      "ipAddress": "192.168.1.5",
      "unit": "Cel",
      "deviceIdentity": {
        "manufacturer": "HealthTech Inc.",
        "firmwareVersion": "1.4.3"
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <t>A special type of construction message that only contains identity-related information may be called an <em>Identity Manifest</em>.
<xref target="code-sdf-identity-manifest"/> shows an example of an identity manifest that is structurally identical to the construction message from <xref target="code-sdf-construction-message"/>, with the non-identity-related information left out.</t>
        <!-- TODO: Evaluate whether this approach actually works -->
<t>Via <tt>sdfRequired</tt>, an SDF model can indicate which context information must be present and therefore initialized within an instance.
All definitions included in <tt>sdfRequired</tt> <bcp14>MUST</bcp14> also be present in a construction message, while other <tt>sdfContext</tt> definitions could be left out.</t>
        <figure anchor="code-sdf-identity-manifest">
          <name>Example of an SDF identity manifest</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a42"
  },
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfInstanceOf": {
    "model": "sensors:#/sdfObject/envSensor"
  },
  "sdfInstance": {
    "thingId": "envSensor:unit42",
    "sdfContext": {
      "deviceIdentity": {
        "manufacturer": "HealthTech Inc.",
        "firmwareVersion": "1.4.3"
      }
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="delta-messages">
        <name>Delta Messages</name>
        <t>Delta messages describe updates to a Thing's state relative to a previous message.
For this purpose, a <tt>previousMessageId</tt> <bcp14>MUST</bcp14> be present in the info block.
When transmitting delta messages, the media type <tt>application/sdf-delta+json</tt> <bcp14>MUST</bcp14> be used if possible.</t>
        <t>By default, the values contained in the message are applied to the preceding message(s) via the JSON Merge Patch algorithm.
Via the <tt>patchMethod</tt> quality, different patch algorithms <bcp14>MAY</bcp14> be indicated.</t>
        <t><xref target="code-sdf-delta-message"/> shows an example Delta message that reports state changes compared to the ones reported in the previous message (identified via its <tt>previousMessageId</tt>).
In this example, only the temperature that has been measured by the sensor has changed, which is why it is the only piece of information that is included.</t>
        <t>Delta messages could be used in the Series Transfer Pattern <xref target="STP"/>, which may be one way to model a telemetry stream from a device.</t>
        <figure anchor="code-sdf-delta-message">
          <name>Example of an SDF instance-related message that serves as a delta.</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "title": "Example SDF delta message",
    "previousMessageId": "026c1f58-7bb9-4927-81cf-1ca0c25a857b",
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a42"
  },
  "namespace": {
    "cap": "https://example.com/capability/cap",
    "models": "https://example.com/models"
  },
  "defaultNamespace": "cap",
  "sdfInstanceOf": {
    "model": "models:/sdfObject/envSensor"
  },
  "sdfInstance": {
    "sdfProperty": {
      "temperature": 24
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="patch-messages">
        <name>Patch Messages</name>
        <t>Patch messages are structurally equivalent to delta messages, but once again are only allowed to contain context information.
They utilize a patch <em>mechanism</em> (which may be explicitly indicated via the <tt>patchMethod</tt> quality) to <em>alter</em> the state of a Thing instead of <em>reporting</em> state changes.
Since patch messages are not referring to a preceding message, a <tt>previosMessageId</tt> <bcp14>MUST NOT</bcp14> be present in the information block.
When transmitting state patches, the media type <tt>application/sdf-patch+json</tt> <bcp14>MUST</bcp14> be used if possible.</t>
        <t>An example Patch Message is shown in <xref target="code-sdf-context-patch"/>, where a change of the device's <tt>mountType</tt> is signalled.</t>
        <figure anchor="code-sdf-context-patch">
          <name>Example of an SDF context patch message that uses the common instance-related message format.</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a42"
  },
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfInstanceOf": {
    "model": "sensors:#/sdfObject/envSensor",
    "patchMethod": "merge-patch"
  },
  "sdfInstance": {
    "sdfContext": {
      "installationInfo": {
        "mountType": "wall"
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <t>Practical uses for patch message include digital twins <xref target="I-D.ietf-asdf-digital-twin"/>, where changes to physical attributes (such as the location) need to be reflected in the digital representation of a Thing.</t>
      </section>
    </section>
    <section anchor="application-scenarios">
      <name>Application Scenarios</name>
      <t>The instance-related message format and the four architectures are usable in a number of use cases, some of which we are going to specify in the following.
Other specifications may define additional use cases instance-related messages can be used for.</t>
      <section anchor="construction">
        <name>Construction</name>
        <t>In SDF models, we can speicify a Thing's configurable parameters via <tt>sdfContext</tt> definitions for which Construction Messages can provide concrete values.
<xref target="code-sdf-construction-sdf-context"/> shows an example for such an SDF model.
The parameters settable during construction (in this case: the <tt>temperature</tt> property's <tt>unit</tt>) are modeled as <tt>sdfContext</tt> definitions, to which the entries of the <tt>sdfParameters</tt> map may point to using JSON pointers.</t>
        <figure anchor="code-sdf-construction-sdf-context">
          <name>Example for SDF model with constructors</name>
          <sourcecode type="sdf"><![CDATA[{
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfObject": {
    "sensor": {
      "sdfRequired": [
        "ipAddress",
        "deviceIdentity"
      ],
      "sdfContext": {
        "ipAddress": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        },
        "deviceIdentity": {
          "type": "object",
          "properties": {
            "manufacturer": {
              "type": "string"
            },
            "firmwareVersion": {
              "type": "string"
            }
          }
        }
      },
      "sdfProperty": {
        "temperature": {
          "type": "number",
          "sdfParameters": {
            "unit": "#/sdfObject/sensor/sdfContext/unit"
          },
          "sdfRequired": [
            "#/sdfObject/sensor/sdfContext/unit"
          ]
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <t>Based on the SDF model above, a Construction Message such as the one shown in <xref target="code-sdf-construction-message"/> can trigger a construction process.
As indicated via <tt>sdfRequired</tt>, this process must include the initialization of an IP address as well as the device's identity definitions.
In the example model, initializing the <tt>unit</tt> context definition is only required if the <tt>temperature</tt> property is present, which is expressed by the JSON pointer within the property's <tt>sdfRequired</tt> definition.</t>
      </section>
      <section anchor="protocol-binding-information">
        <name>Protocol Binding Information</name>
        <t>When using the <tt>sdfProtocolMap</tt> concept introduced in <xref target="I-D.ietf-asdf-sdf-protocol-mapping"/>, some protocols may need context information such as a hostname or an IP address to actually be usable for interactions.
This corresponds with the fact that the parameters related to application-layer protocols are often <em>class-level</em> information and therefore not necessarily instance-specific.</t>
        <t>For example, all instances of a smart light may use similar CoAP resources, with the only difference being the concrete IP address assigned to them.
Therefore, we can utilize context information that varies between instances to complement the model information provided via an <tt>sdfProtocolMap</tt>.</t>
        <t><xref target="code-sdf-protocol-map-plus-context"/> illustrates the potential relationship between the two concepts in an SDF model.
Here, a (hypothetical) CoAP protocol mapping specification defines an interface for parameters such as an IP address.
Via JSON pointers, the <tt>sdfParameters</tt> within the <tt>sdfProtocolMap</tt> are linked to compatible <tt>sdfContext</tt> entries that may further restrict the set of allowed values via their schema definitions.</t>
        <figure anchor="code-sdf-protocol-map-plus-context">
          <name>Example of an SDF model where a CoAP-based protocol map points to the definition of relevant context information: an IP address.</name>
          <sourcecode type="sdf"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfObject": {
    "sensor": {
      "sdfContext": {
        "ipAddress": {
          "type": "string"
        }
      },
      "sdfProperty": {
        "temperature": {
          "type": "number",
          "sdfProtocolMap": {
            "coap": {
              "sdfParameters": {
                "ipAddress": "#/sdfObject/sensor/sdfContext/\
                                                           ipAddress"
              },
              "read": {
                "method": "GET",
                "href": "/temperature",
                "contentType": 60
              }
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <t><xref target="code-sdf-ipaddress-context"/> shows how a Snapshot Message can provide the necessary IP address that is needed for retrieving the temperature value from the sensor described by the SDF model above.</t>
        <figure anchor="code-sdf-ipaddress-context">
          <name>Example of a snapshot message that provides the IP address needed to perform a CoAP-based interaction with the sensor from the previous figure.</name>
          <sourcecode type="sdf"><![CDATA[{
  "info": {
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a47"
  },
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensor"
  },
  "defaultNamespace": "models",
  "sdfInstanceOf": {
    "model": "sensors:#/sdfObject/sensor"
  },
  "sdfInstance": {
    "sdfContext": {
      "ipAddress": "192.168.1.5"
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="modelling-the-state-of-interaction-affordances">
        <name>Modelling the State of Interaction Affordances</name>
        <t>Besides context information, Snapshot and (in a relative fashion) Delta Messages can report the current state associated with interaction affordances.
For <tt>sdfProperty</tt> definitions, this is very similar to context information and very straightforward, as previously seen in in <xref target="code-sdf-delta-message"/>.</t>
        <t>Actions and events, however, are handled differently: In the case of actions, the state of one or more actions is reported, which might already be in a completed or error state, or may also still be running.
For events, a history is reported that includes the returned values.
The exact of number of action and event reports is implementation-dependent and may vary between deployments.</t>
        <t><xref target="code-snapshot-with-actions-and-events"/> shows an example of a Snapshot Message for a lightswitch which reports the results of two <tt>toggle</tt> actions, one of which failed.
The successfully completed action caused the emission of a <tt>toggleEvent</tt> with the same <tt>timestamp</tt>.
As the lightswitch was turned on, the event was emitted with a value of <tt>true</tt>.</t>
        <figure anchor="code-snapshot-with-actions-and-events">
          <name>Example of an SDF Snapshot Messages that reports an action and an event history.</name>
          <sourcecode type="sdf"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "Example SDF Snapshot Message with an Action and an \
                                                     Event History.",
    "messageId": "75532020-8f64-4daf-a241-fcb0b6dc4a85"
  },
  "namespace": {
    "cap": "https://example.com/capability/cap",
    "models": "https://example.com/models"
  },
  "defaultNamespace": "cap",
  "sdfInstanceOf": {
    "model": "models:/sdfObject/lightSwitch"
  },
  "sdfInstance": {
    "sdfAction": {
      "toggle": [
        {
          "timestamp": "2026-01-11T22:39:35.000Z",
          "status": "complete",
          "inputValue": null,
          "outputValue": null
        },
        {
          "timestamp": "2026-01-11T22:34:35.000Z",
          "status": "error",
          "inputValue": null,
          "outputValue": "Toggle failed.",
          "$comment": "This action completed with an error, which \
                               is why an error message was returned."
        }
      ]
    },
    "sdfEvent": {
      "toggleEvent": [
        {
          "timestamp": "2026-01-11T22:39:35.000Z",
          "outputValue": true
        }
      ]
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <t>(TODO)</t>
      <t>Discuss Proofshots of a Thing (device) and of other components.</t>
      <t>Discuss concurrency problems with getting and setting Proofshots.</t>
      <t>Discuss Timestamps appropriate for Things (<xref section="4.4" sectionFormat="of" target="I-D.ietf-iotops-7228bis"/>, <xref target="I-D.amsuess-t2trg-raytime"/>).</t>
      <t>Discuss YANG config=true approach with regard to construction messages.</t>
      <t>Discuss expressing a device's "purpose of life" via context information</t>
      <t>Discuss using context information to indicate provence</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <ul spacing="normal">
        <li>
          <t>Pieces of instance-related information might only be available in certain scopes, e.g. certain security-related configuration parameters</t>
        </li>
      </ul>
      <t>(TODO)</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO: Add media type registrations</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9880">
          <front>
            <title>Semantic Definition Format (SDF) for Data and Interactions of Things</title>
            <author fullname="M. Koster" initials="M." role="editor" surname="Koster"/>
            <author fullname="C. Bormann" initials="C." role="editor" surname="Bormann"/>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <date month="January" year="2026"/>
            <abstract>
              <t>The Semantic Definition Format (SDF) is a format for domain experts to use in the creation and maintenance of data and interaction models that describe Things, i.e., physical objects that are available for interaction over a network. An SDF specification describes definitions of SDF Objects/SDF Things and their associated interactions (Events, Actions, and Properties), as well as the Data types for the information exchanged in those interactions. Tools convert this format to database formats and other serializations as needed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9880"/>
          <seriesInfo name="DOI" value="10.17487/RFC9880"/>
        </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>
        <referencegroup anchor="STD97" target="https://www.rfc-editor.org/info/std97">
          <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110">
            <front>
              <title>HTTP Semantics</title>
              <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
              <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
              <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
              <date month="June" year="2022"/>
              <abstract>
                <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
                <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="97"/>
            <seriesInfo name="RFC" value="9110"/>
            <seriesInfo name="DOI" value="10.17487/RFC9110"/>
          </reference>
        </referencegroup>
        <reference anchor="I-D.ietf-asdf-sdf-nonaffordance">
          <front>
            <title>Semantic Definition Format (SDF) Extension for Non-Affordance Information</title>
            <author fullname="Jungha Hong" initials="J." surname="Hong">
              <organization>Electronics and Telecommunications Research Institute</organization>
            </author>
            <author fullname="Hyunjeong Lee" initials="H." surname="Lee">
              <organization>Electronics and Telecommunications Research Institute</organization>
            </author>
            <date day="20" month="January" year="2026"/>
            <abstract>
              <t>   This document describes an extension to the Semantic Definition
   Format (SDF) for representing non-affordance information of Things,
   such as physical, contextual, and descriptive metadata.  This
   extension introduces a new class keyword, sdfContext, that enables
   comprehensive modeling of Things and improves semantic clarity.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-nonaffordance-03"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="REST" target="http://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf">
          <front>
            <title>Architectural Styles and the Design of Network-based Software Architectures</title>
            <author initials="R." surname="Fielding" fullname="Roy Fielding">
              <organization>University of California, Irvine</organization>
            </author>
            <date year="2000"/>
          </front>
          <seriesInfo name="Ph.D." value="Dissertation, University of California, Irvine"/>
        </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="RFC7396">
          <front>
            <title>JSON Merge Patch</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This specification defines the JSON merge patch format and processing rules. The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7396"/>
          <seriesInfo name="DOI" value="10.17487/RFC7396"/>
        </reference>
        <reference anchor="I-D.bormann-asdf-sdf-mapping">
          <front>
            <title>Semantic Definition Format (SDF): Mapping files</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Jan Romann" initials="J." surname="Romann">
              <organization>Universität Bremen</organization>
            </author>
            <date day="20" month="July" year="2025"/>
            <abstract>
              <t>   The Semantic Definition Format (SDF) is a format for domain experts
   to use in the creation and maintenance of data and interaction models
   that describe Things, i.e., physical objects that are available for
   interaction over a network.  It was created as a common language for
   use in the development of the One Data Model liaison organization
   (OneDM) models.  Tools convert this format to database formats and
   other serializations as needed.

   An SDF specification often needs to be augmented by additional
   information that is specific to its use in a particular ecosystem or
   application.  SDF mapping files provide a mechanism to represent this
   augmentation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-sdf-mapping-07"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="4" month="November" year="2025"/>
            <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 research and standardization
   work for constrained-node networks.

   This document obsoletes RFC 7228.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-03"/>
        </reference>
        <reference anchor="I-D.amsuess-t2trg-raytime">
          <front>
            <title>Raytime: Validating token expiry on an unbounded local time interval</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="19" month="October" year="2024"/>
            <abstract>
              <t>   When devices are deployed in locations with no real-time access to
   the Internet, obtaining a trusted time for validation of time limited
   tokens and certificates is sometimes not possible.  This document
   explores the options for deployments in which the trade-off between
   availability and security needs to be made in favor of availability.
   While considerations are general, terminology and examples primarily
   focus on the ACE framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-raytime-03"/>
        </reference>
        <reference anchor="I-D.ietf-asdf-digital-twin">
          <front>
            <title>Semantic Definition Format (SDF) modeling for Digital Twin</title>
            <author fullname="Hyunjeong Lee" initials="H." surname="Lee">
              <organization>Electronics and Telecommunications Research Institute</organization>
            </author>
            <author fullname="Jungha Hong" initials="J." surname="Hong">
              <organization>Electronics and Telecommunications Research Institute</organization>
            </author>
            <date day="20" month="January" year="2026"/>
            <abstract>
              <t>   This memo specifies SDF modeling for a digital twin, i.e. a digital
   twin system, and its Things.  An SDF is a format that is used to
   create and maintain data and interaction, and to represent the
   various kinds of data that is exchanged for these interactions.  The
   SDF format can be used to model the characteristics, behavior and
   interactions of Things, i.e. physical objects, in a digital twin that
   contain Things as components.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-digital-twin-03"/>
        </reference>
        <reference anchor="LAYERS" target="https://github.com/t2trg/wishi/wiki/NOTE:-Terminology-for-Layers">
          <front>
            <title>Terminology for Layers</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <refcontent>WISHI Wiki</refcontent>
        </reference>
        <reference anchor="STP">
          <front>
            <title>The Series Transfer Pattern (STP)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Klaus Hartke" initials="K." surname="Hartke">
              <organization>Ericsson</organization>
            </author>
            <date day="7" month="April" year="2020"/>
            <abstract>
              <t>   Many applications make use of Series of data items, i.e., an array of
   data items where new items can be added over time.  Where such Series
   are to be made available using REST protocols such as CoAP or HTTP,
   the Series has to be mapped into a structure of one or more resources
   and a protocol for a client to obtain the Series and to learn about
   new items.

   Various protocols have been standardized that make Series-shaped data
   available, with rather different properties and objectives.  The
   present document is an attempt to extract a common underlying pattern
   and to define media types and an access scheme that can be used right
   away for further protocols that provide Series-shaped data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-stp-03"/>
        </reference>
        <reference anchor="RFC9039">
          <front>
            <title>Uniform Resource Names for Device Identifiers</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document describes a new Uniform Resource Name (URN) namespace for hardware device identifiers. A general representation of device identity can be useful in many applications, such as in sensor data streams and storage or in equipment inventories. A URN-based representation can be passed along in applications that need the information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9039"/>
          <seriesInfo name="DOI" value="10.17487/RFC9039"/>
        </reference>
        <reference anchor="I-D.ietf-asdf-sdf-protocol-mapping">
          <front>
            <title>Protocol Mapping for SDF</title>
            <author fullname="Rohit Mohan" initials="R." surname="Mohan">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Bart Brinckman" initials="B." surname="Brinckman">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Lorenzo Corneo" initials="L." surname="Corneo">
              <organization>Ericsson</organization>
            </author>
            <date day="18" month="February" year="2026"/>
            <abstract>
              <t>   This document defines protocol mapping extensions for the Semantic
   Definition Format (SDF) to enable mapping of protocol-agnostic SDF
   affordances to protocol-specific operations.  The protocol mapping
   mechanism allows SDF models to specify how properties, actions, and
   events should be accessed using specific non-IP and IP protocols such
   as Bluetooth Low Energy, Zigbee or HTTP and CoAP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-protocol-mapping-04"/>
        </reference>
      </references>
    </references>
    <?line 807?>

<section anchor="example-sdf-model">
      <name>Example SDF Model</name>
      <t><xref target="code-off-device-model"/> shows the model all of the examples for instance-related messages are pointing to in this document.
Note how the namespace is managed here to export the <tt>envSensor</tt> component into
<tt>models:#/sdfObject/envSensor</tt>, which is the "entry point" used in the instance
messages within the main document.</t>
      <figure anchor="code-off-device-model">
        <name>SDF Model that serves as a reference point for the instance-related messages in this draft</name>
        <sourcecode type="sdf"><![CDATA[{
  "namespace": {
    "models": "https://example.com/models",
    "sensors": "https://example.com/sensors"
  },
  "defaultNamespace": "models",
  "sdfObject": {
    "envSensor": {
      "sdfContext": {
        "deviceIdentity": {
          "manufacturer": {
            "type": "string"
          },
          "firmwareVersion": {
            "type": "string"
          }
        },
        "installationInfo": {
          "type": "object",
          "properties": {
            "floor": {
              "type": "integer"
            },
            "mountType": {
              "enum": [
                "ceiling",
                "wall"
              ]
            }
          }
        }
      },
      "sdfProperty": {
        "temperature": {
          "type": "number",
          "unit": "Cel"
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="syntax">
      <name>Formal Syntax of Instance-related Messages</name>
      <sourcecode type="cddl"><![CDATA[
start = sdf-instance-message-syntax

sdf-instance-message-syntax = {
 ; info will be required in most process policies
 ? info: sdfinfo
 namespace: named<text>
 ? defaultNamespace: text
 ? sdfInstanceOf: sdf-instance-of
 ? sdfInstance: sdf-instance
}

sdfinfo = {
 ? title: text
 ? description: text
 ? version: text
 ? copyright: text
 ? license: text
 ? messageId: text
 ; Identifier used to connect this instance message to a previous
 ; one:
 ; Allows this instance message to only contain values that have
 ; actually changed, turning it into a "Delta" or a "Patch",
 ; depending on the purpose of the message.
 ? previousMessageId: text
 ? timestamp: modified-date-time
 ? modified: modified-date-time
 ? features: [
             ]
 optional-comment
}

sdf-instance-of = {
 model: text
 ? patchMethod: text ; default is merge-patch
 optional-comment
}

optional-comment = (
 ? $comment: text       ; source code comments only, no semantics
)

; Shortcut for a map that gives names to instances of X
; (has keys of type text and values of type X)
named<X> = { * text => X }

commonqualities = (
 optional-comment
)

; For describing the state of instances at a given point in time
;
; An sdfInstance can refer to either an sdfThing or an sdfObject.
; Structurally, it is mostly equivalent to that of an sdfThing
; with the additiona of a thingId quality.
sdf-instance = (
    ? thingId: text

    thingqualities
)
objectqualities = {
 commonqualities

 cpaedataqualities
}

thingqualities = {
 sdfThing: named<thingqualities>

 sdfObject: named<objectqualities>

 commonqualities

 cpaedataqualities
}

cpaedataqualities = (
 ? sdfContext: named<allowed-types>

 ; Models the current state of the instance's properties
 ? sdfProperty: named<allowed-types>

 ; Models the current state of the instance's action affordances
 ;
 ; DISCUSS: How should the state of actions be modeled?
 ? sdfAction: named<any>

 ; Models an history for every event affordance
 ? sdfEvent: named<eventhistory>
)

eventhistory = [* eventqualities]

eventqualities = {
    outputValue: allowed-types
    timestamp: modified-date-time
}

allowed-types = number / text / bool / null
              / [* number] / [* text] / [* bool]
              / {* text => any}

modified-date-time = text .abnf modified-dt-abnf
modified-dt-abnf = "modified-dt" .det rfc3339z

; RFC 3339 sans time-numoffset, slightly condensed
rfc3339z = '
   date-fullyear   = 4DIGIT
   date-month      = 2DIGIT  ; 01-12
   date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
                             ; month/year
   time-hour       = 2DIGIT  ; 00-23
   time-minute     = 2DIGIT  ; 00-59
   time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap sec
                             ; rules
   time-secfrac    = "." 1*DIGIT
   DIGIT           =  %x30-39 ; 0-9

   partial-time    = time-hour ":" time-minute ":" time-second
                     [time-secfrac]
   full-date       = date-fullyear "-" date-month "-" date-mday

   modified-dt     = full-date ["T" partial-time "Z"]
'
]]></sourcecode>
    </section>
    <section numbered="false" anchor="list-of-figures">
      <name>List of Figures</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="example-context"/>:</dt>
        <dd>
          <t><xref format="title" target="example-context"/></t>
        </dd>
        <dt><xref target="code-off-device-instance"/>:</dt>
        <dd>
          <t><xref format="title" target="code-off-device-instance"/></t>
        </dd>
        <dt><xref target="code-sdf-construction-message"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-construction-message"/></t>
        </dd>
        <dt><xref target="code-sdf-identity-manifest"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-identity-manifest"/></t>
        </dd>
        <dt><xref target="code-sdf-delta-message"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-delta-message"/></t>
        </dd>
        <dt><xref target="code-sdf-context-patch"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-context-patch"/></t>
        </dd>
        <dt><xref target="code-sdf-construction-sdf-context"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-construction-sdf-context"/></t>
        </dd>
        <dt><xref target="code-sdf-protocol-map-plus-context"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-protocol-map-plus-context"/></t>
        </dd>
        <dt><xref target="code-sdf-ipaddress-context"/>:</dt>
        <dd>
          <t><xref format="title" target="code-sdf-ipaddress-context"/></t>
        </dd>
        <dt><xref target="code-snapshot-with-actions-and-events"/>:</dt>
        <dd>
          <t><xref format="title" target="code-snapshot-with-actions-and-events"/></t>
        </dd>
        <dt><xref target="code-off-device-model"/>:</dt>
        <dd>
          <t><xref format="title" target="code-off-device-model"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="list-of-tables">
      <name>List of Tables</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="instance-message-dimensions"/>:</dt>
        <dd>
          <t><xref format="title" target="instance-message-dimensions"/></t>
        </dd>
        <dt><xref target="infoblockqual"/>:</dt>
        <dd>
          <t><xref format="title" target="infoblockqual"/></t>
        </dd>
        <dt><xref target="nssec"/>:</dt>
        <dd>
          <t><xref format="title" target="nssec"/></t>
        </dd>
        <dt><xref target="iobsec"/>:</dt>
        <dd>
          <t><xref format="title" target="iobsec"/></t>
        </dd>
        <dt><xref target="ibsec"/>:</dt>
        <dd>
          <t><xref format="title" target="ibsec"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>(TODO)</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
VwzQqBuVGeIqCEyks7UyjaVylrtroXAuTi03pc3Ry0m32hEQUVgxt+c8q47f
2ruKtGfHJ7QzFi3MycvMhlrRIDgW7ipoaDMnDs9LsGKM0VH7to9giuGfdI1d
cyPlZ82NeZUfluCyn4Kr2M2dkpQ9V3bQLrS4+ag2WhRL7ckwrpS+KY5h3Kts
TwUcucoXdppk/LqpDFpz6kwg7HDUVqy2rlYLNOiTOL/NoHclJ+UaybB6r3fH
MuHoDNNhWQdwwlNf8TU2VgaiybBXqPHOf+ek8h1BJqCBbIsNxToH8pSRmqxT
1Vy2i2XL6jxpxOrXSMg0WTXEbCuGh7w2QXwB+fxXFKX+BoHoF8sSbk98ESCp
wr83yB3hTO8SHWzLQdAFFrBsdzoXFfzXz89bb67g9MNIfm7foNVEwv1Z7X6w
1yusrD2o6xVwkVfEhIKnTAql+mfN5HSYitFB3CSc8+wa4zp6SNWkdc5QDPL9
tAt50VGKMJo07qSKBEoX+U+F2K8CzmUunOOaKTPKCsZTd22IcidkwoXAir29
U4K4Ja/9YuPRl//KxiO9zrj8KSEMvR6+9kb3IWQnlox3Uvab2Yu3za4kjtzU
HuKvH81i+bTsrt1t69wh+4ANz6TrgG1Z+TNjwfWunlbH3vWX0TeZphn23sVi
kRhllS0yvFhX4ywG7ogmo9B/SXgu6SYkRAS1eNsR6mvidthjuS6IW5t8fa0o
QNq7IHBd1hS3w0pxIBvBK9APUyqibaCI9wyyLNJSUFouOzT6SrqgC5K3d+YN
iZNewRu0R1g3YbFyV83GXBfShtoHdnYqi4MXodZeVqLz61mvlQRZcqXhaWbC
CxAdG07yzura3D1EpQds9gBHvqN5b1nyVXgvpJgnrgOk6lxTcSdvWBNURsqT
llhbIEClZe9s56HYQVyGM86ZrTWgst5M3D4j6LEIzWntJjID53uNxNFIX/C6
qFZzSQQ0GyT4OUJkGgnERvD9iBe0LnamS505dpBEZw2dofmQQG3my4umwoZk
NQI58KKpLi8LzCQ3eylVjfjLWZyTpR4hA5IbEvvZsqDAIbNPsbkzkctLIAgl
5phnKSNwqoFHCVDp8YoqkCpMZlx/+qi48h6Zesi8A/giQ7eIyxJhPoKZDqBl
Zxef5tzsgJA7A/Li9hz+4gTZbxmrxp/Lax7e/xd2ZRK4zwjcPfzmWK4HJYGP
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
AUmGrkPurF5smP8PNKKK5AWsAAA=

-->

</rfc>
