<?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.24 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-instance-information-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="SDF Instance Information">Instance Information for SDF</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-instance-information-04"/>
    <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="20"/>
    <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="sdf"><![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="sdf"><![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.",
    "proofshotId": "026c1f58-7bb9-4927-81cf-1ca0c25a857b"
  },
  "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="sdf"><![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>Construction messages need to refer to some kind of constructor in order to be able to start the actual construction process.
It is still up for discussion whether this concept justifies a new keyword or whether construction and other lifecycle management processes should be modeled as <tt>sdfAction</tt>s instead.</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-for-sdf-constructors">
            <name>Examples for SDF Constructors</name>
            <t>This section contains examples for both approaches discussed above:
<xref target="code-sdf-constructors"/> introduces an <tt>sdfConstructor</tt> keyword which allows for defining both mandatory (in this example: <tt>temperature</tt> and <tt>temperatureUnit</tt>) and optional constructor parameters (in this example, the <tt>ipAddress</tt> is optional).
The example shows that the names of constructor parameters may deviate from the quality names in the model (<tt>temperatureUnit</tt> vs <tt>unit</tt>) as the target quality is specified via a JSON pointer.
Additionally, this constructor example explicitly labels the <tt>ipAddress</tt> as information that belongs to the <tt>$context</tt> of the proofshot.</t>
            <figure anchor="code-sdf-constructors">
              <name>Example for SDF model with constructors</name>
              <sourcecode type="sdf"><![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",
          "sdfParameter": {
            "unit": {
              "$comment": "Should schema information be settable \
via a constructor at all? This question might indicate that we need \
                                    different kinds of constructors",
              "type": "string",
              "target": "#/sdfObject/temperatureSensor/sdfProperty/\
                                                    temperature/unit"
            }
          }
        }
      },
      "sdfConstructor": {
        "construct": {
          "parameters": {
            "temperature": {
              "required": true,
              "target": "#/sdfObject/temperatureSensor/sdfProperty/\
                                                         temperature"
            },
            "temperatureUnit": {
              "required": true,
              "target": "#/sdfObject/temperatureSensor/sdfProperty/\
                                                    temperature/unit"
            },
            "ipAddress": {
              "$comment": "Just trying some things out here. Should \
this parameter target the context or rather an (offDevice?) property\
                                                                  ?",
              "required": false,
              "isContextInformation": true
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
            </figure>
            <t>The alternative approach is shown in <xref target="code-sdf-constructor-action"/>.
Here, the constructor is modeled as an <tt>sdfAction</tt> that contains the same set of parameters in its <tt>sdfInputData</tt>.</t>
            <t>While this approach has advantages – we do not need to introduce new keywords to achieve a similar functionality and can simply use a plain JSON object as the construction message – a few things in this example are still unclear, especially when it comes to the mapping of constructor parameters to target affordances in the model and the designation of parameters as context information.
Lastly, it is currently unclear what kind of schema information should be provided for the action's <tt>sdfOutputData</tt>.
As a return value, a pointer to the instantiated device and/or the models describing it could make sense.</t>
            <figure anchor="code-sdf-constructor-action">
              <name>Example for SDF model with constructors</name>
              <sourcecode type="sdf"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "Example document for SDF with actions as 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",
          "unit": {
            "$comment": "Should schema information be settable via \
a constructor at all? This question might indicate that we need \
                                    different kinds of constructors",
            "type": "string"
          }
        }
      },
      "sdfAction": {
        "construct": {
          "sdfInputData": {
            "$comment": "DISCUSS: How can we establish a connection \
              between constructor parameters and target properties?",
            "type": "object",
            "properties": {
              "temperatureUnit": {
                "type": "string",
                "target": "#/sdfObject/temperatureSensor/sdfProperty\
                                                   /temperature/unit"
              },
              "ipAddress": {
                "$comment": "How can we express that this is \
                                               context information?",
                "isContextInformation": true
              }
            },
            "required": [
              "temperatureUnit"
            ]
          },
          "sdfOutputData": {
            "type": "object",
            "properties": {
              "$comment": "DISCUSS: What kind of schema information \
                                             should we provide here?"
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="example-for-an-sdf-construction-message">
            <name>Example for an SDF construction message</name>
            <t><xref target="code-sdf-construction-message"/> shows a potential SDF construction message that
allows for the creation of a proofshot from a constructor that is contained within
an SDF model.</t>
            <t>Note that the <tt>ipAddress</tt> can be considered context information or an off-device property.
TODO: Needs more discussion how to model this kind of information.</t>
            <figure anchor="code-sdf-construction-message">
              <name>Example for an SDF construction message</name>
              <sourcecode type="sdf"><![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": {
      "temperature": 42,
      "temperatureUnit": "Cel",
      "ipAddress": "192.0.2.42"
    }
  }
}
]]></sourcecode>
            </figure>
          </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="sdf"><![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": "TODO (Can we provide an ID or just a \
                                                   timestamp here?)",
    "arguments": {
      "temperature": 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>
          <t>A potential example for the use of proofshot deltas is shown in <xref target="code-sdf-proofshot-delta"/>.
Here, the proofshot delta refers to the previous example in <xref target="code-off-device-instance"/> via its <tt>proofshotId</tt>, which is included in the <tt>previousProofshot</tt> quality.
Compared to the previous proofshot, only the status property of the boat's heater has changed from <tt>error</tt> to <tt>operational</tt>.
Via an algorithm such as JSON Merge Patch <xref target="RFC7396"/>, the actual proofshot can be resolved by applying the delta to the previous version.</t>
          <t>In future versions of this document, we will evaluate whether JSON Merge Patch is sufficient to fulfill the requirements for the resolution algorithm which have to formulated and refined themselves.</t>
          <figure anchor="code-sdf-proofshot-delta">
            <name>Example for an SDF proofshot delta that overrides the status property of the boat's heater.</name>
            <sourcecode type="sdf"><![CDATA[{
  "info": {
    "title": "Example SDF delta proofshot",
    "previousProofshot": "026c1f58-7bb9-4927-81cf-1ca0c25a857b",
    "proofshotId": "75532020-8f64-4daf-a241-fcb0b6dc4a42",
    "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",
      "sdfInstance": {
        "heater": {
          "sdfInstanceOf": "models:#/sdfThing/boat/sdfObject/heater",
          "sdfProperty": {
            "status": "operational"
          }
        }
      }
    }
  }
}
]]></sourcecode>
          </figure>
        </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="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="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-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 659?>

<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-08]</name>
          <sourcecode type="sdf"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

info:
  title: "An example model of the heater #1 in the boat #007 (that \
                                              resembles a proofshot)"
  version: 2025-07-15
  copyright: Copyright 2025. All rights reserved.
namespace:
  models: https://example.com/models
defaultNamespace: models
sdfThing:
  boat007:
    label: "Digital Twin of Boat #007"
    description: A ship equipped with heating and navigation systems
    sdfProperty:
      identifier:
        offDevice: true
        type: string
        const: urn:boat:007:heater:1
      location:
        offDevice: true
        type: object
        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
      owner:
        offDevice: true
        type: string
        default: ExamTech Ltd.
        const: ExamTech Ltd.
    sdfRequired: "#/sdfThing/boat007/sdfObject/heater1"
    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
            const: 12V electric heater, 800W, automatic cutoff
          status:
            description: Current operational status
            type: string
            enum:
              - on
              - off
              - error
            default: off
            const: off
          report:
            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:
            "$comment": Note that it is unclear how to properly \
model events or event history with the approach illustrated by this \
                                                             example.
            maintenanceSchedule: "Next scheduled maintenance date"
            sdfOutputData:
              type: string
              format: date-time
              const: 2025-07-15T07:27:15+0000
]]></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-08]</name>
            <sourcecode type="sdf"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "info": {
    "title": "A proofshot example for heater #1 on boat #007",
    "version": "2025-07-15",
    "copyright": "Copyright 2025. All rights reserved.",
    "proofshotId": "026c1f58-7bb9-4927-81cf-1ca0c25a857b"
  },
  "namespace": {
    "models": "https://example.com/models",
    "boats": "https://example.com/boats"
  },
  "defaultNamespace": "boats",
  "sdfInstance": {
    "models:#/sdfThing/boat/007": {
      "sdfInstanceOf": "models:#/sdfThing/boat",
      "heater": "models:#/sdfThing/boat/sdfObject/heater/001",
      "$context": {
        "scimObjectId": "a2e06d16-df2c-4618-aacd-490985a3f763"
      },
      "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."
    },
    "models:#/sdfThing/boat/sdfObject/heater/001": {
      "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>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>(TODO)</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
