Skip to content

Remove or add prefix to proprietary members of Thing Descriptions #2832

@benfrancis

Description

@benfrancis

The current Thing Descriptions exposed by the gateway include a number of proprietary members which are not W3C compliant, may of which are used internally by the gateway UI.

Some examples include:

  • floorplanX
  • floorplanY
  • layoutIndex
  • selectedCapability

In order to make these Thing Descriptions W3C compliant I suggest adding a prefix to include these as semantic annotations, e.g.

  • wtg:floorplanX
  • wtg:floorplanY
  • wtg:layoutIndex
  • wtg:selectedCapability

This would also require adding an additional @context at the top of Thing Descriptions to refer to this custom context, e.g.

  "@context": [
    "https://www.w3.org/2019/wot/td/v1",
    {"wt": "https://webthings.io/schemas"},
    ["wtg": "https://webthings.io/gateway"}
  ]

Alternatively it might be possible to keep them as they are without a prefix and with an anonymous context, but this risks name collisions:

  "@context": [
    "https://www.w3.org/2019/wot/td/v1",
    "https://webthings.io/schemas" 
    "https://webthings.io/gateway"
  ]

See also: #2809

I've noticed there are also a bunch of members added for Zigbee devices and I'm not exactly sure why these need to be exposed at the Web Thing API level:

  • profileId
  • endpoint
  • clusterId
  • attr
  • attrId
  • fireAndForget
  • bindNeeded
  • configReportNeeded
  • initialReadNeeded

One exception to this is the current iconHref member, for which there's now a W3C compliant alternative in the latest Thing Description 1.1 draft.

"links": [
  "rel": "icon",
  "sizes": "64x64",
  "/uploads/ibkbpR.svg"
]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Product Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions