<?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.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-instance-information-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="SDF Instance Information">Instance Information for SDF</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-instance-information-03"/>
    <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="2025" month="July" day="08"/>
    <area/>
    <workgroup>ASDF</workgroup>
    <keyword>IoT</keyword>
    <keyword>Link</keyword>
    <keyword>Information Model</keyword>
    <keyword>Interaction Model</keyword>
    <keyword>Data Model</keyword>
    <abstract>
      <?line 72?>

<t>This document discusses types of Instance Information to be used in
conjunction with the Semantic Definition Format (SDF) for Data and
Interactions of Things (draft-ietf-asdf-sdf) and will ultimately
define Representation Formats for them as well as ways to use SDF
Models to describe them.</t>
      <t><cref anchor="status">The present revision –03 is intended as input for IETF 123.</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-bormann-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 types of Instance Information and will
ultimately define Abstract (eco-system independent) Representation
Formats for them as well as ways to use SDF Models to describe them.</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>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>
            <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>
          </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>
            <t>Discuss YANG config=true approach.</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 anchor="terms-we-are-trying-not-to-use">
        <name>Terms we are trying not to use</name>
        <dl>
          <dt>Non-affordance:</dt>
          <dd>
            <t>Originally a term for information that is the subject of
interactions with other Instances than the Thing (called "offDevice"
now), this term is now considered confusing as it would often just
be an affordance of another Instance than the Thing.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="instance-information-and-sdf">
      <name>Instance Information and SDF</name>
      <t>Instantiation doesn't produce an instance (ouch), which is the device,
twin, etc., but a message.</t>
      <section anchor="pre-structured-types-of-messages">
        <name>Pre-structured types of messages</name>
        <t>Pre-structured types of messages are those that relate to an SDF model
in a way that, together with context and model, they are fully
self-describing.</t>
        <section anchor="input-and-output-data-of-specific-interactions">
          <name>Input and output data of specific interactions</name>
          <t>Messages always have context, typically describing the "me" and the
"you" of the interaction, the "now" and "here", allowing deictic
statements ("the temperature here", "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").</t>
          <t>TODO: Use NIPC as an example how this could be used, including SCIM as
a source of context information.</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>(Describe how protocol bindings can be used to convert these messages
to/from concrete serializations...)</t>
          <section anchor="examples-for-context-information">
            <name>Examples for context information</name>
            <figure anchor="example-context">
              <name>Example for an SDF instance with context information</name>
              <sourcecode type="json-from-yaml"><![CDATA[{
  "namespace": {
    "models": "https://example.com/models",
    "boats": "https://example.com/boats"
  },
  "defaultNamespace": "boats",
  "sdfInstance": {
    "$context": {
      "$comment": "Potential contents for the SDF context",
      "deviceName": "urn:dev:org:30810-boat007",
      "deviceEui64Address": "50:32:5F:FF:FE:E7:67:28",
      "scimObjectId": "8988be82-50dc-4249-bed2-60c9c8797677",
      "parentInstance": "TODO -- addressing instance in data tree"
    }
  }
}
]]></sourcecode>
            </figure>
          </section>
        </section>
        <section anchor="proofshots-read-device-other-component">
          <name>Proofshots (read device, other component)</name>
          <t>(See defn above.)</t>
          <t>The following examples are based on Figure 2 of <xref target="I-D.lee-asdf-digital-twin-08"/>, separated into
an SDF proofshot and an SDF model.</t>
          <t>A proofshot that captures the state of a boat with a heater is shown in
<xref target="code-off-device-instance"/>.
Here, every property of the corresponding SDF model (see <xref target="code-off-device-model"/>)
is mapped to a concrete value that corresponds with the associated schema information.
The alternating structure of the SDF model
(e. g., <tt>sdfThing/boot007/sdfObject/heater/sdfProperty/isHeating</tt>) is repeated
in the proofshot, with <tt>sdfObject</tt> and <tt>sdfThing</tt> being replaced by <tt>sdfInstance</tt>.</t>
          <t>While earlier approaches avoided the additional level of nesting by omitting the
