Skip to main content

Semantic Definition Format (SDF) for Data and Interactions of Things
draft-ietf-asdf-sdf-06

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Active".
Authors Michael Koster , Carsten Bormann
Last updated 2021-06-01
Replaces draft-onedm-t2trg-sdf
RFC stream Internet Engineering Task Force (IETF)
Formats
Additional resources Mailing list discussion
Stream WG state WG Document
Associated WG milestone
May 2022
SDF specification, publication requested
Document shepherd (None)
IESG IESG state I-D Exists
Consensus boilerplate Yes
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-asdf-sdf-06
gt;     ; Action is a directive to invoke an application layer verb associated with an object
    ? sdfEvent: named<eventqualities>       ; Event represents an occurence of something associated with an object
    ? sdfData: named<dataqualities>         ; Data represents a piece of information that can be the state of a property or a parameter to an action or a signal in an event
    EXTENSION-POINT<"top-ext">
   }

   sdfinfo = {
    title: text
    version: text
    copyright: text
    license: text
    EXTENSION-POINT<"info-ext">
   }

   ; Shortcut for a map that gives names to instances of X (has text keys and values of type X)
   named<X> = { * text => X }

Koster & Bormann         Expires 3 December 2021               [Page 35]
Internet-Draft                  OneDM SDF                      June 2021

   EXTENSION-POINT<f> = ( * (text .feature f) => any ) ; only used in framework syntax

   sdf-pointer = text ; .regexp curie-regexp -- TO DO!
   pointer-list = [* sdf-pointer]  ; ISSUE: no point in having an empty list, no? but used for sdfRequired in odmobject-multiple_axis_joystick.sdf.json

   commonqualities = (
    ? description: text            ; long text (no constraints)
    ? label: text                  ; short text (no constraints); default to key
    ? $comment: text               ; source code comments only, no semantics
    ? sdfRef: sdf-pointer
    ? sdfRequired: pointer-list    ; applies to qualities of properties, of data
   )

   ; for building hierarchy
   thingqualities = {
    commonqualities,
    ? sdfObject: named<objectqualities>
    ? sdfThing: named<thingqualities>
    EXTENSION-POINT<"thing-ext">
   }

   productqualities = thingqualities ; ISSUE: get rid of sdfProduct?

   ; for single objects, or for arrays of objects (1.2)
   objectqualities = {
    commonqualities,
    ? ("minItems" .feature "1.2") => number
    ? ("maxItems" .feature "1.2") => number
    ? sdfProperty: named<propertyqualities>
    ? sdfAction: named<actionqualities>
    ? sdfEvent: named<eventqualities>
    ? sdfData: named<dataqualities>
    EXTENSION-POINT<"object-ext">
   }

   propertyqualities = dataqualities ; the definitions in sdfData are declarations in sdfProperty

   parameter-list =
     pointer-list .feature (["1.0", "pointerlist-as-parameter"]) /
     dataqualities .feature (["1.1", "dataqualities-as-parameter"])

   actionqualities = {
    commonqualities,
    ? sdfInputData: parameter-list   ; sdfRequiredInputData applies here (a bit redundant)
    ? ("sdfRequiredInputData" .feature "1.0") => pointer-list
    ? sdfOutputData: parameter-list  ; sdfRequired applies here
    ? sdfData: named<dataqualities>         ; zero or more named data type definitions that might be used in the above
    EXTENSION-POINT<"action-ext">

Koster & Bormann         Expires 3 December 2021               [Page 36]
Internet-Draft                  OneDM SDF                      June 2021

   }

   eventqualities = {
    commonqualities
    ? sdfOutputData: parameter-list  ; sdfRequired applies here
    ? sdfData: named<dataqualities>         ; zero or more named data type definitions that might be used in the above
    EXTENSION-POINT<"event-ext">
   }

   dataqualities = {               ; also propertyqualities
    commonqualities,
    jsonschema,
    ? ("units" .feature "1.0") => text
    ? ("unit" .feature "1.1") => text
    ? ("scaleMinimum" .feature "1.0") => number
    ? ("scaleMaximum" .feature "1.0") => number
    ? observable: bool
    ? readable: bool
    ? writable: bool
    ? nullable: bool
    ? ("subtype" .feature "1.0") => "byte-string" / "unix-time"
               / (text .feature "subtype-ext")                       ; EXTENSION-POINT
    ? ("sdfType" .feature "1.1") => "byte-string" / "unix-time"
               / (text .feature "sdftype-ext")                       ; EXTENSION-POINT
    ? contentFormat: text
    EXTENSION-POINT<"data-ext">
   }

   allowed-types = number / text / bool / null
                 / [* number] / [* text] / [* bool]
                 / {* text => any}
                 / (any .feature "allowed-ext")                     ; EXTENSION-POINT

   compound-type = (
     "type" => ("object" .feature "1.1"),
     ? required: [+text],
     ? properties: named<dataqualities>,
   )

   choice-type = (
     ("sdfChoice" .feature "1.1") => named<dataqualities>
   )

   jsonschema = (
    ? (("type" => "number" / "string" / "boolean" / "integer" / "array")
       // compound-type
       // choice-type
       // (type: text .feature "type-ext")                       ; EXTENSION-POINT

Koster & Bormann         Expires 3 December 2021               [Page 37]
Internet-Draft                  OneDM SDF                      June 2021

      )
    ? "enum" => [+ text]               ; limited to text strings in SDF 1.1
    ? ("enum" .feature "1.0") => [+ allowed-types]    ; should validate against type
    ? const: allowed-types                            ; should validate against type
    ? default: allowed-types                          ; should validate against type
    ; number/integer constraints
    ? minimum: number
    ? maximum: number
    ? exclusiveMinimum: bool / number      ; jso draft 4/7
    ? exclusiveMaximum: bool / number      ; jso draft 4/7
    ? multipleOf: number                   ; ISSUE: Do we need this?
    ; text string constraints
    ? minLength: number
    ? maxLength: number
    ? pattern: text                ; regexp
    ? format: "date-time" / "date" / "time"
              / "uri" / "uri-reference" / "uuid"
              / (text .feature "format-ext")                       ; EXTENSION-POINT
    ; array constraints
    ? minItems: number
    ? maxItems: number
    ? uniqueItems: bool
    ? items: { ;;; ultimately, this will be mostly recursive, but, for now
               ;;; let's find out what we actually need
        ? sdfRef: sdf-pointer          ; import limited to the subset that we allow here...
        ? description: text            ; long text (no constraints)
        ? $comment: text               ; source code comments only, no semantics
        ; commonqualities, ; -- ISSUE: should leave this out for non-complex data types, but need the above three
        ? ((type: "number" / "string" / "boolean" / "integer") ; no "array"
           // compound-type
           // choice-type              ; do we really need arrays of choices?
           // (type: text .feature "itemtype-ext")                       ; EXTENSION-POINT
          )
        ; jso subset
        ? minimum: number
        ? maximum: number
        ? "enum" => [+ text] ; limited to text strings in SDF 1.1
        ? ("enum" .feature "1.0") => [+ any]
        ? format: text
        ? minLength: number
        ? maxLength: number
        EXTENSION-POINT<"items-ext">
      }
   )

