diff --git a/.gitignore b/.gitignore index 4a9e40f..a125d45 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ aas/src/main/java/**/*.java ids/src/main/java/de/fraunhofer/iais/eis/*.java +model/src/main/java/**/*.java visualization/*.plantuml jsonld-context/context.json diff --git a/README.md b/README.md index 535bea9..8ca2cb6 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ The project contains several modules: - `common` Module containing shapes translating RDF into Java classes. - `util` Module containing some generic utility classes, such as custom annotations. - `generator` This module loads all data required for the translation process from RDF ontologies to Java classes, including the shapes and the ontology. +- `rdf-sources` contains copies of the source files. Move them to a local folder of your choice, depending on your profile and `` parameter. Originally coming from [aas-core-works](https://github.com/admin-shell-io/aas-specs-metamodel/blob/IDTA-01001-3-2_Working/schemas/rdf). # How to Contribute diff --git a/aas/pom.xml b/aas/pom.xml index a70e1a3..05a139a 100644 --- a/aas/pom.xml +++ b/aas/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> common - io.admin-shell.aas + org.eclipse.aas4j ${revision} 4.0.0 @@ -13,13 +13,13 @@ Asset Administration Shell - https://admin-shell.io/aas/3/0/RC01/ + https://admin-shell.io/aas/3/2/ aas - io.admin-shell.aas + org.eclipse.aas4j util ${revision} @@ -35,7 +35,7 @@ ${jackson.version} - io.admin-shell.aas + org.eclipse.aas4j generator ${revision} true @@ -152,7 +152,7 @@ - ${basedir}/src/main/java/io/adminshell + ${basedir}/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model **/*.java @@ -262,9 +262,9 @@ initialize - - - + + + diff --git a/aas/src/templates/basic-imports.rq b/aas/src/templates/basic-imports.rq index 2f05153..1e52f0e 100644 --- a/aas/src/templates/basic-imports.rq +++ b/aas/src/templates/basic-imports.rq @@ -20,15 +20,15 @@ prefix rdfs: template idstt:basic-imports { #"\nimport de.fraunhofer.iais.eis.util.*;" - "\nimport io.adminshell.aas.v3.model.*;" - "\nimport io.adminshell.aas.v3.model.impl.*;" - #"\nimport io.adminshell.aas.v3.dataformat.json.mixins.*;" - "\nimport io.adminshell.aas.v3.model.builder.*;" - "\nimport io.adminshell.aas.v3.model.annotations.IRI;" - "\nimport io.adminshell.aas.v3.model.annotations.KnownSubtypes;" + "\nimport org.eclipse.digitaltwin.aas4j.v3.model.*;" + "\nimport org.eclipse.digitaltwin.aas4j.v3.model.impl.*;" + #"\nimport org.eclipse.digitaltwin.aas4j.v3.dataformat.json.mixins.*;" + "\nimport org.eclipse.digitaltwin.aas4j.v3.model.builder.*;" + "\nimport org.eclipse.digitaltwin.aas4j.v3.model.annotations.IRI;" + "\nimport org.eclipse.digitaltwin.aas4j.v3.model.annotations.KnownSubtypes;" #"\nimport de.fraunhofer.iais.eis.*;" "\n" - "\nimport javax.xml.datatype.XMLGregorianCalendar;" + "\nimport java.util.Date;" "\nimport java.lang.String;" "\nimport java.math.BigInteger;" "\nimport java.net.URL;" diff --git a/aas/src/templates/bean-default-methods.rq b/aas/src/templates/bean-default-methods.rq index 221f35a..33cd985 100644 --- a/aas/src/templates/bean-default-methods.rq +++ b/aas/src/templates/bean-default-methods.rq @@ -50,6 +50,7 @@ template idstt:bean-default-methods (?class) { # method implementation + st:call-template(idstt:get-class-to-string, ?class, false) st:call-template(idstt:get-class-to-hash-code, ?class, false) st:call-template(idstt:get-class-equals, ?class, false) } diff --git a/aas/src/templates/get-license.rq b/aas/src/templates/get-license.rq index 1d3d096..111237f 100644 --- a/aas/src/templates/get-license.rq +++ b/aas/src/templates/get-license.rq @@ -1,5 +1,6 @@ # -# Copyright (c) 2021 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V. +# Copyright (c) 2026 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V. +# Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +20,9 @@ prefix idstt: template idstt:get-license { "/*" - "Copyright (c) 2021 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V." + "Copyright (c) 2026 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V." + "\n" + "Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved." "\n\n" "Licensed under the Apache License, Version 2.0 (the \"License\"); " "you may not use this file except in compliance with the License. " @@ -32,6 +35,8 @@ template idstt:get-license { "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. " "See the License for the specific language governing permissions and " "limitations under the License." + "\n\n" + "AI-assisted: This file was generated or updated with assistance from AI tools." " */\n\n" } diff --git a/aas/src/templates/get-package.rq b/aas/src/templates/get-package.rq index 94b0e20..d6b642f 100644 --- a/aas/src/templates/get-package.rq +++ b/aas/src/templates/get-package.rq @@ -18,14 +18,14 @@ prefix idstt: template idstt:get-package (?type) { "package " - if(str(?type) = 'interface', "io.adminshell.aas.v3.model", - if(str(?type) = 'bean', "io.adminshell.aas.v3.model.impl", - if(str(?type) = 'mixin', "io.adminshell.aas.v3.dataformat.json.mixins", - if(str(?type) = 'builder', "io.adminshell.aas.v3.model.builder", - if(str(?type) = 'serialization', "io.adminshell.aas.v3.dataformat", - if(str(?type) = 'enum', "io.adminshell.aas.v3.model", - if(str(?type) = 'annotations', "io.adminshell.aas.v3.model.annotations", - "io.adminshell.aas.v3.model" #default + if(str(?type) = 'interface', "org.eclipse.digitaltwin.aas4j.v3.model", + if(str(?type) = 'bean', "org.eclipse.digitaltwin.aas4j.v3.model.impl", + if(str(?type) = 'mixin', "org.eclipse.digitaltwin.aas4j.v3.dataformat.json.mixins", + if(str(?type) = 'builder', "org.eclipse.digitaltwin.aas4j.v3.model.builder", + if(str(?type) = 'serialization', "org.eclipse.digitaltwin.aas4j.v3.dataformat", + if(str(?type) = 'enum', "org.eclipse.digitaltwin.aas4j.v3.model", + if(str(?type) = 'annotations', "org.eclipse.digitaltwin.aas4j.v3.model.annotations", + "org.eclipse.digitaltwin.aas4j.v3.model" #default ))))))) ";\n" diff --git a/aas/src/templates/setter-method-builder-single-item-signature.rq b/aas/src/templates/setter-method-builder-single-item-signature.rq index 68b12f8..e990a07 100644 --- a/aas/src/templates/setter-method-builder-single-item-signature.rq +++ b/aas/src/templates/setter-method-builder-single-item-signature.rq @@ -23,7 +23,7 @@ template idstt:setter-method-builder-single-item-signature(?property, ?class, ?r "\n\t* This function allows adding a value to the List " st:call-template(idstt:to_java_field_name, ?property, ?class) "\n\t* @param " - st:call-template(idstt:to_java_property_name, ?property) + st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) " desired value to be added" "\n\t* @return Builder object with new value for " st:call-template(idstt:to_java_field_name, ?property, ?class) @@ -36,7 +36,7 @@ template idstt:setter-method-builder-single-item-signature(?property, ?class, ?r "B ", concat(st:call-template(idstt:to_builder_name, ?class), " ") ) - st:call-template(idstt:to_java_property_name, ?property) "(" IRI(?range) " " st:call-template(idstt:to_java_property_name, ?property) ")" + st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) "(" IRI(?range) " " st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) ")" } where { BIND( st:has-extendable-builder() as ?hasExtendable ) diff --git a/aas/src/templates/to_java_field_name.rq b/aas/src/templates/to_java_field_name.rq index 37823d6..a6c1f5e 100644 --- a/aas/src/templates/to_java_field_name.rq +++ b/aas/src/templates/to_java_field_name.rq @@ -18,15 +18,8 @@ prefix idstt: template idstt:to_java_field_name(?property, ?class) { - if (?allowsList, - # then - REPLACE(IRI(st:call-template(idstt:to_plural_form, ?propertyFieldName)), "\"", ""), - # else - REPLACE(IRI(?propertyFieldName), "\"", "") - ) - -} -WHERE { - BIND( st:call-template(idstt:property-allows-list, ?property, ?class) AS ?allowsList) - BIND( st:call-template(idstt:to_java_property_name, ?property) AS ?propertyFieldName) + # Keep the property name in singular form regardless of whether it's a list + # The list type is indicated by the return type (List), not the method name + REPLACE(IRI(st:call-template(idstt:to_java_property_name, ?property)), "\"", "") } +WHERE {} diff --git a/aas/src/templates/to_singular_form.rq b/aas/src/templates/to_singular_form.rq new file mode 100644 index 0000000..1131cd3 --- /dev/null +++ b/aas/src/templates/to_singular_form.rq @@ -0,0 +1,32 @@ +# +# Copyright (c) 2021 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +prefix idstt: + + +template idstt:to_singular_form(?name) { + if(strends(str(?name), "ies"), + # name ends with "ies", replace with "y", e.g. queries -> query + concat(substr(str(?name), 1, strlen(?name) - 3), "y"), + if(strends(str(?name), "s") && !strends(str(?name), "ss"), + # name ends with "s" but not "ss", remove the "s", e.g. keys -> key, endpoints -> endpoint + substr(str(?name), 1, strlen(?name) - 1), + # default case: return as is (already singular or special case like "class") + str(?name) + ) + ) +} +WHERE {} diff --git a/common/java/templates/create-util.rq b/common/java/templates/create-util.rq index 1558b37..8d89d4d 100644 --- a/common/java/templates/create-util.rq +++ b/common/java/templates/create-util.rq @@ -26,10 +26,10 @@ template idstt:create-util { "import java.net.URI;\n" "import java.util.ArrayList;\n" "import java.util.Arrays;\n" + "import java.util.Date;\n" "import java.util.List;\n" "import java.util.Map;\n" "import java.util.stream.Collectors;\n" - "import javax.xml.datatype.XMLGregorianCalendar;\n" "import de.fraunhofer.iais.eis.util.RdfResource;\n" "import de.fraunhofer.iais.eis.util.TypedLiteral;\n" @@ -46,8 +46,8 @@ template idstt:create-util { "\n\t\t\treturn ((List) object).stream().map(Util::clone).collect(Collectors.toList());" "\n\t\t} else if (object instanceof URI) {" "\n\t\t\treturn URI.create(object.toString());" - "\n\t\t} else if (object instanceof XMLGregorianCalendar) {" - "\n\t\t\treturn ((XMLGregorianCalendar) object).clone();" + "\n\t\t} else if (object instanceof Date) {" + "\n\t\t\treturn new Date(((Date) object).getTime());" "\n\t\t} else if (object instanceof byte[]) {" "\n\t\t\treturn ((byte[]) object).clone();" "\n\t\t} else if (object instanceof Byte[]) {" diff --git a/common/java/templates/get-class-to-string-body-properties.rq b/common/java/templates/get-class-to-string-body-properties.rq new file mode 100644 index 0000000..45e5042 --- /dev/null +++ b/common/java/templates/get-class-to-string-body-properties.rq @@ -0,0 +1,45 @@ +# +# Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +prefix idstt: + +template idstt:get-class-to-string-body-properties(?class) { + + group { + format { + "%s='\" + %s + \"'," + ?field ?field + } + ; separator = "\"\n\t\t\t+ \"" + } + +} +WHERE { + ?class rdfs:subClassOf* ?superClass . + OPTIONAL { + { + ?property rdfs:domain ?superClass ; + rdfs:range ?range . + BIND(st:call-template(idstt:to_java_field_name, ?property, ?superClass) as ?field ) + } + UNION + { + ?property rdfs:domain/owl:unionOf/rdf:rest*/rdf:first ?superClass ; + rdfs:range ?range . + BIND(st:call-template(idstt:to_java_field_name, ?property, ?superClass) as ?field ) + } + } +} diff --git a/common/java/templates/get-class-to-string-body.rq b/common/java/templates/get-class-to-string-body.rq new file mode 100644 index 0000000..5595cff --- /dev/null +++ b/common/java/templates/get-class-to-string-body.rq @@ -0,0 +1,36 @@ +# +# Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +prefix idstt: + +template idstt:get-class-to-string-body(?class) { + + "{" + "\n\t\treturn \"" st:call-template(idstt:to_bean_name, ?class) "{\"" + if (bound(?hasProperties) && strlen(?hasProperties) > 1, + concat( + "\n\t\t\t+ \"", + st:call-template(idstt:get-class-to-string-body-properties, ?class), + "\"" + ), + "" + ) + "\n\t\t\t+ \"}\";" + "\n\t}" +} +WHERE { + BIND(st:call-template(idstt:list-class-properties, ?class) AS ?hasProperties) +} diff --git a/common/java/templates/get-class-to-string.rq b/common/java/templates/get-class-to-string.rq new file mode 100644 index 0000000..73fddc7 --- /dev/null +++ b/common/java/templates/get-class-to-string.rq @@ -0,0 +1,31 @@ +# +# Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +prefix idstt: + +template idstt:get-class-to-string(?class, ?forInterface) { + + "\n\t@Override" + "\n\tpublic String toString()" + if (?forInterface, + # no body for interface + ";", + # with body for bean + st:call-template(idstt:get-class-to-string-body, ?class) + ) + "\n" +} +WHERE {} diff --git a/common/java/templates/properties-to-bean-methods.rq b/common/java/templates/properties-to-bean-methods.rq index 977e28a..0d7c1df 100644 --- a/common/java/templates/properties-to-bean-methods.rq +++ b/common/java/templates/properties-to-bean-methods.rq @@ -46,9 +46,16 @@ template idstt:properties-to-bean-methods(?class, ?superClass) { # method body st:call-template(idstt:setter-method-body, ?property, ?superClass) + # Add single-element setter for list properties + if(?isArray, + st:call-template(idstt:setter-method-bean-list-single-element, ?property, ?class), + "" + ) + } where { {?property rdfs:domain ?superClass.} UNION {?property rdfs:domain/owl:unionOf/rdf:rest*/rdf:first ?superClass.} + BIND( st:call-template(idstt:property-allows-list, ?property, ?class) as ?isArray ) } diff --git a/common/java/templates/properties-to-interface-methods.rq b/common/java/templates/properties-to-interface-methods.rq index 880fcd2..ab0d8e9 100644 --- a/common/java/templates/properties-to-interface-methods.rq +++ b/common/java/templates/properties-to-interface-methods.rq @@ -26,19 +26,25 @@ template idstt:properties-to-interface-methods(?class) { st:call-template(idstt:get-javadoc, ?class, ?property, false) st:call-template(idstt:property-to-getter-method, ?property, ?class, 'interface') ";" - + "\n" # javadoc setter st:call-template(idstt:get-javadoc, ?class, ?property, true) - + "\n\t void " st:call-template(idstt:property-to-setter-method, ?property, ?class, 'interface') ";" - + + # Add single-element setter for list properties + if(?isArray, + st:call-template(idstt:setter-method-interface-list-single-element, ?property, ?class), + "" + ) } where { {?property rdfs:domain ?class.} UNION {?property rdfs:domain/owl:unionOf/rdf:rest*/rdf:first ?class.} + BIND( st:call-template(idstt:property-allows-list, ?property, ?class) as ?isArray ) } diff --git a/common/java/templates/setter-method-bean-list-single-element.rq b/common/java/templates/setter-method-bean-list-single-element.rq new file mode 100644 index 0000000..8cd5517 --- /dev/null +++ b/common/java/templates/setter-method-bean-list-single-element.rq @@ -0,0 +1,45 @@ +# +# Copyright (c) 2021 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +prefix idstt: +prefix rdfs: + +template idstt:setter-method-bean-list-single-element(?property, ?class) { + + "\n\t" + "\n\t@Override " + "\n\t public void set" + ucase(substr(str(st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property))), 1, 1)) + substr(str(st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property))), 2) + "(" + if( ! BOUND(?range) || COUNT(?range) > 1 || isBlank(?range), "RdfResource", st:call-template(idstt:range-to-basic-type, ?property, ?range, ?class, false)) + " " + st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) + ") {" + "\n\t\tthis." + st:call-template(idstt:to_java_field_name, ?property, ?class) + ".add(" + st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) + ");" + "\n\t}" + +} +where{ + ?class a owl:Class . + OPTIONAL { + ?property rdfs:range ?range. + } +} diff --git a/common/java/templates/setter-method-builder-body.rq b/common/java/templates/setter-method-builder-body.rq index 25f4e11..aef1d0c 100644 --- a/common/java/templates/setter-method-builder-body.rq +++ b/common/java/templates/setter-method-builder-body.rq @@ -33,7 +33,7 @@ template idstt:setter-method-builder-body(?property, ?class, ?addSingleArrayElem ".get", ucase(substr(str(st:call-template(idstt:property-to-getter-setter-signature, ?property, ?class)), 1, 1)), substr(str(st:call-template(idstt:property-to-getter-setter-signature, ?property, ?class)), 2), - "().add(", st:call-template(idstt:to_java_param_name, ?property, ?class) + "().add(", st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) ), concat( ".set", diff --git a/common/java/templates/setter-method-extendable-builder-body.rq b/common/java/templates/setter-method-extendable-builder-body.rq index e41e7bd..77f1b75 100644 --- a/common/java/templates/setter-method-extendable-builder-body.rq +++ b/common/java/templates/setter-method-extendable-builder-body.rq @@ -27,7 +27,7 @@ template idstt:setter-method-extendable-builder-body(?property, ?class, ?addSing ".get", ucase(substr(str(st:call-template(idstt:property-to-getter-setter-signature, ?property, ?class)), 1, 1)), substr(str(st:call-template(idstt:property-to-getter-setter-signature, ?property, ?class)), 2), - "().add(", st:call-template(idstt:to_java_property_name, ?property) + "().add(", st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) ), concat( ".set", diff --git a/common/java/templates/setter-method-interface-list-single-element.rq b/common/java/templates/setter-method-interface-list-single-element.rq new file mode 100644 index 0000000..2c94fc4 --- /dev/null +++ b/common/java/templates/setter-method-interface-list-single-element.rq @@ -0,0 +1,49 @@ +# +# Copyright (c) 2021 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +prefix idstt: +prefix rdfs: + +template idstt:setter-method-interface-list-single-element(?property, ?class) { + + "\n" + "\n\t/**" + "\n\t*" + "\n\t* More information under " + IRI(?property) + "\n\t*" + "\n\t* @param " + st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) + " desired value to be added to the property " + st:call-template(idstt:to_java_field_name, ?property, ?class) + "." + "\n\t*/" + "\n\t void set" + ucase(substr(str(st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property))), 1, 1)) + substr(str(st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property))), 2) + "(" + if( ! BOUND(?range) || COUNT(?range) > 1 || isBlank(?range), "RdfResource", st:call-template(idstt:range-to-basic-type, ?property, ?range, ?class, false)) + " " + st:call-template(idstt:to_singular_form, st:call-template(idstt:to_java_property_name, ?property)) + ");" + +} +where{ + ?class a owl:Class . + OPTIONAL { + ?property rdfs:range ?range. + } +} diff --git a/common/templates/range-to-basic-type.rq b/common/templates/range-to-basic-type.rq index 94f1351..b3c8292 100644 --- a/common/templates/range-to-basic-type.rq +++ b/common/templates/range-to-basic-type.rq @@ -41,10 +41,10 @@ template idstt:range-to-basic-type(?property, ?ontologyRange, ?class, ?isArray) if (str(?range) = str(), "java.math.BigDecimal", if (str(?range) = str(), "BigInteger", if (str(?range) = str(), if(EXISTS { VALUES ?property { } } , "TypedLiteral", "String"), - if (str(?range) = str(), "XMLGregorianCalendar", - if (str(?range) = str(), "XMLGregorianCalendar", - if (str(?range) = str(), "XMLGregorianCalendar", - if (str(?range) = str(), "XMLGregorianCalendar", + if (str(?range) = str(), "java.util.Date", + if (str(?range) = str(), "java.util.Date", + if (str(?range) = str(), "java.util.Date", + if (str(?range) = str(), "java.util.Date", if (str(?range) = str(), "javax.xml.datatype.Duration", if (str(?range) = str(), "URI", diff --git a/generator/pom.xml b/generator/pom.xml index 85651b9..87b634e 100644 --- a/generator/pom.xml +++ b/generator/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> common - io.admin-shell.aas + org.eclipse.aas4j ${revision} 4.0.0 @@ -21,7 +21,7 @@ fr.inria.wimmics kgtool - 3.2.1 + 3.2.0 jws diff --git a/pom.xml b/pom.xml index b870754..6ce4a08 100644 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ - 1.2.0 + 1.3.0 2.11.2 contact@ids.fraunhofer.de @@ -104,10 +104,18 @@ AAS Asset Administration Shell - https://admin-shell.io/aas/3/0/RC01/ + https://admin-shell.io/aas/3/2/ aas + + sebbader + + + ../aas-specs/schemas/rdf + + + diff --git a/rdf-sources/README.md b/rdf-sources/README.md new file mode 100644 index 0000000..c20bd45 --- /dev/null +++ b/rdf-sources/README.md @@ -0,0 +1,9 @@ +# RDF Sources + +These files represent the ground truth of the AAS classes, for + +- the AAS metamodel classes (`rdf-ontology.ttl` and `shacl-schema.ttl`), +- the classes introduced by the AAS API (`api-ontology.ttl` and `ap-shacl.ttl`), and +- additional definitions for the metadata representations (`api-ontology_with-metadata.ttl_with-metadata` and `ap-shacl.ttl_with-metadata`). + +All sets consist of an ontology file and a SHACL file. The ontology defines the basic model in the form of an RDF T-Box, while the SHACL file can be viewed as a schema extension for cardinality and datatype restrictions. Bot files are needed for the generator to derive the right Java representation. Not that if the parser finds them in the configured directory, all available Turtle (`.ttl`) files will be regarded. Only provide the ones that you really need, as otherwise unwanted Java classes will be created. \ No newline at end of file diff --git a/rdf-sources/api-ontology.ttl b/rdf-sources/api-ontology.ttl new file mode 100644 index 0000000..29eb283 --- /dev/null +++ b/rdf-sources/api-ontology.ttl @@ -0,0 +1,468 @@ +@prefix aas: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix vann: . +@prefix xsd: . +@base . + + rdf:type owl:Ontology ; + vann:preferredNamespaceUri "https://admin-shell.io/aas/3/2/"^^xsd:anyURI ; + owl:versionInfo "3.2.0" ; + rdfs:comment "This ontology represents the data model for the Asset Administration Shell according to the specification 'Details of the Asset Administration Shell - Part 1 - Version 3.2.0'."@en ; + vann:preferredNamespacePrefix "aas"^^xsd:string ; + rdfs:isDefinedBy ; +. #TODO use different identifier and version than the ones for the metamodel + + +aas:AssetAdministrationShellDescriptor rdf:type owl:Class ; + rdfs:subClassOf aas:Descriptor ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:AdministrativeInformation ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:LangStringTextType ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:LangStringNameType ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:Reference ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:SpecificAssetId ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:SubmodelDescriptor ; +. + +### https://admin-shell.io/aas/3/2/Environment +aas:Environment rdf:type owl:Class ; + rdfs:label "Environment"^^xsd:string ; + rdfs:comment "Container for the sets of different identifiables."@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/assetAdministrationShells + rdf:type owl:ObjectProperty ; + rdfs:label "has asset administration shells"^^xsd:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:AssetAdministrationShell ; + rdfs:comment "Asset administration shell"@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/conceptDescriptions + rdf:type owl:ObjectProperty ; + rdfs:label "has concept descriptions"^^xsd:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:ConceptDescription ; + rdfs:comment "Concept description"@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/submodels + rdf:type owl:ObjectProperty ; + rdfs:label "has submodels"^^xsd:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:Submodel ; + rdfs:comment "Submodel"@en ; +. + +aas:BaseOperationResult rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:BaseOperationResult ; + rdfs:range aas:ExecutionState ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BaseOperationResult ; + rdfs:range xsd:boolean ; +. + +aas:Descriptor rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Descriptor ; + rdfs:range aas:Endpoint ; +. + +aas:Endpoint rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Endpoint ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Endpoint ; + rdfs:range aas:ProtocolInformation ; +. + +aas:ExecutionState rdf:type owl:Class ; +owl:oneOf ( + + + + + + +) ; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + +#aas:SpecificAssetIdValue rdf:type owl:Class ; +# todo +#. + +aas:Message rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Message ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Message ; + rdfs:range aas:MessageType ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Message ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Message ; + rdfs:range xsd:string ; +. + +aas:MessageType rdf:type owl:Class ; + owl:oneOf ( + + + + + + ) ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + +aas:ModelType rdf:type owl:Class ; + owl:oneOf ( + + + + + + + + + + + + + + + + + + + + ) ; +. + + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + +aas:OperationHandle rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationHandle ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationHandle ; + rdfs:range xsd:string ; +. + +aas:OperationRequest rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range xsd:integer ; +. + +aas:OperationResult rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:Result ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:ExecutionState ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range xsd:string ; +. + +aas:PackageDescription rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:PackageDescription ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:PackageDescription ; + rdfs:range xsd:string ; +. + +aas:ProtocolInformation rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range aas:SecurityAttributeObject ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + +aas:Result rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Result ; + rdfs:range aas:Message ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Result ; + rdfs:range xsd:boolean ; +. + +aas:SecurityAttributeObject rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SecurityAttributeObject ; + rdfs:range aas:SecurityTypeEnum ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SecurityAttributeObject ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SecurityAttributeObject ; + rdfs:range xsd:string ; +. + +aas:SecurityTypeEnum rdf:type owl:Class ; + owl:oneOf ( + + + + ) ; + . + +aas:SubmodelDescriptor rdf:type owl:Class ; + rdfs:subClassOf aas:Descriptor ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:AdministrativeInformation ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:LangStringTextType ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:LangStringNameType ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:Reference ; +. + +aas:SubmodelElementAttributes rdf:type owl:Class ; + rdfs:subClassOf aas:Referable, aas:HasDataSpecification, aas:HasSemantics, aas:Qualifiable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelElementAttributes ; + rdfs:range aas:ModellingKind ; +. + +#aas:ValueOnly rdf:type owl:Class ; +#. diff --git a/rdf-sources/api-ontology.ttl_with-metadata b/rdf-sources/api-ontology.ttl_with-metadata new file mode 100644 index 0000000..a486ed6 --- /dev/null +++ b/rdf-sources/api-ontology.ttl_with-metadata @@ -0,0 +1,748 @@ +@prefix aas: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix vann: . +@prefix xsd: . +@base . + + rdf:type owl:Ontology ; + vann:preferredNamespaceUri "https://admin-shell.io/aas/3/2/"^^xsd:anyURI ; + owl:versionInfo "3.2.0" ; + rdfs:comment "This ontology represents the data model for the Asset Administration Shell according to the specification 'Details of the Asset Administration Shell - Part 1 - Version 3.2.0'."@en ; + vann:preferredNamespacePrefix "aas"^^xsd:string ; + rdfs:isDefinedBy ; +. #TODO use different identifier and version than the ones for the metamodel + + +aas:AnnotatedRelationshipElementMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:AnnotatedRelationshipElementValue rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AnnotatedRelationshipElementValue ; + rdfs:range aas:ReferenceValue; +. + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AnnotatedRelationshipElementValue ; + rdfs:range aas:ReferenceValue ; +. + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AnnotatedRelationshipElementValue ; + rdfs:range xsd:string ; +. + +aas:AssetAdministrationShellDescriptor rdf:type owl:Class ; + rdfs:subClassOf aas:Descriptor ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:AdministrativeInformation ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:LangStringSet ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:LangStringSet ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:Reference ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:SpecificAssetId ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellDescriptor ; + rdfs:range aas:SubmodelDescriptor ; +. + +### https://admin-shell.io/aas/3/2/Environment +aas:Environment rdf:type owl:Class ; + rdfs:label "Environment"^^xsd:string ; + rdfs:comment "Container for the sets of different identifiables."@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/assetAdministrationShells + rdf:type owl:ObjectProperty ; + rdfs:label "has asset administration shells"^^xsd:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:AssetAdministrationShell ; + rdfs:comment "Asset administration shell"@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/conceptDescriptions + rdf:type owl:ObjectProperty ; + rdfs:label "has concept descriptions"^^xsd:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:ConceptDescription ; + rdfs:comment "Concept description"@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/submodels + rdf:type owl:ObjectProperty ; + rdfs:label "has submodels"^^xsd:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:Submodel ; + rdfs:comment "Submodel"@en ; +. + +aas:AssetAdministrationShellMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:Identifiable, aas:HasDataSpecification ; +. + +### https://admin-shell.io/aas/3/2/AssetAdministrationShellMetadata/derivedFrom + rdf:type owl:ObjectProperty ; + rdfs:domain aas:AssetAdministrationShellMetadata ; + rdfs:range aas:Reference ; +. + + +aas:BasicEventElementMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range aas:Direction ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range aas:StateOfEvent ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range aas:Reference ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BasicEventElementMetadata ; + rdfs:range xsd:string ; +. + +aas:BasicEventElementValue rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:BasicEventElementValue ; + rdfs:range aas:ReferenceValue ; +. + +aas:BlobMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:BlobValue rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BlobValue ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:BlobValue ; + rdfs:range xsd:string ; +. + +aas:CapabilityMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:Descriptor rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Descriptor ; + rdfs:range aas:Endpoint ; +. + +aas:Endpoint rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Endpoint ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Endpoint ; + rdfs:range aas:ProtocolInformation ; +. + +aas:EntityMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:EntityValue rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:EntityValue ; + rdfs:range aas:EntityType ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:EntityValue ; + rdfs:range aas:ReferenceValue ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:EntityValue ; + #rdfs:range aas:SpecificAssetIdValue ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:EntityValue ; + #rdfs:range aas:ValueOnly ; + rdfs:range xsd:string ; +. + +aas:ExecutionState rdf:type owl:Class ; +owl:oneOf ( + + + + + + +) ; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + + rdf:type aas:ExecutionState; +. + +aas:FileValue rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:FileValue ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:FileValue ; + rdfs:range xsd:string ; +. + +aas:FileMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +#aas:SpecificAssetIdValue rdf:type owl:Class ; +# todo +#. + +aas:Message rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Message ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Message ; + rdfs:range aas:MessageType ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Message ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Message ; + rdfs:range xsd:string ; +. + +aas:MessageType rdf:type owl:Class ; + owl:oneOf ( + + + + + + ) ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + + rdf:type aas:MessageType ; +. + +aas:ModelType rdf:type owl:Class ; + owl:oneOf ( + + + + + + + + + + + + + + + + + + + + ) ; +. + + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + rdf:type aas:ModelType ; +. + +aas:MultiLanguagePropertyMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:MultiLanguagePropertyValue rdf:type owl:Class ; +#todo +. + +aas:NumberValue rdf:type owl:Class ; +# todo: type: number +. + +aas:OperationHandle rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationHandle ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationHandle ; + rdfs:range xsd:string ; +. + +aas:OperationMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:OperationRequest rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationRequest ; + rdfs:range xsd:integer ; +. + +aas:OperationRequestValueOnly rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationRequestValueOnly ; + #rdfs:range aas:ValueOnly ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationRequestValueOnly ; + #rdfs:range aas:ValueOnly ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationRequestValueOnly ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationRequestValueOnly ; + rdfs:range xsd:integer ; +. + +aas:OperationResult rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:Result ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:ExecutionState ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range aas:OperationVariable ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationResult ; + rdfs:range xsd:string ; +. + +aas:OperationResultValueOnly rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResultValueOnly ; + rdfs:range aas:Result ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResultValueOnly ; + rdfs:range aas:ExecutionState ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResultValueOnly ; + #rdfs:range aas:ValueOnly ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:OperationResultValueOnly ; + #rdfs:range aas:ValueOnly ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:OperationResultValueOnly ; + rdfs:range xsd:string ; +. + +aas:PackageDescription rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:PackageDescription ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:PackageDescription ; + rdfs:range xsd:string ; +. + +aas:PropertyMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:PropertyMetadata ; + rdfs:range aas:DataTypeDefXsd ; +. + +aas:ProtocolInformation rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:ProtocolInformation ; + rdfs:range xsd:string ; +. + +aas:RangeMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:RangeMetadata ; + rdfs:range aas:DataTypeDefXsd ; +. + +aas:RangeValue rdf:type owl:Class ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:RangeValue ; + rdfs:range xsd:integer ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:RangeValue ; + rdfs:range xsd:integer ; +. + +aas:ReferenceElementMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:ReferenceElementValue rdf:type owl:Class ; + rdfs:subClassOf aas:ReferenceValue ; +. + +aas:ReferenceValue rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:ReferenceValue ; + rdfs:range aas:Key ; +. # Todo continue from here + +aas:RelationshipElementMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:RelationshipElementValue rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:RelationshipElementValue ; + rdfs:range aas:ReferenceValue ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:RelationshipElementValue ; + rdfs:range aas:ReferenceValue ; +. + +aas:Result rdf:type owl:Class ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:Result ; + rdfs:range aas:Message ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:Result ; + rdfs:range xsd:boolean ; +. + +aas:StringValue rdf:type owl:Class ; +# todo: type: string +. + +aas:SubmodelDescriptor rdf:type owl:Class ; + rdfs:subClassOf aas:Descriptor ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:AdministrativeInformation ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:LangStringSet ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:LangStringSet ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range xsd:string ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelDescriptor ; + rdfs:range aas:Reference ; +. + +aas:SubmodelElementAttributes rdf:type owl:Class ; + rdfs:subClassOf aas:Referable, aas:HasDataSpecification, aas:HasSemantics, aas:Qualifiable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelElementAttributes ; + rdfs:range aas:ModelingKind ; +. + +aas:SubmodelElementListMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + + rdf:type owl:DatatypeProperty ; + rdfs:domain aas:SubmodelElementListMetadata ; + rdfs:range xsd:boolean ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelElementListMetadata ; + rdfs:range aas:Reference ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelElementListMetadata ; + rdfs:range aas:ModelType ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelElementListMetadata ; + rdfs:range aas:DataTypeDefXsd ; +. + +aas:SubmodelElementListValue rdf:type owl:Class ; #todo make array of aas:SubmodelElementValue +. + +aas:SubmodelElementCollectionMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElementAttributes ; +. + +aas:SubmodelMetadata rdf:type owl:Class ; + rdfs:subClassOf aas:Identifiable, aas:HasDataSpecification, aas:HasSemantics, aas:Qualifiable ; +. + + rdf:type owl:ObjectProperty ; + rdfs:domain aas:SubmodelMetadata ; + rdfs:range aas:ModelingKind ; +. + +#aas:ValueOnly rdf:type owl:Class ; +#. diff --git a/rdf-sources/api-shacl.ttl b/rdf-sources/api-shacl.ttl new file mode 100644 index 0000000..db94431 --- /dev/null +++ b/rdf-sources/api-shacl.ttl @@ -0,0 +1,398 @@ +@prefix aas: . +@prefix iec61360: . +@prefix phys_unit: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xsd: . + +# Metadata + a owl:Ontology ; + owl:imports ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "https://admin-shell.io/aas/3/2/"^^xsd:anyURI ; + sh:prefix "aas"^^xsd:string ; + ] ; +. + + +aas:AssetAdministrationShellDescriptorShape a sh:NodeShape ; + sh:targetClass aas:AssetAdministrationShellDescriptor ; + rdfs:subClassOf aas:DescriptorShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AdministrativeInformation ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringTextType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringNameType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SpecificAssetId ; + #sh:minCount 0 ; + #sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelDescriptor ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:EnvironmentShape a sh:NodeShape ; + sh:targetClass aas:Environment ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AssetAdministrationShell ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ConceptDescription ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Submodel ; + ] ; +. + +aas:BaseOperationResultShape a sh:NodeShape ; + sh:targetClass aas:BaseOperationResult ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ExecutionState ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:boolean ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:DescriptorShape a sh:NodeShape ; + sh:targetClass aas:Descriptor ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Endpoint ; + sh:minCount 1 ; + #sh:maxCount 1 ; + ] ; +. + +aas:EndpointShape a sh:NodeShape ; + sh:targetClass aas:Endpoint ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ProtocolInformation ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:MessageShape a sh:NodeShape ; + sh:targetClass aas:Message ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:MessageType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationHandleShape a sh:NodeShape ; + sh:targetClass aas:OperationHandle ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationRequestShape a sh:NodeShape ; + sh:targetClass aas:OperationRequest ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:integer ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:PackageDescriptionShape a sh:NodeShape ; + sh:targetClass aas:PackageDescription ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:ProtocolInformationShape a sh:NodeShape ; + sh:targetClass aas:ProtocolInformation ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SecurityAttributeObject ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:ResultShape a sh:NodeShape ; + sh:targetClass aas:Result ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Message ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:boolean ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SecurityAttributeObjectShape a sh:NodeShape ; + sh:targetClass aas:SecurityAttributeObject ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SecurityTypeEnum; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + . + +aas:SubmodelDescriptorShape a sh:NodeShape ; + rdfs:subClassOf aas:DescriptorShape ; + sh:targetClass aas:SubmodelDescriptor ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AdministrativeInformation ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringTextType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringNameType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SubmodelElementAttributesShape a sh:NodeShape ; + sh:targetClass aas:SubmodelElementAttributes ; + rdfs:subClassOf aas:ReferableShape, aas:HasDataSpecificationShape, aas:HasSemanticsShape, aas:QualifiableShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ModellingKind ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + diff --git a/rdf-sources/api-shacl.ttl_with-metadata b/rdf-sources/api-shacl.ttl_with-metadata new file mode 100644 index 0000000..ec3b553 --- /dev/null +++ b/rdf-sources/api-shacl.ttl_with-metadata @@ -0,0 +1,780 @@ +@prefix aas: . +@prefix iec61360: . +@prefix phys_unit: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xsd: . + +# Metadata + a owl:Ontology ; + owl:imports ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "https://admin-shell.io/aas/3/2/"^^xsd:anyURI ; + sh:prefix "aas"^^xsd:string ; + ] ; +. + + +aas:AnnotatedRelationshipElementMetadataShape a sh:NodeShape ; + sh:targetClass aas:AnnotatedRelationshipElementMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + + +aas:AnnotatedRelationshipElementValueShape a sh:NodeShape ; + sh:targetClass aas:AnnotatedRelationshipElementValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + + +aas:AssetAdministrationShellDescriptorShape a sh:NodeShape ; + sh:targetClass aas:AssetAdministrationShellDescriptor ; + rdfs:subClassOf aas:DescriptorShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AdministrativeInformation ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringSet ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringSet ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SpecificAssetId ; + #sh:minCount 0 ; + #sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelDescriptor ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:EnvironmentShape a sh:NodeShape ; + sh:targetClass aas:Environment ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AssetAdministrationShell ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ConceptDescription ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Submodel ; + ] ; +. + +aas:AssetAdministrationShellMetadataShape a sh:NodeShape ; + sh:targetClass aas:AssetAdministrationShellMetadata ; + rdfs:subClassOf aas:IdentifiableShape, aas:HasDataSpecificationShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + ] ; +. + +aas:BasicEventElementMetadataShape a sh:NodeShape ; + sh:targetClass aas:BasicEventElementMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Direction ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:StateOfEvent ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + ] ; +. + +aas:BasicEventElementValueShape a sh:NodeShape ; + sh:targetClass aas:BasicEventElementValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ReferenceValue ; + ] ; +. + +aas:BlobMetadataShape a sh:NodeShape ; + sh:targetClass aas:BlobMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:BlobValueShape a sh:NodeShape ; + sh:targetClass aas:BlobValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:CapabilityMetadataShape a sh:NodeShape ; + sh:targetClass aas:CapabilityMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:DescriptorShape a sh:NodeShape ; + sh:targetClass aas:Descriptor ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Endpoint ; + sh:minCount 1 ; + #sh:maxCount 1 ; + ] ; +. + +aas:EndpointShape a sh:NodeShape ; + sh:targetClass aas:Endpoint ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ProtocolInformation ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:EntityMetadataShape a sh:NodeShape ; + sh:targetClass aas:EntityMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:EntityValueShape a sh:NodeShape ; + sh:targetClass aas:EntityValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:EntityType ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ReferenceValue ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:class aas:SpecificAssetIdValue ; + sh:datatype xsd:string ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:class aas:ValueOnly ; + sh:minCount 1 ; + ] ; +. + +aas:FileValueShape a sh:NodeShape ; + sh:targetClass aas:FileValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:FileMetadataShape a sh:NodeShape ; + sh:targetClass aas:FileMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:MessageShape a sh:NodeShape ; + sh:targetClass aas:Message ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:MessageType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:MultiLanguagePropertyMetadataShape a sh:NodeShape ; + sh:targetClass aas:MultiLanguagePropertyMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:OperationHandleShape a sh:NodeShape ; + sh:targetClass aas:OperationHandle ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationMetadataShape a sh:NodeShape ; + sh:targetClass aas:OperationMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:OperationRequestShape a sh:NodeShape ; + sh:targetClass aas:OperationRequest ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:integer ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationRequestValueOnlyShape a sh:NodeShape ; + sh:targetClass aas:OperationRequestValueOnly ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:class aas:OperationVariable ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:class aas:OperationVariable ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:integer ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationResultShape a sh:NodeShape ; + sh:targetClass aas:OperationResult ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Result ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ExecutionState ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationResultValueOnlyShape a sh:NodeShape ; + sh:targetClass aas:OperationRequestValueOnly ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Result ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ExecutionState ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + #sh:class aas:OperationVariable ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:PackageDescriptionShape a sh:NodeShape ; + sh:targetClass aas:PackageDescription ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:PropertyMetadataShape a sh:NodeShape ; + sh:targetClass aas:PropertyMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:ProtocolInformationShape a sh:NodeShape ; + sh:targetClass aas:ProtocolInformation ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:RangeMetadataShape a sh:NodeShape ; + sh:targetClass aas:RangeMetadata ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:RangeValueShape a sh:NodeShape ; + sh:targetClass aas:RangeValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:ReferenceElementMetadataShape a sh:NodeShape ; + sh:targetClass aas:ReferenceElementMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:ReferenceElementValueShape a sh:NodeShape ; + sh:targetClass aas:ReferenceElementValue ; + rdfs:subClassOf aas:ReferenceValueShape ; +. + +aas:ReferenceValueShape a sh:NodeShape ; + sh:targetClass aas:ReferenceValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Key ; + ] ; +. + +aas:RelationshipElementMetadataShape a sh:NodeShape ; + sh:targetClass aas:RelationshipElementMetadata ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; +. + +aas:RelationshipElementValueShape a sh:NodeShape ; + sh:targetClass aas:RelationshipElementValue ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ReferenceValue ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ReferenceValue ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:ResultShape a sh:NodeShape ; + sh:targetClass aas:Result ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Message ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:boolean ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SubmodelDescriptorShape a sh:NodeShape ; + rdfs:subClassOf aas:DescriptorShape ; + sh:targetClass aas:SubmodelDescriptor ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AdministrativeInformation ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringSet ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringSet ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SubmodelElementAttributesShape a sh:NodeShape ; + sh:targetClass aas:SubmodelElementAttributes ; + rdfs:subClassOf aas:ReferableShape, aas:HasDataSpecificationShape, aas:HasSemanticsShape, aas:QualifiableShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ModelingKind ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SubmodelElementListMetadataShape a sh:NodeShape ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; + sh:targetClass aas:SubmodelElementListMetadata ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xsd:boolean ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ModelType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SubmodelElementCollectionMetadataShape a sh:NodeShape ; + rdfs:subClassOf aas:SubmodelElementAttributesShape ; + sh:targetClass aas:SubmodelElementCollectionMetadata ; +. + +aas:SubmodelMetadataShape a sh:NodeShape ; + rdfs:subClassOf aas:IdentifiableShape, aas:HasDataSpecificationShape, aas:HasSemanticsShape, aas:QualifiableShape ; + sh:targetClass aas:SubmodelMetadata ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ModelingKind ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. diff --git a/rdf-sources/rdf-ontology.ttl b/rdf-sources/rdf-ontology.ttl new file mode 100644 index 0000000..8d9ef25 --- /dev/null +++ b/rdf-sources/rdf-ontology.ttl @@ -0,0 +1,2173 @@ +@prefix aas: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xs: . +@base . + + rdf:type owl:Ontology ; + owl:versionInfo "V3.2" ; + rdfs:comment "This ontology represents the data model for the Asset Administration Shell according to the specification version V3.2."@en ; + rdfs:isDefinedBy ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements +aas:AasSubmodelElements rdf:type owl:Class ; + rdfs:label "AAS Submodel Elements"^^xs:string ; + rdfs:comment "Enumeration of all possible elements of a 'SubmodelElementList'."@en ; + owl:oneOf ( + + + + + + + + + + + + + + + + + + ) ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/AnnotatedRelationshipElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Annotated Relationship Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/BasicEventElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Basic Event Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/Blob + rdf:type aas:AasSubmodelElements ; + rdfs:label "Blob"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/Capability + rdf:type aas:AasSubmodelElements ; + rdfs:label "Capability"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/DataElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Data Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/Entity + rdf:type aas:AasSubmodelElements ; + rdfs:label "Entity"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/EventElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Event Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/File + rdf:type aas:AasSubmodelElements ; + rdfs:label "File"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/MultiLanguageProperty + rdf:type aas:AasSubmodelElements ; + rdfs:label "Multi Language Property"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/Operation + rdf:type aas:AasSubmodelElements ; + rdfs:label "Operation"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/Property + rdf:type aas:AasSubmodelElements ; + rdfs:label "Property"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/Range + rdf:type aas:AasSubmodelElements ; + rdfs:label "Range"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/ReferenceElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Reference Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/RelationshipElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Relationship Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/SubmodelElement + rdf:type aas:AasSubmodelElements ; + rdfs:label "Submodel Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/SubmodelElementCollection + rdf:type aas:AasSubmodelElements ; + rdfs:label "Submodel Element Collection"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AasSubmodelElements/SubmodelElementList + rdf:type aas:AasSubmodelElements ; + rdfs:label "Submodel Element List"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/AbstractLangString +aas:AbstractLangString rdf:type owl:Class ; + rdfs:label "Abstract Lang String"^^xs:string ; + rdfs:comment "Strings with language tags"@en ; +. + +### https://admin-shell.io/aas/3/2/AbstractLangString/language + rdf:type owl:DatatypeProperty ; + rdfs:label "has language"^^xs:string ; + rdfs:domain aas:AbstractLangString ; + rdfs:range xs:string ; + rdfs:comment "Language tag conforming to BCP 47"@en ; +. + +### https://admin-shell.io/aas/3/2/AbstractLangString/text + rdf:type owl:DatatypeProperty ; + rdfs:label "has text"^^xs:string ; + rdfs:domain aas:AbstractLangString ; + rdfs:range xs:string ; + rdfs:comment "Text in the 'language'"@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation +aas:AdministrativeInformation rdf:type owl:Class ; + rdfs:subClassOf aas:HasDataSpecification ; + rdfs:label "Administrative Information"^^xs:string ; + rdfs:comment "Administrative meta-information for an element like version information."@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation/createdAt + rdf:type owl:DatatypeProperty ; + rdfs:label "has created at"^^xs:string ; + rdfs:domain aas:AdministrativeInformation ; + rdfs:range xs:dateTimeStamp ; + rdfs:comment "Date of creation"@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation/creator + rdf:type owl:ObjectProperty ; + rdfs:label "has creator"^^xs:string ; + rdfs:domain aas:AdministrativeInformation ; + rdfs:range aas:Reference ; + rdfs:comment "The subject ID of the subject responsible for making the element."@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation/revision + rdf:type owl:DatatypeProperty ; + rdfs:label "has revision"^^xs:string ; + rdfs:domain aas:AdministrativeInformation ; + rdfs:range xs:string ; + rdfs:comment "Revision of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation/templateId + rdf:type owl:DatatypeProperty ; + rdfs:label "has template ID"^^xs:string ; + rdfs:domain aas:AdministrativeInformation ; + rdfs:range xs:string ; + rdfs:comment "Identifier of the template that guided the creation of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation/updatedAt + rdf:type owl:DatatypeProperty ; + rdfs:label "has updated at"^^xs:string ; + rdfs:domain aas:AdministrativeInformation ; + rdfs:range xs:dateTimeStamp ; + rdfs:comment "Date of update"@en ; +. + +### https://admin-shell.io/aas/3/2/AdministrativeInformation/version + rdf:type owl:DatatypeProperty ; + rdfs:label "has version"^^xs:string ; + rdfs:domain aas:AdministrativeInformation ; + rdfs:range xs:string ; + rdfs:comment "Version of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/AnnotatedRelationshipElement +aas:AnnotatedRelationshipElement rdf:type owl:Class ; + rdfs:subClassOf aas:RelationshipElement ; + rdfs:label "Annotated Relationship Element"^^xs:string ; + rdfs:comment "An annotated relationship element is a relationship element that can be annotated with additional data elements."@en ; +. + +### https://admin-shell.io/aas/3/2/AnnotatedRelationshipElement/annotations + rdf:type owl:ObjectProperty ; + rdfs:label "has annotations"^^xs:string ; + rdfs:domain aas:AnnotatedRelationshipElement ; + rdfs:range aas:DataElement ; + rdfs:comment "A data element that represents an annotation that holds for the relationship between the two elements"@en ; +. + +### https://admin-shell.io/aas/3/2/AssetAdministrationShell +aas:AssetAdministrationShell rdf:type owl:Class ; + rdfs:subClassOf aas:Identifiable ; + rdfs:subClassOf aas:HasDataSpecification ; + rdfs:label "Asset Administration Shell"^^xs:string ; + rdfs:comment "An asset administration shell."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetAdministrationShell/assetInformation + rdf:type owl:ObjectProperty ; + rdfs:label "has asset information"^^xs:string ; + rdfs:domain aas:AssetAdministrationShell ; + rdfs:range aas:AssetInformation ; + rdfs:comment "Meta-information about the asset the AAS is representing."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetAdministrationShell/derivedFrom + rdf:type owl:ObjectProperty ; + rdfs:label "has derived from"^^xs:string ; + rdfs:domain aas:AssetAdministrationShell ; + rdfs:range aas:Reference ; + rdfs:comment "The reference to the AAS the AAS was derived from."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetAdministrationShell/submodels + rdf:type owl:ObjectProperty ; + rdfs:label "has submodels"^^xs:string ; + rdfs:domain aas:AssetAdministrationShell ; + rdfs:range aas:Reference ; + rdfs:comment "References to submodels of the AAS."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetInformation +aas:AssetInformation rdf:type owl:Class ; + rdfs:label "Asset Information"^^xs:string ; + rdfs:comment "In 'AssetInformation' identifying meta data of the asset that is represented by an AAS is defined."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetInformation/assetKind + rdf:type owl:ObjectProperty ; + rdfs:label "has asset kind"^^xs:string ; + rdfs:domain aas:AssetInformation ; + rdfs:range aas:AssetKind ; + rdfs:comment "Denotes whether the Asset is of kind 'Type' or 'Instance', 'Role' or 'Batch'."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetInformation/assetType + rdf:type owl:DatatypeProperty ; + rdfs:label "has asset type"^^xs:string ; + rdfs:domain aas:AssetInformation ; + rdfs:range xs:string ; + rdfs:comment "In case 'assetKind' is applicable the 'assetType' is the asset ID of the type asset of the asset under consideration as identified by 'globalAssetId'."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetInformation/defaultThumbnail + rdf:type owl:ObjectProperty ; + rdfs:label "has default thumbnail"^^xs:string ; + rdfs:domain aas:AssetInformation ; + rdfs:range aas:Resource ; + rdfs:comment "Thumbnail of the asset represented by the Asset Administration Shell."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetInformation/globalAssetId + rdf:type owl:DatatypeProperty ; + rdfs:label "has global asset ID"^^xs:string ; + rdfs:domain aas:AssetInformation ; + rdfs:range xs:string ; + rdfs:comment "Global identifier of the asset the AAS is representing."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetInformation/specificAssetIds + rdf:type owl:ObjectProperty ; + rdfs:label "has specific asset IDs"^^xs:string ; + rdfs:domain aas:AssetInformation ; + rdfs:range aas:SpecificAssetId ; + rdfs:comment "Additional domain-specific, typically proprietary identifier for the asset like e.g., serial number etc."@en ; +. + +### https://admin-shell.io/aas/3/2/AssetKind +aas:AssetKind rdf:type owl:Class ; + rdfs:label "Asset Kind"^^xs:string ; + rdfs:comment "Enumeration for denoting whether an asset is a type, instance, role or batch asset."@en ; + owl:oneOf ( + + + + + + ) ; +. + +### https://admin-shell.io/aas/3/2/AssetKind/Batch + rdf:type aas:AssetKind ; + rdfs:label "Batch"^^xs:string ; + rdfs:comment "Batch asset"@en ; +. + +### https://admin-shell.io/aas/3/2/AssetKind/Instance + rdf:type aas:AssetKind ; + rdfs:label "Instance"^^xs:string ; + rdfs:comment "Instance asset"@en ; +. + +### https://admin-shell.io/aas/3/2/AssetKind/NotApplicable + rdf:type aas:AssetKind ; + rdfs:label "Not Applicable"^^xs:string ; + rdfs:comment "Neither a type, instance, role, nor batch asset"@en ; +. + +### https://admin-shell.io/aas/3/2/AssetKind/Role + rdf:type aas:AssetKind ; + rdfs:label "Role"^^xs:string ; + rdfs:comment "Role asset"@en ; +. + +### https://admin-shell.io/aas/3/2/AssetKind/Type + rdf:type aas:AssetKind ; + rdfs:label "Type"^^xs:string ; + rdfs:comment "Type asset"@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement +aas:BasicEventElement rdf:type owl:Class ; + rdfs:subClassOf aas:EventElement ; + rdfs:label "Basic Event Element"^^xs:string ; + rdfs:comment "A basic event element."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/direction + rdf:type owl:ObjectProperty ; + rdfs:label "has direction"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range aas:Direction ; + rdfs:comment "Direction of event."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/lastUpdate + rdf:type owl:DatatypeProperty ; + rdfs:label "has last update"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range xs:dateTimeStamp ; + rdfs:comment "Timestamp in UTC, when the last event was received (input direction) or sent (output direction)."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/maxInterval + rdf:type owl:DatatypeProperty ; + rdfs:label "has max interval"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range xs:string ; + rdfs:comment "For input direction: not applicable."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/messageBroker + rdf:type owl:ObjectProperty ; + rdfs:label "has message broker"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range aas:Reference ; + rdfs:comment "Information, which outer message infrastructure shall handle messages for the 'EventElement'. Refers to a 'Submodel', 'SubmodelElementList', 'SubmodelElementCollection' or 'Entity', which contains 'DataElement''s describing the proprietary specification for the message broker."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/messageTopic + rdf:type owl:DatatypeProperty ; + rdfs:label "has message topic"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range xs:string ; + rdfs:comment "Information for the outer message infrastructure for scheduling the event to the respective communication channel."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/minInterval + rdf:type owl:DatatypeProperty ; + rdfs:label "has min interval"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range xs:string ; + rdfs:comment "For input direction, reports on the maximum frequency, the software entity behind the respective Referable can handle input events."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/observed + rdf:type owl:ObjectProperty ; + rdfs:label "has observed"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the 'Referable', which defines the scope of the event. Can be 'AssetAdministrationShell', 'Submodel', or 'SubmodelElement'."@en ; +. + +### https://admin-shell.io/aas/3/2/BasicEventElement/state + rdf:type owl:ObjectProperty ; + rdfs:label "has state"^^xs:string ; + rdfs:domain aas:BasicEventElement ; + rdfs:range aas:StateOfEvent ; + rdfs:comment "State of event."@en ; +. + +### https://admin-shell.io/aas/3/2/Blob +aas:Blob rdf:type owl:Class ; + rdfs:subClassOf aas:DataElement ; + rdfs:label "Blob"^^xs:string ; + rdfs:comment "A 'Blob' is a data element that represents a file that is contained with its source code in the value attribute."@en ; +. + +### https://admin-shell.io/aas/3/2/Blob/contentType + rdf:type owl:DatatypeProperty ; + rdfs:label "has content type"^^xs:string ; + rdfs:domain aas:Blob ; + rdfs:range xs:string ; + rdfs:comment "Content type of the content of the 'Blob'."@en ; +. + +### https://admin-shell.io/aas/3/2/Blob/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:Blob ; + rdfs:range xs:base64Binary ; + rdfs:comment "The value of the 'Blob' instance of a blob data element."@en ; +. + +### https://admin-shell.io/aas/3/2/Capability +aas:Capability rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Capability"^^xs:string ; + rdfs:comment "A capability is the implementation-independent description of the potential of an asset to achieve a certain effect in the physical or virtual world."@en ; +. + +### https://admin-shell.io/aas/3/2/ConceptDescription +aas:ConceptDescription rdf:type owl:Class ; + rdfs:subClassOf aas:Identifiable ; + rdfs:subClassOf aas:HasDataSpecification ; + rdfs:label "Concept Description"^^xs:string ; + rdfs:comment "The semantics of a property or other elements that may have a semantic description is defined by a concept description."@en ; +. + +### https://admin-shell.io/aas/3/2/ConceptDescription/isCaseOf + rdf:type owl:ObjectProperty ; + rdfs:label "has is case of"^^xs:string ; + rdfs:domain aas:ConceptDescription ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to an external definition the concept is compatible to or was derived from."@en ; +. + +### https://admin-shell.io/aas/3/2/DataElement +aas:DataElement rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Data Element"^^xs:string ; + rdfs:comment "A data element is a submodel element that is not further composed out of other submodel elements."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationContent +aas:DataSpecificationContent rdf:type owl:Class ; + rdfs:label "Data Specification Content"^^xs:string ; + rdfs:comment "Data specification content is part of a data specification template and defines which additional attributes shall be added to the element instance that references the data specification template and meta information about the template itself."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360 +aas:DataSpecificationIec61360 rdf:type owl:Class ; + rdfs:subClassOf aas:DataSpecificationContent ; + rdfs:label "Data Specification IEC 61360"^^xs:string ; + rdfs:comment "Content of data specification template for concept descriptions for properties, values and value lists conformant to IEC 61360."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/dataType + rdf:type owl:ObjectProperty ; + rdfs:label "has data type"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:DataTypeIec61360 ; + rdfs:comment "Data Type"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/definition + rdf:type owl:ObjectProperty ; + rdfs:label "has definition"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:LangStringDefinitionTypeIec61360 ; + rdfs:comment "Definition in different languages"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/levelType + rdf:type owl:ObjectProperty ; + rdfs:label "has level type"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:LevelType ; + rdfs:comment "Set of levels."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/preferredName + rdf:type owl:ObjectProperty ; + rdfs:label "has preferred name"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:LangStringPreferredNameTypeIec61360 ; + rdfs:comment "Preferred name"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/shortName + rdf:type owl:ObjectProperty ; + rdfs:label "has short name"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:LangStringShortNameTypeIec61360 ; + rdfs:comment "Short name"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/sourceOfDefinition + rdf:type owl:DatatypeProperty ; + rdfs:label "has source of definition"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range xs:string ; + rdfs:comment "Source of definition"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/symbol + rdf:type owl:DatatypeProperty ; + rdfs:label "has symbol"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range xs:string ; + rdfs:comment "Symbol"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/unit + rdf:type owl:DatatypeProperty ; + rdfs:label "has unit"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range xs:string ; + rdfs:comment "Unit"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/unitId + rdf:type owl:ObjectProperty ; + rdfs:label "has unit ID"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:Reference ; + rdfs:comment "Unique unit id"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range xs:string ; + rdfs:comment "Value"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/valueFormat + rdf:type owl:DatatypeProperty ; + rdfs:label "has value format"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range xs:string ; + rdfs:comment "Value Format"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationIec61360/valueList + rdf:type owl:ObjectProperty ; + rdfs:label "has value list"^^xs:string ; + rdfs:domain aas:DataSpecificationIec61360 ; + rdfs:range aas:ValueList ; + rdfs:comment "List of allowed values"@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom +aas:DataSpecificationUom rdf:type owl:Class ; + rdfs:subClassOf aas:DataSpecificationContent ; + rdfs:label "Data Specification UoM"^^xs:string ; + rdfs:comment "Content of data specification template for concept descriptions for Units of Measurement."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/classificationSystem + rdf:type owl:DatatypeProperty ; + rdfs:label "has classification system"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range xs:string ; + rdfs:comment "Name of the classification system used for the definition of units and quantities."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/classificationSystemVersion + rdf:type owl:DatatypeProperty ; + rdfs:label "has classification system version"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range xs:string ; + rdfs:comment "Version of the classification system used for the definition of units and quantities."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/definition + rdf:type owl:ObjectProperty ; + rdfs:label "has definition"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range aas:LangStringDefinitionTypeUom ; + rdfs:comment "Definition of the unit in different languages."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/preferredName + rdf:type owl:ObjectProperty ; + rdfs:label "has preferred name"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range aas:LangStringUom ; + rdfs:comment "Preferred name of the unit in different languages as defined by the classification system."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/preferredNameQuantity + rdf:type owl:ObjectProperty ; + rdfs:label "has preferred name quantity"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range aas:LangStringUom ; + rdfs:comment "Preferred name of the unit's quantity in different languages."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/quantityId + rdf:type owl:DatatypeProperty ; + rdfs:label "has quantity ID"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range xs:string ; + rdfs:comment "ID of the unit's quantity."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/specificUnitId + rdf:type owl:DatatypeProperty ; + rdfs:label "has specific unit ID"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range xs:string ; + rdfs:comment "ID of the unit defined by the classification system."@en ; +. + +### https://admin-shell.io/aas/3/2/DataSpecificationUom/symbol + rdf:type owl:DatatypeProperty ; + rdfs:label "has symbol"^^xs:string ; + rdfs:domain aas:DataSpecificationUom ; + rdfs:range xs:string ; + rdfs:comment "Symbol of the unit."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd +aas:DataTypeDefXsd rdf:type owl:Class ; + rdfs:label "Data Type Def XSD"^^xs:string ; + rdfs:comment "Enumeration listing all XSD anySimpleTypes"@en ; + owl:oneOf ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/AnyUri + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Any URI"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Base64Binary + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Base 64 Binary"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Boolean + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Boolean"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Byte + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Byte"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Date + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Date"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/DateTime + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Date Time"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Decimal + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Decimal"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Double + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Double"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Duration + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Duration"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Float + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Float"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/GDay + rdf:type aas:DataTypeDefXsd ; + rdfs:label "G Day"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/GMonth + rdf:type aas:DataTypeDefXsd ; + rdfs:label "G Month"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/GMonthDay + rdf:type aas:DataTypeDefXsd ; + rdfs:label "G Month Day"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/GYear + rdf:type aas:DataTypeDefXsd ; + rdfs:label "G Year"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/GYearMonth + rdf:type aas:DataTypeDefXsd ; + rdfs:label "G Year Month"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/HexBinary + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Hex Binary"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Int + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Int"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Integer + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Integer"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Long + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Long"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/NegativeInteger + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Negative Integer"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/NonNegativeInteger + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Non Negative Integer"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/NonPositiveInteger + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Non Positive Integer"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/PositiveInteger + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Positive Integer"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Short + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Short"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/String + rdf:type aas:DataTypeDefXsd ; + rdfs:label "String"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/Time + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Time"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/UnsignedByte + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Unsigned Byte"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/UnsignedInt + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Unsigned Int"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/UnsignedLong + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Unsigned Long"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeDefXsd/UnsignedShort + rdf:type aas:DataTypeDefXsd ; + rdfs:label "Unsigned Short"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360 +aas:DataTypeIec61360 rdf:type owl:Class ; + rdfs:label "Data Type IEC 61360"^^xs:string ; + owl:oneOf ( + + + + + + + + + + + + + + + + + + + + ) ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Blob + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Blob"^^xs:string ; + rdfs:comment "values containing the content of a file. Values may be binaries."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Boolean + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Boolean"^^xs:string ; + rdfs:comment "values representing truth of logic or Boolean algebra (TRUE, FALSE)"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Date + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Date"^^xs:string ; + rdfs:comment "values containing a calendar date, conformant to ISO 8601:2004 Format yyyy-mm-dd Example from IEC 61360-1:2017: \"1999-05-31\" is the [DATE] representation of: \"31 May 1999\"."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/File + rdf:type aas:DataTypeIec61360 ; + rdfs:label "File"^^xs:string ; + rdfs:comment "values containing an address to a file. The values are of type URI and can represent an absolute or relative path."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Html + rdf:type aas:DataTypeIec61360 ; + rdfs:label "HTML"^^xs:string ; + rdfs:comment "Values containing string with any sequence of characters, using the syntax of HTML5 (see W3C Recommendation 28:2014)"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/IntegerCount + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Integer Count"^^xs:string ; + rdfs:comment "values containing values of type INTEGER but are no currencies or measures"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/IntegerCurrency + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Integer Currency"^^xs:string ; + rdfs:comment "values containing values of type INTEGER that are currencies"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/IntegerMeasure + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Integer Measure"^^xs:string ; + rdfs:comment "values containing values that are measure of type INTEGER. In addition such a value comes with a physical unit."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Irdi + rdf:type aas:DataTypeIec61360 ; + rdfs:label "IRDI"^^xs:string ; + rdfs:comment "values conforming to ISO/IEC 11179 series global identifier sequences"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Iri + rdf:type aas:DataTypeIec61360 ; + rdfs:label "IRI"^^xs:string ; + rdfs:comment "values containing values of type STRING conformant to Rfc 3987"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Rational + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Rational"^^xs:string ; + rdfs:comment "values containing values of type rational"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/RationalMeasure + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Rational Measure"^^xs:string ; + rdfs:comment "values containing values of type rational. In addition such a value comes with a physical unit."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/RealCount + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Real Count"^^xs:string ; + rdfs:comment "values containing numbers that can be written as a terminating or non-terminating decimal; a rational or irrational number but are no currencies or measures"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/RealCurrency + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Real Currency"^^xs:string ; + rdfs:comment "values containing values of type REAL that are currencies"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/RealMeasure + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Real Measure"^^xs:string ; + rdfs:comment "values containing values that are measures of type REAL. In addition such a value comes with a physical unit."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/String + rdf:type aas:DataTypeIec61360 ; + rdfs:label "String"^^xs:string ; + rdfs:comment "values consisting of sequence of characters but cannot be translated into other languages"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/StringTranslatable + rdf:type aas:DataTypeIec61360 ; + rdfs:label "String Translatable"^^xs:string ; + rdfs:comment "values containing string but shall be represented as different string in different languages"@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Time + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Time"^^xs:string ; + rdfs:comment "values containing a time, conformant to ISO 8601:2004 but restricted to what is allowed in the corresponding type in xml."@en ; +. + +### https://admin-shell.io/aas/3/2/DataTypeIec61360/Timestamp + rdf:type aas:DataTypeIec61360 ; + rdfs:label "Timestamp"^^xs:string ; + rdfs:comment "values containing a time, conformant to ISO 8601:2004 but restricted to what is allowed in the corresponding type in xml."@en ; +. + +### https://admin-shell.io/aas/3/2/Direction +aas:Direction rdf:type owl:Class ; + rdfs:label "Direction"^^xs:string ; + rdfs:comment "Direction"@en ; + owl:oneOf ( + + + ) ; +. + +### https://admin-shell.io/aas/3/2/Direction/Input + rdf:type aas:Direction ; + rdfs:label "Input"^^xs:string ; + rdfs:comment "Input direction."@en ; +. + +### https://admin-shell.io/aas/3/2/Direction/Output + rdf:type aas:Direction ; + rdfs:label "Output"^^xs:string ; + rdfs:comment "Output direction"@en ; +. + +### https://admin-shell.io/aas/3/2/EmbeddedDataSpecification +aas:EmbeddedDataSpecification rdf:type owl:Class ; + rdfs:label "Embedded Data Specification"^^xs:string ; + rdfs:comment "Embed the content of a data specification."@en ; +. + +### https://admin-shell.io/aas/3/2/EmbeddedDataSpecification/dataSpecification + rdf:type owl:ObjectProperty ; + rdfs:label "has data specification"^^xs:string ; + rdfs:domain aas:EmbeddedDataSpecification ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the data specification"@en ; +. + +### https://admin-shell.io/aas/3/2/EmbeddedDataSpecification/dataSpecificationContent + rdf:type owl:ObjectProperty ; + rdfs:label "has data specification content"^^xs:string ; + rdfs:domain aas:EmbeddedDataSpecification ; + rdfs:range aas:DataSpecificationContent ; + rdfs:comment "Actual content of the data specification"@en ; +. + +### https://admin-shell.io/aas/3/2/Entity +aas:Entity rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Entity"^^xs:string ; + rdfs:comment "An entity is a submodel element that is used to model entities."@en ; +. + +### https://admin-shell.io/aas/3/2/Entity/entityType + rdf:type owl:ObjectProperty ; + rdfs:label "has entity type"^^xs:string ; + rdfs:domain aas:Entity ; + rdfs:range aas:EntityType ; + rdfs:comment "Describes whether the entity is a co-managed entity or a self-managed entity."@en ; +. + +### https://admin-shell.io/aas/3/2/Entity/globalAssetId + rdf:type owl:DatatypeProperty ; + rdfs:label "has global asset ID"^^xs:string ; + rdfs:domain aas:Entity ; + rdfs:range xs:string ; + rdfs:comment "Global identifier of the asset the entity is representing."@en ; +. + +### https://admin-shell.io/aas/3/2/Entity/specificAssetIds + rdf:type owl:ObjectProperty ; + rdfs:label "has specific asset IDs"^^xs:string ; + rdfs:domain aas:Entity ; + rdfs:range aas:SpecificAssetId ; + rdfs:comment "Reference to a specific asset ID representing a supplementary identifier of the asset represented by the Asset Administration Shell."@en ; +. + +### https://admin-shell.io/aas/3/2/Entity/statements + rdf:type owl:ObjectProperty ; + rdfs:label "has statements"^^xs:string ; + rdfs:domain aas:Entity ; + rdfs:range aas:SubmodelElement ; + rdfs:comment "Describes statements applicable to the entity by a set of submodel elements, typically with a qualified value."@en ; +. + +### https://admin-shell.io/aas/3/2/EntityType +aas:EntityType rdf:type owl:Class ; + rdfs:label "Entity Type"^^xs:string ; + rdfs:comment "Enumeration for denoting whether an entity is a self-managed entity or a co-managed entity."@en ; + owl:oneOf ( + + + ) ; +. + +### https://admin-shell.io/aas/3/2/EntityType/CoManagedEntity + rdf:type aas:EntityType ; + rdfs:label "Co Managed Entity"^^xs:string ; + rdfs:comment "For co-managed entities there is no separate AAS. Co-managed entities need to be part of a self-managed entity."@en ; +. + +### https://admin-shell.io/aas/3/2/EntityType/SelfManagedEntity + rdf:type aas:EntityType ; + rdfs:label "Self Managed Entity"^^xs:string ; + rdfs:comment "Self-Managed Entities have their own AAS but can be part of the bill of material of a composite self-managed entity."@en ; +. + +### https://admin-shell.io/aas/3/2/Environment +aas:Environment rdf:type owl:Class ; + rdfs:label "Environment"^^xs:string ; + rdfs:comment "Container for the sets of different identifiables."@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/assetAdministrationShells + rdf:type owl:ObjectProperty ; + rdfs:label "has asset administration shells"^^xs:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:AssetAdministrationShell ; + rdfs:comment "Asset administration shell"@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/conceptDescriptions + rdf:type owl:ObjectProperty ; + rdfs:label "has concept descriptions"^^xs:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:ConceptDescription ; + rdfs:comment "Concept description"@en ; +. + +### https://admin-shell.io/aas/3/2/Environment/submodels + rdf:type owl:ObjectProperty ; + rdfs:label "has submodels"^^xs:string ; + rdfs:domain aas:Environment ; + rdfs:range aas:Submodel ; + rdfs:comment "Submodel"@en ; +. + +### https://admin-shell.io/aas/3/2/EventElement +aas:EventElement rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Event Element"^^xs:string ; + rdfs:comment "An event element."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload +aas:EventPayload rdf:type owl:Class ; + rdfs:label "Event Payload"^^xs:string ; + rdfs:comment "Defines the necessary information of an event instance sent out or received."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/observableReference + rdf:type owl:ObjectProperty ; + rdfs:label "has observable reference"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the referable, which defines the scope of the event."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/observableSemanticId + rdf:type owl:ObjectProperty ; + rdfs:label "has observable semantic ID"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range aas:Reference ; + rdfs:comment "'semanticId' of the referable which defines the scope of the event, if available."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/payload + rdf:type owl:DatatypeProperty ; + rdfs:label "has payload"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range xs:base64Binary ; + rdfs:comment "Event specific payload."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/source + rdf:type owl:ObjectProperty ; + rdfs:label "has source"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the source event element, including identification of 'AssetAdministrationShell', 'Submodel', 'SubmodelElement''s."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/sourceSemanticId + rdf:type owl:ObjectProperty ; + rdfs:label "has source semantic ID"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range aas:Reference ; + rdfs:comment "'semanticId' of the source event element, if available"@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/subjectId + rdf:type owl:ObjectProperty ; + rdfs:label "has subject ID"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range aas:Reference ; + rdfs:comment "Subject, who/which initiated the creation."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/timeStamp + rdf:type owl:DatatypeProperty ; + rdfs:label "has time stamp"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range xs:string ; + rdfs:comment "Timestamp in UTC, when this event was triggered."@en ; +. + +### https://admin-shell.io/aas/3/2/EventPayload/topic + rdf:type owl:DatatypeProperty ; + rdfs:label "has topic"^^xs:string ; + rdfs:domain aas:EventPayload ; + rdfs:range xs:string ; + rdfs:comment "Information for the outer message infrastructure for scheduling the event to the respective communication channel."@en ; +. + +### https://admin-shell.io/aas/3/2/Extension +aas:Extension rdf:type owl:Class ; + rdfs:subClassOf aas:HasSemantics ; + rdfs:label "Extension"^^xs:string ; + rdfs:comment "Single extension of an element."@en ; +. + +### https://admin-shell.io/aas/3/2/Extension/name + rdf:type owl:DatatypeProperty ; + rdfs:label "has name"^^xs:string ; + rdfs:domain aas:Extension ; + rdfs:range xs:string ; + rdfs:comment "Name of the extension."@en ; +. + +### https://admin-shell.io/aas/3/2/Extension/refersTo + rdf:type owl:ObjectProperty ; + rdfs:label "has refers to"^^xs:string ; + rdfs:domain aas:Extension ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to an element the extension refers to."@en ; +. + +### https://admin-shell.io/aas/3/2/Extension/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:Extension ; + rdfs:range xs:string ; + rdfs:comment "Value of the extension"@en ; +. + +### https://admin-shell.io/aas/3/2/Extension/valueType + rdf:type owl:ObjectProperty ; + rdfs:label "has value type"^^xs:string ; + rdfs:domain aas:Extension ; + rdfs:range aas:DataTypeDefXsd ; + rdfs:comment "Type of the value of the extension."@en ; +. + +### https://admin-shell.io/aas/3/2/File +aas:File rdf:type owl:Class ; + rdfs:subClassOf aas:DataElement ; + rdfs:label "File"^^xs:string ; + rdfs:comment "A File is a data element that represents an address to a file (a locator)."@en ; +. + +### https://admin-shell.io/aas/3/2/File/contentType + rdf:type owl:DatatypeProperty ; + rdfs:label "has content type"^^xs:string ; + rdfs:domain aas:File ; + rdfs:range xs:string ; + rdfs:comment "Content type of the content of the file."@en ; +. + +### https://admin-shell.io/aas/3/2/File/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:File ; + rdfs:range xs:string ; + rdfs:comment "Path and name of the referenced file (with file extension)."@en ; +. + +### https://admin-shell.io/aas/3/2/HasDataSpecification +aas:HasDataSpecification rdf:type owl:Class ; + rdfs:label "Has Data Specification"^^xs:string ; + rdfs:comment "Element that can be extended by using data specification templates."@en ; +. + +### https://admin-shell.io/aas/3/2/HasDataSpecification/embeddedDataSpecifications + rdf:type owl:ObjectProperty ; + rdfs:label "has embedded data specifications"^^xs:string ; + rdfs:domain aas:HasDataSpecification ; + rdfs:range aas:EmbeddedDataSpecification ; + rdfs:comment "Embedded data specification."@en ; +. + +### https://admin-shell.io/aas/3/2/HasExtensions +aas:HasExtensions rdf:type owl:Class ; + rdfs:label "Has Extensions"^^xs:string ; + rdfs:comment "Element that can be extended by proprietary extensions."@en ; +. + +### https://admin-shell.io/aas/3/2/HasExtensions/extensions + rdf:type owl:ObjectProperty ; + rdfs:label "has extensions"^^xs:string ; + rdfs:domain aas:HasExtensions ; + rdfs:range aas:Extension ; + rdfs:comment "An extension of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/HasKind +aas:HasKind rdf:type owl:Class ; + rdfs:label "Has Kind"^^xs:string ; + rdfs:comment "An element with a kind is an element that can either represent a template or an instance."@en ; +. + +### https://admin-shell.io/aas/3/2/HasKind/kind + rdf:type owl:ObjectProperty ; + rdfs:label "has kind"^^xs:string ; + rdfs:domain aas:HasKind ; + rdfs:range aas:ModellingKind ; + rdfs:comment "Kind of the element: either template or instance."@en ; +. + +### https://admin-shell.io/aas/3/2/HasSemantics +aas:HasSemantics rdf:type owl:Class ; + rdfs:label "Has Semantics"^^xs:string ; + rdfs:comment "Element that can have a semantic definition plus some supplemental semantic definitions."@en ; +. + +### https://admin-shell.io/aas/3/2/HasSemantics/semanticId + rdf:type owl:ObjectProperty ; + rdfs:label "has semantic ID"^^xs:string ; + rdfs:domain aas:HasSemantics ; + rdfs:range aas:Reference ; + rdfs:comment "Identifier of the semantic definition of the element. It is called semantic ID of the element or also main semantic ID of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/HasSemantics/supplementalSemanticIds + rdf:type owl:ObjectProperty ; + rdfs:label "has supplemental semantic IDs"^^xs:string ; + rdfs:domain aas:HasSemantics ; + rdfs:range aas:Reference ; + rdfs:comment "Identifier of a supplemental semantic definition of the element. It is called supplemental semantic ID of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/Identifiable +aas:Identifiable rdf:type owl:Class ; + rdfs:subClassOf aas:Referable ; + rdfs:label "Identifiable"^^xs:string ; + rdfs:comment "An element that has a globally unique identifier."@en ; +. + +### https://admin-shell.io/aas/3/2/Identifiable/administration + rdf:type owl:ObjectProperty ; + rdfs:label "has administration"^^xs:string ; + rdfs:domain aas:Identifiable ; + rdfs:range aas:AdministrativeInformation ; + rdfs:comment "Administrative information of an identifiable element."@en ; +. + +### https://admin-shell.io/aas/3/2/Identifiable/id + rdf:type owl:DatatypeProperty ; + rdfs:label "has ID"^^xs:string ; + rdfs:domain aas:Identifiable ; + rdfs:range xs:string ; + rdfs:comment "The globally unique identification of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/Key +aas:Key rdf:type owl:Class ; + rdfs:label "Key"^^xs:string ; + rdfs:comment "A key is a reference to an element by its ID."@en ; +. + +### https://admin-shell.io/aas/3/2/Key/type + rdf:type owl:ObjectProperty ; + rdfs:label "has type"^^xs:string ; + rdfs:domain aas:Key ; + rdfs:range aas:KeyTypes ; + rdfs:comment "Denotes which kind of entity is referenced."@en ; +. + +### https://admin-shell.io/aas/3/2/Key/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:Key ; + rdfs:range xs:string ; + rdfs:comment "The key value, for example an IRDI or an URI"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes +aas:KeyTypes rdf:type owl:Class ; + rdfs:label "Key Types"^^xs:string ; + rdfs:comment "Enumeration of different key value types within a key."@en ; + owl:oneOf ( + + + + + + + + + + + + + + + + + + + + + + + + + ) ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/AnnotatedRelationshipElement + rdf:type aas:KeyTypes ; + rdfs:label "Annotated Relationship Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/AssetAdministrationShell + rdf:type aas:KeyTypes ; + rdfs:label "Asset Administration Shell"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/BasicEventElement + rdf:type aas:KeyTypes ; + rdfs:label "Basic Event Element"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Blob + rdf:type aas:KeyTypes ; + rdfs:label "Blob"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Capability + rdf:type aas:KeyTypes ; + rdfs:label "Capability"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/ConceptDescription + rdf:type aas:KeyTypes ; + rdfs:label "Concept Description"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/DataElement + rdf:type aas:KeyTypes ; + rdfs:label "Data Element"^^xs:string ; + rdfs:comment "Data element."@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Entity + rdf:type aas:KeyTypes ; + rdfs:label "Entity"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/EventElement + rdf:type aas:KeyTypes ; + rdfs:label "Event Element"^^xs:string ; + rdfs:comment "Event."@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/File + rdf:type aas:KeyTypes ; + rdfs:label "File"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/FragmentReference + rdf:type aas:KeyTypes ; + rdfs:label "Fragment Reference"^^xs:string ; + rdfs:comment "Bookmark or a similar local identifier of a subordinate part of a primary resource"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/GlobalReference + rdf:type aas:KeyTypes ; + rdfs:label "Global Reference"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Identifiable + rdf:type aas:KeyTypes ; + rdfs:label "Identifiable"^^xs:string ; + rdfs:comment "Identifiable."@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/MultiLanguageProperty + rdf:type aas:KeyTypes ; + rdfs:label "Multi Language Property"^^xs:string ; + rdfs:comment "Property with a value that can be provided in multiple languages"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Operation + rdf:type aas:KeyTypes ; + rdfs:label "Operation"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Property + rdf:type aas:KeyTypes ; + rdfs:label "Property"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Range + rdf:type aas:KeyTypes ; + rdfs:label "Range"^^xs:string ; + rdfs:comment "Range with min and max"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Referable + rdf:type aas:KeyTypes ; + rdfs:label "Referable"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/ReferenceElement + rdf:type aas:KeyTypes ; + rdfs:label "Reference Element"^^xs:string ; + rdfs:comment "Reference"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/RelationshipElement + rdf:type aas:KeyTypes ; + rdfs:label "Relationship Element"^^xs:string ; + rdfs:comment "Relationship"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/Submodel + rdf:type aas:KeyTypes ; + rdfs:label "Submodel"^^xs:string ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/SubmodelElement + rdf:type aas:KeyTypes ; + rdfs:label "Submodel Element"^^xs:string ; + rdfs:comment "Submodel Element"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/SubmodelElementCollection + rdf:type aas:KeyTypes ; + rdfs:label "Submodel Element Collection"^^xs:string ; + rdfs:comment "Struct of Submodel Elements"@en ; +. + +### https://admin-shell.io/aas/3/2/KeyTypes/SubmodelElementList + rdf:type aas:KeyTypes ; + rdfs:label "Submodel Element List"^^xs:string ; + rdfs:comment "List of Submodel Elements"@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringDefinitionTypeIec61360 +aas:LangStringDefinitionTypeIec61360 rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String Definition Type IEC 61360"^^xs:string ; + rdfs:comment "String with length 1023 maximum and minimum 1 characters and with language tags"@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringDefinitionTypeUom +aas:LangStringDefinitionTypeUom rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String Definition Type UoM"^^xs:string ; + rdfs:comment "Definition string with language tag, maximum length 2048 and minimum length 1."@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringNameType +aas:LangStringNameType rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String Name Type"^^xs:string ; + rdfs:comment "String with length 128 maximum and minimum 1 characters and with language tags"@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringPreferredNameTypeIec61360 +aas:LangStringPreferredNameTypeIec61360 rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String Preferred Name Type IEC 61360"^^xs:string ; + rdfs:comment "String with length 255 maximum and minimum 1 characters and with language tags"@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringShortNameTypeIec61360 +aas:LangStringShortNameTypeIec61360 rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String Short Name Type IEC 61360"^^xs:string ; + rdfs:comment "String with length 18 maximum and minimum 1 characters and with language tags"@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringTextType +aas:LangStringTextType rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String Text Type"^^xs:string ; + rdfs:comment "String with length 1023 maximum and minimum 1 characters and with language tags"@en ; +. + +### https://admin-shell.io/aas/3/2/LangStringUom +aas:LangStringUom rdf:type owl:Class ; + rdfs:subClassOf aas:AbstractLangString ; + rdfs:label "Lang String UoM"^^xs:string ; + rdfs:comment "String with language tag, maximum length 256 and minimum length 1."@en ; +. + +### https://admin-shell.io/aas/3/2/LevelType +aas:LevelType rdf:type owl:Class ; + rdfs:label "Level Type"^^xs:string ; + rdfs:comment "Value represented by up to four variants of a numeric value in a specific role: MIN, NOM, TYP and MAX. True means that the value is available, false means the value is not available."@en ; +. + +### https://admin-shell.io/aas/3/2/LevelType/max + rdf:type owl:DatatypeProperty ; + rdfs:label "has max"^^xs:string ; + rdfs:domain aas:LevelType ; + rdfs:range xs:boolean ; + rdfs:comment "Maximum of the value"@en ; +. + +### https://admin-shell.io/aas/3/2/LevelType/min + rdf:type owl:DatatypeProperty ; + rdfs:label "has min"^^xs:string ; + rdfs:domain aas:LevelType ; + rdfs:range xs:boolean ; + rdfs:comment "Minimum of the value"@en ; +. + +### https://admin-shell.io/aas/3/2/LevelType/nom + rdf:type owl:DatatypeProperty ; + rdfs:label "has nom"^^xs:string ; + rdfs:domain aas:LevelType ; + rdfs:range xs:boolean ; + rdfs:comment "Nominal value (value as designated)"@en ; +. + +### https://admin-shell.io/aas/3/2/LevelType/typ + rdf:type owl:DatatypeProperty ; + rdfs:label "has typ"^^xs:string ; + rdfs:domain aas:LevelType ; + rdfs:range xs:boolean ; + rdfs:comment "Value as typically present"@en ; +. + +### https://admin-shell.io/aas/3/2/ModellingKind +aas:ModellingKind rdf:type owl:Class ; + rdfs:label "Modelling Kind"^^xs:string ; + rdfs:comment "Enumeration for denoting whether an element is a template or an instance."@en ; + owl:oneOf ( + + + ) ; +. + +### https://admin-shell.io/aas/3/2/ModellingKind/Instance + rdf:type aas:ModellingKind ; + rdfs:label "Instance"^^xs:string ; + rdfs:comment "Concrete, clearly identifiable element instance. Its creation and validation may be guided by a corresponding element template."@en ; +. + +### https://admin-shell.io/aas/3/2/ModellingKind/Template + rdf:type aas:ModellingKind ; + rdfs:label "Template"^^xs:string ; + rdfs:comment "Specification of the common features of a structured element in sufficient detail that such a instance can be instantiated using it"@en ; +. + +### https://admin-shell.io/aas/3/2/MultiLanguageProperty +aas:MultiLanguageProperty rdf:type owl:Class ; + rdfs:subClassOf aas:DataElement ; + rdfs:label "Multi Language Property"^^xs:string ; + rdfs:comment "A property is a data element that has a multi-language value."@en ; +. + +### https://admin-shell.io/aas/3/2/MultiLanguageProperty/value + rdf:type owl:ObjectProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:MultiLanguageProperty ; + rdfs:range aas:LangStringTextType ; + rdfs:comment "The value of the property instance."@en ; +. + +### https://admin-shell.io/aas/3/2/MultiLanguageProperty/valueId + rdf:type owl:ObjectProperty ; + rdfs:label "has value ID"^^xs:string ; + rdfs:domain aas:MultiLanguageProperty ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the global unique ID of a coded value."@en ; +. + +### https://admin-shell.io/aas/3/2/Operation +aas:Operation rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Operation"^^xs:string ; + rdfs:comment "An operation is a submodel element with input and output variables."@en ; +. + +### https://admin-shell.io/aas/3/2/Operation/inoutputVariables + rdf:type owl:ObjectProperty ; + rdfs:label "has inoutput variables"^^xs:string ; + rdfs:domain aas:Operation ; + rdfs:range aas:OperationVariable ; + rdfs:comment "Parameter that is input and output of the operation."@en ; +. + +### https://admin-shell.io/aas/3/2/Operation/inputVariables + rdf:type owl:ObjectProperty ; + rdfs:label "has input variables"^^xs:string ; + rdfs:domain aas:Operation ; + rdfs:range aas:OperationVariable ; + rdfs:comment "Input parameter of the operation."@en ; +. + +### https://admin-shell.io/aas/3/2/Operation/outputVariables + rdf:type owl:ObjectProperty ; + rdfs:label "has output variables"^^xs:string ; + rdfs:domain aas:Operation ; + rdfs:range aas:OperationVariable ; + rdfs:comment "Output parameter of the operation."@en ; +. + +### https://admin-shell.io/aas/3/2/OperationVariable +aas:OperationVariable rdf:type owl:Class ; + rdfs:label "Operation Variable"^^xs:string ; + rdfs:comment "The value of an operation variable is a submodel element that is used as input and/or output variable of an operation."@en ; +. + +### https://admin-shell.io/aas/3/2/OperationVariable/value + rdf:type owl:ObjectProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:OperationVariable ; + rdfs:range aas:SubmodelElement ; + rdfs:comment "Describes an argument or result of an operation via a submodel element"@en ; +. + +### https://admin-shell.io/aas/3/2/Property +aas:Property rdf:type owl:Class ; + rdfs:subClassOf aas:DataElement ; + rdfs:label "Property"^^xs:string ; + rdfs:comment "A property is a data element that has a single value."@en ; +. + +### https://admin-shell.io/aas/3/2/Property/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:Property ; + rdfs:range xs:string ; + rdfs:comment "The value of the property instance."@en ; +. + +### https://admin-shell.io/aas/3/2/Property/valueId + rdf:type owl:ObjectProperty ; + rdfs:label "has value ID"^^xs:string ; + rdfs:domain aas:Property ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the global unique ID of a coded value."@en ; +. + +### https://admin-shell.io/aas/3/2/Property/valueType + rdf:type owl:ObjectProperty ; + rdfs:label "has value type"^^xs:string ; + rdfs:domain aas:Property ; + rdfs:range aas:DataTypeDefXsd ; + rdfs:comment "Data type of the value"@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifiable +aas:Qualifiable rdf:type owl:Class ; + rdfs:label "Qualifiable"^^xs:string ; + rdfs:comment "The value of a qualifiable element may be further qualified by one or more qualifiers."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifiable/qualifiers + rdf:type owl:ObjectProperty ; + rdfs:label "has qualifiers"^^xs:string ; + rdfs:domain aas:Qualifiable ; + rdfs:range aas:Qualifier ; + rdfs:comment "Additional qualification of a qualifiable element."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifier +aas:Qualifier rdf:type owl:Class ; + rdfs:subClassOf aas:HasSemantics ; + rdfs:label "Qualifier"^^xs:string ; + rdfs:comment "A qualifier is a type-value-pair that makes additional statements w.r.t. the value of the element."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifier/kind + rdf:type owl:ObjectProperty ; + rdfs:label "has kind"^^xs:string ; + rdfs:domain aas:Qualifier ; + rdfs:range aas:QualifierKind ; + rdfs:comment "The qualifier kind describes the kind of the qualifier that is applied to the element."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifier/type + rdf:type owl:DatatypeProperty ; + rdfs:label "has type"^^xs:string ; + rdfs:domain aas:Qualifier ; + rdfs:range xs:string ; + rdfs:comment "The qualifier type describes the type of the qualifier that is applied to the element."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifier/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:Qualifier ; + rdfs:range xs:string ; + rdfs:comment "The qualifier value is the value of the qualifier."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifier/valueId + rdf:type owl:ObjectProperty ; + rdfs:label "has value ID"^^xs:string ; + rdfs:domain aas:Qualifier ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the global unique ID of a coded value."@en ; +. + +### https://admin-shell.io/aas/3/2/Qualifier/valueType + rdf:type owl:ObjectProperty ; + rdfs:label "has value type"^^xs:string ; + rdfs:domain aas:Qualifier ; + rdfs:range aas:DataTypeDefXsd ; + rdfs:comment "Data type of the qualifier value."@en ; +. + +### https://admin-shell.io/aas/3/2/QualifierKind +aas:QualifierKind rdf:type owl:Class ; + rdfs:label "Qualifier Kind"^^xs:string ; + rdfs:comment "Enumeration for kinds of qualifiers."@en ; + owl:oneOf ( + + + + ) ; +. + +### https://admin-shell.io/aas/3/2/QualifierKind/ConceptQualifier + rdf:type aas:QualifierKind ; + rdfs:label "Concept Qualifier"^^xs:string ; + rdfs:comment "qualifies the semantic definition the element is referring to ('semanticId')"@en ; +. + +### https://admin-shell.io/aas/3/2/QualifierKind/TemplateQualifier + rdf:type aas:QualifierKind ; + rdfs:label "Template Qualifier"^^xs:string ; + rdfs:comment "qualifies the elements within a specific submodel on concept level."@en ; +. + +### https://admin-shell.io/aas/3/2/QualifierKind/ValueQualifier + rdf:type aas:QualifierKind ; + rdfs:label "Value Qualifier"^^xs:string ; + rdfs:comment "qualifies the value of the element and can change during run-time."@en ; +. + +### https://admin-shell.io/aas/3/2/Range +aas:Range rdf:type owl:Class ; + rdfs:subClassOf aas:DataElement ; + rdfs:label "Range"^^xs:string ; + rdfs:comment "A range data element is a data element that defines a range with min and max."@en ; +. + +### https://admin-shell.io/aas/3/2/Range/max + rdf:type owl:DatatypeProperty ; + rdfs:label "has max"^^xs:string ; + rdfs:domain aas:Range ; + rdfs:range xs:string ; + rdfs:comment "The maximum value of the range."@en ; +. + +### https://admin-shell.io/aas/3/2/Range/min + rdf:type owl:DatatypeProperty ; + rdfs:label "has min"^^xs:string ; + rdfs:domain aas:Range ; + rdfs:range xs:string ; + rdfs:comment "The minimum value of the range."@en ; +. + +### https://admin-shell.io/aas/3/2/Range/valueType + rdf:type owl:ObjectProperty ; + rdfs:label "has value type"^^xs:string ; + rdfs:domain aas:Range ; + rdfs:range aas:DataTypeDefXsd ; + rdfs:comment "Data type of the min und max"@en ; +. + +### https://admin-shell.io/aas/3/2/Referable +aas:Referable rdf:type owl:Class ; + rdfs:subClassOf aas:HasExtensions ; + rdfs:label "Referable"^^xs:string ; + rdfs:comment "An element that is referable by its 'idShort'."@en ; +. + +### https://admin-shell.io/aas/3/2/Referable/category + rdf:type owl:DatatypeProperty ; + rdfs:label "has category"^^xs:string ; + rdfs:domain aas:Referable ; + rdfs:range xs:string ; + rdfs:comment "The category is a value that gives further meta information w.r.t. to the class of the element. It affects the expected existence of attributes and the applicability of constraints."@en ; +. + +### https://admin-shell.io/aas/3/2/Referable/description + rdf:type owl:ObjectProperty ; + rdfs:label "has description"^^xs:string ; + rdfs:domain aas:Referable ; + rdfs:range aas:LangStringTextType ; + rdfs:comment "Description or comments on the element."@en ; +. + +### https://admin-shell.io/aas/3/2/Referable/displayName + rdf:type owl:ObjectProperty ; + rdfs:label "has display name"^^xs:string ; + rdfs:domain aas:Referable ; + rdfs:range aas:LangStringNameType ; + rdfs:comment "Display name. Can be provided in several languages."@en ; +. + +### https://admin-shell.io/aas/3/2/Referable/idShort + rdf:type owl:DatatypeProperty ; + rdfs:label "has ID short"^^xs:string ; + rdfs:domain aas:Referable ; + rdfs:range xs:string ; + rdfs:comment "In case of identifiables this attribute is a short name of the element. In case of referable this ID is an identifying string of the element within its name space."@en ; +. + +### https://admin-shell.io/aas/3/2/Reference +aas:Reference rdf:type owl:Class ; + rdfs:label "Reference"^^xs:string ; + rdfs:comment "Reference to either a model element of the same or another AAS or to an external entity."@en ; +. + +### https://admin-shell.io/aas/3/2/Reference/keys + rdf:type owl:ObjectProperty ; + rdfs:label "has keys"^^xs:string ; + rdfs:domain aas:Reference ; + rdfs:range aas:Key ; + rdfs:comment "Unique references in their name space."@en ; +. + +### https://admin-shell.io/aas/3/2/Reference/referredSemanticId + rdf:type owl:ObjectProperty ; + rdfs:label "has referred semantic ID"^^xs:string ; + rdfs:domain aas:Reference ; + rdfs:range aas:Reference ; + rdfs:comment "'semanticId' of the referenced model element ('type' = 'ModelReference')."@en ; +. + +### https://admin-shell.io/aas/3/2/Reference/type + rdf:type owl:ObjectProperty ; + rdfs:label "has type"^^xs:string ; + rdfs:domain aas:Reference ; + rdfs:range aas:ReferenceTypes ; + rdfs:comment "Type of the reference."@en ; +. + +### https://admin-shell.io/aas/3/2/ReferenceElement +aas:ReferenceElement rdf:type owl:Class ; + rdfs:subClassOf aas:DataElement ; + rdfs:label "Reference Element"^^xs:string ; + rdfs:comment "A reference element is a data element that defines a logical reference to another element within the same or another AAS or a reference to an external object or entity."@en ; +. + +### https://admin-shell.io/aas/3/2/ReferenceElement/value + rdf:type owl:ObjectProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:ReferenceElement ; + rdfs:range aas:Reference ; + rdfs:comment "Global reference to an external object or entity or a logical reference to another element within the same or another AAS (i.e. a model reference to a Referable)."@en ; +. + +### https://admin-shell.io/aas/3/2/ReferenceTypes +aas:ReferenceTypes rdf:type owl:Class ; + rdfs:label "Reference Types"^^xs:string ; + rdfs:comment "Reference types"@en ; + owl:oneOf ( + + + ) ; +. + +### https://admin-shell.io/aas/3/2/ReferenceTypes/ExternalReference + rdf:type aas:ReferenceTypes ; + rdfs:label "External Reference"^^xs:string ; + rdfs:comment "External reference."@en ; +. + +### https://admin-shell.io/aas/3/2/ReferenceTypes/ModelReference + rdf:type aas:ReferenceTypes ; + rdfs:label "Model Reference"^^xs:string ; + rdfs:comment "Model reference."@en ; +. + +### https://admin-shell.io/aas/3/2/RelationshipElement +aas:RelationshipElement rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Relationship Element"^^xs:string ; + rdfs:comment "A relationship element is used to define a relationship between two elements being either referable (model reference) or external (global reference)."@en ; +. + +### https://admin-shell.io/aas/3/2/RelationshipElement/first + rdf:type owl:ObjectProperty ; + rdfs:label "has first"^^xs:string ; + rdfs:domain aas:RelationshipElement ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the first element in the relationship taking the role of the subject."@en ; +. + +### https://admin-shell.io/aas/3/2/RelationshipElement/second + rdf:type owl:ObjectProperty ; + rdfs:label "has second"^^xs:string ; + rdfs:domain aas:RelationshipElement ; + rdfs:range aas:Reference ; + rdfs:comment "Reference to the second element in the relationship taking the role of the object."@en ; +. + +### https://admin-shell.io/aas/3/2/Resource +aas:Resource rdf:type owl:Class ; + rdfs:label "Resource"^^xs:string ; + rdfs:comment "Resource represents an address to a file (a locator). The value is an URI that can represent an absolute or relative path"@en ; +. + +### https://admin-shell.io/aas/3/2/Resource/contentType + rdf:type owl:DatatypeProperty ; + rdfs:label "has content type"^^xs:string ; + rdfs:domain aas:Resource ; + rdfs:range xs:string ; + rdfs:comment "Content type of the content of the file."@en ; +. + +### https://admin-shell.io/aas/3/2/Resource/path + rdf:type owl:DatatypeProperty ; + rdfs:label "has path"^^xs:string ; + rdfs:domain aas:Resource ; + rdfs:range xs:string ; + rdfs:comment "Path and name of the resource (with file extension)."@en ; +. + +### https://admin-shell.io/aas/3/2/SpecificAssetId +aas:SpecificAssetId rdf:type owl:Class ; + rdfs:subClassOf aas:HasSemantics ; + rdfs:label "Specific Asset ID"^^xs:string ; + rdfs:comment "A specific asset ID describes a generic supplementary identifying attribute of the asset."@en ; +. + +### https://admin-shell.io/aas/3/2/SpecificAssetId/externalSubjectId + rdf:type owl:ObjectProperty ; + rdfs:label "has external subject ID"^^xs:string ; + rdfs:domain aas:SpecificAssetId ; + rdfs:range aas:Reference ; + rdfs:comment "The (external) subject the key belongs to or has meaning to."@en ; +. + +### https://admin-shell.io/aas/3/2/SpecificAssetId/name + rdf:type owl:DatatypeProperty ; + rdfs:label "has name"^^xs:string ; + rdfs:domain aas:SpecificAssetId ; + rdfs:range xs:string ; + rdfs:comment "Name of the identifier"@en ; +. + +### https://admin-shell.io/aas/3/2/SpecificAssetId/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:SpecificAssetId ; + rdfs:range xs:string ; + rdfs:comment "The value of the specific asset identifier with the corresponding name."@en ; +. + +### https://admin-shell.io/aas/3/2/StateOfEvent +aas:StateOfEvent rdf:type owl:Class ; + rdfs:label "State Of Event"^^xs:string ; + rdfs:comment "State of an event"@en ; + owl:oneOf ( + + + ) ; +. + +### https://admin-shell.io/aas/3/2/StateOfEvent/Off + rdf:type aas:StateOfEvent ; + rdfs:label "Off"^^xs:string ; + rdfs:comment "Event is off."@en ; +. + +### https://admin-shell.io/aas/3/2/StateOfEvent/On + rdf:type aas:StateOfEvent ; + rdfs:label "On"^^xs:string ; + rdfs:comment "Event is on"@en ; +. + +### https://admin-shell.io/aas/3/2/Submodel +aas:Submodel rdf:type owl:Class ; + rdfs:subClassOf aas:Identifiable ; + rdfs:subClassOf aas:HasKind ; + rdfs:subClassOf aas:HasSemantics ; + rdfs:subClassOf aas:Qualifiable ; + rdfs:subClassOf aas:HasDataSpecification ; + rdfs:label "Submodel"^^xs:string ; + rdfs:comment "A submodel defines a specific aspect of the asset represented by the AAS."@en ; +. + +### https://admin-shell.io/aas/3/2/Submodel/submodelElements + rdf:type owl:ObjectProperty ; + rdfs:label "has submodel elements"^^xs:string ; + rdfs:domain aas:Submodel ; + rdfs:range aas:SubmodelElement ; + rdfs:comment "A submodel consists of zero or more submodel elements."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElement +aas:SubmodelElement rdf:type owl:Class ; + rdfs:subClassOf aas:Referable ; + rdfs:subClassOf aas:HasSemantics ; + rdfs:subClassOf aas:Qualifiable ; + rdfs:subClassOf aas:HasDataSpecification ; + rdfs:label "Submodel Element"^^xs:string ; + rdfs:comment "A submodel element is an element suitable for the description and differentiation of assets."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementCollection +aas:SubmodelElementCollection rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Submodel Element Collection"^^xs:string ; + rdfs:comment "A submodel element collection is a kind of struct, i.e. a a logical encapsulation of multiple named values. It has a fixed number of submodel elements."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementCollection/value + rdf:type owl:ObjectProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:SubmodelElementCollection ; + rdfs:range aas:SubmodelElement ; + rdfs:comment "Submodel element contained in the collection."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementList +aas:SubmodelElementList rdf:type owl:Class ; + rdfs:subClassOf aas:SubmodelElement ; + rdfs:label "Submodel Element List"^^xs:string ; + rdfs:comment "A submodel element list is an ordered list of submodel elements."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementList/orderRelevant + rdf:type owl:DatatypeProperty ; + rdfs:label "has order relevant"^^xs:string ; + rdfs:domain aas:SubmodelElementList ; + rdfs:range xs:boolean ; + rdfs:comment "Defines whether order in list is relevant. If 'orderRelevant' = False then the list is representing a set or a bag."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementList/semanticIdListElement + rdf:type owl:ObjectProperty ; + rdfs:label "has semantic ID list element"^^xs:string ; + rdfs:domain aas:SubmodelElementList ; + rdfs:range aas:Reference ; + rdfs:comment "Semantic ID the submodel elements contained in the list match to."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementList/typeValueListElement + rdf:type owl:ObjectProperty ; + rdfs:label "has type value list element"^^xs:string ; + rdfs:domain aas:SubmodelElementList ; + rdfs:range aas:AasSubmodelElements ; + rdfs:comment "The submodel element type of the submodel elements contained in the list."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementList/value + rdf:type owl:ObjectProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:SubmodelElementList ; + rdfs:range aas:SubmodelElement ; + rdfs:comment "Submodel element contained in the list."@en ; +. + +### https://admin-shell.io/aas/3/2/SubmodelElementList/valueTypeListElement + rdf:type owl:ObjectProperty ; + rdfs:label "has value type list element"^^xs:string ; + rdfs:domain aas:SubmodelElementList ; + rdfs:range aas:DataTypeDefXsd ; + rdfs:comment "The value type of the submodel element contained in the list."@en ; +. + +### https://admin-shell.io/aas/3/2/ValueList +aas:ValueList rdf:type owl:Class ; + rdfs:label "Value List"^^xs:string ; + rdfs:comment "A set of value reference pairs."@en ; +. + +### https://admin-shell.io/aas/3/2/ValueList/valueReferencePairs + rdf:type owl:ObjectProperty ; + rdfs:label "has value reference pairs"^^xs:string ; + rdfs:domain aas:ValueList ; + rdfs:range aas:ValueReferencePair ; + rdfs:comment "A pair of a value together with its global unique id."@en ; +. + +### https://admin-shell.io/aas/3/2/ValueReferencePair +aas:ValueReferencePair rdf:type owl:Class ; + rdfs:label "Value Reference Pair"^^xs:string ; + rdfs:comment "A value reference pair within a value list. Each value has a global unique id defining its semantic."@en ; +. + +### https://admin-shell.io/aas/3/2/ValueReferencePair/value + rdf:type owl:DatatypeProperty ; + rdfs:label "has value"^^xs:string ; + rdfs:domain aas:ValueReferencePair ; + rdfs:range xs:string ; + rdfs:comment "The value of the referenced concept definition of the value in 'valueId'."@en ; +. + +### https://admin-shell.io/aas/3/2/ValueReferencePair/valueId + rdf:type owl:ObjectProperty ; + rdfs:label "has value ID"^^xs:string ; + rdfs:domain aas:ValueReferencePair ; + rdfs:range aas:Reference ; + rdfs:comment "Global unique id of the value."@en ; +. \ No newline at end of file diff --git a/rdf-sources/shacl-schema.ttl b/rdf-sources/shacl-schema.ttl new file mode 100644 index 0000000..ecde112 --- /dev/null +++ b/rdf-sources/shacl-schema.ttl @@ -0,0 +1,1445 @@ +@prefix aas: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xs: . + +# Metadata + a owl:Ontology ; + owl:imports ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "https://admin-shell.io/aas/3/2/"^^xs:anyURI ; + sh:prefix "aas"^^xs:string ; + ] ; +. + +aas:AbstractLangStringShape a sh:NodeShape ; + sh:targetClass aas:AbstractLangString ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(AbstractLangStringShape): An aas:AbstractLangString is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:AbstractLangString) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:pattern "^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; +. + +aas:AdministrativeInformationShape a sh:NodeShape ; + sh:targetClass aas:AdministrativeInformation ; + rdfs:subClassOf aas:HasDataSpecificationShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 4 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^(0|[1-9][0-9]*)$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 4 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^(0|[1-9][0-9]*)$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\\.[0-9]+)?)|24:00:00(\\.0+)?)(Z|\\+00:00|-00:00)$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\\.[0-9]+)?)|24:00:00(\\.0+)?)(Z|\\+00:00|-00:00)$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; +. + +aas:AnnotatedRelationshipElementShape a sh:NodeShape ; + sh:targetClass aas:AnnotatedRelationshipElement ; + rdfs:subClassOf aas:RelationshipElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataElement ; + sh:minCount 0 ; + ] ; +. + +aas:AssetAdministrationShellShape a sh:NodeShape ; + sh:targetClass aas:AssetAdministrationShell ; + rdfs:subClassOf aas:IdentifiableShape ; + rdfs:subClassOf aas:HasDataSpecificationShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AssetInformation ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + ] ; +. + +aas:AssetInformationShape a sh:NodeShape ; + sh:targetClass aas:AssetInformation ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AssetKind ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SpecificAssetId ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Resource ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:BasicEventElementShape a sh:NodeShape ; + sh:targetClass aas:BasicEventElement ; + rdfs:subClassOf aas:EventElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Direction ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:StateOfEvent ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 255 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\\.[0-9]+)?)|24:00:00(\\.0+)?)(Z|\\+00:00|-00:00)$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S))))$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S))))$" ; + ] ; +. + +aas:BlobShape a sh:NodeShape ; + sh:targetClass aas:Blob ; + rdfs:subClassOf aas:DataElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:base64Binary ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+([ \\t]*;[ \\t]*([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+|\"(([\\t !#-\\[\\]-~]|[\\x80-\\xff])|\\\\([\\t !-~]|[\\x80-\\xff]))*\"))*$" ; + ] ; +. + +aas:CapabilityShape a sh:NodeShape ; + sh:targetClass aas:Capability ; + rdfs:subClassOf aas:SubmodelElementShape ; +. + +aas:ConceptDescriptionShape a sh:NodeShape ; + sh:targetClass aas:ConceptDescription ; + rdfs:subClassOf aas:IdentifiableShape ; + rdfs:subClassOf aas:HasDataSpecificationShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + ] ; +. + +aas:DataElementShape a sh:NodeShape ; + sh:targetClass aas:DataElement ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(DataElementShape): An aas:DataElement is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:DataElement) + } + """ ; + ] ; +. + +aas:DataSpecificationContentShape a sh:NodeShape ; + sh:targetClass aas:DataSpecificationContent ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(DataSpecificationContentShape): An aas:DataSpecificationContent is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:DataSpecificationContent) + } + """ ; + ] ; +. + +aas:DataSpecificationIec61360Shape a sh:NodeShape ; + sh:targetClass aas:DataSpecificationIec61360 ; + rdfs:subClassOf aas:DataSpecificationContentShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringPreferredNameTypeIec61360 ; + sh:minCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringShortNameTypeIec61360 ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeIec61360 ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringDefinitionTypeIec61360 ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ValueList ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LevelType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:DataSpecificationUomShape a sh:NodeShape ; + sh:targetClass aas:DataSpecificationUom ; + rdfs:subClassOf aas:DataSpecificationContentShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringUom ; + sh:minCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 256 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 256 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringDefinitionTypeUom ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringUom ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 256 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 256 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; +. + +aas:EmbeddedDataSpecificationShape a sh:NodeShape ; + sh:targetClass aas:EmbeddedDataSpecification ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataSpecificationContent ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:EntityShape a sh:NodeShape ; + sh:targetClass aas:Entity ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelElement ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:EntityType ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SpecificAssetId ; + sh:minCount 0 ; + ] ; +. + +aas:EnvironmentShape a sh:NodeShape ; + sh:targetClass aas:Environment ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AssetAdministrationShell ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Submodel ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ConceptDescription ; + sh:minCount 0 ; + ] ; +. + +aas:EventElementShape a sh:NodeShape ; + sh:targetClass aas:EventElement ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(EventElementShape): An aas:EventElement is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:EventElement) + } + """ ; + ] ; +. + +aas:EventPayloadShape a sh:NodeShape ; + sh:targetClass aas:EventPayload ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 255 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:pattern "^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\\.[0-9]+)?)|24:00:00(\\.0+)?)(Z|\\+00:00|-00:00)$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:base64Binary ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:ExtensionShape a sh:NodeShape ; + sh:targetClass aas:Extension ; + rdfs:subClassOf aas:HasSemanticsShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + ] ; +. + +aas:FileShape a sh:NodeShape ; + sh:targetClass aas:File ; + rdfs:subClassOf aas:DataElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^([a-zA-Z][a-zA-Z0-9+\\-.]*:((//((((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;:&=+$,])*@)?((([a-zA-Z0-9]|[a-zA-Z0-9]([a-zA-Z0-9]|-)*[a-zA-Z0-9])\\.)*([a-zA-Z]|[a-zA-Z]([a-zA-Z0-9]|-)*[a-zA-Z0-9])(\\.)?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]*)?)?|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[$,;:@&=+])+)(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)?|/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)(\\?(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)?|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;?:@&=+$,])(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)|(//((((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;:&=+$,])*@)?((([a-zA-Z0-9]|[a-zA-Z0-9]([a-zA-Z0-9]|-)*[a-zA-Z0-9])\\.)*([a-zA-Z]|[a-zA-Z]([a-zA-Z0-9]|-)*[a-zA-Z0-9])(\\.)?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]*)?)?|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[$,;:@&=+])+)(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)?|/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;@&=+$,])+(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)?)(\\?(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)?)?(#(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)?$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+([ \\t]*;[ \\t]*([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+|\"(([\\t !#-\\[\\]-~]|[\\x80-\\xff])|\\\\([\\t !-~]|[\\x80-\\xff]))*\"))*$" ; + ] ; +. + +aas:HasDataSpecificationShape a sh:NodeShape ; + sh:targetClass aas:HasDataSpecification ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(HasDataSpecificationShape): An aas:HasDataSpecification is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:HasDataSpecification) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:EmbeddedDataSpecification ; + sh:minCount 0 ; + ] ; +. + +aas:HasExtensionsShape a sh:NodeShape ; + sh:targetClass aas:HasExtensions ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(HasExtensionsShape): An aas:HasExtensions is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:HasExtensions) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Extension ; + sh:minCount 0 ; + ] ; +. + +aas:HasKindShape a sh:NodeShape ; + sh:targetClass aas:HasKind ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(HasKindShape): An aas:HasKind is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:HasKind) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ModellingKind ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:HasSemanticsShape a sh:NodeShape ; + sh:targetClass aas:HasSemantics ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(HasSemanticsShape): An aas:HasSemantics is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:HasSemantics) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + ] ; +. + +aas:IdentifiableShape a sh:NodeShape ; + sh:targetClass aas:Identifiable ; + rdfs:subClassOf aas:ReferableShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(IdentifiableShape): An aas:Identifiable is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:Identifiable) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AdministrativeInformation ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; +. + +aas:KeyShape a sh:NodeShape ; + sh:targetClass aas:Key ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:KeyTypes ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; +. + +aas:LangStringDefinitionTypeIec61360Shape a sh:NodeShape ; + sh:targetClass aas:LangStringDefinitionTypeIec61360 ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 1023 ; + ] ; +. + +aas:LangStringDefinitionTypeUomShape a sh:NodeShape ; + sh:targetClass aas:LangStringDefinitionTypeUom ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 2048 ; + ] ; +. + +aas:LangStringNameTypeShape a sh:NodeShape ; + sh:targetClass aas:LangStringNameType ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 128 ; + ] ; +. + +aas:LangStringPreferredNameTypeIec61360Shape a sh:NodeShape ; + sh:targetClass aas:LangStringPreferredNameTypeIec61360 ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 255 ; + ] ; +. + +aas:LangStringShortNameTypeIec61360Shape a sh:NodeShape ; + sh:targetClass aas:LangStringShortNameTypeIec61360 ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 18 ; + ] ; +. + +aas:LangStringTextTypeShape a sh:NodeShape ; + sh:targetClass aas:LangStringTextType ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 1023 ; + ] ; +. + +aas:LangStringUomShape a sh:NodeShape ; + sh:targetClass aas:LangStringUom ; + rdfs:subClassOf aas:AbstractLangStringShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:maxLength 256 ; + ] ; +. + +aas:LevelTypeShape a sh:NodeShape ; + sh:targetClass aas:LevelType ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:MultiLanguagePropertyShape a sh:NodeShape ; + sh:targetClass aas:MultiLanguageProperty ; + rdfs:subClassOf aas:DataElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringTextType ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:OperationShape a sh:NodeShape ; + sh:targetClass aas:Operation ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:OperationVariable ; + sh:minCount 0 ; + ] ; +. + +aas:OperationVariableShape a sh:NodeShape ; + sh:targetClass aas:OperationVariable ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelElement ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; +. + +aas:PropertyShape a sh:NodeShape ; + sh:targetClass aas:Property ; + rdfs:subClassOf aas:DataElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:QualifiableShape a sh:NodeShape ; + sh:targetClass aas:Qualifiable ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(QualifiableShape): An aas:Qualifiable is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:Qualifiable) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Qualifier ; + sh:minCount 0 ; + ] ; +. + +aas:QualifierShape a sh:NodeShape ; + sh:targetClass aas:Qualifier ; + rdfs:subClassOf aas:HasSemanticsShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:QualifierKind ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:RangeShape a sh:NodeShape ; + sh:targetClass aas:Range ; + rdfs:subClassOf aas:DataElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; +. + +aas:ReferableShape a sh:NodeShape ; + sh:targetClass aas:Referable ; + rdfs:subClassOf aas:HasExtensionsShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(ReferableShape): An aas:Referable is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:Referable) + } + """ ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^[a-zA-Z][a-zA-Z0-9_-]*[a-zA-Z0-9_]+$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringNameType ; + sh:minCount 0 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:LangStringTextType ; + sh:minCount 0 ; + ] ; +. + +aas:ReferenceShape a sh:NodeShape ; + sh:targetClass aas:Reference ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ReferenceTypes ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Key ; + sh:minCount 1 ; + ] ; +. + +aas:ReferenceElementShape a sh:NodeShape ; + sh:targetClass aas:ReferenceElement ; + rdfs:subClassOf aas:DataElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:RelationshipElementShape a sh:NodeShape ; + sh:targetClass aas:RelationshipElement ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:ResourceShape a sh:NodeShape ; + sh:targetClass aas:Resource ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^([a-zA-Z][a-zA-Z0-9+\\-.]*:((//((((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;:&=+$,])*@)?((([a-zA-Z0-9]|[a-zA-Z0-9]([a-zA-Z0-9]|-)*[a-zA-Z0-9])\\.)*([a-zA-Z]|[a-zA-Z]([a-zA-Z0-9]|-)*[a-zA-Z0-9])(\\.)?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]*)?)?|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[$,;:@&=+])+)(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)?|/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)(\\?(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)?|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;?:@&=+$,])(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)|(//((((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;:&=+$,])*@)?((([a-zA-Z0-9]|[a-zA-Z0-9]([a-zA-Z0-9]|-)*[a-zA-Z0-9])\\.)*([a-zA-Z]|[a-zA-Z]([a-zA-Z0-9]|-)*[a-zA-Z0-9])(\\.)?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]*)?)?|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[$,;:@&=+])+)(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)?|/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*|(([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[;@&=+$,])+(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*(/((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*(;((([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])|[:@&=+$,]))*)*)*)?)(\\?(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)?)?(#(([;/?:@&=+$,]|([a-zA-Z0-9]|[-_.!~*'()])|%([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])([0-9]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF]|[aA]|[bB]|[cC]|[dD]|[eE]|[fF])))*)?$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 128 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + sh:pattern "^([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+([ \\t]*;[ \\t]*([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\\-.^_`|~0-9a-zA-Z])+|\"(([\\t !#-\\[\\]-~]|[\\x80-\\xff])|\\\\([\\t !-~]|[\\x80-\\xff]))*\"))*$" ; + ] ; +. + +aas:SpecificAssetIdShape a sh:NodeShape ; + sh:targetClass aas:SpecificAssetId ; + rdfs:subClassOf aas:HasSemanticsShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 64 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. + +aas:SubmodelShape a sh:NodeShape ; + sh:targetClass aas:Submodel ; + rdfs:subClassOf aas:IdentifiableShape ; + rdfs:subClassOf aas:HasKindShape ; + rdfs:subClassOf aas:HasSemanticsShape ; + rdfs:subClassOf aas:QualifiableShape ; + rdfs:subClassOf aas:HasDataSpecificationShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelElement ; + sh:minCount 0 ; + ] ; +. + +aas:SubmodelElementShape a sh:NodeShape ; + sh:targetClass aas:SubmodelElement ; + rdfs:subClassOf aas:ReferableShape ; + rdfs:subClassOf aas:HasSemanticsShape ; + rdfs:subClassOf aas:QualifiableShape ; + rdfs:subClassOf aas:HasDataSpecificationShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "(SubmodelElementShape): An aas:SubmodelElement is an abstract class. Please use one of the subclasses for the generation of instances."@en ; + sh:prefixes aas: ; + sh:select """ + SELECT ?this ?type + WHERE { + ?this rdf:type ?type . + FILTER (?type = aas:SubmodelElement) + } + """ ; + ] ; +. + +aas:SubmodelElementCollectionShape a sh:NodeShape ; + sh:targetClass aas:SubmodelElementCollection ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelElement ; + sh:minCount 0 ; + ] ; +. + +aas:SubmodelElementListShape a sh:NodeShape ; + sh:targetClass aas:SubmodelElementList ; + rdfs:subClassOf aas:SubmodelElementShape ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:boolean ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:AasSubmodelElements ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:DataTypeDefXsd ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:SubmodelElement ; + sh:minCount 0 ; + ] ; +. + +aas:ValueListShape a sh:NodeShape ; + sh:targetClass aas:ValueList ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:ValueReferencePair ; + sh:minCount 1 ; + ] ; +. + +aas:ValueReferencePairShape a sh:NodeShape ; + sh:targetClass aas:ValueReferencePair ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:datatype xs:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:maxLength 2048 ; + sh:pattern "^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$" ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path ; + sh:class aas:Reference ; + sh:minCount 0 ; + sh:maxCount 1 ; + ] ; +. \ No newline at end of file diff --git a/util/pom.xml b/util/pom.xml index 7b515cb..2d25b12 100644 --- a/util/pom.xml +++ b/util/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - io.admin-shell.aas + org.eclipse.aas4j common ${revision}