rfc9880v2.txt   rfc9880.txt 
Internet Engineering Task Force (IETF) M. Koster, Ed. Internet Engineering Task Force (IETF) M. Koster, Ed.
Request for Comments: 9880 KTC Control AB Request for Comments: 9880 KTC Control AB
Category: Standards Track C. Bormann, Ed. Category: Standards Track C. Bormann, Ed.
ISSN: 2070-1721 Universität Bremen TZI ISSN: 2070-1721 Universität Bremen TZI
A. Keränen A. Keränen
Ericsson Ericsson
October 2025 December 2025
Semantic Definition Format (SDF) for Data and Interactions of Things Semantic Definition Format (SDF) for Data and Interactions of Things
Abstract Abstract
The Semantic Definition Format (SDF) is a format for domain experts The Semantic Definition Format (SDF) is a format for domain experts
to use in the creation and maintenance of data and interaction models to use in the creation and maintenance of data and interaction models
that describe Things, i.e., physical objects that are available for that describe Things, i.e., physical objects that are available for
interaction over a network. An SDF specification describes interaction over a network. An SDF specification describes
definitions of SDF Objects/SDF Things and their associated definitions of SDF Objects/SDF Things and their associated
skipping to change at line 184 skipping to change at line 184
follow. The normative Appendix A defines the syntax of SDF in terms follow. The normative Appendix A defines the syntax of SDF in terms
of its JSON structures, employing the Concise Data Definition of its JSON structures, employing the Concise Data Definition
Language (CDDL) [RFC8610]. This is followed by the informative Language (CDDL) [RFC8610]. This is followed by the informative
Appendix B, a rendition of the SDF syntax in a "JSON Schema" format Appendix B, a rendition of the SDF syntax in a "JSON Schema" format
as they are defined by json-schema.org (collectively called JSO). as they are defined by json-schema.org (collectively called JSO).
The normative Appendix C defines certain terms ("data qualities") The normative Appendix C defines certain terms ("data qualities")
used at the SDF data model level that were inspired by JSO. The used at the SDF data model level that were inspired by JSO. The
informative Appendix D provides a few examples for the use of informative Appendix D provides a few examples for the use of
composition in SDF. Finally, Appendix E provides some historical composition in SDF. Finally, Appendix E provides some historical
information that can be useful in upgrading earlier, pre-standard SDF information that can be useful in upgrading earlier, pre-standard SDF
models and implementations to SDF base. models and implementations to base SDF.
1.2. Terminology and Conventions 1.2. Terminology and Conventions
Terms introduced in this section are capitalized when used in this Terms introduced in this section are capitalized when used in this
section. To maintain readability, capitalization is only used when section. To maintain readability, capitalization is only used when
needed where they are used in the body of this document. needed where they are used in the body of this document.
Programming Platform Terms Programming Platform Terms
The following definitions mention terms that are used with specific The following definitions mention terms that are used with specific
skipping to change at line 426 skipping to change at line 426
sdfProperty group, represented by a Boolean, will be true for "on" sdfProperty group, represented by a Boolean, will be true for "on"
and will be false for "off". The Actions on or off declared in the and will be false for "off". The Actions on or off declared in the
sdfAction group are redundant with setting the value and are in the sdfAction group are redundant with setting the value and are in the
example to illustrate that there are often different ways of example to illustrate that there are often different ways of
achieving the same effect. The action toggle will invert the value achieving the same effect. The action toggle will invert the value
of the sdfProperty value so that 2-way switches can be created; of the sdfProperty value so that 2-way switches can be created;
having such action will avoid the need for retrieving the current having such action will avoid the need for retrieving the current
value first and then applying/setting the inverted value. value first and then applying/setting the inverted value.
The sdfObject group lists the affordances of Things modeled by this The sdfObject group lists the affordances of Things modeled by this
sdfObject. The sdfProperty group lists the property affordances sdfObject. The sdfProperty group lists the Property affordances
described by the model; these represent various perspectives on the described by the model; these represent various perspectives on the
state of the sdfObject. Properties can have additional qualities to state of the sdfObject. Properties can have additional qualities to
describe the state more precisely. Properties can be annotated to be describe the state more precisely. Properties can be annotated to be
read, write, or read/write; how this is actually done by the read, write, or read/write; how this is actually done by the
underlying transfer protocols is not described in the SDF model but underlying transfer protocols is not described in the SDF model but
left to companion protocol bindings. Properties are often used with left to companion protocol bindings. Properties are often used with
RESTful paradigms [REST-IOT] describing state. The sdfAction group RESTful paradigms [REST-IOT] describing state. The sdfAction group
is the mechanism to describe other interactions in terms of their is the mechanism to describe other interactions in terms of their
names, input, and output data (no data are used in the example), as names, input, and output data (no data are used in the example), as
in a POST method in REST or in a remote procedure call. The example in a POST method in REST or in a remote procedure call. The example
toggle is an Action that changes the state based on the current state toggle is an Action that changes the state based on the current state
of the Property named value. (The third type of affordance is of the Property named value. (The third type of affordance is
Events, which are not described in this example.) Events, which are not described in this example.)
In the JSON representation, the info group is an exception in that In the JSON representation, the info group is an exception in that
this group's map has keys taken from the SDF vocabulary. All other this group's map has keys taken from the SDF vocabulary. All other
groups (such as namespace and sdfObject) have maps with keys that are groups (such as namespace and sdfObject) have maps with keys that are
freely defined by the model writer (Switch, value, on, etc.). These freely defined by the model writer (Switch, value, on, etc.). These
map keys are therefore called _given names_. The groups made up of map keys are therefore called _given names_. The groups made up of
entries with given names as keys usually use the named<> production entries with given names as keys usually use the named<> production
in the formal syntax of SDF Appendix A. Where the values of these in the formal syntax of SDF (Appendix A). Where the values of these
entries are maps, these again use SDF vocabulary keys, and so on, entries are maps, these again use SDF vocabulary keys, and so on,
generally alternating in further nesting. The SDF-defined vocabulary generally alternating in further nesting. The SDF-defined vocabulary
items used in the hierarchy of such groups are often, but not always, items used in the hierarchy of such groups are often, but not always,
called _quality names_ or _qualities_. See Section 2.3 for more called _Quality Names_ or _qualities_. See Section 2.3 for more
information about naming in SDF. information about naming in SDF.
2.2. Elements of an SDF Model 2.2. Elements of an SDF Model
The SDF language uses six predefined Class Name Keywords for modeling The SDF language uses six predefined Class Name Keywords for modeling
connected Things, which are illustrated in Figure 2 (limited connected Things, which are illustrated in Figure 2 (limited
rendition in the plaintext form of this document, please use rendition in the plaintext form of this document, please use
typographic forms for full information). typographic forms for full information).
,--------. ,--------.
skipping to change at line 771 skipping to change at line 771
typically employing kebab-case for names constructed out of multiple typically employing kebab-case for names constructed out of multiple
words [KebabCase]. ASCII hyphen/minus can then unambiguously be words [KebabCase]. ASCII hyphen/minus can then unambiguously be
translated to an ASCII _ underscore character and back depending on translated to an ASCII _ underscore character and back depending on
the programming environment. Some styles also allow a dot (".") in the programming environment. Some styles also allow a dot (".") in
given names. Given Names are often sufficiently self-explanatory given names. Given Names are often sufficiently self-explanatory
that they can be used in place of the label quality if that is not that they can be used in place of the label quality if that is not
given. In turn, if a given name turns out too complicated, a more given. In turn, if a given name turns out too complicated, a more
elaborate label can be given and the given name kept simple. As elaborate label can be given and the given name kept simple. As
given names are "programmers' names", base SDF does not address given names are "programmers' names", base SDF does not address
internationalization of given names. (More likely qualities to internationalization of given names. (More likely qualities to
receive localizable equivalents by exercising the quality name receive localizable equivalents by exercising the Quality Name
extension point are label and description). extension point are label and description).
Further, to enable Given Names to have a more powerful role in Further, to enable Given Names to have a more powerful role in
building global hierarchical names, an extension is planned that building global hierarchical names, an extension is planned that
makes use of qualified names for Given Names. So, until that makes use of qualified names for Given Names. So, until that
extension is defined, Given Names with one or more embedded colons extension is defined, Given Names with one or more embedded colons
are reserved and MUST NOT be used in an SDF document. are reserved and MUST NOT be used in an SDF document.
All names in SDF are case-sensitive. All names in SDF are case-sensitive.
skipping to change at line 793 skipping to change at line 793
SDF definitions are contained in SDF documents together with data SDF definitions are contained in SDF documents together with data
about the SDF document itself (information block). Definitions and about the SDF document itself (information block). Definitions and
declarations from additional SDF documents can be referenced; declarations from additional SDF documents can be referenced;
together with the definitions and declarations in the referencing SDF together with the definitions and declarations in the referencing SDF
document, they build the SDF model expressed by that SDF document. document, they build the SDF model expressed by that SDF document.
Each SDF document is represented as a single JSON map. This map can Each SDF document is represented as a single JSON map. This map can
be thought of as having three blocks: the information block, the be thought of as having three blocks: the information block, the
namespaces block, and the definitions block. These blocks contain namespaces block, and the definitions block. These blocks contain
zero or more JSON name/value pairs, the names of which are quality zero or more JSON name/value pairs, the names of which are Quality
names and the values of which mostly are (nested) maps (the exception Names and the values of which mostly are (nested) maps (the exception
defined in SDF base is the defaultNamespace quality, the value of defined in base SDF is the defaultNamespace quality, the value of
which is a text string). An empty nested map of this kind is which is a text string). An empty nested map of this kind is
equivalent to not having the quality included at all. equivalent to not having the quality included at all.
3.1. Information Block 3.1. Information Block
The information block contains generic metadata for the SDF document The information block contains generic metadata for the SDF document
itself and all included definitions. To enable tool integration, the itself and all included definitions. To enable tool integration, the
information block is optional in the grammar of SDF; most processes information block is optional in the grammar of SDF; most processes
for working with SDF documents will have policies that only SDF for working with SDF documents will have policies that only SDF
documents with an info block can be processed. It is therefore documents with an info block can be processed. It is therefore
skipping to change at line 978 skipping to change at line 978
"type": "boolean" "type": "boolean"
} }
} }
} }
} }
Figure 3: Example sdfObject Definition Figure 3: Example sdfObject Definition
This example defines an sdfObject "foo" that is defined in the This example defines an sdfObject "foo" that is defined in the
default namespace (full address: #/sdfObject/foo), containing a default namespace (full address: #/sdfObject/foo), containing a
property that can be addressed as #/sdfObject/foo/sdfProperty/bar, Property that can be addressed as #/sdfObject/foo/sdfProperty/bar,
with data of type boolean. with data of type boolean.
Often, definitions are also declarations. The definition of the Often, definitions are also declarations. The definition of the
entry "bar" in the property "foo" means that data corresponding to entry "bar" in the Property "foo" means that data corresponding to
the "foo" property in a property interaction offered by Thing can the "foo" Property in a Property interaction offered by Thing can
have zero or one components modeled by "bar". Entries within have zero or one components modeled by "bar". Entries within
sdfProperty, sdfAction, and sdfEvent that are in turn within sdfProperty, sdfAction, and sdfEvent that are in turn within
sdfObject or sdfThing entries, are also declarations; entries within sdfObject or sdfThing entries, are also declarations; entries within
sdfData are not. Similarly, sdfObject or sdfThing entries within an sdfData are not. Similarly, sdfObject or sdfThing entries within an
sdfThing definition specify that the interactions offered by a Thing sdfThing definition specify that the interactions offered by a Thing
modeled by this sdfThing include the interactions modeled by the modeled by this sdfThing include the interactions modeled by the
nested sdfObject or sdfThing. nested sdfObject or sdfThing.
3.4. Top-Level Affordances and sdfData 3.4. Top-Level Affordances and sdfData
skipping to change at line 1281 skipping to change at line 1281
* The Boolean value true. The affordance or grouping itself that * The Boolean value true. The affordance or grouping itself that
carries the sdfRequired keyword is declared to be mandatory to be carries the sdfRequired keyword is declared to be mandatory to be
represented. represented.
Note that referenceable-names are not subject to the encoding JSON Note that referenceable-names are not subject to the encoding JSON
Pointers require as discussed in Section 2.3.2. To ensure that Pointers require as discussed in Section 2.3.2. To ensure that
referenceable-names are reliably distinguished from JSON Pointers, referenceable-names are reliably distinguished from JSON Pointers,
they are defined such that they cannot contain ":" or "#" characters they are defined such that they cannot contain ":" or "#" characters
(see rule referenceable-name in Appendix A). (If these characters (see rule referenceable-name in Appendix A). (If these characters
are indeed contained in a Given Name, a JSON pointer needs to be are indeed contained in a Given Name, a JSON Pointer needs to be
formed instead in order to reference it in "sdfRequired", potentially formed instead in order to reference it in "sdfRequired", potentially
requiring further path elements as well as JSON Pointer encoding. requiring further path elements as well as JSON Pointer encoding.
The need for this is best avoided by choosing Given Names without The need for this is best avoided by choosing Given Names without
these characters.) these characters.)
The example in Figure 4 shows two required elements in the sdfObject The example in Figure 4 shows two required elements in the sdfObject
definition for "temperatureWithAlarm", the sdfProperty definition for "temperatureWithAlarm", the sdfProperty
"currentTemperature", and the sdfEvent "overTemperatureEvent". The "currentTemperature", and the sdfEvent "overTemperatureEvent". The
example also shows the use of JSON Pointers with "sdfRef" to use a example also shows the use of JSON Pointers with "sdfRef" to use a
pre-existing definition for the sdfProperty "currentTemperature" and pre-existing definition for the sdfProperty "currentTemperature" and
skipping to change at line 2012 skipping to change at line 2012
7.5. Registries 7.5. Registries
IANA has created the "Semantic Definition Format (SDF)" registry IANA has created the "Semantic Definition Format (SDF)" registry
group with the registries defined in this Section. group with the registries defined in this Section.
7.5.1. SDF Quality Names 7.5.1. SDF Quality Names
IANA has created the "SDF Quality Names" registry in the "Semantic IANA has created the "SDF Quality Names" registry in the "Semantic
Definition Format (SDF)" registry group with the following template: Definition Format (SDF)" registry group with the following template:
Name: A quality name composed of ASCII letters, digits, and dollar Name: A Quality Name composed of ASCII letters, digits, and dollar
signs, starting with a lowercase ASCII letter or a dollar sign signs, starting with a lowercase ASCII letter or a dollar sign
(i.e., using a pattern of "[a-z$][A-Za-z$0-9]*"). (i.e., using a pattern of "[a-z$][A-Za-z$0-9]*").
Brief Description: A brief description. Brief Description: A brief description.
Reference: A pointer to a specification. Reference: A pointer to a specification.
Change Controller: (See Section 2.3 of RFC 8126 [BCP26]) Change Controller: (See Section 2.3 of RFC 8126 [BCP26])
Quality Names in this registry are intended to be registered in Quality Names in this registry are intended to be registered in
skipping to change at line 2037 skipping to change at line 2037
"IETF Review" (Sections 4.7 and 4.8 of RFC 8126 [BCP26]) so that "IETF Review" (Sections 4.7 and 4.8 of RFC 8126 [BCP26]) so that
registrations can be made earlier in the process, even earlier than registrations can be made earlier in the process, even earlier than
foreseen in [BCP100].) foreseen in [BCP100].)
The instructions to the Experts are: The instructions to the Experts are:
* to ascertain that the specification is available in an immutable * to ascertain that the specification is available in an immutable
reference and has achieved a good level of review in conjunction reference and has achieved a good level of review in conjunction
with RFCs or activities of the IETF, and with RFCs or activities of the IETF, and
* to be frugal in the allocation of quality names that are * to be frugal in the allocation of Quality Names that are
suggestive of generally applicable semantics, keeping them in suggestive of generally applicable semantics, keeping them in
reserve for qualities that are likely to enjoy wide use and can reserve for qualities that are likely to enjoy wide use and can
make good use of their conciseness. make good use of their conciseness.
The "SDF Quality Names" registry starts out as in Table 13; all The "SDF Quality Names" registry starts out as in Table 13; all
references for these initial entries are to RFC 9880 (this document) references for these initial entries are to RFC 9880 (this document)
and all change controllers are "IETF"". and all change controllers are "IETF".
+======================+==========================================+ +======================+==========================================+
| Name | Brief Description | | Name | Brief Description |
+======================+==========================================+ +======================+==========================================+
| $comment | source code comments only, no semantics | | $comment | source code comments only, no semantics |
+----------------------+------------------------------------------+ +----------------------+------------------------------------------+
| const | constant value | | const | constant value |
+----------------------+------------------------------------------+ +----------------------+------------------------------------------+
| contentFormat | content format | | contentFormat | content format |
+----------------------+------------------------------------------+ +----------------------+------------------------------------------+
skipping to change at line 2142 skipping to change at line 2142
+----------------------+------------------------------------------+ +----------------------+------------------------------------------+
Table 13: Initial Content of the SDF Quality Names Registry Table 13: Initial Content of the SDF Quality Names Registry
7.5.2. SDF Quality Name Prefixes 7.5.2. SDF Quality Name Prefixes
IANA has created the "SDF Quality Name Prefixes" registry in the IANA has created the "SDF Quality Name Prefixes" registry in the
"Semantic Definition Format (SDF)" registry group with the following "Semantic Definition Format (SDF)" registry group with the following
template: template:
Prefix: A quality name prefix composed of lower case ASCII letters Prefix: A Quality Name prefix composed of lower case ASCII letters
and digits, starting with a lower case ASCII letter (i.e., using a and digits, starting with a lower case ASCII letter (i.e., using a
pattern of "[a-z][a-z0-9]*"). pattern of "[a-z][a-z0-9]*").
Contact: A contact point for the organization that assigns quality Contact: A contact point for the organization that assigns Quality
names with this prefix. Names with this prefix.
Reference: A pointer to additional information, if available. Reference: A pointer to additional information, if available.
Quality Name Prefixes are intended to be registered by organizations Quality Name Prefixes are intended to be registered by organizations
that plan to define quality names constructed with an organization- that plan to define Quality Names constructed with an organization-
specific prefix (Section 2.3.3). specific prefix (Section 2.3.3).
The registration policy is Expert Review as per Section 4.5 of RFC The registration policy is Expert Review as per Section 4.5 of RFC
8126 [BCP26]. The instructions to the Expert are to ascertain that 8126 [BCP26]. The instructions to the Expert are to ascertain that
the organization will handle quality names constructed using their the organization will handle Quality Names constructed using their
prefix in a way that roughly achieves the objectives for an IANA prefix in a way that roughly achieves the objectives for an IANA
registry that supports interoperability of SDF models employing these registry that supports interoperability of SDF models employing these
quality names, including: Quality Names, including:
* Stability, "stable and permanent"; * Stability, "stable and permanent";
* Transparency, "readily available" and "in sufficient detail" * Transparency, "readily available" and "in sufficient detail"
(Section 4.6 of RFC 8126 [BCP26]). (Section 4.6 of RFC 8126 [BCP26]).
The "SDF Quality Name Prefixes" registry is empty at this time. The "SDF Quality Name Prefixes" registry is empty at this time.
7.5.3. sdfType Values 7.5.3. sdfType Values
skipping to change at line 2183 skipping to change at line 2183
Name: A name composed of lower case ASCII letters, digits and - Name: A name composed of lower case ASCII letters, digits and -
(ASCII hyphen/minus) characters, starting with a lower case ASCII (ASCII hyphen/minus) characters, starting with a lower case ASCII
letter (i.e., using a pattern of "[a-z][-a-z0-9]*"). letter (i.e., using a pattern of "[a-z][-a-z0-9]*").
Description: A short description of the information model level Description: A short description of the information model level
structure and semantics. structure and semantics.
type: The value of the quality "type" to be used with this sdfType. type: The value of the quality "type" to be used with this sdfType.
JSON Representation A short description of a JSON representation JSON Representation: A short description of a JSON representation
that can be used for this sdfType. As per Section 4.7.1, this that can be used for this sdfType. As per Section 4.7.1, this
MUST be consistent with the type. MUST be consistent with the type.
Reference: A more detailed specification of meaning and use of Reference: A more detailed specification of meaning and use of
sdfType. sdfType.
sdfType values are intended to be registered to enable modeling sdfType values are intended to be registered to enable modeling
additional SDF-specific types (see Section 4.7.1). additional SDF-specific types (see Section 4.7.1).
The registration policy is Specification Required as per Section 4.6 The registration policy is Specification Required as per Section 4.6
skipping to change at line 2261 skipping to change at line 2261
cases on input, preferably by rejecting input that is invalid or that cases on input, preferably by rejecting input that is invalid or that
would lead to unpredictable behavior, and avoid generating these would lead to unpredictable behavior, and avoid generating these
cases on output. cases on output.
Implementations of model languages may also exhibit performance- Implementations of model languages may also exhibit performance-
related availability issues when the attacker can control the input, related availability issues when the attacker can control the input,
see Section 4.1 of [RFC9535] for a brief discussion and Section 8 of see Section 4.1 of [RFC9535] for a brief discussion and Section 8 of
[RFC9485] for considerations specific to the use of pattern. [RFC9485] for considerations specific to the use of pattern.
SDF may be used in two processes that are often security relevant: SDF may be used in two processes that are often security relevant:
model-based _validation_ of data that is intended to be described by (1) model-based _validation_ of data that is intended to be described
SDF models and model-based _augmentation_ of these data with by SDF models, and (2) model-based _augmentation_ of these data with
information obtained from the SDF models that apply. information obtained from the SDF models that apply.
Implementations need to ascertain the provenance (and thus Implementations need to ascertain the provenance (and thus
authenticity and integrity) and applicability of the SDF models they authenticity and integrity) and applicability of the SDF models they
employ operationally in such security-relevant ways. Implementations employ operationally in such security-relevant ways. Implementations
that make use of the composition mechanisms defined in this document that make use of the composition mechanisms defined in this document
need to do this for each of the components they combine into the SDF need to do this for each of the components they combine into the SDF
models they employ. Essentially, this process needs to undergo the models they employ. Essentially, this process needs to undergo the
same care and scrutiny as any other introduction of source code into same care and scrutiny as any other introduction of source code into
a build environment; the possibility of supply-chain attacks on the a build environment; the possibility of supply-chain attacks on the
modules imported needs to be considered. modules imported needs to be considered.
Specifically, implementations might rely on model-based input Specifically, implementations might rely on model-based input
validation for enforcing certain properties of the data structure validation for enforcing certain characteristics of the data
ingested (which, if not validated, could lead to malfunctions such as structure ingested (which, if not validated, could lead to
crashes and remote code execution). These implementations need to be malfunctions such as crashes and remote code execution). These
particularly careful about the data models they apply, including implementations need to be particularly careful about the data models
their provenance and potential changes of these properties that they apply, including their provenance and potential changes of these
upgrades to the referenced modules may (inadvertently or as part of characteristics that upgrades to the referenced modules may
an attack) cause. More generally speaking, implementations should (inadvertently or as part of an attack) cause. More generally
strive to be robust against expected and unexpected limitations of speaking, implementations should strive to be robust against expected
the model-based input validation mechanisms and their and unexpected limitations of the model-based input validation
implementations. mechanisms and their implementations.
Similarly, implementations that rely on model-based augmentation may Similarly, implementations that rely on model-based augmentation may
generate false data from their inputs; this is an integrity violation generate false data from their inputs; this is an integrity violation
in any case, but also can possibly be exploited for further attacks. in any case, but also can possibly be exploited for further attacks.
In applications that dynamically acquire models and obtain modules In applications that dynamically acquire models and obtain modules
from module references in these models, the security considerations from module references in these models, the security considerations
of dereferenceable identifiers apply (see [DEREF-ID-PATTERN] for a of dereferenceable identifiers apply (see [DEREF-ID-PATTERN] for a
more extensive discussion of dereferenceable identifiers). more extensive discussion of dereferenceable identifiers).
skipping to change at line 2533 skipping to change at line 2533
Regular Expression Format", RFC 9485, Regular Expression Format", RFC 9485,
DOI 10.17487/RFC9485, October 2023, DOI 10.17487/RFC9485, October 2023,
<https://www.rfc-editor.org/info/rfc9485>. <https://www.rfc-editor.org/info/rfc9485>.
[RFC9535] Gössner, S., Ed., Normington, G., Ed., and C. Bormann, [RFC9535] Gössner, S., Ed., Normington, G., Ed., and C. Bormann,
Ed., "JSONPath: Query Expressions for JSON", RFC 9535, Ed., "JSONPath: Query Expressions for JSON", RFC 9535,
DOI 10.17487/RFC9535, February 2024, DOI 10.17487/RFC9535, February 2024,
<https://www.rfc-editor.org/info/rfc9535>. <https://www.rfc-editor.org/info/rfc9535>.
[SDF-MAPPING] [SDF-MAPPING]
Bormann, C., Ed. and J. Romann, "Semantic Definition Bormann, C. and J. Romann, "Semantic Definition Format
Format (SDF): Mapping files", Work in Progress, Internet- (SDF): Mapping files", Work in Progress, Internet-Draft,
Draft, draft-bormann-asdf-sdf-mapping-05, 6 December 2024, draft-ietf-asdf-sdf-mapping-00, 18 December 2025,
<https://datatracker.ietf.org/doc/html/draft-bormann-asdf- <https://datatracker.ietf.org/doc/html/draft-ietf-asdf-
sdf-mapping-05>. sdf-mapping-00>.
[SDFTYPE-LINK] [SDFTYPE-LINK]
Bormann, C., "An sdfType for Links", Work in Progress, Bormann, C. and A. Keränen, "An sdfType for Links", Work
Internet-Draft, draft-bormann-asdf-sdftype-link-04, 6 in Progress, Internet-Draft, draft-ietf-asdf-sdftype-link-
December 2024, <https://datatracker.ietf.org/doc/html/ 01, 19 December 2025,
draft-bormann-asdf-sdftype-link-04>. <https://datatracker.ietf.org/doc/html/draft-ietf-asdf-
sdftype-link-01>.
[STD97] Internet Standard 97, [STD97] Internet Standard 97,
<https://www.rfc-editor.org/info/std97>. <https://www.rfc-editor.org/info/std97>.
At the time of writing, this STD comprises the following: At the time of writing, this STD comprises the following:
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110, Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022, DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>. <https://www.rfc-editor.org/info/rfc9110>.
skipping to change at line 4973 skipping to change at line 4974
} }
} }
Figure 8: Refrigerator-Freezer Example Figure 8: Refrigerator-Freezer Example
Appendix E. Some Changes from Earlier Draft Versions of this Appendix E. Some Changes from Earlier Draft Versions of this
Specification Specification
This appendix is informative. This appendix is informative.
The present document provides the SDF base definition. Previous The present document provides the base SDF definition. Previous
revisions of SDF have been in use for several years, and both revisions of SDF, as defined in earlier drafts of this specification,
significant collections of older SDF models and older SDF conversion have been in use for several years; both significant collections of
tools are available today. This appendix provides a brief checklist older SDF models and older SDF conversion tools are available today.
that can aid in upgrading these to the standard. This appendix provides a brief checklist that can aid in upgrading
these to the standard.
* The quality unit was previously called units. * The quality unit was previously called units.
* sdfType was developed out of a concept previously called subtype. * sdfType was developed out of a concept previously called subtype.
* sdfChoice is the preferred way to represent JSO enum (only a * sdfChoice is the preferred way to represent JSO enum (only a
limited form of which is retained) and also the way to represent limited form of which is retained) and also the way to represent
JSO anyOf. JSO anyOf.
* The length of text strings (as used with minLength/maxLength * The length of text strings (as used with minLength/maxLength
skipping to change at line 5029 skipping to change at line 5031
Table 12: SDF Content-Format Registration Table 12: SDF Content-Format Registration
Table 13: Initial Content of the SDF Quality Names Registry Table 13: Initial Content of the SDF Quality Names Registry
Acknowledgements Acknowledgements
This specification is based on work by the One Data Model group. This specification is based on work by the One Data Model group.
Contributors Contributors
Jan Romann Jan Romann
Hochschule Emden/Leer Universität Bremen
Germany Germany
Email: jan.romann@hs-emden-leer.de Email: jan.romann@uni-bremen.de
Wouter van der Beek Wouter van der Beek
Cascoda Ltd. Cascoda Ltd.
Threefield House Threefield House
Threefield Lane Threefield Lane
Southampton Southampton
United Kingdom United Kingdom
Email: w.vanderbeek@cascoda.com Email: w.vanderbeek@cascoda.com
Authors' Addresses Authors' Addresses
 End of changes. 26 change blocks. 
51 lines changed or deleted 53 lines changed or added

This html diff was produced by rfcdiff 1.48.