<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type="text/xsl" href="sdf.xsl"?>
<?xml-model href="sdf.rng" schematypens="http://relaxng.org/ns/structure/1.0" ?>
<registry xmlns="http://www.iana.org/assignments" id="sdf">
  <title>Semantic Definition Format (SDF)</title>
  <created>2025-03-27</created>
  <updated>2026-02-02</updated>
  
  <registry id="sdf-quality-names">
    <title>SDF Quality Names</title>
    <xref type="rfc" data="rfc9880"/>
    <registration_rule>Specification Required</registration_rule>
    <expert>Ari Keranen (primary), Michael Koster (backup)</expert>
    <record date="2025-03-27">
      <value>$comment</value>
      <description>source code comments only, no semantics</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>const</value>
      <description>constant value</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>contentFormat</value>
      <description>content format</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>default</value>
      <description>default value</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>description</value>
      <description>long description text</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>enum</value>
      <description>sdfChoice limited to text strings</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>exclusiveMaximum</value>
      <description>exclusive maximum for a number</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>exclusiveMinimum</value>
      <description>exclusive minimum for a number</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>format</value>
      <description>specific format for a text string</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>items</value>
      <description>items of an array</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>label</value>
      <description>short text (no constraints); defaults to key</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>maxItems</value>
      <description>maximum number of items in an array</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>maxLength</value>
      <description>maximum length for a text string (in characters, i.e., Unicode scalar values)</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>maximum</value>
      <description>maximum for a number</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>minItems</value>
      <description>minimum number of items in an array</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>minLength</value>
      <description>minimum length for a text string (in characters, i.e., Unicode scalar values)</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>minimum</value>
      <description>minimum for a number</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>multipleOf</value>
      <description>step size of number</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>nullable</value>
      <description>boolean: can the item be left out?</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>observable</value>
      <description>boolean: can the item be observed?</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>pattern</value>
      <description>regular expression pattern for a text string</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>properties</value>
      <description>named dataqualities for type="object"</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>readable</value>
      <description>boolean: can the item be read?</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>required</value>
      <description>which data items are required?</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfChoice</value>
      <description>named dataqualities for a choice</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfData</value>
      <description>named dataqualities for an independent data type definition</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfInputData</value>
      <description>input data to an action</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfOutputData</value>
      <description>output data of an action or event (sdfRequired applies here)</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfRef</value>
      <description>sdf-pointer to definition being referenced</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfRequired</value>
      <description>pointer-list to declarations of required components</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfRequiredInputData</value>
      <description>pointer-list to declarations of required input data for an action</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>sdfType</value>
      <description>more detailed information about the type of a string</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>type</value>
      <description>general category of data type</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>uniqueItems</value>
      <description>boolean: do the items of the array need to be all different?</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>unit</value>
      <description>engineering unit and scale (per SenML registry)</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>writable</value>
      <description>boolean: can the item be written to?</description>
      <reference><xref type="rfc" data="rfc9880"/></reference>
      <controller>IETF</controller>
    </record>
  </registry>

  <registry id="sdf-quality-name-prefixes">
    <title>SDF Quality Name Prefixes</title>
    <xref type="rfc" data="rfc9880"/>
    <registration_rule>Expert Review</registration_rule>
    <expert>Ari Keranen (primary), Michael Koster (backup)</expert>
  </registry>

  <registry id="sdftype-values">
    <title>sdfType Values</title>
    <xref type="rfc" data="rfc9880"/>
    <registration_rule>Specification Required</registration_rule>
    <expert>Ari Keranen (primary), Michael Koster (backup)</expert>
    <record date="2025-03-27">
      <value>byte-string</value>
      <description>A sequence of zero or more bytes</description>
      <type>string</type>
      <json>base64url without padding</json>
      <reference><xref type="rfc" data="rfc8949">RFC 8949, Section 3.4.5.2</xref></reference>
      <controller>IETF</controller>
    </record>
    <record date="2025-03-27">
      <value>unix-time</value>
      <description>A point in civil time <xref type="note" data="1"/></description>
      <type>number</type>
      <json>POSIX time</json>
      <reference><xref type="rfc" data="rfc8949">RFC 8949, Section 3.4.2</xref></reference>
      <controller>IETF</controller>
    </record>
    <footnote anchor="1">Note that the definition of unix-time does not imply the capability to represent 
points in time that fall on leap seconds. More date/time-related sdfTypes are
likely to be added in the sdfType value registry.</footnote>
  </registry>

<registry id="sdf-feature-names">
    <title>SDF Feature Names</title>
    <xref type="rfc" data="rfc9880"/>
    <registration_rule>Specification Required</registration_rule>
    <expert>Ari Keranen (primary), Michael Koster (backup)</expert>
    </registry>

  <people/>
  
</registry>
