<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.26 (Ruby 2.6.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-lee-asdf-digital-twin-04" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SDF for Digital Twin">Extended information of Semantic Definition Format (SDF) for Digital Twin</title>
    <seriesInfo name="Internet-Draft" value="draft-lee-asdf-digital-twin-04"/>

    <author fullname="Hyunjeong Lee" role="editor" initials="H." surname="Lee">
        <organization abbrev="ETRI">Electronics and Telecommunications Research Institute</organization>
        <address>
            <postal>
                <street>218 Gajeong-ro, Yuseong-gu</street>
                <city>Daejeon</city>
                <region></region>
                <code>34129</code>
                <country>South Korea</country>
            </postal>
            <phone>+82 42 860 1213</phone>
            <email>hjlee294@etri.re.kr</email>
        </address>
    </author>
    <author fullname="Joo-Sang Youn" initials="J-S" surname="Youn">
		<organization abbrev="Dong-eui Univ">DONG-EUI University</organization>
      	<address>
        	<postal>
	          	<street>176 Eomgwangno Busan_jin_gu</street>
    	      	<city>Busan</city>
        	  	<region></region>
	       		<code>47340</code>
    	      	<country>South Korea</country>
        	</postal>
        	<phone>+82 51 890 1993</phone>
        	<email>joosang.youn@gmail.com</email>
      	</address>
    </author>
    <author fullname="Yong-Geun Hong" initials="Y-G" surname="Hong">
        <organization>Daejeon University</organization>
        <address>
            <postal>
                <street>62 Daehak-ro, Dong-gu</street>
                <street></street>
                <city>Daejeon</city>
                <region></region>
                <code>34520</code>
                <country>South Korea</country>
            </postal>
            <phone>+82 42 280 4841</phone>
            <email>yonggeun.hong@gmail.com</email>
        </address>
    </author>

    <area>ART</area>
    <workgroup>ASDF Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>An SDF specification can describe the definition of Things, i.e.,
        physical objects and their associated interactions, and express
        the various information that is exchanged for these interactions.
        Therefore, the SDF format can be used to define the behavior of an object
        and its associated data model and interaction model in a digital twin system
        that includes the object as a component. In a digital twin system,
        interactions between physical and virtual objects, as well as interactions
        of objects existing in different digital twin systems, are performed over a network,
        making it important to provide location information of objects during interactions.
        This document specifies the extension of SDF to represent the location information of objects.</t>
    </abstract>
  </front>

  <middle>
    <!--section 1-->
    <section title="Introduction">
      <t>A digital twin is a digital representation of an object of interest and
        may require different capabilities (e.g., synchronization, real-time support)
        according to the specific domain of application. <xref target="Y.4600"/>.
      Digital twin systems help organizations improve important functional objectives,
      including real-time control, off-line analytics, and predictive maintenance,
      by modeling and simulating objects in the real world.
      Therefore, it is important for a digital twin system to represent
      as much real-world information about the object as possible when digitally representing the object.
      A procedure for representing an observable Thing, as known as a physical asset or an object of interest, as a digital twin in a domain is as follows:</t>
      <t>
		<list style="symbols">
      <t>defining a purpose for expressing the observable object as a digital twin in the domain</t>
			<t>organizing data based on the roles of the observable object in the domain</t>
			<t>configuring the observable object into the digital twin based on the data for the purposes</t>
			<t>interworking with a digital twin of each of other domains in which the observable object performs a different role</t>
			<t>synchronizing the observable object and the digital twin</t>
		</list>
	  </t>
      <t>Nowadays, digital twin systems are applied in various domains  including medical, manufacturing, farm, transportation, etc.
		  And a common format is needed to represent the objects in the domains as digital twins.
		  An SDF specification <xref target="I-D.ietf-asdf-sdf"/> can be used for the purpose of digital representation of objects in a digital twin system.
		  However, because the SDF specification only provides a basic model for digital representation, it cannot represent objects location information.
      </t>
      <t>The location information of the object is the important information to digitally representation of the object.
		  This document extends the basic SDF specification by adding a new keyword "location" to represent an object as a digital twin.
		  This new keyword is needed to adequately represent the current location of the object, which is helpful for users to manage the domain efficiently.</t>
    </section>
     <!--section 1-->

     <!--section 2-->
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This specification uses the terminology specified in <xref target="I-D.ietf-asdf-sdf"/> in particular "Class Name Keyword", "Object", and "Affordance".</t>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <!--section 2-->

    <!--section 3-->
    <section title="SDF extension for digital twin">
      <t>This section defines a new SDF Class Name Keyword, sdfLocation, that can be used to represent the location of a thing or an object as a digital twin.
        The location definitions are at the class level and describe the use of sdfLocation. <xref target="I-D.ietf-laari-asdf-relations"/>.</t>

        <!--section 3.1-->
        <section title="SDF extension for location">
         <t>The SDF language uses seven predefined Class Name Keywords, including sdfLocation,
           for modeling connected Things, as illustrated in <xref target="fig-class-1"/>.
           The sdfLocation is a new Class Name Keyword and is used to describe physical or logical location of sdfThing or sdfObject.</t>

         <figure anchor="fig-class-1">
           <name>Add SdfLocation to SDF Models</name>
         <artwork type="ascii-art"><![CDATA[
                           ,--------.
                           |sdfThing|
                           |--------|
                           `--------'


                     ,---------.
                     |sdfObject|
                     |---------|
                     `---------'

            ,-----------.  ,---------.   ,--------.    ,-----------.
            |sdfProperty|  |sdfAction|   |sdfEvent|    |sdfLocation|
            |-----------|  |---------|   |--------|    |-----------|
            `-----------'  `---------'   `--------'    `-----------'
                             |

                         ,-------.
                         |sdfData|
                         |-------|
                         `-------'
            ]]>
            </artwork>
          </figure>
          <t>The sdfLocation is described using conventional GPS coordinates or postal addresses for physical locations,
            which enable extensive reuse and interoperability.
            The sdfLocation is also described by strings or integers for relative locations.
            Using the example in the [<xref target="I-D.ietf-asdf-sdf"/>], a heater in a boat model can be described as being on a "boat" using GPS coordinates
            or in a "specific location on the boat" using relative locations (<xref target="example2"/>).</t>

            <figure anchor="example2">
              <name>A simple example of an SDF document</name>
              <sourcecode>
                {
                  "info": {
                    "title": "Example location of a heater in a boat",
                    "version": "2024-10-02",
                    "copyright": "Copyright 2024 digital twin Corp. All rights reserved.",
                    "license": "https://example.com/license"
                  },
                  "namespace": {
                    "location": "https://example.com/location"
                  },
                  "defaultNamespace": "location",
                  "sdfObject": {
                    "boat": {
                      "sdfLocation": {
                          "wgs84": {
                            "latitude": "35.2988233791372",
                            "longitude": "129.25478376484913",
                            "altitude": "0.0"
                          },
                          "postal": {
                            "city": "Ulsan",
                            "post-code": "44110",
                            "country": "South Korea"
                          },
                          "w3w": "toggle.mopped.garages"
                      }
                    }
                  }
                }
              </sourcecode>
            </figure>
        </section>  <!--section 3.1-->

        <!--section 3.2-->
        <!-- Sub: Protocol Stack of OWC -->
        		<section anchor="ref-architecture" numbered="true" toc="default">
        			<name>Architecture of Digital Twin</name>
        			<t>The architecture of a digital twin based on the SDF model is illustrated in <xref target="basic-arch-fig" format="default"/>,
              , following the guidelines of <xref target="ISO23247-3"/>.</t>

              <t>The Physical Layer comprises affordance and non-affordance objects. From the real-world objects,
                only those deemed relevant are selected for representation as digital twins.
                The Digital Twin Layer is structured into three sublayers: the Device Communication Sublayer,
                the Digital Twin Sublayer, and the Application Sublayer.
                The Device Communication Sublayer is responsible for monitoring and collecting data from both affordance and non-affordance objects.
                This sublayer provides the necessary data to synchronize the physical objects with their digital twin counterparts.
                The Digital Twin Sublayer ensures synchronization between the affordance and non-affordance objects and their respective digital twins using the data provided by the Device Communication Sublayer.
                The Application Sublayer presents the synchronized values of the digital twins to users, facilitating informed decision-making.</t>
        			<figure anchor="basic-arch-fig">
        				<name>Basic Architecture of digital twin</name>
        				<artwork align="center" name="" type="" alt=""><![CDATA[
        +---------------------------------------------+ - - - - - - - - - - -
        |            Application Sublayer             |
        | +----------+ +------+ +--------+ +--------+ |
        | |  Human   | | HMI  | |  Apps  | |  Peer  | |
        | +----------+ +------+ +--------+ +--------+ |
        +---------------------------------------------+
        |           Digital Twin Sublayer             |
        | +----------+ +-------------+ +------------+ |
        | | Operation| | Application | | Resource   | |
        | |    and   | |     and     | | access and | |
        | |management| |   service   | |interchange | |
        | +----------+ +-------------+ +------------+ |
        | +-----------------------------------------+ |  Digital twin Layer
        | |     Digital representation of objects   | |
        | |   +-------------+   +----------------+  | |
        | |   |  Affordance |   | Non-Affordance |  | |
        | |   |   objects   |   |    objects     |  | |
        | |   +-------------+   +----------------+  | |
        | +-----------------------------------------+ |
        +---------------------------------------------+
        |        Device Communication Sublayer        |
        |     +-------------+   +----------------+    |
        |     |    Data     |   |     Object     |    |
        |     | collection  |   |     control    |    |
        |     +-------------+   +----------------+    |
        +---------------------------------------------+ - - - - - - - - - - -
        |     +-------------+   +----------------+    |
        |     |  Affordance |   | Non-Affordance |    |
        |     |   objects   |   |    objects     |    |     Physical Layer
        |     +-------------+   +----------------+    |
        +---------------------------------------------+ - - - - - - - - - - -
        				]]></artwork>
        			</figure>
        			<t>In order to send an IPv6 packet over OWC, the packet <bcp14>MUST</bcp14> be passed down to the LLC sublayer. For IPv6 addressing or address configuration, the LLC sublayer <bcp14>MUST</bcp14> provide related information, such as link-layer addresses, to its upper layer.</t>
        		</section>   <!--section 3.2-->
    </section> <!--section 3-->

    <!--section 4 -->
    <section anchor="qualities-of-sdfLocation">
          <name>Qualities of sdfLocation</name>
          <t>This section defines the qualities of the sdfLocation. These qualities are used to define the potential type of the sdfLocation.
          A named definition entry in an sdfProperty may be associated with some protocol affordance to enable the application to obtain the location of sdfThing or sdfObject.
          </t>
          <table anchor="sdfLocQual">
            <name> Qualities of sdfLocation </name>
            <thead>
                <tr>
                <th align="left">Quality</th>
                <th align="left">Type</th>
                <th align="left">Description</th>
                </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">(common)</td>
                <td align="left"> </td>
                <td align="left">Section 4.6 in
                  <xref target="I-D.ietf-asdf-sdf"/>
                  </td>
              </tr>
                <tr>
                <td align="left">locationType</td>
                <td align="left">string</td>

                <td align="left">What kind of location these definitions have</td>
                </tr>
                <tr>
                <td align="left">target</td>
                <td align="left">string</td>
                <td align="left">Target model for the location</td>
                </tr>
                <tr>
                <td align="left">description</td>
                <td align="left">string</td>
                <td align="left">Description of the location</td>
                </tr>

                <tr>
                <td align="left">label</td>
                <td align="left">string</td>
                <td align="left">Short text describing the location</td>
                </tr>

                <tr>
                <td align="left">property</td>
                <td align="left">object</td>
                <td align="left">Additional properties for this location</td>
                </tr>

                <tr>
                <td align="left">$comment</td>
                <td align="left">string</td>
                <td align="left">Additional comments for implementors</td>
                </tr>
            </tbody>
          </table>
          <section title="locationType">
            <t>The locationType quality describes the type of location including geographical or relative information <xref target="ISO23247-3"/>.
            This can use different descriptions, such as geographical information, postal address, w3w and indoor location.
            The purpose of the locationType is to represent the current location of an sdfThing or an sdfObject.
            For example, if the locationType is w3w, the location of an object can be describe as "nutrients.snows.voting".</t>
          </section>
          <section title="target">
            <t>The "target" field defines to which definition or ontology term this definition with sdfLocation has a location to.
				For example, this can be #/sdfObject/location, when the target location of an object is defined in the same SDF model.</t>
          <sourcecode>

            sdfObject: {
              "Humidity": {
                "description": "Example Humidity object",
                "sdfProperty": {
                  ...
                },
                "sdfLocation": {
                  "postalAddr": {
                      "locationType": "postalAddr",
                      "description": "postal address of an object",
                      "label":"postcode"
                  }
                }
              }
            ...
            }
          </sourcecode>
           </section> <!--section 3.2.1-->
           <section title="description">
             <t>The "description" field specifies the location, which is represented as a string.</t>
           </section> <!--section 3.2.2-->
           <section title="label">
             <t>The "label" field is a short text describing the location, similar to the label quality in other SDF definitions.</t>
           </section> <!--section 3.2.3-->
        </section> <!--section 4-->


    <!--section 5-->
    <section title="Examples of Location description">

        <section title="Postal address"> <!--section 5.1-->
            <t>This description allows you to describe location of sdfThing or sdfObject with postal address.</t>
            <sourcecode>
            sdfObject: {
              "example-object": {
                "description": "example object",
                "sdfProperty": {
                  ...
                },
                "sdfLocation": {
                  "postalAddr": {
                      "locationType": "postalAddr",
                      "description": "Postal address of a company", "218 Gajeong-ro ...",
                      "label":"34129"
                  }
                }
              }
            ...
      </sourcecode>
    </section> <!--section 5.1-->

      <section title="Geographical information"> <!--section 5.2-->
            <t>This description allows you to describe location of sdfThing or sdfObject with geographical information.
              </t>
            <sourcecode>
              sdfObject: {
                "BoatDetector": {
                  "sdfLocation": {
                    "wgs84" : {
                        "latitude": "35.5188233791372",
                        "longitude": "129.37308376484913",
                        "altitude": "0.0"
                    }
                  }
                }
              }
          </sourcecode>
        </section> <!--section 5.2-->

        <section title="Relative information"> <!--section 5.3-->
            <t>This description allows you to describe location of sdfThing or sdfObject with relative information including geographical information.
            </t>
            <sourcecode>
              sdfObject: {
                "sdfLocation": {
                    "wgs84" : {
                        "latitude": "string",
                        "longitude": "string"
                        "altitude": "string"
                    }
                     "relativeLocation" : {
                        "relative-x": "integer",
                        "relative-y": "integer"
                        "relative-z": "integer"
                        "unit":"cm"
                    }
                      ...
                    "Boat_#1": {
                        "latitude": "35.5188233791372",
                        "longitude": "129.37308376484913",
                        "altitude": "0.0"
                    }
                    "Heater_A_in_the_Boat_#1": {
                        "latitude": "35.5188233791372",
                        "longitude": "129.37308376484913",
                        "altitude": "0.0"
                        "relative-x": "7215",
                        "relative-y": "1324"
                        "relative-z": "217"
                    }

                }
              }
          </sourcecode>
        </section> <!--section 5.3-->
      </section> <!--section 5-->

      <!--
      <section anchor="technology-digital twin">
        <name>Technologies for sdfLocation</name>
        <t></t>
      </section>
      <!section 6-->
    <section anchor="requirements-digital twin">
      <name>Requirements for digital twin</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>A digital twin is a partial representation of an sdfThing or sdfObject including characteristics such as sdfProperty, sdfData, and sdfLocation<xref target="ISO23247-1"/>.
        By representing sdfThing and sdfObject as digital twins, changes that have occurred and require appropriate action can be quickly detected and controlled.
         The requirements defined in <xref target="ISO23247-1"/> can be applied to represent sdfThings and sdfObjects as digital twins.</t>
      </section>

      <section anchor="data acquisition">
        <name>Data acquisition</name>
        <t>Data related to sdfThing and sdfObject, such as sdfProperty, sdfData, and sdfLocation, should be collected from IP and non-IP devices.</t>
      </section>
      <section anchor="data analysis">
        <name>Data analysis</name>
        <t>The collected data needs to be analyzed to understand the state of sdfThing and sdfObject.</t>
      </section>
      <section anchor="identification">
        <name>Identification</name>
        <t>The sdfThings and sdfObjects should contain data that uniquely identifies them as digital twins.</t>
      </section>
      <section anchor="accuracy">
        <name>Accuracy</name>
        <t>The sdfThings and sdfObjects should be represented as digital twins with appropriate levels of detail and accuracy, depending on the application.</t>
      </section>
      <section anchor="synchronization">
        <name>Synchronization</name>
        <t>The sdfThings and sdfObjects should be synchronized with their digital twins in real-time as appropriate for the application.
          Newly added or removed sdfThings and sdfObjects should be recognized and reflected in the digital twin.</t>
      </section>

    </section> <!--section 6-->
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Only authorized users should have the authority to manage sdfThings and sdfObjects. </t>
    </section> <!--section 7-->
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section> <!--section 8-->
  </middle>

  <back>
  <references title='Normative References'> <!--section 9-->
        <reference anchor='Y.4600'>
            <front>
                <title>"Recommendation ITU-T Y.4600 (2022), Requirements and capabilities of a digital twin system for smart cities.</title>
                <author fullname="International Telecommunication Union"/>
                <date month="August" year="2022"/>
            </front>
        </reference>

        <!--&id.draft-ietf-asdf-sdf;-->
        <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</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="29" month="February" year="2024"/>
            <abstract>
              <t>   The Semantic Definition Format (SDF) is a format for domain experts
                to use in the creation and maintenance of data and interaction
                models that describe Things, i.e., physical objects that are
                available for interaction over a network. An SDF specification
                describes definitions of SDF Objects/SDF Things and their associated
                interactions (Events, Actions, 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.
                //The present revision (-18) adds security considerations, a few
                //editorial cleanups, discusses JSON pointer encodings, and adds
                //sockets to the CDDL for easier future extension.

              </t>
            </abstract>
          </front>
          <seriesInfo name='Internet-Draft' value='draft-ietf-asdf-sdf-18'/>
        </reference>

      <!--  &id.draft-laari-asdf-relations;-->
      <reference anchor='I-D.ietf-laari-asdf-relations'>
        <front>
          <title>Extended relation information for Semantic Definition Format (SDF)</title>
          <author fullname='	Petri' initials='P.' surname='Laari'>
            <organization>Ericsson</organization>
          </author>

          <date day='20' month='June' year='2024'/>
          <abstract>
            <t>   The Semantic Definition Format (SDF) base specification defines set
               of basic information elements that can be used for describing a large
               share of the existing data models from different ecosystems.  While
               these data models are typically very simple, such as basic sensors
               definitions, more complex models, and in particular bigger systems,
               benefit from ability to describe additional information on how
               different definitions relate to each other.  This document specifies
               an extension to SDF for describing complex relationships in class
               level descriptions.  This specification does not consider instance-
               specific information.
            </t>
          </abstract>
        </front>
        <seriesInfo name='Internet-Draft' value='I-D.ietf-laari-asdf-relations'/>
      </reference>


      <reference anchor='ISO23247-1' target='https://www.iso.org/standard/75066.html'>
        <front>
            <title>Automation systems and integration Digital twin framework for manufacturing - Part 1: Overview and general principles, ISO 23247-1.</title>
              <author fullname='ISO' initials='' surname=''>
                </author>
              <date month='October' year='2021'/>
        </front>
      </reference>

      <reference anchor='ISO23247-3' target='https://www.iso.org/standard/78744.html'>
        <front>
            <title>Automation systems and integration Digital twin framework for manufacturing - Part 3: Digital representation of manufacturing elements, ISO 23247-3.</title>
              <author fullname='ISO' initials='' surname=''>
                </author>
              <date month='October' year='2021'/>
        </front>
      </reference>


        <reference anchor='RFC2119'>
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
            <date month='March' year='1997'/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.
      				  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.
      				  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.
              </t>
            </abstract>
          </front>
          <seriesInfo name='BCP' value='14'/>
          <seriesInfo name='RFC' value='2119'/>
          <seriesInfo name='DOI' value='10.17487/RFC2119'/>
        </reference>
        <reference anchor='RFC8174'>
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
            <date month='May' year='2017'/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications.
				  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name='BCP' value='14'/>
          <seriesInfo name='RFC' value='8174'/>
          <seriesInfo name='DOI' value='10.17487/RFC8174'/>
         </reference>

  </references>
  <references title='Informative References'>
        <reference anchor='saref4bldg' target='https://saref.etsi.org/saref4bldg'>
            <front>
                <title>SAREF extension for building</title>
                <author initials='M.' surname='Poveda-Villaln' fullname='Mara Poveda-Villaln'/>
                <author initials='R.' surname='Garcia-Castro' fullname='Ral Garcia-Castro'/>
                <date year='2020' month='June' day="05"/>
            </front>
        </reference>
   </references>
  </back>
</rfc>
