{"id":13565179,"url":"https://github.com/w3c/wot-thing-description","last_synced_at":"2025-04-13T00:47:33.925Z","repository":{"id":37502484,"uuid":"81894950","full_name":"w3c/wot-thing-description","owner":"w3c","description":"Web of Things (WoT) Thing Description","archived":false,"fork":false,"pushed_at":"2025-04-08T22:06:58.000Z","size":31576,"stargazers_count":136,"open_issues_count":240,"forks_count":63,"subscribers_count":36,"default_branch":"main","last_synced_at":"2025-04-13T00:47:26.248Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://w3c.github.io/wot-thing-description/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w3c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-14T02:24:07.000Z","updated_at":"2025-04-02T14:22:59.000Z","dependencies_parsed_at":"2023-10-20T23:43:47.621Z","dependency_job_id":"2aded7fc-e9bd-4fc7-861f-b0f02f01435c","html_url":"https://github.com/w3c/wot-thing-description","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fwot-thing-description","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fwot-thing-description/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fwot-thing-description/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fwot-thing-description/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w3c","download_url":"https://codeload.github.com/w3c/wot-thing-description/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650434,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:42.095Z","updated_at":"2025-04-13T00:47:33.904Z","avatar_url":"https://github.com/w3c.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://w3.org/wot\"\u003e\n    \u003cimg alt=\"Web of Things Homepage\" src=\"https://www.w3.org/WoT/IG/wiki/images/8/8f/WOT-hz.svg\" width=\"300\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://w3c.social/@wot\"\u003e\n    \u003cimg alt=\"Follow on Mastodon\" src=\"https://img.shields.io/mastodon/follow/111609289932468076?domain=https%3A%2F%2Fw3c.social\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://twitter.com/W3C_WoT\"\u003e\n    \u003cimg alt=\"X (formerly Twitter) Follow\" src=\"https://img.shields.io/twitter/follow/W3C_WoT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://stackoverflow.com/questions/tagged/web-of-things\"\u003e\n    \u003cimg alt=\"Stack Exchange questions\" src=\"https://img.shields.io/stackexchange/stackoverflow/t/web-of-things?style=plastic\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.w3.org/TR/2023/REC-wot-thing-description11-20231205/\"\u003e\n    \u003cimg alt=\"Latest REC\" src=\"https://img.shields.io/badge/W3C_REC-Latest-005a9c\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://w3c.github.io/wot-thing-description\"\u003e\n    \u003cimg alt=\"Latest Editor's Draft\" src=\"https://img.shields.io/badge/Editor's_Draft-Latest-fe914a\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Web of Things (WoT) Thing Description\n\nGeneral information about the Web of Things can be found at https://www.w3.org/WoT/.\n\n---\n\nA Thing Description describes the metadata and interfaces of Things, where a Thing is an abstraction of a physical or virtual entity that provides interactions to and participates in the Web of Things.\nThing Descriptions provide a set of interactions based on a small vocabulary that makes it possible both to integrate diverse devices and to allow diverse applications to interoperate.\nThing Descriptions, by default, are encoded in a JSON format that also allows JSON-LD processing.\n\n## Logistics\n\n- Call information: We use the W3C Calendar. You can find the next WoT TD/Binding Templates calls at https://www.w3.org/groups/wg/wot/calendar.\n- Wiki (contains agenda): \u003chttps://www.w3.org/WoT/IG/wiki/WG_WoT_Thing_Description_WebConf\u003e\n- [Contribution rules](./CONTRIBUTING.md)\n\n## Publications\n\n- [Latest Editor's Draft](https://w3c.github.io/wot-thing-description) (syncs to this repository's main branch)\n\u003c!-- - [Latest Working Draft](w3.org link goes here) (This is relevant for notes and REC-track until publication) --\u003e\n- Recommendations:\n  - [Version 1.1](https://www.w3.org/TR/2023/REC-wot-thing-description11-20231205/) - [Repository Snapshot](https://github.com/w3c/wot-thing-description/tree/REC1.1)\n  - [Version 1.0](https://www.w3.org/TR/2020/REC-wot-thing-description-20200409/) - [Repository Snapshot](https://github.com/w3c/wot-thing-description/tree/REC1.0)\n- Other deliverables:\n  - [Implementation Report Version 1.1](https://w3c.github.io/wot-thing-description/testing/report11.html)\n  - [Implementation Report Version 1.0](https://w3c.github.io/wot-thing-description/testing/report.html)\n  - [Resources such as JSON-LD Context, Ontologies, JSON Schemas for validation](https://github.com/w3c/wot-resources/tree/main/td). Also see [below](https://github.com/w3c/wot-thing-description/?tab=readme-ov-file#resources-used-together-with-the-td-specification).\n\n---\n\n## Instructions for Editors and Contributors\n\nIf you have followed the [Contribution rules](./CONTRIBUTING.md) and want to contribute, please follow the instructions below.\n\n### Working on the Specifications\n\nPart of the document is automatically rendered using the [STTL.js](https://github.com/vcharpenay/STTL.js/) RDF template engine and Node.js.\n_Any change to the document must be performed on the main HTML template [`index.template.html`](index.template.html)_, and not on `index.html`.\nTo render `index.html`, along with SVG figures, run:\n\n- `npm install` to install all the dependencies\n- `npm run render` to render all the files\n\nYou can also invoke the rendering script directly:\n\n```sh\n./render.sh\n```\n\nRequirements: Node.js 16, [GraphViz](https://graphviz.org/).\n\nThe script will first download and install some dependencies (triple store, Node.js dependencies) and then execute the JS script `render.js`.\nThe latter should always be executed within `render.sh` since it requires some env variables to be set first.\n\nFor Windows users, the script should be run in a [Cygwin shell](http://cygwin.com/). The Git package from Cygwin distribution should not be used. Alternative Git client distribution such as [Git for Windows](https://gitforwindows.org/) works better when you encounter an issue building the document using Cygwin.\n\n#### Automatic rendering\n\nThe repository is equipped with git hooks that automate the rendering process. To enable them, run `npm install` in the root folder. The hooks will render the documents automatically at every commit.\nIf you run the rending process manually or you do not want to execute the automatic process add the `--no-verify` option to your commit command.\n\n#### Formatting\n\nWe use Prettier to automatically format the files, such that we have small git diffs in Pull Requests.\nMake sure to run `npm run format` before committing your files.\nIf not, a GitHub action will format them by overwriting your last commit.\n\n### Implementation Report\n\nTo generate the implementation report,\nincluding a list of normative assertions,\nissue the following command:\n\n```sh\nnpm run assertions\n```\n\nA draft implementation report will be generated and output to\n[testing/report.html](testing/report.html)\nwhich will use relative links back up to [index.html](index.html).\nThe input to this process is [index.html](index.html)\n(_not_ `index.html.template`) so make sure to execute `npm run render` first.\n\nFor this to work, the assertions need to\nbe marked up as in the following examples and follow RFC2119 conventions:\n\n```html\n\u003cspan class=\"rfc2119-assertion\" id=\"additional-vocabularies\"\u003e\n  A JSON TD MAY contain additional optional vocabularies that are not in the Thing Description core model.\n\u003c/span\u003e\n\u003cspan class=\"rfc2119-assertion\" id=\"additional-vocabularies-prefix\"\u003e\n  Terms from additional optional vocabularies used in a JSON-TD MUST carry a prefix for identification within the key\n  name (e.g., \u003ctt\u003e\"http:header\"\u003c/tt\u003e).\n\u003c/span\u003e\n```\n\nThe assertions must be marked up as follows:\n\n- Enclose each assertion in a span.\n- Mark the span with a unique id.\n  It is recommended that the section id be followed\n  by a short unique name for the specific assertion.\n- Mark the span with a 'class' attribute set to `rfc2119-assertion`.\n- Include one (and only one) instance of the RFC2119 keywords (MUST, MAY, etc.)\n  in capitals.\n  This markup does not change the rendering; it just clearly indicates\n  and uniquely names the assertion.\n\nIt is strongly recommended to make assertions independent of context.\nIn particular, avoid using pronouns or relational expressions\nreferring to previous statements not included in the assertion.\nSuch references can always be replaced with their\nantecedent (\"dereferenced\") without changing the meaning,\nand this is less ambiguous anyway.\nFor example, instead of using \"this serialization\", use\n\"a JSON-TD serialization\".\n\nAlso, assertions should ideally only constrain one item.\nMultiple constraints should be stated in separate sentences.\n\nNote that the above rendering process also assigns each\ntable entry a unique ID and these are also listed in the\ntable included in the implementation report.\n\nOther data, e.g., data from test results, test specifications,\nand implementation descriptions, are also needed to complete the\nimplementation report. See [testing/README.md](testing/README.md)\nfor details.\n\nThe generation of the implementation report also generates a CSS file\n`testing/atrisk.css`\nthat highlights at-risk items in the generated `index.html`. The at-risk\nitems are listed in `testing/inputs/atrisk.csv`. If at-risk items are\nupdated, to update the at-risk highlighting the implementation report\nneeds to be generated first, and then the rendering.\n\n## Known Implementations\n\nThe W3C WoT collects known implementations at \u003chttps://www.w3.org/WoT/developers/\u003e. Implementations of the Thing Description are found under all categories\n\n## Labeling Conventions\n\nWe use the GitHub labels found at \u003chttps://github.com/w3c/wot-thing-description/labels\u003e. Please try to reuse the labels before creating new ones.\n\n## Resources used together with the TD Specification\n\nIn addition to the TD specification, the Working Group maintains additional resources that are relevant for implementers.\nThese are categorized below, and their use cases are explained.\n\n### Vocabularies and Ontologies\n\nThe present specification introduces the TD Information Model as a set of constraints over different vocabularies.\nThe current list of vocabularies is found under [the namespaces section](https://w3c.github.io/wot-thing-description/#namespaces).\n\nBy default, if a user agent does not perform any content negotiation, human-readable HTML documentation is returned instead of the RDF document.\nTo perform content negotiation, clients must include the HTTP header `Accept: text/turtle` in their request.\n\nThe working documents are in the [ontology](./ontology) folder.\n\n### Context files\n\nWe provide a JSON-LD context file to reference the TD ontology within JSON-LD documents, including TDs.\nThe working document can be found at [context/td-context-1.1.jsonld](./context/td-context-1.1.jsonld), and the version-specific context file can be retrieved from the `@context` value of a TD 1.0 or TD 1.1 instance.\n**Note** that [context/td-context-1.1.jsonld](./context/td-context-1.1.jsonld) is the result of the rendering process and should not be edited manually.\nIn practice, the rendering process merges [context/td-context.jsonld](./context/td-context.jsonld), [context/json-schema-context.jsonld](./context/json-schema-context.jsonld), [context/wot-security-context.jsonld](./context/wot-security-context.jsonld), [context/hypermedia-context.jsonld](./context/hypermedia-context.jsonld).\n\nYou can find more information on using the context at [the Appendix of the TD specification](https://w3c.github.io/wot-thing-description/#json-ld-ctx-usage).\n\n### JSON Schemas\n\nWe provide JSON Schema for TD and TM instances.\nThe working documents are found under the [validation](./validation/) folder, and specific versions are linked to the Thing Description specification.\nThese can be used for the purposes below among others:\n\n- TD and TM validation\n- Type generation for programming languages\n\n**Note** that TM Schema is generated from the TD schema using the `tmSchemaGenerator.js` script.\n\nEach commit here will sync to the master, which will expose the content to http://w3c.github.io/wot-thing-description/.\nTo make contributions, please provide pull requests to the appropriate files,\nkeeping in mind that some files, most notably `index.html` and `testing/report.html`,\nas well as most files under `visualization`, are\nautogenerated and should not be modified directly.\nSee GitHub [help](https://help.github.com/articles/using-pull-requests/) for\ninformation on how to create a pull request.\n\n## Obsolete Documents\n\nSome documents of this repository are not required to be kept in the upstream branch (main branch).\nThey are deleted but are recorded below with a link pointing to a tagged branch:\n\n- Review of the main document for TAG: \u003chttps://github.com/w3c/wot-thing-description/blob/CR-request/tag-review.html\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3c%2Fwot-thing-description","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw3c%2Fwot-thing-description","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3c%2Fwot-thing-description/lists"}