<?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-01" 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-01"/>
    <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>
    <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>
    <date year="2026" month="January" day="20"/>
    <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 (draft-ietf-asdf-sdf).
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 applies a major restructuring, reduces redundancy and clarifies some of the concepts that are used throughout the document. It also expands upon three experimental application scenarios for instance-related messages.</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="I-D.ietf-asdf-sdf"/>) 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="I-D.ietf-asdf-sdf"/> 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:
<!-- TODO: Do these also need their own terminology entries? -->
Snapshot Messages, Construction Messages, Delta Messages, and Patch Messages.</t>
          </dd>
          <dt>Proofshot:</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).
We are not saying that the Proofshot <em>is</em> the instance because there
may be different ways to make one from an Instance (or to consume
one in updating the state of the Instance), and because the
proofshot, being a message, is not situated.
</t>
            <t>Proofshots are snapshots, and they are "proofs" in the photographic
sense, i.e., they may not be of perfect quality.
Not all state that is characteristic of an Instance may be included
in a Proofshot (e.g., information about an active action that is not
embedded in an action resource).
Proofshots may depend on additional context (such as the identity of
the Instance and a Timestamp).</t>
            <t>An interaction affordance to obtain a Proofshot may not be provided
by every Instance.
An Instance may provide separate Construction affordances instead of
simply setting a Proofshot.</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 proofshots, in that they embody a state, however this
state needs to be precise so the construction can actually happen.</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="I-D.ietf-asdf-sdf">
          <front>
            <title>Semantic Definition Format (SDF) for Data and Interactions of Things</title>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>KTC Control AB</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <date day="13" month="October" year="2025"/>
            <abstract>
              <t>   The Semantic Definition Format (SDF) is concerned with Things, namely
   physical objects that are available for interaction over a network.
   SDF is a format for domain experts to use in the creation and
   maintenance of data and interaction models that describe Things.  An
   SDF specification describes definitions of SDF Objects/SDF Things and
   their associated interactions (Events, Actions, 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="Internet-Draft" value="draft-ietf-asdf-sdf-25"/>
        </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="October" year="2025"/>
            <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-02"/>
        </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="20" month="January" 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-03"/>
        </reference>
      </references>
    </references>
    <?line 792?>

<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:
H4sIAAAAAAAAA+196XrcxpXofzxFTevezySnu7lKltqSHFqUYs6nLSKdzfaY
aABNIkIDHRSaVJtRnua+yX2xe7baAHRTipN8mZnLL7FIoFDLqVNnP6dGo1F0
PVGHUdTkTZFN1Gmpm7hMMvhlVtXzuMmrUsFv6uzkRRRPp3UGzeH33oZREjfZ
ZVWvJko3aaSbOovn0Ofz8xdRUpU6K/VST1RTL7MoSqukjOcwZFrHs2aUZ81s
FOt0NsqlZ/jF9jza24/K5Xya1ZMohUEmUQx9T9TgeLEo8oTaaBWXqXqXxcXo
PJ9ng+imqt9f1tVyMVHHOP332QoepZNIjdRpdY7/vMzL9/Snt9pXVZoV/LDJ
6jgJH57ETSx/XWflEmailAwy+GFwrM6yeVw2eaJOslle5vTxC+qbwEif4zy9
zrWqZur8Ki8v9Q8DtYVz3R5At/M4L6BXBMqvEDzjqr7E55d5c7WcwhuC2c0l
gW23D2yDKIqXzVUFUBsphvazuNZNVqpvsE1ZQnfQ60R9V+bXWa3z5v/+n0Z9
U2dzaHL+x1N4jbuYNRP1ttLNLE6u1OHh3tHRHrxJ8gZ2mhvjnwCUiToZHTw8
vP+I/l6WDeLCrzMcagWPFldVCW3+/ejR6Ohgf3Sw/3D04PDRwT68yni1STyt
ftX8nONa7Zz/Iy7Vu+qO6bo+/hSX45qa/2pZ5qMpvR6nWd+copJhdU0beTo6
GTtEhP8DIqczePHuxbOHBw8fTlRBCKPOzk8efTlRV02z6PtsVFZlPINtSHFH
Jgr+HLm/o8huEQ/77vnZOf6rVBPXlwhs7Hiyu3tzczPOEz1eJvk4S5e7f53l
WZECouwullO9m+ZaZ3VDW71rXv3kPx0vaPrQMR/v4zq5ypssaZZ1XKizZlVk
fGyaqwwwVueXJSLj66zBwzOaxjpL1Vk1a27gvPlfZ5q6NdiFv5vdelet1AuZ
DL1o79kKh3gWFzkAoczjoTqtr/Myo7Z0uNXB3t4e/QkLyWFWAK6JdPX2anwy
BjTzFjn8lK5hBx88eLTHOzhi8PPjLw8fPZioeQaQHy3iJrmCx/doT4s4rnPe
1DormMgQRtRIC6TRlA+S3ftmtchGOAi1FHzpaziax4sFwAjG5l+oS5jQo6OD
w4mKm6b2cSuvmmqhR18eHDyc5khFAYO1NIjneplpPWoOmvpyVMerJsedkF86
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
5g1lECTvy+oGJBm6ArmzerFh/j8Lw4hUMaoAAA==

-->

</rfc>
