diff --git a/context/hypermedia-context.jsonld b/context/hypermedia-context.jsonld index 8e0794439..065d6cf13 100644 --- a/context/hypermedia-context.jsonld +++ b/context/hypermedia-context.jsonld @@ -33,7 +33,9 @@ "unobserveallproperties": "td:unobserveAllProperties", "invokeaction": "td:invokeAction", "subscribeevent": "td:subscribeEvent", + "subscribeallevents": "td:subscribeAllEvents", "unsubscribeevent": "td:unsubscribeEvent", + "unsubscribeallevents": "td:unsubscribeAllEvents", "readallproperties": "td:readAllProperties", "writeallproperties": "td:writeAllProperties", "readmultipleproperties": "td:readMultipleProperties", diff --git a/context/td-context-1.1.jsonld b/context/td-context-1.1.jsonld index 0fd074896..ab18103c9 100644 --- a/context/td-context-1.1.jsonld +++ b/context/td-context-1.1.jsonld @@ -405,7 +405,9 @@ "unobserveallproperties": "td:unobserveAllProperties", "invokeaction": "td:invokeAction", "subscribeevent": "td:subscribeEvent", + "subscribeallevents": "td:subscribeAllEvents", "unsubscribeevent": "td:unsubscribeEvent", + "unsubscribeallevents": "td:unsubscribeAllEvents", "readallproperties": "td:readAllProperties", "writeallproperties": "td:writeAllProperties", "readmultipleproperties": "td:readMultipleProperties", @@ -495,7 +497,9 @@ "unobserveallproperties": "td:unobserveAllProperties", "invokeaction": "td:invokeAction", "subscribeevent": "td:subscribeEvent", + "subscribeallevents": "td:subscribeAllEvents", "unsubscribeevent": "td:unsubscribeEvent", + "unsubscribeallevents": "td:unsubscribeAllEvents", "readallproperties": "td:readAllProperties", "writeallproperties": "td:writeAllProperties", "readmultipleproperties": "td:readMultipleProperties", diff --git a/context/td-context.ttl b/context/td-context.ttl index 2d3cd9c09..af7c0fa07 100644 --- a/context/td-context.ttl +++ b/context/td-context.ttl @@ -417,6 +417,150 @@ _:securityDefinitions "securityDefinitions" . _:securityDefinitions . _:securityDefinitions . +_:securityDefinitions _:securityDefinitions-context . +_:securityDefinitions-context . +_:securityDefinitions-context . +_:securityDefinitions-context _:securityDefinitions-td . +_:securityDefinitions-td . +_:securityDefinitions-td "td" . +_:securityDefinitions-td . +_:securityDefinitions-context _:securityDefinitions-jsonschema . +_:securityDefinitions-jsonschema . +_:securityDefinitions-jsonschema "jsonschema" . +_:securityDefinitions-jsonschema . +_:securityDefinitions-context _:securityDefinitions-wotsec . +_:securityDefinitions-wotsec . +_:securityDefinitions-wotsec "wotsec" . +_:securityDefinitions-wotsec . +_:securityDefinitions-context _:securityDefinitions-hctl . +_:securityDefinitions-hctl . +_:securityDefinitions-hctl "hctl" . +_:securityDefinitions-hctl . +_:securityDefinitions-context _:securityDefinitions-dct . +_:securityDefinitions-dct . +_:securityDefinitions-dct "dct" . +_:securityDefinitions-dct . +_:securityDefinitions-context _:securityDefinitions-rdf . +_:securityDefinitions-rdf . +_:securityDefinitions-rdf "rdf" . +_:securityDefinitions-rdf . +_:securityDefinitions-context _:securityDefinitions-in . +_:securityDefinitions-in . +_:securityDefinitions-in "in" . +_:securityDefinitions-in . +_:securityDefinitions-context _:securityDefinitions-name . +_:securityDefinitions-name . +_:securityDefinitions-name "name" . +_:securityDefinitions-name . +_:securityDefinitions-context _:securityDefinitions-authorization . +_:securityDefinitions-authorization . +_:securityDefinitions-authorization "authorization" . +_:securityDefinitions-authorization . +_:securityDefinitions-context _:securityDefinitions-token . +_:securityDefinitions-token . +_:securityDefinitions-token "token" . +_:securityDefinitions-token . +_:securityDefinitions-context _:securityDefinitions-refresh . +_:securityDefinitions-refresh . +_:securityDefinitions-refresh "refresh" . +_:securityDefinitions-refresh . +_:securityDefinitions-context _:securityDefinitions-proxy . +_:securityDefinitions-proxy . +_:securityDefinitions-proxy "proxy" . +_:securityDefinitions-proxy . +_:securityDefinitions-context _:securityDefinitions-scopes . +_:securityDefinitions-scopes . +_:securityDefinitions-scopes "scopes" . +_:securityDefinitions-scopes . +_:securityDefinitions-context _:securityDefinitions-flow . +_:securityDefinitions-flow . +_:securityDefinitions-flow "flow" . +_:securityDefinitions-flow . +_:securityDefinitions-context _:securityDefinitions-qop . +_:securityDefinitions-qop . +_:securityDefinitions-qop "qop" . +_:securityDefinitions-qop . +_:securityDefinitions-context _:securityDefinitions-alg . +_:securityDefinitions-alg . +_:securityDefinitions-alg "alg" . +_:securityDefinitions-alg . +_:securityDefinitions-context _:securityDefinitions-format . +_:securityDefinitions-format . +_:securityDefinitions-format "format" . +_:securityDefinitions-format . +_:securityDefinitions-context _:securityDefinitions-identity . +_:securityDefinitions-identity . +_:securityDefinitions-identity "identity" . +_:securityDefinitions-identity . +_:securityDefinitions-context _:securityDefinitions-allOf . +_:securityDefinitions-allOf . +_:securityDefinitions-allOf "allOf" . +_:securityDefinitions-allOf . +_:securityDefinitions-context _:securityDefinitions-oneOf . +_:securityDefinitions-oneOf . +_:securityDefinitions-oneOf "oneOf" . +_:securityDefinitions-oneOf . +_:securityDefinitions-context _:securityDefinitions-scheme . +_:securityDefinitions-scheme . +_:securityDefinitions-scheme "scheme" . +_:securityDefinitions-scheme . +_:securityDefinitions-context _:securityDefinitions-description . +_:securityDefinitions-description . +_:securityDefinitions-description "description" . +_:securityDefinitions-description . +_:securityDefinitions-context _:securityDefinitions-descriptions . +_:securityDefinitions-descriptions . +_:securityDefinitions-descriptions "descriptions" . +_:securityDefinitions-descriptions . +_:securityDefinitions-descriptions . +_:securityDefinitions-context _:securityDefinitions-nosec . +_:securityDefinitions-nosec . +_:securityDefinitions-nosec "nosec" . +_:securityDefinitions-nosec . +_:securityDefinitions-context _:securityDefinitions-combo . +_:securityDefinitions-combo . +_:securityDefinitions-combo "combo" . +_:securityDefinitions-combo . +_:securityDefinitions-context _:securityDefinitions-basic . +_:securityDefinitions-basic . +_:securityDefinitions-basic "basic" . +_:securityDefinitions-basic . +_:securityDefinitions-context _:securityDefinitions-digest . +_:securityDefinitions-digest . +_:securityDefinitions-digest "digest" . +_:securityDefinitions-digest . +_:securityDefinitions-context _:securityDefinitions-apikey . +_:securityDefinitions-apikey . +_:securityDefinitions-apikey "apikey" . +_:securityDefinitions-apikey . +_:securityDefinitions-context _:securityDefinitions-bearer . +_:securityDefinitions-bearer . +_:securityDefinitions-bearer "bearer" . +_:securityDefinitions-bearer . +_:securityDefinitions-context _:securityDefinitions-cert . +_:securityDefinitions-cert . +_:securityDefinitions-cert "cert" . +_:securityDefinitions-cert . +_:securityDefinitions-context _:securityDefinitions-psk . +_:securityDefinitions-psk . +_:securityDefinitions-psk "psk" . +_:securityDefinitions-psk . +_:securityDefinitions-context _:securityDefinitions-public . +_:securityDefinitions-public . +_:securityDefinitions-public "public" . +_:securityDefinitions-public . +_:securityDefinitions-context _:securityDefinitions-pop . +_:securityDefinitions-pop . +_:securityDefinitions-pop "pop" . +_:securityDefinitions-pop . +_:securityDefinitions-context _:securityDefinitions-oauth2 . +_:securityDefinitions-oauth2 . +_:securityDefinitions-oauth2 "oauth2" . +_:securityDefinitions-oauth2 . +_:securityDefinitions-context _:securityDefinitions-uriVariables . +_:securityDefinitions-uriVariables . +_:securityDefinitions-uriVariables "uriVariables" . +_:securityDefinitions-uriVariables . _:context _:schemaDefinitions . _:schemaDefinitions . _:schemaDefinitions "schemaDefinitions" . @@ -548,10 +692,18 @@ _:hasForm-context _:hasForm-subscribee _:hasForm-subscribeevent . _:hasForm-subscribeevent "subscribeevent" . _:hasForm-subscribeevent . +_:hasForm-context _:hasForm-subscribeallevents . +_:hasForm-subscribeallevents . +_:hasForm-subscribeallevents "subscribeallevents" . +_:hasForm-subscribeallevents . _:hasForm-context _:hasForm-unsubscribeevent . _:hasForm-unsubscribeevent . _:hasForm-unsubscribeevent "unsubscribeevent" . _:hasForm-unsubscribeevent . +_:hasForm-context _:hasForm-unsubscribeallevents . +_:hasForm-unsubscribeallevents . +_:hasForm-unsubscribeallevents "unsubscribeallevents" . +_:hasForm-unsubscribeallevents . _:hasForm-context _:hasForm-readallproperties . _:hasForm-readallproperties . _:hasForm-readallproperties "readallproperties" . @@ -708,10 +860,18 @@ _:hasLink-context _:hasLink-subscribee _:hasLink-subscribeevent . _:hasLink-subscribeevent "subscribeevent" . _:hasLink-subscribeevent . +_:hasLink-context _:hasLink-subscribeallevents . +_:hasLink-subscribeallevents . +_:hasLink-subscribeallevents "subscribeallevents" . +_:hasLink-subscribeallevents . _:hasLink-context _:hasLink-unsubscribeevent . _:hasLink-unsubscribeevent . _:hasLink-unsubscribeevent "unsubscribeevent" . _:hasLink-unsubscribeevent . +_:hasLink-context _:hasLink-unsubscribeallevents . +_:hasLink-unsubscribeallevents . +_:hasLink-unsubscribeallevents "unsubscribeallevents" . +_:hasLink-unsubscribeallevents . _:hasLink-context _:hasLink-readallproperties . _:hasLink-readallproperties . _:hasLink-readallproperties "readallproperties" . diff --git a/index.html b/index.html index 60875ce2c..567393d91 100644 --- a/index.html +++ b/index.html @@ -1325,11 +1325,12 @@

