<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.7 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY SELF "[RFC-XXXX]">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-bormann-asdf-sdf-compact-01" category="info">

  <front>
    <title abbrev="OneDM SDF compact">Semantic Definition Format (SDF) for Data and Interactions of Things: Compact Notation</title>

    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization ascii="Universitaet Bremen TZI">Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>

    <date year="2021" month="September" day="06"/>

    <area>Applications</area>
    <workgroup>T2TRG</workgroup>
    <keyword>Internet-Draft</keyword>

    <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 in
the Internet of Things.  It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
definitions.  Tools convert this format to database formats and other
serializations as needed.</t>

<t>The SDF format is mainly intended for interchange between machine
generation and machine processing.  However, there often is a need for
humans to look at and edit SDF models.</t>

<t>Similar to the way Relax-NG as defined in ISO/IEC 19757-2 has an XML
format and a compact format (Annex C), this specification defines a
compact format to go along SDF's JSON format.</t>

<t>The present version of this document is mostly a proof of concept, but
was deemed useful to obtain initial feedback on the approach taken.</t>



    </abstract>


    <note title="Contributing">


<t>Recent versions of this document are available at its GitHub
repository <eref target="https://github.com/cabo/sdfc">https://github.com/cabo/sdfc</eref> — this also provides
an issue tracker as well as a way to supply "pull requests".</t>