affordance quality names (i.e., <tt>sdfProperty</tt>, <tt>sdfAction</tt>, <tt>sdfEvent</tt>),
including them explicitly avoids problems with namespace clashes and
allows for a cleaner integration of meta data (via the <tt>$context</tt> keyword).</t>
          <t>As in any instance message, information from the model is not repeated but
referenced via a pointer into the model tree (<tt>sdfInstanceOf</tt>); the
namespace needed for this is set up in the usual <tt>namespace</tt> section that we
also have in model files.</t>
          <t>Note that in this example, the proofshot also contains values for the implicit
(<tt>offDevice</tt>) properties that are static (e.g., the physical location assigned
to the instance) but are still part of the instance's proofshot as its location
is fixed -- this boat apparently never leaves the harbor.</t>
          <figure anchor="code-off-device-instance">
            <name>SDF proofshot proposal for Figure 2 in [I-D.lee-asdf-digital-twin-08]</name>
            <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "A proofshot example for heater #1 on boat #007",
    "version": "2025-04-08",
    "copyright": "Copyright 2025. All rights reserved."
  },
  "namespace": {
    "models": "https://example.com/models",
    "boats": "https://example.com/boats"
  },
  "defaultNamespace": "boats",
  "sdfInstance": {
    "boat007": {
      "sdfInstanceOf": "models:#/sdfThing/boat",
      "$comment": "Should the context be modeled via an additional \
      quality? Or should it rather become another kind of property?",
      "$context": {
        "scimObjectId": "a2e06d16-df2c-4618-aacd-490985a3f763"
      },
      "sdfProperty": {
        "identifier": "urn:boat:007:heater:1",
        "location": {
          "wgs84": {
            "latitude": 35.2988233791372,
            "longitude": 129.25478376484912,
            "altitude": 0
          },
          "postal": {
            "city": "Ulsan",
            "post-code": "44110",
            "country": "South Korea"
          },
          "w3w": {
            "what3words": "toggle.mopped.garages"
          }
        },
        "owner": "ExamTech Ltd."
      },
      "sdfInstance": {
        "heater": {
          "sdfInstanceOf": "models:#/sdfThing/boat/sdfObject/heater",
          "sdfProperty": {
            "characteristic": "12V electric heater, 800W, automatic \
                                                             cutoff",
            "status": "error",
            "report": "On February 24, 2025, the boat #007's heater \
                                     #1 was on from 9 a.m. to 6 p.m."
          },
          "sdfEvent": {
            "maintenanceSchedule": [
              {
                "outputValue": "2025-04-10",
                "timestamp": "2024-04-10T02:00:00Z"
              },
              {
                "outputValue": "2026-04-10",
                "timestamp": "2025-04-10T02:00:00Z"
              }
            ]
          }
        }
      }
    }
  }
}
]]></sourcecode>
          </figure>
          <section anchor="corresponding-sdf-model">
            <name>Corresponding SDF Model</name>
            <t><xref target="code-off-device-model"/> shows a model like the one that could have