Core Vocabulary Definitions

types: readallproperties, writeallproperties, readmultipleproperties, - writemultipleproperties, observeallproperties, or - unobserveallproperties. (See + writemultipleproperties, observeallproperties, + unobserveallproperties, subscribeallevents, or + unsubscribeallevents. (See an example for an usage of form in a Thing instance.)

-

The data schema for each of these meta-interactions is +

The data schema for each of the property meta-interactions is constructed by combining the data schemas of each PropertyAffordance instance in a single ObjectSchema instance, where the @@ -2135,7 +2136,7 @@

Hypermedia Controls Vocabulary Definitions

the correct form for the operation required. op can be assigned one or more interaction verb(s) each representing a semantic intention of an - operation.optionalstring or Array of string (one of readproperty, writeproperty, observeproperty, unobserveproperty, invokeaction, subscribeevent, unsubscribeevent, readallproperties, writeallproperties, readmultipleproperties, writemultipleproperties, observeallproperties, or unobserveallproperties)

Possible values for the contentCoding + operation.optionalstring or Array of string (one of readproperty, writeproperty, observeproperty, unobserveproperty, invokeaction, subscribeevent, unsubscribeevent, readallproperties, writeallproperties, readmultipleproperties, writemultipleproperties, observeallproperties, unobserveallproperties, subscribeallevents, or unsubscribeallevents)

Possible values for the contentCoding property can be found, e.g., in the IANA HTTP content coding registry.

@@ -6956,7 +6957,9 @@

JSON Schema for TD Instance Validation

"readmultipleproperties", "writemultipleproperties", "observeallproperties", - "unobserveallproperties" + "unobserveallproperties", + "subscribeallevents", + "unsubscribeallevents" ] }, { @@ -6969,7 +6972,9 @@

JSON Schema for TD Instance Validation

"readmultipleproperties", "writemultipleproperties", "observeallproperties", - "unobserveallproperties" + "unobserveallproperties", + "subscribeallevents", + "unsubscribeallevents" ] } } @@ -7950,7 +7955,7 @@