Koster & Bormann         Expires 3 December 2021               [Page 38]
Internet-Draft                  OneDM SDF                      June 2021

Appendix B.  json-schema.org Rendition of SDF Syntax

   This appendix describes the syntax of SDF defined in Appendix A, but
   using a version of the description techniques advertised on json-
   schema.org [I-D.handrews-json-schema-validation].

   The appendix shows both the validation and the framework syntax.
   Since most of the lines are the same between these two files, those
   lines are shown only once, with a leading space, in the form of a
   unified diff.  Lines leading with a "-" are part of the validation
   syntax, and lines leading with a "+" are part of the framework
   syntax.

    {
   -  "title": "sdf-validation.cddl",
   +  "title": "sdf-framework.cddl",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$ref": "#/definitions/sdf-syntax",
      "definitions": {
        "sdf-syntax": {
          "type": "object",
          "properties": {
            "info": {
              "$ref": "#/definitions/sdfinfo"
            },
            "namespace": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "defaultNamespace": {
              "type": "string"
            },
            "sdfThing": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/thingqualities"
              }
            },
            "sdfProduct": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/productqualities"
              }
            },
            "sdfObject": {
              "type": "object",

Koster & Bormann         Expires 3 December 2021               [Page 39]
Internet-Draft                  OneDM SDF                      June 2021

              "additionalProperties": {
                "$ref": "#/definitions/objectqualities"
              }
            },
            "sdfProperty": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/propertyqualities"
              }
            },
            "sdfAction": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/actionqualities"
              }
            },
            "sdfEvent": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/eventqualities"
              }
            },
            "sdfData": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/dataqualities"
              }
            }
          },
   -      "additionalProperties": false
   +      "additionalProperties": {
   +      }
        },
        "sdfinfo": {
          "type": "object",
          "required": [
            "title",
            "version",
            "copyright",
            "license"
          ],
          "properties": {
            "title": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },

Koster & Bormann         Expires 3 December 2021               [Page 40]
Internet-Draft                  OneDM SDF                      June 2021

            "copyright": {
              "type": "string"
            },
            "license": {
              "type": "string"
            }
          },
   -      "additionalProperties": false
   +      "additionalProperties": {
   +      }
        },
        "thingqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfObject": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/objectqualities"
              }
            },
            "sdfThing": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/thingqualities"
              }
            }
          },
   -      "additionalProperties": false
   +      "additionalProperties": {
   +      }
        },
        "sdf-pointer": {
          "type": "string"

Koster & Bormann         Expires 3 December 2021               [Page 41]
Internet-Draft                  OneDM SDF                      June 2021

        },
        "pointer-list": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/sdf-pointer"
          }
        },
        "objectqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "minItems": {
              "type": "number"
            },
            "maxItems": {
              "type": "number"
            },
            "sdfProperty": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/propertyqualities"
              }
            },
            "sdfAction": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/actionqualities"
              }
            },
            "sdfEvent": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/eventqualities"
              }