been pointed to by the <tt>sdfInstanceOf</tt> pointers in the instance message.
Note how the namespace is managed here to export the model components into
<tt>models:#/sdfThing/boat</tt> and <tt>models:#/sdfThing/boat/sdfObject/heater</tt>.</t>
            <t>(This example model only specifies structure; it also could come with
semantic information such as the units that are used for wgs84 etc.
In practice, the definition of <tt>wgs84</tt> etc. probably would come from a common
library and just be referenced via <tt>sdfRef</tt>.)</t>
            <figure anchor="code-off-device-model">
              <name>Revised SDF model proposal for Figure 2 of [I-D.lee-asdf-digital-twin-08]</name>
              <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "An example model of a heater on a boat",
    "version": "2025-01-27",
    "copyright": "Copyright 2025. All rights reserved."
  },
  "namespace": {
    "models": "https://example.com/models"
  },
  "defaultNamespace": "models",
  "sdfThing": {
    "boat": {
      "description": "A boat equipped with heating and navigation \
                                                            systems",
      "sdfProperty": {
        "identifier": {
          "$comment": "Is this actually off-device?",
          "type": "string",
          "offdevice": true
        },
        "owner": {
          "$comment": "Is this actually off-device?",
          "type": "string",
          "offdevice": true
        },
        "location": {
          "offdevice": true,
          "type": "object",
          "properties": {
            "wgs84": {
              "type": "object",
              "properties": {
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                },
                "altitude": {
                  "type": "number"
                }
              }
            },
            "postal": {
              "type": "object",
              "properties": {
                "city": {
                  "type": "string"
                },
                "post-code": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                }
              }
            },
            "w3w": {
              "type": "object",
              "properties": {
                "what3words": {
                  "type": "string",
                  "format": "..."
                }
              }
            }
          }
        }
      },
      "sdfObject": {
        "heater": {
          "label": "Cabin Heater",
          "description": "Temperature control system for cabin \
                                                            heating",
          "sdfProperty": {
            "characteristic": {
              "description": "Technical summary of the heater",
              "type": "string",
              "default": "12V electric heater, 800W, automatic \
                                                              cutoff"
            },
            "status": {
              "description": "Current operational status",
              "type": "string",
              "enum": [
                "on",
                "off",
                "error"
              ],
              "default": "off"
            },
            "report": {
              "type": "string"
            }
          },
          "sdfEvent": {
            "maintenanceSchedule": {
              "$comment": "Should this actually be modeled as an \
                                                           event..?",
              "description": "Next scheduled maintenance date",
              "sdfOutputData": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
            </figure>
          </section>
        </section>
        <section anchor="construction">
          <name>Construction</name>
          <t>Construction messages enable the creation of the 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>
          <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).</t>
          <t>(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.)</t>
          <section anchor="examples">
            <name>Examples</name>
            <section anchor="example-for-an-sdf-model-with-constructors">
              <name>Example for an SDF model with constructors</name>
              <figure anchor="code-sdf-constructors">
                <name>Example for SDF model with constructors</name>
                <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "Example document for SDF (Semantic Definition Format) \
                                with constructors for instantiation",
    "version": "2019-04-24",
    "copyright": "Copyright 2019 Example Corp. All rights reserved.",
    "license": "https://example.com/license"
  },
  "namespace": {
    "cap": "https://example.com/capability/cap"
  },
  "defaultNamespace": "cap",
  "sdfObject": {
    "temperatureSensor": {
      "sdfProperty": {
        "temperature": {
          "description": "Temperature value measure by this Thing's \
                                                temperature sensor.",
          "type": "number",
          "sdfParameters": [
            "minimum",
            {
              "targetQuality": "minimum",
              "parameterName": "minimum",
              "constructorName": "construct"
            },
            "maximum",
            {
              "targetQuality": "unit",
              "parameterName": "#/sdfObject/Switch/sdfConstructors/\
                                           construct/temperatureUnit"
            }
          ]
        }
      },
      "sdfConstructors": {
        "$comment": "TODO: Dicuss whether this should be assumed to \
                                         be the default constructor",
        "construct": {
          "parameters": {
            "minimum": {
              "required": true
            },
            "maximum": {
              "required": false,
              "$comment": "Constructors could allow for further \
             restricting values that can be assigned to affordances",
              "type": "integer"
            },
            "temperatureUnit": {
              "required": false
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
              </figure>
            </section>
            <section anchor="example-for-an-sdf-construction-message">
              <name>Example for an SDF construction message</name>
              <figure anchor="code-sdf-construction-message">
                <name>Example for an SDF construction message</name>
                <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "Example SDF construction message",
    "$comment": "TODO: What kind of metadata do we need here?"
  },
  "namespace": {
    "cap": "https://example.com/capability/cap"
  },
  "defaultNamespace": "cap",
  "sdfConstruction": {
    "sdfConstructor": "cap:#/sdfObject/temperatureSensor/\
                                          sdfConstructors/construct",
    "arguments": {
      "minimum": 42,
      "temperatureUnit": "Cel"
    }
  }
}
]]></sourcecode>
              </figure>
            </section>
          </section>
        </section>
        <section anchor="deltas-and-defaultbase-messages">
          <name>Deltas and Default/Base messages</name>
          <t>What changed since the last proofshot?</t>
          <t>What is different from the base status of the device?</t>
          <t>Can I get the same (equivalent, not identical) coffee I just ordered but with 10 % more milk?</t>
          <t>(Think merge-patch.)</t>
          <t>A construction message may be a delta, or it may have parameters that
algorithmically influence the elements of state that one would find in
a proofshot.</t>
          <figure anchor="code-sdf-construction-delta-message">
            <name>Example for an SDF construction message for proofshot delta</name>
            <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "Example SDF delta construction message",
    "$comment": "TODO: What kind of metadata do we need here?"
  },
  "namespace": {
    "cap": "https://example.com/capability/cap"
  },
  "defaultNamespace": "cap",
  "sdfConstruction": {
    "sdfConstructor": "cap:#/sdfObject/temperatureSensor/\
                                          sdfConstructors/construct",
    "previousProofshot": "???",
    "arguments": {
      "currentTemperature": 24
    }
  }
}
]]></sourcecode>
          </figure>
          <t>Deltas and Default/Base 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>
        </section>
      </section>
      <section anchor="metadata">
        <name>Metadata</name>
        <t>One interesting piece of offDevice information is the model itself, including sdfinfo and the defaultnamespace.  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.