Changes from First Public Working Draft 24 November 2
  • In section :
    • A new term additionalResponses was added. It can be used to define error responses.
    • -
    • observeallproperties and unobserveallproperties were added to the definition of op.
    • +
    • observeallproperties, unobserveallproperties, subscribeallevents and unsubscribeallevents were added to the definition of op.
    • Type definitions for terms contentType, contentCoding, security, op were changed.
    • A paragraph was added to describe how a Consumer can behave given multiple form choices.
    diff --git a/index.template.html b/index.template.html index 784e31740..380cb3aa3 100644 --- a/index.template.html +++ b/index.template.html @@ -5660,7 +5660,7 @@

    Changes from First Public Working Draft 24 November 2
  • In section :
    • A new term additionalResponses was added. It can be used to define error responses.
    • -
    • observeallproperties and unobserveallproperties were added to the definition of op.
    • +
    • observeallproperties, unobserveallproperties, subscribeallevents and unsubscribeallevents were added to the definition of op.
    • Type definitions for terms contentType, contentCoding, security, op were changed.
    • A paragraph was added to describe how a Consumer can behave given multiple form choices.
    diff --git a/ontology/td.html b/ontology/td.html index f859f0593..6c94e2131 100644 --- a/ontology/td.html +++ b/ontology/td.html @@ -101,7 +101,7 @@

    Terminology

    Axiomatization

    Classes

    ActionAffordance

    IRI: https://www.w3.org/2019/wot/td#ActionAffordance

    An Interaction Affordance that allows to invoke a function of the Thing, which manipulates state (e.g., toggling a lamp on or off) or triggers a process on the Thing (e.g., dim a lamp over time).
    Sub-class oftd:InteractionAffordance
    In the domain oftd:hasInputSchema
    td:hasOutputSchema
    td:isIdempotent
    td:isSafe
    In the range oftd:hasActionAffordance

    EventAffordance

    IRI: https://www.w3.org/2019/wot/td#EventAffordance

    An Interaction Affordance that describes an event source, which asynchronously pushes event data to Consumers (e.g., overheating alerts).
    Sub-class oftd:InteractionAffordance
    In the domain oftd:hasCancellationSchema
    td:hasNotificationSchema
    td:hasSubscriptionSchema
    In the range oftd:hasEventAffordance

    InteractionAffordance

    IRI: https://www.w3.org/2019/wot/td#InteractionAffordance

    Metadata of a Thing that shows the possible choices to Consumers, thereby suggesting how Consumers may interact with the Thing. There are many types of potential affordances, but W3C WoT defines three types of Interaction Affordances: Properties, Actions, and Events.
    Super-class oftd:ActionAffordance
    td:EventAffordance
    td:PropertyAffordance
    In the domain oftd:hasForm
    td:hasUriTemplateSchema
    td:name
    In the range oftd:hasInteractionAffordance
    -

    OperationType

    IRI: https://www.w3.org/2019/wot/td#OperationType

    Enumeration of well-known operation types necessary to implement the WoT interaction model
    Enumeration memberstd:invokeAction
    td:observeAllbserveProperties
    td:observeProperty
    td:readAllProperties
    td:readMultipleProperties
    td:readProperty
    td:subscribeEvent
    td:unobserveAllProperties
    td:unobserveProperty
    td:unsubscribeEvent
    td:writeAllProperties
    td:writeMultipleProperties
    td:writeProperty
    +

    OperationType

    IRI: https://www.w3.org/2019/wot/td#OperationType

    Enumeration of well-known operation types necessary to implement the WoT interaction model
    Enumeration memberstd:invokeAction
    td:observeAllbserveProperties
    td:observeProperty
    td:readAllProperties
    td:readMultipleProperties
    td:readProperty
    td:subscribeAllEvents
    td:subscribeEvent
    td:unobserveAllProperties
    td:unobserveProperty
    td:unsubscribeAllEvents
    td:unsubscribeEvent
    td:writeAllProperties
    td:writeMultipleProperties
    td:writeProperty

    PropertyAffordance

    IRI: https://www.w3.org/2019/wot/td#PropertyAffordance

    An Interaction Affordance that exposes state of the Thing. This state can then be retrieved (read) and optionally updated (write). Things can also choose to make Properties observable by pushing the new state after a change.
    Sub-class oftd:InteractionAffordance
    In the domain oftd:isObservable
    In the range oftd:hasPropertyAffordance

    Thing

    IRI: https://www.w3.org/2019/wot/td#Thing

    An abstraction of a physical or a virtual entity whose metadata and interfaces are described by a WoT Thing Description, whereas a virtual entity is the composition of one or more Things.
    In the domain oftd:hasForm
    td:hasInteractionAffordance
    td:hasSecurityConfiguration

    Object Properties

    hasActionAffordance

    IRI: https://www.w3.org/2019/wot/td#hasActionAffordance

    All Action-based interaction affordance of the Thing.
    Range includestd:ActionAffordance

    hasCancellationSchema

    IRI: https://www.w3.org/2019/wot/td#hasCancellationSchema

    Defines any data that needs to be passed to cancel a subscription, e.g., a specific message to remove a Webhook
    Domain includestd:EventAffordance
    @@ -119,14 +119,16 @@

    Terminology

    isObservable

    IRI: https://www.w3.org/2019/wot/td#isObservable

    A hint that indicates whether Servients hosting the Thing and Intermediaries should provide a Protocol Binding that supports the observeproperty and unobserveproperty operations for this Property.
    Domain includestd:PropertyAffordance
    Range includesschema:Boolean

    isSafe

    IRI: https://www.w3.org/2019/wot/td#isSafe

    Signals if the action is safe (=true) or not. Used to signal if there is no internal state (cf. resource state) is changed when invoking an Action. In that case responses can be cached as example.
    Domain includestd:ActionAffordance
    Range includesschema:Boolean

    name

    IRI: https://www.w3.org/2019/wot/td#name

    Indexing property to store entity names when serializing them in a JSON-LD @index container.
    Domain includestd:InteractionAffordance
    Range includesschema:Text

    Named Individuals

    invokeAction

    IRI: https://www.w3.org/2019/wot/td#invokeAction

    Operation type of forms used to read a property value
    Instance oftd:OperationType
    -

    observeAllbserveProperties

    IRI: https://www.w3.org/2019/wot/td#observeAllbserveProperties

    Operation type of forms used to observe all property values
    Instance oftd:OperationType
    +

    observeAllbserveProperties

    IRI: https://www.w3.org/2019/wot/td#observeAllProperties

    Operation type of forms used to observe all property values
    Instance oftd:OperationType

    observeProperty

    IRI: https://www.w3.org/2019/wot/td#observeProperty

    Operation type of forms used to observe a property value
    Instance oftd:OperationType

    readAllProperties

    IRI: https://www.w3.org/2019/wot/td#readAllProperties

    Operation type of forms used to read all property values
    Instance oftd:OperationType

    readMultipleProperties

    IRI: https://www.w3.org/2019/wot/td#readMultipleProperties

    Operation type of forms used to read a property value
    Instance oftd:OperationType

    readProperty

    IRI: https://www.w3.org/2019/wot/td#readProperty

    Operation type of forms used to read a property value
    Instance oftd:OperationType
    +

    subscribeAllEvents

    IRI: https://www.w3.org/2019/wot/td#subscribeAllEvents

    Operation type of forms used to subscribe to all event types
    Instance oftd:OperationType

    subscribeEvent

    IRI: https://www.w3.org/2019/wot/td#subscribeEvent

    Operation type of forms used to read a property value
    Instance oftd:OperationType

    unobserveAllProperties

    IRI: https://www.w3.org/2019/wot/td#unobserveAllProperties

    Operation type of forms used to unobserve all property value
    Instance oftd:OperationType

    unobserveProperty

    IRI: https://www.w3.org/2019/wot/td#unobserveProperty

    Operation type of forms used to unobserve a property value
    Instance oftd:OperationType
    +

    unsubscribeAllEvents

    IRI: https://www.w3.org/2019/wot/td#unsubscribeAllEvents

    Operation type of forms used to unsubscribe from all event types
    Instance oftd:OperationType

    unsubscribeEvent

    IRI: https://www.w3.org/2019/wot/td#unsubscribeEvent

    Operation type of forms used to read a property value
    Instance oftd:OperationType

    writeAllProperties

    IRI: https://www.w3.org/2019/wot/td#writeAllProperties

    Operation type of forms used to read a property value
    Instance oftd:OperationType

    writeMultipleProperties

    IRI: https://www.w3.org/2019/wot/td#writeMultipleProperties

    Operation type of forms used to write a property value
    Instance oftd:OperationType
    diff --git a/ontology/td.ttl b/ontology/td.ttl index 76554af26..788990c08 100644 --- a/ontology/td.ttl +++ b/ontology/td.ttl @@ -239,8 +239,8 @@ rdfs:comment """Operation type of forms used to read a property value"""@en ; rdfs:isDefinedBy : . -:observeAllbserveProperties rdf:type :OperationType ; - rdfs:label "observeAllbserveProperties" ; +:observeAllProperties rdf:type :OperationType ; + rdfs:label "observeAllProperties" ; rdfs:comment """Operation type of forms used to observe all property values"""@en ; rdfs:isDefinedBy : . @@ -264,3 +264,13 @@ rdfs:label "unsubscribeEvent" ; rdfs:comment """Operation type of forms used to read a property value"""@en ; rdfs:isDefinedBy : . + +:subscribeAllEvents rdf:type :OperationType ; + rdfs:label "subscribeAllEvents" ; + rdfs:comment """Operation type of forms used to subscribe to all event types"""@en ; + rdfs:isDefinedBy : . + +:unsubscribeAllEvents rdf:type :OperationType ; + rdfs:label "unsubscribeAllEvents" ; + rdfs:comment """Operation type of forms used to unsubscribe from all event types"""@en ; + rdfs:isDefinedBy : . diff --git a/validation/ext-td-json-schema-validation.json b/validation/ext-td-json-schema-validation.json index da8f1f624..1c2394d93 100644 --- a/validation/ext-td-json-schema-validation.json +++ b/validation/ext-td-json-schema-validation.json @@ -516,7 +516,9 @@ "readmultipleproperties", "writemultipleproperties", "observeallproperties", - "unobserveallproperties" + "unobserveallproperties", + "subscribeallevents", + "unsubscribeallevents" ] }, { @@ -529,7 +531,9 @@ "readmultipleproperties", "writemultipleproperties", "observeallproperties", - "unobserveallproperties" + "unobserveallproperties", + "subscribeallevents", + "unsubscribeallevents" ] } } diff --git a/validation/td-json-schema-validation.json b/validation/td-json-schema-validation.json index 2d614f1c8..0ac2ab253 100644 --- a/validation/td-json-schema-validation.json +++ b/validation/td-json-schema-validation.json @@ -438,7 +438,9 @@ "readmultipleproperties", "writemultipleproperties", "observeallproperties", - "unobserveallproperties" + "unobserveallproperties", + "subscribeallevents", + "unsubscribeallevents" ] }, { @@ -451,7 +453,9 @@ "readmultipleproperties", "writemultipleproperties", "observeallproperties", - "unobserveallproperties" + "unobserveallproperties", + "subscribeallevents", + "unsubscribeallevents" ] } } diff --git a/validation/td-validation.ttl b/validation/td-validation.ttl index 35c369b3f..dc033bb81 100644 --- a/validation/td-validation.ttl +++ b/validation/td-validation.ttl @@ -317,11 +317,12 @@ types: readallproperties, writeallproperties, readmultipleproperties, - writemultipleproperties, observeallproperties, or - unobserveallproperties. (See + writemultipleproperties, observeallproperties, + unobserveallproperties, subscribeallevents, or + unsubscribeallevents. (See an example for an usage of form in a Thing instance.)

    -

    The data schema for each of these meta-interactions is +

    The data schema for each of the property meta-interactions is constructed by combining the data schemas of each PropertyAffordance instance in a single ObjectSchema instance, where the @@ -639,6 +640,8 @@ td:writeMultipleProperties td:observeAllProperties td:unobserveAllProperties + td:subscribeAllEvents + td:unsubscribeAllEvents ); sh:datatype xsd:string ; sh:order 1 ;