{ "@context": "dtmi:dtdl:context;2", "@graph": [ { "@id": "dtmi:dtdl:documentation:support;2", "@type": [ "dtmm:Documentation" ], "dtmm:childProperties": [ "dtmi:dtdl:property:enumValues;2" ] }, { "@id": "dtmi:dtdl:restriction:global;2", "@type": [ "dtmm:Global" ], "dtmm:dtdlVersion": 2, "dtmm:identifier": { "@id": "dtmi:dtdl:restriction:global:identifier;2", "sh:pattern": "^dtmi:[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?(?::[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?)*;[1-9][0-9]{0,8}$", "sh:maxLength": 2048, "dtmm:reservedPrefix": [ "dtmi:dtdl:", "dtmi:standard:" ] }, "dtmm:allowUndefinedExtensionsByDefault": true, "dtmm:restrictKeywords": false, "dtmm:apocrypha": { "dtmm:propertyNeedsCotype": true, "dtmm:alwaysAllow": { "dtmm:asCotype": [ "dtmm:undefinedTerm", "dtmm:notDtmiNorTerm" ], "dtmm:asProperty": [ "dtmm:undefinedTerm", "dtmm:irrelevantDtmiOrTerm", "dtmm:notDtmiNorTerm", "dtmm:invalidDtmi" ] }, "dtmm:neverAllow": { "dtmm:asCotype": [ "dtmm:invalidDtmi" ] } } }, { "@id": "dtmi:dtdl:class:Entity;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "dtmm:property": [ { "@id": "dtmi:dtdl:property:displayName;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Entity;2" }, { "@id": "dtmi:dtdl:property:description;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Entity;2" }, { "@id": "dtmi:dtdl:property:comment;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Entity;2" }, { "@id": "dtmi:dtdl:property:languageMajorVersion;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Entity;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Entity:displayName;2", "sh:path": "dtmi:dtdl:property:displayName;2", "sh:uniqueLang": true, "sh:datatype": "rdf:langString", "sh:nodeKind": "sh:Literal", "sh:maxLength": 64, "dtmm:description": { "en-US": "A localizable name for display." } }, { "@id": "dtmi:dtdl:constraint:Entity:description;2", "sh:path": "dtmi:dtdl:property:description;2", "sh:uniqueLang": true, "sh:datatype": "rdf:langString", "sh:nodeKind": "sh:Literal", "sh:maxLength": 512, "dtmm:description": { "en-US": "A localizable description for display." } }, { "@id": "dtmi:dtdl:constraint:Entity:comment;2", "sh:path": "dtmi:dtdl:property:comment;2", "sh:maxCount": 1, "sh:datatype": "xsd:string", "sh:nodeKind": "sh:Literal", "sh:maxLength": 512, "dtmm:description": { "en-US": "A comment for model authors." } }, { "@id": "dtmi:dtdl:constraint:Entity:languageMajorVersion;2", "sh:path": "dtmi:dtdl:property:languageMajorVersion;2", "sh:minCount": 0, "sh:maxCount": 0, "sh:datatype": "xsd:integer", "sh:nodeKind": "sh:Literal", "dtmm:value": 2, "dtmm:description": { "en-US": "The major version of DTDL used to author this element." } } ] }, { "@id": "dtmi:dtdl:class:Interface;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Partition", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Entity;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:contents;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Interface;2" }, { "@id": "dtmi:dtdl:property:extends;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Interface;2" }, { "@id": "dtmi:dtdl:property:schemas;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Interface;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Interface:contents;2", "sh:path": "dtmi:dtdl:property:contents;2", "sh:minCount": 0, "sh:maxCount": 300, "sh:class": "Content", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:uniqueProperties": [ "dtmi:dtdl:property:name;2" ], "dtmm:dtmiSegment": "dtmi:dtdl:property:name;2", "dtmm:dictionaryKey": "dtmi:dtdl:property:name;2", "dtmm:description": { "en-US": "A set of elements that define the contents of this Interface." } }, { "@id": "dtmi:dtdl:constraint:Interface:extends;2", "sh:path": "dtmi:dtdl:property:extends;2", "sh:maxCount": 2, "sh:class": "Interface", "sh:nodeKind": "sh:IRI", "dtmm:description": { "en-US": "A set of DTMIs that refer to Interfaces from which this Interface inherits contents. Interfaces can inherit from multiple Interfaces." } }, { "@id": "dtmi:dtdl:constraint:Interface:schemas;2", "sh:path": "dtmi:dtdl:property:schemas;2", "sh:class": "ComplexSchema", "sh:nodeKind": "sh:IRI", "dtmm:description": { "en-US": "A set of complex schema objects that are reusable within this Interface." } } ], "dtmm:identifier": { "@id": "dtmi:dtdl:restriction:Interface:identifier;2", "sh:maxLength": 128 }, "dtmm:descendants": [ { "@id": "dtmi:dtdl:semantics:Interface:extends;2", "dtmm:properties": [ "dtmi:dtdl:property:extends;2" ], "dtmm:narrow": true, "dtmm:importProperties": [ "dtmi:dtdl:property:contents;2" ], "dtmm:maxDepth": 10 } ] }, { "@id": "dtmi:dtdl:class:NamedEntity;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Entity;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:name;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:NamedEntity;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:NamedEntity:name;2", "sh:path": "dtmi:dtdl:property:name;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:datatype": "xsd:string", "sh:nodeKind": "sh:Literal", "sh:pattern": "^[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?$", "dtmm:patternDesc": { "en-US": "contains only alphanumerics and underscore, starting with a letter, ending with alphanumeric" }, "sh:maxLength": 64, "dtmm:description": { "en-US": "The programming name of the element." } } ] }, { "@id": "dtmi:dtdl:class:SchemaField;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NamedEntity;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:schema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:SchemaField;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:SchemaField:schema;2", "sh:path": "dtmi:dtdl:property:schema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "Schema", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:description": { "en-US": "The data type of the element, which is an instance of Schema." } } ] }, { "@id": "dtmi:dtdl:class:Schema;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Entity;2" }, { "@id": "dtmi:dtdl:class:PrimitiveSchema;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Schema;2" }, { "@id": "dtmi:dtdl:class:Boolean;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:PrimitiveSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonBool", "dtmm:authority": "JSON" } }, { "@id": "dtmi:dtdl:class:NumericSchema;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:PrimitiveSchema;2" }, { "@id": "dtmi:dtdl:class:Double;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NumericSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonNumber", "sh:datatype": "xsd:double" } }, { "@id": "dtmi:dtdl:class:Float;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NumericSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonNumber", "sh:datatype": "xsd:float" } }, { "@id": "dtmi:dtdl:class:Integer;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NumericSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonNumber", "sh:datatype": "xsd:int" } }, { "@id": "dtmi:dtdl:class:Long;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NumericSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonNumber", "sh:datatype": "xsd:long" } }, { "@id": "dtmi:dtdl:class:TemporalSchema;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:PrimitiveSchema;2" }, { "@id": "dtmi:dtdl:class:Date;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:TemporalSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonString", "sh:datatype": "xsd:date", "sh:pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "dtmm:authority": "RFC 3339" } }, { "@id": "dtmi:dtdl:class:DateTime;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:TemporalSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonString", "sh:datatype": "xsd:dateTime", "sh:pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?(?:Z|(?:\\+|\\-)[0-9]{2}:[0-9]{2})$", "dtmm:authority": "RFC 3339" } }, { "@id": "dtmi:dtdl:class:Duration;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:TemporalSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonString", "sh:datatype": "xsd:duration", "sh:pattern": "^P(?!$)(?:(?:(?:(?:\\d+Y)|(?:\\d+\\.\\d+Y$))?(?:(?:\\d+M)|(?:\\d+\\.\\d+M$))?)|(?:(?:(?:\\d+W)|(?:\\d+\\.\\d+W$))?))(?:(?:\\d+D)|(?:\\d+\\.\\d+D$))?(?:T(?!$)(?:(?:\\d+H)|(?:\\d+\\.\\d+H$))?(?:(?:\\d+M)|(?:\\d+\\.\\d+M$))?(?:\\d+(?:\\.\\d+)?S)?)?$", "dtmm:authority": "ISO 8601" } }, { "@id": "dtmi:dtdl:class:Time;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:TemporalSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonString", "sh:datatype": "xsd:time", "sh:pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?(?:Z|(?:\\+|\\-)[0-9]{2}:[0-9]{2})$", "dtmm:authority": "RFC 3339" } }, { "@id": "dtmi:dtdl:class:String;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:PrimitiveSchema;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonString", "dtmm:authority": "JSON" } }, { "@id": "dtmi:dtdl:class:ComplexSchema;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Schema;2", "dtmm:descendants": [ { "@id": "dtmi:dtdl:restriction:ComplexSchema:depth;2", "dtmm:properties": [ "dtmi:dtdl:property:elementSchema;2", "dtmi:dtdl:property:schema;2" ], "dtmm:maxDepth": 5 } ] }, { "@id": "dtmi:dtdl:class:Array;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:ComplexSchema;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:elementSchema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Array;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Array:elementSchema;2", "sh:path": "dtmi:dtdl:property:elementSchema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "Schema", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:description": { "en-US": "The data type of each element in the Array, which is an instance of Schema." } } ], "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonArray", "dtmm:eachChild": { "dtmm:instanceProperty": "dtmi:dtdl:property:elementSchema;2" } } }, { "@id": "dtmi:dtdl:class:Enum;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:ComplexSchema;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:valueSchema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Enum;2" }, { "@id": "dtmi:dtdl:property:enumValues;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Enum;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Enum:valueSchema;2", "sh:path": "dtmi:dtdl:property:valueSchema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "PrimitiveSchema", "sh:in": [ "dtmi:dtdl:instance:Schema:integer;2", "dtmi:dtdl:instance:Schema:string;2" ], "sh:nodeKind": "sh:IRI", "dtmm:description": { "en-US": "The data type for the enumValues; all values must be of the same type." } }, { "@id": "dtmi:dtdl:constraint:Enum:enumValues;2", "sh:path": "dtmi:dtdl:property:enumValues;2", "sh:minCount": 1, "sh:maxCount": 100, "sh:class": "EnumValue", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:typeInferable": true, "dtmm:uniqueProperties": [ "dtmi:dtdl:property:name;2", "dtmi:dtdl:property:enumValue;2" ], "dtmm:dtmiSegment": "dtmi:dtdl:property:name;2", "dtmm:description": { "en-US": "A set of name/value mappings for the Enum." } } ], "dtmm:descendants": [ { "@id": "dtmi:dtdl:restriction:Enum:enumValue:datatype;2", "dtmm:properties": [ "dtmi:dtdl:property:enumValue;2" ], "dtmm:datatypeProperty": "dtmi:dtdl:property:valueSchema;2" } ], "dtmm:instance": { "dtmm:instanceProperty": [ "dtmi:dtdl:property:valueSchema;2", "dtmi:dtdl:property:enumValues;2" ] } }, { "@id": "dtmi:dtdl:class:EnumValue;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NamedEntity;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:enumValue;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:EnumValue;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:EnumValue:enumValue;2", "sh:path": "dtmi:dtdl:property:enumValue;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:nodeKind": "sh:Literal", "dtmm:description": { "en-US": "The on-the-wire value that maps to the EnumValue, which may be either an integer or a string." } } ], "dtmm:instance": { "dtmm:hasValue": "dtmi:dtdl:property:enumValue;2" } }, { "@id": "dtmi:dtdl:class:Map;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:ComplexSchema;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:mapKey;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Map;2" }, { "@id": "dtmi:dtdl:property:mapValue;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Map;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Map:mapKey;2", "sh:path": "dtmi:dtdl:property:mapKey;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "MapKey", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:typeInferable": true, "dtmm:description": { "en-US": "A description of the keys in the Map." } }, { "@id": "dtmi:dtdl:constraint:Map:mapValue;2", "sh:path": "dtmi:dtdl:property:mapValue;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "MapValue", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:typeInferable": true, "dtmm:description": { "en-US": "A description of the values in the Map." } } ], "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonObject", "dtmm:eachChild": { "dtmm:instanceProperty": "dtmi:dtdl:property:mapValue;2" } } }, { "@id": "dtmi:dtdl:class:MapKey;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NamedEntity;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:schema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:MapKey;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:MapKey:schema;2", "sh:path": "dtmi:dtdl:property:schema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "String", "sh:in": [ "dtmi:dtdl:instance:Schema:string;2" ], "sh:nodeKind": "sh:IRI", "dtmm:description": { "en-US": "The data type of the Map's key, which must be string." } } ] }, { "@id": "dtmi:dtdl:class:MapValue;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:SchemaField;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonProperty", "dtmm:propertyValue": { "dtmm:instanceProperty": "dtmi:dtdl:property:schema;2" } } }, { "@id": "dtmi:dtdl:class:Object;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:ComplexSchema;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:fields;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Object;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Object:fields;2", "sh:path": "dtmi:dtdl:property:fields;2", "sh:minCount": 1, "sh:maxCount": 30, "sh:class": "Field", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:typeInferable": true, "dtmm:uniqueProperties": [ "dtmi:dtdl:property:name;2" ], "dtmm:dtmiSegment": "dtmi:dtdl:property:name;2", "dtmm:description": { "en-US": "A set of field descriptions, one for each field in the Object." } } ], "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonObject", "dtmm:eachChild": { "dtmm:instanceProperty": "dtmi:dtdl:property:fields;2" } } }, { "@id": "dtmi:dtdl:class:Field;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:SchemaField;2", "dtmm:instance": { "dtmm:jsonType": "dtmm:jsonProperty", "dtmm:propertyName": { "dtmm:hasValue": "dtmi:dtdl:property:name;2" }, "dtmm:propertyValue": { "dtmm:instanceProperty": "dtmi:dtdl:property:schema;2" } } }, { "@id": "dtmi:dtdl:class:Content;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NamedEntity;2" }, { "@id": "dtmi:dtdl:class:Component;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Content;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:schema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Component;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Component:schema;2", "sh:path": "dtmi:dtdl:property:schema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "Interface", "sh:nodeKind": "sh:IRI", "dtmm:description": { "en-US": "The data type of the Component, which is an instance of Interface." } } ], "dtmm:descendants": [ { "@id": "dtmi:dtdl:restriction:Component:contents:excludeComponent;2", "dtmm:properties": [ "dtmi:dtdl:property:schema;2", "dtmi:dtdl:property:contents;2" ], "dtmm:narrow": true, "dtmm:excludeType": "Component" } ] }, { "@id": "dtmi:dtdl:class:Property;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Content;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:schema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Property;2" }, { "@id": "dtmi:dtdl:property:writable;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Property;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Property:schema;2", "sh:path": "dtmi:dtdl:property:schema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "Schema", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:description": { "en-US": "The data type of the Property, which is an instance of Schema." } }, { "@id": "dtmi:dtdl:constraint:Property:writable;2", "sh:path": "dtmi:dtdl:property:writable;2", "sh:maxCount": 1, "sh:datatype": "xsd:boolean", "sh:nodeKind": "sh:Literal", "dtmm:description": { "en-US": "A boolean value that indicates whether the Property is writable or not. The default value is false, indicating the Property is read-only." } } ], "dtmm:descendants": [ { "@id": "dtmi:dtdl:restriction:Property:schema:excludeArray;2", "dtmm:properties": [ "dtmi:dtdl:property:schema;2" ], "dtmm:excludeType": "Array" } ] }, { "@id": "dtmi:dtdl:class:Telemetry;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Content;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:schema;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Telemetry;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Telemetry:schema;2", "sh:path": "dtmi:dtdl:property:schema;2", "sh:minCount": 1, "sh:maxCount": 1, "sh:class": "Schema", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:description": { "en-US": "The data type of the Telemetry, which is an instance of Schema." } } ] }, { "@id": "dtmi:dtdl:class:Command;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Content;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:request;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Command;2" }, { "@id": "dtmi:dtdl:property:response;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Command;2" }, { "@id": "dtmi:dtdl:property:commandType;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Command;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Command:request;2", "sh:path": "dtmi:dtdl:property:request;2", "sh:maxCount": 1, "sh:class": "CommandPayload", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:typeInferable": true, "dtmm:description": { "en-US": "A description of the input to the Command." } }, { "@id": "dtmi:dtdl:constraint:Command:response;2", "sh:path": "dtmi:dtdl:property:response;2", "sh:maxCount": 1, "sh:class": "CommandPayload", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:typeInferable": true, "dtmm:description": { "en-US": "A description of the output of the Command." } }, { "@id": "dtmi:dtdl:constraint:Command:commandType;2", "sh:path": "dtmi:dtdl:property:commandType;2", "sh:maxCount": 1, "sh:class": "CommandType", "sh:in": [ "dtmi:dtdl:instance:CommandType:asynchronous;2", "dtmi:dtdl:instance:CommandType:synchronous;2" ], "sh:nodeKind": "sh:IRI", "dtmm:description": { "en-US": "This property is deprecated. Either value, synchronous or asynchronous, has the same meaning: a command that starts execution within a configurable time and that completes execution within a configurable time." }, "dtmm:deprecated": true } ] }, { "@id": "dtmi:dtdl:class:CommandPayload;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:SchemaField;2" }, { "@id": "dtmi:dtdl:class:CommandType;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Entity;2" }, { "@id": "dtmi:dtdl:class:Relationship;2", "@type": [ "rdfs:Class", "dtmm:Material", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Content;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:maxMultiplicity;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Relationship;2" }, { "@id": "dtmi:dtdl:property:minMultiplicity;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Relationship;2" }, { "@id": "dtmi:dtdl:property:target;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Relationship;2" }, { "@id": "dtmi:dtdl:property:properties;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Relationship;2" }, { "@id": "dtmi:dtdl:property:writable;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Relationship;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Relationship:maxMultiplicity;2", "sh:path": "dtmi:dtdl:property:maxMultiplicity;2", "sh:maxCount": 1, "sh:datatype": "xsd:integer", "sh:nodeKind": "sh:Literal", "sh:minInclusive": 1, "sh:maxInclusive": 500, "dtmm:description": { "en-US": "The maximum multiplicity for the target of the Relationship; defaults to the maximum allowable value." } }, { "@id": "dtmi:dtdl:constraint:Relationship:minMultiplicity;2", "sh:path": "dtmi:dtdl:property:minMultiplicity;2", "sh:maxCount": 1, "sh:datatype": "xsd:integer", "sh:nodeKind": "sh:Literal", "sh:minInclusive": 0, "sh:maxInclusive": 0, "dtmm:description": { "en-US": "The minimum multiplicity for the target of the Relationship; defaults to the minimum allowable value." } }, { "@id": "dtmi:dtdl:constraint:Relationship:target;2", "sh:path": "dtmi:dtdl:property:target;2", "sh:maxCount": 1, "sh:nodeKind": "sh:IRI", "sh:pattern": "^dtmi:[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?(?::[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?)*;[1-9][0-9]{0,8}$", "dtmm:patternDesc": { "en-US": "must follow user DTMI syntax" }, "sh:maxLength": 2048, "dtmm:description": { "en-US": "An Interface identifier. If no target is specified, each instance target is permitted to be any Interface." } }, { "@id": "dtmi:dtdl:constraint:Relationship:properties;2", "sh:path": "dtmi:dtdl:property:properties;2", "sh:maxCount": 300, "sh:class": "Property", "sh:nodeKind": "sh:BlankNodeOrIRI", "dtmm:uniqueProperties": [ "dtmi:dtdl:property:name;2" ], "dtmm:dtmiSegment": "dtmi:dtdl:property:name;2", "dtmm:description": { "en-US": "A set of Properties that define Relationship-specific state." } }, { "@id": "dtmi:dtdl:constraint:Relationship:writable;2", "sh:path": "dtmi:dtdl:property:writable;2", "sh:maxCount": 1, "sh:datatype": "xsd:boolean", "sh:nodeKind": "sh:Literal", "dtmm:description": { "en-US": "A boolean value that indicates whether the Relationship is writable or not. The default value is false, indicating the Relationship is read-only." } } ] }, { "@id": "dtmi:dtdl:class:SemanticType;2", "@type": [ "rdfs:Class", "dtmm:Abstract", "dtmm:Extensible", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "sh:or": [ { "sh:class": "Relationship" }, { "sh:class": "Property" }, { "sh:class": "Telemetry" } ] }, { "@id": "dtmi:dtdl:class:Unit;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "dtmm:Extensible", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:Entity;2", "dtmm:property": [ { "@id": "dtmi:dtdl:property:symbol;2", "@type": "rdf:Property", "rdfs:domain": "dtmi:dtdl:class:Unit;2" } ], "sh:property": [ { "@id": "dtmi:dtdl:constraint:Unit:symbol;2", "sh:path": "dtmi:dtdl:property:symbol;2", "sh:maxCount": 1, "sh:datatype": "xsd:string", "sh:nodeKind": "sh:Literal", "dtmm:description": { "en-US": "The symbol for the unit." } } ] }, { "@id": "dtmi:dtdl:class:SemanticUnit;2", "@type": [ "rdfs:Class", "dtmm:Abstract", "dtmm:Extensible", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "sh:or": [ { "sh:class": "Unit" } ] }, { "@id": "dtmi:dtdl:class:UnitAttribute;2", "@type": [ "rdfs:Class", "dtmm:Material", "dtmm:Abstract", "dtmm:Extensible", "sh:NodeShape" ], "dtmm:dtdlVersion": 2, "rdfs:subClassOf": "dtmi:dtdl:class:NamedEntity;2" } ] }