Multiple models may apply to the same device (including but not only revisions of the models).</t>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <t>(TODO)</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>(TODO)</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>(TODO)</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="17" month="March" 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-23"/>
        </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>
        <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="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="6" 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-06"/>
        </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="7" month="July" 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 the standardization work for
   constrained-node networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-02"/>
        </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.lee-asdf-digital-twin-07">
          <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>
            <author fullname="Joo-Sang Youn" initials="J." surname="Youn">
              <organization>DONG-EUI University</organization>
            </author>
            <author fullname="Yong-Geun Hong" initials="Y." surname="Hong">
              <organization>Daejeon University</organization>
            </author>
            <date day="6" month="April" year="2025"/>
            <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-lee-asdf-digital-twin-07"/>
        </reference>
        <reference anchor="I-D.lee-asdf-digital-twin-08">
          <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>
            <author fullname="Joo-Sang Youn" initials="J." surname="Youn">
              <organization>DONG-EUI University</organization>
            </author>
            <author fullname="Yong-Geun Hong" initials="Y." surname="Hong">
              <organization>Daejeon University</organization>
            </author>
            <date day="14" month="June" year="2025"/>
            <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-lee-asdf-digital-twin-08"/>
        </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>
      </references>
    </references>
    <?line 569?>

<section anchor="roads-not-taken">
      <name>Roads Not Taken</name>
      <t>This appendix documents previous modelling approaches that we eventually
decided against pursuing further.
Its main purpose is to illustrate our development process, showing
which kind of alternatives we considered before choosing a particular way
to describe instance information.
We will remove this appendix as soon as this document is about to be finished.</t>
      <section anchor="using-sdf-models-as-proofshots">
        <name>Using SDF Models as Proofshots</name>
        <t>As shown in <xref target="code-instance-syntactic-sugar-illustration"/>,