<t>General discussion of this SDF Internet-Draft happens on the mailing
list of the IETF ASDF Working Group, asdf@ietf.org (subscribe at
<eref target="https://www.ietf.org/mailman/listinfo/asdf">https://www.ietf.org/mailman/listinfo/asdf</eref>).</t>

<t>The IETF Note Well applies (<eref target="https://www.ietf.org/about/note-well/">https://www.ietf.org/about/note-well/</eref>).</t>


    </note>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models in
the Internet of Things.  It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
definitions.  Tools convert this format to database formats and other
serializations as needed.</t>

<t>The SDF format is mainly intended for interchange between machine
generation and machine processing.  However, there often is a need for
humans to look at and edit SDF models.</t>

<t>Similar to the way Relax-NG as defined in ISO/IEC 19757-2 has an XML
format and a compact format (Annex C), this specification defines a
compact format to go along SDF's JSON format.</t>

<t>The present version of this document is mostly a proof of concept, but
was deemed useful to obtain initial feedback on the approach taken.</t>

<t>(References: <xref target="I-D.ietf-asdf-sdf"/>, <xref target="RELAXNG"/>.)</t>

<t>The intention is to be able to bidirectionally translate between
compact and JSON form, without appreciable semantic losses.  This will
allow viewing SDF in compact form, apply edits if needed, and then
continuing processing it in JSON form.  As a limitation of this
approach, it will be difficult to always recreate the order of map
entries (members of JSON objects) in the JSON form; this order is
essentially arbitrary as maps (JSON objects) in JSON are unordered.
(In the long run, it may be useful to define a canonical order in the
SDF specification or here.)</t>

<t>An initial prototype of a converter from compact form to JSON form was
constructed during the ASDF/WISHI hackathon preceding IETF110.
A more complete, bidirectionally operating version of this tool is
planned for release soon.</t>

</section>
<section anchor="overview"><name>Overview</name>

<t>The SDF compact format is a YAML file <xref target="YAML"></xref>; a good part of the work
needed for a compact representation is already done by the increased
user-friendliness of YAML over JSON.</t>

<t>In addition, all the sections defined with <spanx style="verb">named&lt;...&gt;</spanx> in the CDDL
definition of SDF have been compacted into map entries with
space-separated keys, giving the kind first and the name next.
This saves the need for another level of hierarchy and reminds the
reader of the kind of item being specified.</t>

<t>The map key <spanx style="verb">description</spanx> is replaced by <spanx style="verb">:</spanx>, which also is rendered
in the most compact form possible in YAML.</t>

<t>The dataqualities readable, writable, and observable, together with
optionality, are compressed into a four-character map key:  The first
three are translated into <spanx style="verb">rwo</spanx> when set (default in SDF) and into
<spanx style="verb">---</spanx> when not set.  The fourth character is <spanx style="verb">?</spanx> for optional and <spanx style="verb">!</spanx>
for required.</t>

<t>The value of this abbreviated key is a CDDL <xref target="RFC8610"/> rendition of the
attributes defined in the jsonschema production in <xref section="A" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>.  To further reduce noise, a top-level array
production in the CDDL can be represented as an array in the YAML
(i.e., does not require additional quotes).</t>

<section anchor="ex-compact"><name>Example Definition</name>

<t>This is an SDF-compact version of a slightly modified copy of the
sdfobject-cadence.sdf.json model found at the time of writing in
OneDM's SDF playground.
(This example was chosen more or less randomly; better examples can
probably be found.  The modification is the addition of a <spanx style="verb">unit</spanx> quality.)</t>

<figure><sourcecode type="sdfc"><![CDATA[
info:
  copyright: Copyright 2018-2019 Open Connectivity Foundation, Inc. All rights reserved.
  version: '2019-06-11'
  title: Cadence
  license: https://github.com/one-data-model/oneDM/blob/master/LICENSE

object cadence:
  :: This Resource describes the cadence, which is the number of
     revolutions of crank per minute when cyclists pedal the
     pedals. The unit, which is the default unit, is rpm. The cadence
     Property is a read-only value that is provided by the
     server. When range (from "oic. r. baseresource") is omitted the
     default is 0 to +MAXFLOAT.
  property cadence:
    r-o!: integer .ge 0
    unit: 1/min
    :: This Property describes the rate at which a cyclist is pedalling/turning
       the pedals.
  property range:
    r-o?: [2*2 integer]
    :: The valid range for the Property in the Resource as an integer.
       The first value in the array is the minimum value, the second value in the
       array is the maximum value.
  property step:
    r-o?: integer
    :: Step value across the defined range when the range is an integer.  This
       is the increment for valid values across the range; so if range is 0..10
       and step is 2 then valid values are 0,2,4,6,8,10.
]]></sourcecode></figure>

<t>The result of automatically converting this YAML file using the
prototype <spanx style="verb">sdfc</spanx> tool back into the JSON form of SDF is given in
<xref target="ex-json"/>.
Except for the <spanx style="verb">unit</spanx> addition, it is semantically identical to the
sdfobject-cadence.sdf.json.
Differences are visible in the order of map entries (members in JSON
objects); a future version of the <spanx style="verb">sdfc</spanx> tool could attempt to
preserve more of this order, even though it does not carry semantics.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC8610' target='https://www.rfc-editor.org/info/rfc8610'>
<front>
<title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
<author fullname='H. Birkholz' initials='H.' surname='Birkholz'><organization/></author>
<author fullname='C. Vigano' initials='C.' surname='Vigano'><organization/></author>
<author fullname='C. Bormann' initials='C.' surname='Bormann'><organization/></author>
<date month='June' year='2019'/>
<abstract><t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t></abstract>
</front>
<seriesInfo name='RFC' value='8610'/>
<seriesInfo name='DOI' value='10.17487/RFC8610'/>
</reference>


<reference anchor='I-D.ietf-asdf-sdf'>
   <front>
      <title>Semantic Definition Format (SDF) for Data and Interactions of Things</title>
      <author fullname='Michael Koster'>
	 <organization>Dogtiger Labs</organization>
      </author>
      <author fullname='Carsten Bormann'>
	 <organization>Universität Bremen TZI</organization>
      </author>
      <date day='12' month='July' year='2021'/>
      <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
   in the Internet of Things.  It was created as a common language for
   use in the development of the One Data Model liaison organization
   (OneDM) definitions.  Tools convert this format to database formats
   and other serializations as needed.

   An SDF specification describes definitions of SDF Objects and their
   associated interactions (Events, Actions, Properties), as well as the
   Data types for the information exchanged in those interactions.


   // A JSON format representation of SDF 1.0 was defined in version
   // (-00) of this document; version (-05) was designated as an
   // _implementation draft_, labeled SDF 1.1, at the IETF110 meeting of
   // the ASDF WG (2021-03-11).  The present version (-07) has a few
   // editorial improvements over -06, which was discussed at the ASDF
   // interim meeting on 2021-06-02.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-asdf-sdf-07'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-asdf-sdf-07.txt' type='TXT'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="YAML" target="http://www.yaml.org/spec/1.2/spec.html">
  <front>
    <title>YAML Ain't Markup Language (YAML[TM]) Version 1.2</title>
    <author initials="O." surname="Ben-Kiki" fullname="Oren Ben-Kiki">
      <organization></organization>
    </author>
    <author initials="C." surname="Evans" fullname="Clark Evans">
      <organization></organization>
    </author>
    <author initials="I.d." surname="Net" fullname="Ingy dot Net">
      <organization></organization>
    </author>
    <date year="2009" month="October"/>
  </front>
  <seriesInfo name="3rd" value="Edition"/>
</reference>
<reference anchor="RELAXNG" >
  <front>
    <title>Information technology — Document Schema Definition Language (DSDL) — Part 2: Regular-grammar-based validation — RELAX NG</title>
    <author >
      <organization>ISO/IEC</organization>
    </author>
    <date year="2008" month="December" day="15"/>
  </front>
  <seriesInfo name="ISO/IEC" value="19757-2"/>
</reference>


    </references>


<section anchor="ex-json"><name>Example in SDF JSON format</name>

<figure><sourcecode type="application/sdf+json"><![CDATA[
{
  "info": {
    "title": "Cadence",
    "license": "https://github.com/one-data-model/oneDM/blob/master/LICENSE",
    "version": "2019-06-11",
    "copyright": "Copyright 2018-2019 Open Connectivity Foundation, Inc. All rights reserved."
  },
  "sdfObject": {
    "cadence": {
      "description": "This Resource describes the cadence, which is the number of revolutions of crank per minute when cyclists pedal the pedals. The unit, which is the default unit, is rpm. The cadence Property is a read-only value that is provided by the server. When range (from \"oic. r. baseresource\") is omitted the default is 0 to +MAXFLOAT.",
      "sdfProperty": {
        "step": {
          "type": "integer",
          "writable": false,
          "description": "Step value across the defined range when the range is an integer.  This is the increment for valid values across the range; so if range is 0..10 and step is 2 then valid values are 0,2,4,6,8,10."
        },
        "range": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "maxItems": 2,
          "minItems": 2,
          "writable": false,
          "description": "The valid range for the Property in the Resource as an integer. The first value in the array is the minimum value, the second value in the array is the maximum value."
        },
        "cadence": {
          "type": "integer",
          "minimum": 0,
          "writable": false,
          "description": "This Property describes the rate at which a cyclist is pedalling/turning the pedals."
        }
      },
      "sdfRequired": [
        "#/sdfObject/cadence/sdfProperty/cadence"
      ]
    }
  }
}
]]></sourcecode></figure>

</section>
<section numbered="no" anchor="acknowledgements"><name>Acknowledgements</name>

<t>The idea for this draft originated at the IETF110 ASDF/WISHI hackathon.
The author would like to thank the attendees for initial feedback.</t>

<!--  LocalWords:  SDF namespace defaultNamespace instantiation OMA
 -->
<!--  LocalWords:  affordances ZigBee LWM OCF sdfObject sdfThing
 -->
<!--  LocalWords:  idempotency Thingness sdfProperty sdfEvent sdfRef
 -->
<!--  LocalWords:  namespaces sdfRequired Optionality sdfAction
 -->
<!--  LocalWords:  sdfProduct dereferenced dereferencing atomicity
 -->
<!--  LocalWords:  interworking
 -->

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