Koster & Bormann         Expires 3 December 2021               [Page 42]
Internet-Draft                  OneDM SDF                      June 2021

            },
            "sdfData": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/dataqualities"
              }
            }
          },
   -      "additionalProperties": false
   +      "additionalProperties": {
   +      }
        },
        "propertyqualities": {
          "$ref": "#/definitions/dataqualities"
        },
        "dataqualities": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "number",
                    "string",
                    "boolean",
                    "integer",
                    "array"
                  ]
                },
                "enum": {
                  "type": "array",
                  "items": {
   -                "type": "string"
   +                "$ref": "#/definitions/allowed-types"
                  },
                  "minItems": 1
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {

Koster & Bormann         Expires 3 December 2021               [Page 43]
Internet-Draft                  OneDM SDF                      June 2021

                  "type": "number"
                },
                "exclusiveMinimum": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "exclusiveMaximum": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "type": "number"
                },
                "maxLength": {
                  "type": "number"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
   -              "type": "string",
   -              "enum": [
   -                "date-time",
   -                "date",
   -                "time",
   -                "uri",
   -                "uri-reference",
   -                "uuid"
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "date-time"
   +                },

Koster & Bormann         Expires 3 December 2021               [Page 44]
Internet-Draft                  OneDM SDF                      June 2021

   +                {
   +                  "type": "string",
   +                  "const": "date"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "time"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri-reference"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uuid"
   +                },
   +                {
   +                  "type": "string"
   +                }
                  ]
                },
                "minItems": {
                  "type": "number"
                },
                "maxItems": {
                  "type": "number"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "number",
                            "string",
                            "boolean",
                            "integer"
                          ]
                        },

Koster & Bormann         Expires 3 December 2021               [Page 45]
Internet-Draft                  OneDM SDF                      June 2021

                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "object"
                        },
                        "required": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },

Koster & Bormann         Expires 3 December 2021               [Page 46]
Internet-Draft                  OneDM SDF                      June 2021

                          "minItems": 1
                        },
                        "properties": {
                          "type": "object",
                          "additionalProperties": {
                            "$ref": "#/definitions/dataqualities"
                          }
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "sdfChoice": {

Koster & Bormann         Expires 3 December 2021               [Page 47]
Internet-Draft                  OneDM SDF                      June 2021

                          "type": "object",
                          "additionalProperties": {
                            "$ref": "#/definitions/dataqualities"
                          }
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
   +                },
   +                {
   +                  "type": "object",
   +                  "properties": {
   +                    "type": {
   +                      "type": "string"
   +                    },
   +                    "sdfRef": {

Koster & Bormann         Expires 3 December 2021               [Page 48]
Internet-Draft                  OneDM SDF                      June 2021

   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },
   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {
   +                      "type": "string"
   +                    },
   +                    "minimum": {
   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {
   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
                    }
                  ]
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },

Koster & Bormann         Expires 3 December 2021               [Page 49]
Internet-Draft                  OneDM SDF                      June 2021

   +            "units": {
   +              "type": "string"
   +            },
                "unit": {
                  "type": "string"
                },
   +            "scaleMinimum": {
   +              "type": "number"
   +            },
   +            "scaleMaximum": {
   +              "type": "number"
   +            },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "nullable": {
                  "type": "boolean"
                },
   +            "subtype": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
   +              ]
   +            },
                "sdfType": {
   -              "type": "string",
   -              "enum": [
   -                "byte-string",
   -                "unix-time"
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"

Koster & Bormann         Expires 3 December 2021               [Page 50]
Internet-Draft                  OneDM SDF                      June 2021

   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
                  ]
                },
                "contentFormat": {
                  "type": "string"
                }
              },
   -          "additionalProperties": false
   +          "additionalProperties": {
   +          }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/definitions/dataqualities"
                  }
                },
                "enum": {
                  "type": "array",
                  "items": {
   -                "type": "string"
   +                "$ref": "#/definitions/allowed-types"
                  },
                  "minItems": 1
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"

Koster & Bormann         Expires 3 December 2021               [Page 51]
Internet-Draft                  OneDM SDF                      June 2021

                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "exclusiveMaximum": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "type": "number"
                },
                "maxLength": {
                  "type": "number"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
   -              "type": "string",
   -              "enum": [
   -                "date-time",
   -                "date",
   -                "time",

Koster & Bormann         Expires 3 December 2021               [Page 52]
Internet-Draft                  OneDM SDF                      June 2021

   -                "uri",
   -                "uri-reference",
   -                "uuid"
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "date-time"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "date"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "time"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri-reference"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uuid"
   +                },
   +                {
   +                  "type": "string"
   +                }
                  ]
                },
                "minItems": {
                  "type": "number"
                },
                "maxItems": {
                  "type": "number"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {

Koster & Bormann         Expires 3 December 2021               [Page 53]
Internet-Draft                  OneDM SDF                      June 2021

                          "type": "string",
                          "enum": [
                            "number",
                            "string",
                            "boolean",
                            "integer"
                          ]
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {

Koster & Bormann         Expires 3 December 2021               [Page 54]
Internet-Draft                  OneDM SDF                      June 2021

                          "type": "string",
                          "const": "object"
                        },
                        "required": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "minItems": 1
                        },
                        "properties": {
                          "type": "object",
                          "additionalProperties": {
                            "$ref": "#/definitions/dataqualities"
                          }
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },

Koster & Bormann         Expires 3 December 2021               [Page 55]
Internet-Draft                  OneDM SDF                      June 2021

   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "sdfChoice": {
                          "type": "object",
                          "additionalProperties": {
                            "$ref": "#/definitions/dataqualities"
                          }
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }

Koster & Bormann         Expires 3 December 2021               [Page 56]
Internet-Draft                  OneDM SDF                      June 2021

   +                },
   +                {
   +                  "type": "object",
   +                  "properties": {
   +                    "type": {
   +                      "type": "string"
   +                    },
   +                    "sdfRef": {
   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },
   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {
   +                      "type": "string"
   +                    },
   +                    "minimum": {
   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {
   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
                    }
                  ]
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {

Koster & Bormann         Expires 3 December 2021               [Page 57]
Internet-Draft                  OneDM SDF                      June 2021

                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
   +            "units": {
   +              "type": "string"
   +            },
                "unit": {
                  "type": "string"
                },
   +            "scaleMinimum": {
   +              "type": "number"
   +            },
   +            "scaleMaximum": {
   +              "type": "number"
   +            },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "nullable": {
                  "type": "boolean"
                },
   +            "subtype": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
   +              ]
   +            },
                "sdfType": {

Koster & Bormann         Expires 3 December 2021               [Page 58]
Internet-Draft                  OneDM SDF                      June 2021

   -              "type": "string",
   -              "enum": [
   -                "byte-string",
   -                "unix-time"
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
                  ]
                },
                "contentFormat": {
                  "type": "string"
                }
              },
   -          "additionalProperties": false
   +          "additionalProperties": {
   +          }
            },
            {
              "type": "object",
              "properties": {
                "sdfChoice": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/definitions/dataqualities"
                  }
                },
                "enum": {
                  "type": "array",
                  "items": {
   -                "type": "string"
   +                "$ref": "#/definitions/allowed-types"
                  },
                  "minItems": 1
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"

Koster & Bormann         Expires 3 December 2021               [Page 59]
Internet-Draft                  OneDM SDF                      June 2021

                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "exclusiveMaximum": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "type": "number"
                },
                "maxLength": {
                  "type": "number"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
   -              "type": "string",
   -              "enum": [
   -                "date-time",
   -                "date",
   -                "time",
   -                "uri",
   -                "uri-reference",
   -                "uuid"

Koster & Bormann         Expires 3 December 2021               [Page 60]
Internet-Draft                  OneDM SDF                      June 2021

   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "date-time"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "date"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "time"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri-reference"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uuid"
   +                },
   +                {
   +                  "type": "string"
   +                }
                  ]
                },
                "minItems": {
                  "type": "number"
                },
                "maxItems": {
                  "type": "number"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "number",

Koster & Bormann         Expires 3 December 2021               [Page 61]
Internet-Draft                  OneDM SDF                      June 2021

                            "string",
                            "boolean",
                            "integer"
                          ]
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "object"
                        },