the proofshot format could have also been modeled via SDF models where
all <tt>sdfProperty</tt> definitions are given <tt>const</tt>values.
However, this concept is not capable of capturing actions and events.</t>
        <figure anchor="code-instance-syntactic-sugar-illustration">
          <name>SDF instance proposal for Figure 2 in [I-D.lee-asdf-digital-twin-07]</name>
          <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "An example model of a heater on a boat (that \
                                             resembles a proofshot)",
    "version": "2025-06-06",
    "copyright": "Copyright 2025. All rights reserved."
  },
  "namespace": {
    "models": "https://example.com/models"
  },
  "defaultNamespace": "models",
  "sdfThing": {
    "boat": {
      "sdfObject": {
        "heater": {
          "sdfProperty": {
            "isHeating": {
              "description": "The state of the heater on a boat; \
                                     false for off and true for on.",
              "type": "boolean",
              "const": true
            },
            "location": {
              "offDevice": true,
              "sdfRef": "#/sdfData/location",
              "const": {
                "wgs84": {
                  "latitude": 35.2988233791372,
                  "longitude": 129.25478376484912,
                  "altitude": 0.0
                },
                "postal": {
                  "city": "Ulsan",
                  "post-code": "44110",
                  "country": "South Korea"
                }
              },
              "w3w": {
                "what3words": "toggle.mopped.garages"
              }
            },
            "report": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string",
                  "const": "On February 24, 2025, the boat #007's \
                              heater #1 was on from 9 a.m. to 6 p.m."
                }
              }
            }
          },
          "sdfEvent": {
            "overheating": {
              "description": "This event is emitted when a critical \
                                             temperature is reached",
              "sdfOutputData": {
                "type": "number",
                "const": 60,
                "description": "TODO"
              }
            }
          }
        }
      }
    }
  },
  "sdfData": {
    "location": {
      "type": "object",
      "properties": {
        "wgs84": {
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number"
            },
            "longitude": {
              "type": "number"
            },
            "altitude": {
              "type": "number"
            }
          }
        },
        "postal": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string"
            },
            "post-code": {
              "type": "string"
            },
            "country": {
              "type": "string"
            }
          }
        },
        "w3w": {
          "type": "object",
          "properties": {
            "what3words": {
              "type": "string",
              "format": "..."
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <section anchor="alternative-instance-keys">
          <name>Alternative Instance Keys</name>
          <t>Below you can see an alternative instance modelling approach with IDs as (part of the) instance keys.</t>
          <figure anchor="code-off-device-instance-alternative">
            <name>SDF instance proposal (with IDs as part of the instance keys) for Figure 2 in [I-D.lee-asdf-digital-twin-07]</name>
            <sourcecode type="json-from-yaml"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "An example of the heater #1 in the boat #007",
    "version": "2025-04-08",
    "copyright": "Copyright 2025. All rights reserved."
  },
  "namespace": {
    "models": "https://example.com/models",
    "boats": "https://example.com/boats"
  },
  "defaultNamespace": "boats",
  "sdfInstance": {
    "models:#/sdfThing/boat/007": {
      "heater": "models:#/sdfThing/boat/sdfObject/heater/001"
    },
    "models:#/sdfThing/boat/sdfObject/heater/001": {
      "$context": {
        "scimObjectId": "a2e06d16-df2c-4618-aacd-490985a3f763"
      },
      "isHeating": true,
      "location": {
        "wgs84": {
          "latitude": 35.2988233791372,
          "longitude": 129.25478376484912,
          "altitude": 0.0
        },
        "postal": {
          "city": "Ulsan",
          "post-code": "44110",
          "country": "South Korea"
        },
        "w3w": {
          "what3words": "toggle.mopped.garages"
        }
      },
      "report": {
        "value": "On February 24, 2025, the boat #007's heater #1 \
                                        was on from 9 a.m. to 6 p.m."
      },
      "sdfEvent": {
        "$comment": "TODO: Discuss how to specify how many events \
in the history should be displayed -- could this be done via a \
                                                       constructor?",
        "overheating": [
          {
            "outputValue": 60.0,
            "timestamp": "2025-04-10T08:25:43.511Z"
          },
          {
            "outputValue": 65.3,
            "timestamp": "2025-04-10T10:25:43.511Z"
          }
        ]
      }
    }
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>(TODO)</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
7yhwWwAA

-->

</rfc>
