<?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.3.37 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-sdf-compact-00" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.5.0 -->
  <front>
    <title abbrev="OneDM SDF compact">Semantic Definition Format (SDF) for Data and Interactions of Things: Compact Notation</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-sdf-compact-00"/>
    <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="March" day="07"/>
    <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>
      <name>Contributing</name>
      <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" toc="default">
      <name>Introduction</name>
      <t>(See Abstract for now.)
<xref target="I-D.ietf-asdf-sdf" format="default"/>
        <xref target="RELAXNG" format="default"/></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 in week 12 of 2021.</t>
    </section>
    <section anchor="overview" toc="default">
      <name>Overview</name>
      <t>The SDF compact format is a YAML file <xref target="YAML" format="default"/>; 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 <tt>named&lt;...&gt;</tt> 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 <tt>description</tt> is replaced by <tt>:</tt>, 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 <tt>rwo</tt> when set (default in SDF) and into
<tt>---</tt> when not set.  The fourth character is <tt>?</tt> for optional and <tt>!</tt>
for required.</t>
      <t>The value of this abbreviated key is a CDDL <xref target="RFC8610" format="default"/> rendition of the
attributes defined in the jsonschema production in <xref section="A" sectionFormat="of" target="I-D.ietf-asdf-sdf" format="default"/>.  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" toc="default">
        <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 <tt>unit</tt> quality.)</t>
        <sourcecode type="sdfc">
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>
        <t>The result of automatically converting this YAML file using the
prototype <tt>sdfc</tt> tool back into the JSON form of SDF is given in
<xref target="ex-json" format="default"/>.
Except for the <tt>unit</tt> 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 <tt>sdfc</tt> tool could attempt to
preserve more of this order, even though it does not carry semantics.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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" target="https://www.ietf.org/archive/id/draft-ietf-asdf-sdf-03.txt">
          <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="22" month="February" 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 the previous
   (-00) version of this document.  SDF 1.1 is expected to be defined in
   a future version; the present document is a _candidate implementation
   draft_ for SDF 1.1.  If the ASDF WG reaches consensus on this
   candidate, the next version will be SDF 1.1, an SDF implementation
   draft.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-03"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <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/>
            </author>
            <author initials="C." surname="Evans" fullname="Clark Evans">
              <organization/>
            </author>
            <author initials="I.d." surname="Net" fullname="Ingy dot Net">
              <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>
    </references>
    <section anchor="ex-json" toc="default">
      <name>Example in SDF JSON format</name>
      <sourcecode type="application/sdf+json">
{
  "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>
    </section>
    <section numbered="false" anchor="acknowledgements" toc="default">
      <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>