Koster & Bormann         Expires 3 December 2021               [Page 62]
Internet-Draft                  OneDM SDF                      June 2021

                        "required": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "minItems": 1
                        },
                        "properties": {
                          "type": "object",
                          "additionalProperties": {
                            "$ref": "#/definitions/dataqualities"
                          }
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }

Koster & Bormann         Expires 3 December 2021               [Page 63]
Internet-Draft                  OneDM SDF                      June 2021

                    },
                    {
                      "type": "object",
                      "properties": {
                        "sdfChoice": {
                          "type": "object",
                          "additionalProperties": {
                            "$ref": "#/definitions/dataqualities"
                          }
                        },
                        "sdfRef": {
                          "$ref": "#/definitions/sdf-pointer"
                        },
                        "description": {
                          "type": "string"
                        },
                        "$comment": {
                          "type": "string"
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "enum": {
                          "type": "array",
   -                      "items": {
   -                        "type": "string"
   -                      },
                          "minItems": 1
                        },
                        "format": {
                          "type": "string"
                        },
                        "minLength": {
                          "type": "number"
                        },
                        "maxLength": {
                          "type": "number"
                        }
                      },
   -                  "additionalProperties": false
   +                  "additionalProperties": {
   +                  }
   +                },
   +                {
   +                  "type": "object",

Koster & Bormann         Expires 3 December 2021               [Page 64]
Internet-Draft                  OneDM SDF                      June 2021

   +                  "properties": {
   +                    "type": {
   +                      "type": "string"
   +                    },
   +                    "sdfRef": {
   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },
   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {
   +                      "type": "string"
   +                    },
   +                    "minimum": {
   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {
   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
                    }
                  ]
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {

Koster & Bormann         Expires 3 December 2021               [Page 65]
Internet-Draft                  OneDM SDF                      June 2021

                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
   +            "units": {
   +              "type": "string"
   +            },
                "unit": {
                  "type": "string"
                },
   +            "scaleMinimum": {
   +              "type": "number"
   +            },
   +            "scaleMaximum": {
   +              "type": "number"
   +            },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "nullable": {
                  "type": "boolean"
                },
   -            "sdfType": {
   -              "type": "string",
   -              "enum": [
   -                "byte-string",
   -                "unix-time"
   -              ]
   -            },
   +            "subtype": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"

Koster & Bormann         Expires 3 December 2021               [Page 66]
Internet-Draft                  OneDM SDF                      June 2021

   +                }
   +              ]
   +            },
   +            "sdfType": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
   +              ]
   +            },
                "contentFormat": {
                  "type": "string"
                }
              },
   -          "additionalProperties": false
   +          "additionalProperties": {
   +          }
   +        },
   +        {
   +          "type": "object",
   +          "properties": {
   +            "type": {
   +              "type": "string"
   +            },
   +            "enum": {
   +              "type": "array",
   +              "items": {
   +                "$ref": "#/definitions/allowed-types"
   +              },
   +              "minItems": 1
   +            },
   +            "const": {
   +              "$ref": "#/definitions/allowed-types"
   +            },
   +            "default": {
   +              "$ref": "#/definitions/allowed-types"
   +            },
   +            "minimum": {
   +              "type": "number"
   +            },

Koster & Bormann         Expires 3 December 2021               [Page 67]
Internet-Draft                  OneDM SDF                      June 2021

   +            "maximum": {
   +              "type": "number"
   +            },
   +            "exclusiveMinimum": {
   +              "anyOf": [
   +                {
   +                  "type": "boolean"
   +                },
   +                {
   +                  "type": "number"
   +                }
   +              ]
   +            },
   +            "exclusiveMaximum": {
   +              "anyOf": [
   +                {
   +                  "type": "boolean"
   +                },
   +                {
   +                  "type": "number"
   +                }
   +              ]
   +            },
   +            "multipleOf": {
   +              "type": "number"
   +            },
   +            "minLength": {
   +              "type": "number"
   +            },
   +            "maxLength": {
   +              "type": "number"
   +            },
   +            "pattern": {
   +              "type": "string"
   +            },
   +            "format": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "date-time"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "date"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "time"

Koster & Bormann         Expires 3 December 2021               [Page 68]
Internet-Draft                  OneDM SDF                      June 2021

   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uri-reference"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "uuid"
   +                },
   +                {
   +                  "type": "string"
   +                }
   +              ]
   +            },
   +            "minItems": {
   +              "type": "number"
   +            },
   +            "maxItems": {
   +              "type": "number"
   +            },
   +            "uniqueItems": {
   +              "type": "boolean"
   +            },
   +            "items": {
   +              "anyOf": [
   +                {
   +                  "type": "object",
   +                  "properties": {
   +                    "type": {
   +                      "type": "string",
   +                      "enum": [
   +                        "number",
   +                        "string",
   +                        "boolean",
   +                        "integer"
   +                      ]
   +                    },
   +                    "sdfRef": {
   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },
   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {

Koster & Bormann         Expires 3 December 2021               [Page 69]
Internet-Draft                  OneDM SDF                      June 2021

   +                      "type": "string"
   +                    },
   +                    "minimum": {
   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {
   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
   +                },
   +                {
   +                  "type": "object",
   +                  "properties": {
   +                    "type": {
   +                      "type": "string",
   +                      "const": "object"
   +                    },
   +                    "required": {
   +                      "type": "array",
   +                      "items": {
   +                        "type": "string"
   +                      },
   +                      "minItems": 1
   +                    },
   +                    "properties": {
   +                      "type": "object",
   +                      "additionalProperties": {
   +                        "$ref": "#/definitions/dataqualities"
   +                      }
   +                    },
   +                    "sdfRef": {
   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },

Koster & Bormann         Expires 3 December 2021               [Page 70]
Internet-Draft                  OneDM SDF                      June 2021

   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {
   +                      "type": "string"
   +                    },
   +                    "minimum": {
   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {
   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
   +                },
   +                {
   +                  "type": "object",
   +                  "properties": {
   +                    "sdfChoice": {
   +                      "type": "object",
   +                      "additionalProperties": {
   +                        "$ref": "#/definitions/dataqualities"
   +                      }
   +                    },
   +                    "sdfRef": {
   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },
   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {
   +                      "type": "string"
   +                    },
   +                    "minimum": {

Koster & Bormann         Expires 3 December 2021               [Page 71]
Internet-Draft                  OneDM SDF                      June 2021

   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {
   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
   +                },
   +                {
   +                  "type": "object",
   +                  "properties": {
   +                    "type": {
   +                      "type": "string"
   +                    },
   +                    "sdfRef": {
   +                      "$ref": "#/definitions/sdf-pointer"
   +                    },
   +                    "description": {
   +                      "type": "string"
   +                    },
   +                    "$comment": {
   +                      "type": "string"
   +                    },
   +                    "minimum": {
   +                      "type": "number"
   +                    },
   +                    "maximum": {
   +                      "type": "number"
   +                    },
   +                    "enum": {
   +                      "type": "array",
   +                      "minItems": 1
   +                    },
   +                    "format": {

Koster & Bormann         Expires 3 December 2021               [Page 72]
Internet-Draft                  OneDM SDF                      June 2021

   +                      "type": "string"
   +                    },
   +                    "minLength": {
   +                      "type": "number"
   +                    },
   +                    "maxLength": {
   +                      "type": "number"
   +                    }
   +                  },
   +                  "additionalProperties": {
   +                  }
   +                }
   +              ]
   +            },
   +            "description": {
   +              "type": "string"
   +            },
   +            "label": {
   +              "type": "string"
   +            },
   +            "$comment": {
   +              "type": "string"
   +            },
   +            "sdfRef": {
   +              "$ref": "#/definitions/sdf-pointer"
   +            },
   +            "sdfRequired": {
   +              "$ref": "#/definitions/pointer-list"
   +            },
   +            "units": {
   +              "type": "string"
   +            },
   +            "unit": {
   +              "type": "string"
   +            },
   +            "scaleMinimum": {
   +              "type": "number"
   +            },
   +            "scaleMaximum": {
   +              "type": "number"
   +            },
   +            "observable": {
   +              "type": "boolean"
   +            },
   +            "readable": {
   +              "type": "boolean"
   +            },
   +            "writable": {

Koster & Bormann         Expires 3 December 2021               [Page 73]
Internet-Draft                  OneDM SDF                      June 2021

   +              "type": "boolean"
   +            },
   +            "nullable": {
   +              "type": "boolean"
   +            },
   +            "subtype": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
   +              ]
   +            },
   +            "sdfType": {
   +              "anyOf": [
   +                {
   +                  "type": "string",
   +                  "const": "byte-string"
   +                },
   +                {
   +                  "type": "string",
   +                  "const": "unix-time"
   +                },
   +                {
   +                  "type": "string"
   +                }
   +              ]
   +            },
   +            "contentFormat": {
   +              "type": "string"
   +            }
   +          },
   +          "additionalProperties": {
   +          }
            }
          ]
        },
        "allowed-types": {
          "anyOf": [
            {
              "type": "number"

Koster & Bormann         Expires 3 December 2021               [Page 74]
Internet-Draft                  OneDM SDF                      June 2021

            },
            {
              "type": "string"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "boolean"
              }
            },
            {
              "type": "object",
              "additionalProperties": {
              }
   +        },
   +        {
            }
          ]
        },
        "actionqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"

Koster & Bormann         Expires 3 December 2021               [Page 75]
Internet-Draft                  OneDM SDF                      June 2021

            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfInputData": {
              "$ref": "#/definitions/parameter-list"
            },
   +        "sdfRequiredInputData": {
   +          "$ref": "#/definitions/pointer-list"
   +        },
            "sdfOutputData": {
              "$ref": "#/definitions/parameter-list"
            },
            "sdfData": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/dataqualities"
              }
            }
          },
   -      "additionalProperties": false
   +      "additionalProperties": {
   +      }
        },
        "parameter-list": {
   -      "$ref": "#/definitions/dataqualities"
   +      "anyOf": [
   +        {
   +          "$ref": "#/definitions/pointer-list"
   +        },
   +        {
   +          "$ref": "#/definitions/dataqualities"
   +        }
   +      ]
        },
        "eventqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {

Koster & Bormann         Expires 3 December 2021               [Page 76]
Internet-Draft                  OneDM SDF                      June 2021

              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfOutputData": {
              "$ref": "#/definitions/parameter-list"
            },
            "sdfData": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/dataqualities"
              }
            }
          },
   -      "additionalProperties": false
   +      "additionalProperties": {
   +      }
        },
        "productqualities": {
          "$ref": "#/definitions/thingqualities"
        }
      }
    }

Acknowledgements

   This draft is based on "sdf.md" and "sdf-schema.json" in the old one-
   data-model "language" repository, as well as Ari Keränen's "alt-
   schema" from the Ericsson Research "ipso-odm" repository (which is
   now under subdirectory "sdflint" in the one-data model "tools"
   repository).

Contributors

   Ari Keränen
   Ericsson
   FI-02420 Jorvas
   Finland

   Email: ari.keranen@ericsson.com

Koster & Bormann         Expires 3 December 2021               [Page 77]
Internet-Draft                  OneDM SDF                      June 2021

   Wouter van der Beek
   Cascoda Ltd.
   Threefield House
   Threefield Lane
   Southampton
   United Kingdom

   Email: w.vanderbeek@cascoda.com

Authors' Addresses

   Michael Koster (editor)
   Dogtiger Labs
   524 H Street
   Antioch, CA,  94509
   United States of America

   Phone: +1-707-502-5136
   Email: michaeljohnkoster@gmail.com

   Carsten Bormann (editor)
   Universität Bremen TZI
   Postfach 330440
   D-28359 Bremen
   Germany

   Phone: +49-421-218-63921
   Email: cabo@tzi.org

Koster & Bormann         Expires 3 December 2021               [Page 78]