Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Azure/opendigitaltwins-dtdl
Digital Twins Definition Language
https://github.com/Azure/opendigitaltwins-dtdl
Last synced: 3 months ago
JSON representation
Digital Twins Definition Language
- Host: GitHub
- URL: https://github.com/Azure/opendigitaltwins-dtdl
- Owner: Azure
- License: cc-by-4.0
- Created: 2019-04-30T23:42:55.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-03T14:43:05.000Z (5 months ago)
- Last Synced: 2024-07-06T01:35:23.160Z (4 months ago)
- Homepage:
- Size: 1.38 MB
- Stars: 461
- Watchers: 39
- Forks: 160
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-iotcentral - Digital Twins Definition Language
README
# Digital Twins Definition Language
The Digital Twins Definition Language (DTDL) is a language for describing models and interfaces for IoT digital twins. Digital twins are models of entities in the physical environment such as shipping containers, rooms, factory floors, or logical entities that participate in IoT solutions. Using DTDL to describe a digital twin's capabilities enables the IoT solutions to leverage the semantics of the entity.
DTDL is open to the community and Microsoft welcomes collaboration with customers, partners, and the industry. It is based on open W3C standards such as [JSON-LD](https://json-ld.org/) and [RDF](https://www.w3.org/RDF/) which allow for easier adoption across services and tooling.
## :dart: DTDL Versions
DTDL has evolved over time, resulting in the next versions:
|Version|Docs|Notes|
|---|---|---|
|v1-preview|[dtdlv1.md](./DTDL/v1-preview/dtdlv1.md)|Out of support|
|v2|[DTDL.v2.md](./DTDL/v2/DTDL.v2.md)|Supported in ADT, IoTCentral and IoT Plug and Play|
|v3|[DTDL.v3.md](./DTDL/v3/DTDL.v3.md)|Supported in ADT and IoT Plug and Play|## :point_right: A Simple Example
The next interface describes a thermostat reporting temperature as degreeCelsius:
```json
{
"@context": [
"dtmi:dtdl:context;3",
"dtmi:dtdl:extension:quantitativeTypes;1"
],
"@id": "dtmi:com:example:Thermostat;1",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature.",
"contents": [
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temperature",
"displayName" : "Temperature",
"description" : "Temperature in degrees Celsius.",
"schema": "double",
"unit": "degreeCelsius"
}
]
}
```## :cloud: Services using DTDL
- [Azure Digital Twins](https://azure.microsoft.com/products/digital-twins/)
- [Azure IoT Plug and Play](https://aka.ms/iotpnp)
- [Azure Device Models Repository](https://aka.ms/dmr)
- [Azure IoT Central](https://azure.microsoft.com/products/iot-central)## :hammer_and_wrench: Developer Tools for DTDL
- [DTDL Parser for .NET](https://aka.ms/dtdl-parser)
- [VSCode DTDL extension](https://aka.ms/dtdl-vscode)
- [Azure IoT Explorer](https://learn.microsoft.com/azure/iot-fundamentals/howto-use-iot-explorer)## :book: Modeling Guides
- [IoT Plug and Play modeling guide](https://learn.microsoft.com/azure/iot-develop/concepts-modeling-guide)
- [ADT modeling guide](https://learn.microsoft.com/azure/digital-twins/concepts-models)
- [DTDL ontologies](https://learn.microsoft.com/azure/digital-twins/concepts-ontologies)