From 9a173d018043fc8e9cfb9f7b60c1e49acf547405 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arno=20Wei=C3=9F?=
<86715435+arnoweiss@users.noreply.github.com>
Date: Wed, 19 Jul 2023 08:33:41 +0200
Subject: [PATCH] Remove validation (#152)
* Delete Validator
* Adjust Readme
---
README.md | 21 +-
validator/pom.xml | 45 -
.../v3/model/validator/ShaclValidator.java | 151 -
.../model/validator/ValidationException.java | 28 -
.../aas4j/v3/model/validator/Validator.java | 24 -
.../v3/model/validator/ValidatorUtil.java | 45 -
.../src/main/resources/constraint_shapes.ttl | 451 ---
validator/src/main/resources/jsonExample.json | 524 ---
validator/src/main/resources/ontology.ttl | 2100 ------------
validator/src/main/resources/shapes.ttl | 1258 --------
.../resources/test_demo_full_example.json | 2802 -----------------
.../dataformat/core/ValidateModelsTest.java | 55 -
.../dataformat/json/JsonFullExampleTest.java | 46 -
.../model/validator/ConstraintTestHelper.java | 73 -
.../v3/model/validator/TestAASc_006.java | 83 -
.../v3/model/validator/TestAASc_008.java | 108 -
.../v3/model/validator/TestAASd_002.java | 80 -
.../v3/model/validator/TestAASd_003.java | 51 -
.../v3/model/validator/TestAASd_005.java | 54 -
.../v3/model/validator/TestAASd_006.java | 78 -
.../v3/model/validator/TestAASd_007.java | 78 -
.../v3/model/validator/TestAASd_008.java | 66 -
.../v3/model/validator/TestAASd_014.java | 156 -
.../v3/model/validator/TestAASd_015.java | 99 -
.../v3/model/validator/TestAASd_020.java | 88 -
.../v3/model/validator/TestAASd_021.java | 122 -
.../v3/model/validator/TestAASd_023.java | 86 -
.../v3/model/validator/TestAASd_026.java | 60 -
.../v3/model/validator/TestAASd_051.java | 62 -
.../v3/model/validator/TestAASd_052a.java | 104 -
.../v3/model/validator/TestAASd_053.java | 99 -
.../v3/model/validator/TestAASd_054.java | 105 -
.../v3/model/validator/TestAASd_055.java | 158 -
.../v3/model/validator/TestAASd_056.java | 98 -
.../v3/model/validator/TestAASd_057.java | 153 -
.../v3/model/validator/TestAASd_058.java | 98 -
.../v3/model/validator/TestAASd_060.java | 98 -
.../v3/model/validator/TestAASd_063.java | 95 -
.../v3/model/validator/TestAASd_064.java | 93 -
.../v3/model/validator/TestAASd_067.java | 138 -
.../v3/model/validator/TestAASd_068.java | 195 --
.../v3/model/validator/TestAASd_069.java | 151 -
.../v3/model/validator/TestAASd_076.java | 99 -
.../v3/model/validator/TestAASd_077.java | 90 -
.../v3/model/validator/TestAASd_080.java | 79 -
.../v3/model/validator/TestAASd_081.java | 79 -
.../v3/model/validator/TestAASd_090.java | 105 -
.../validator/TestAASd_092_059_ENTITY.java | 110 -
.../TestAASd_093_059_COLLECTION.java | 111 -
.../v3/model/validator/TestAASd_100.java | 59 -
.../v3/model/validator/TestAASd_65a.java | 169 -
.../v3/model/validator/TestAASd_66a.java | 167 -
52 files changed, 15 insertions(+), 11532 deletions(-)
delete mode 100644 validator/pom.xml
delete mode 100644 validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ShaclValidator.java
delete mode 100644 validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidationException.java
delete mode 100644 validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/Validator.java
delete mode 100644 validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidatorUtil.java
delete mode 100644 validator/src/main/resources/constraint_shapes.ttl
delete mode 100644 validator/src/main/resources/jsonExample.json
delete mode 100644 validator/src/main/resources/ontology.ttl
delete mode 100644 validator/src/main/resources/shapes.ttl
delete mode 100644 validator/src/main/resources/test_demo_full_example.json
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/dataformat/core/ValidateModelsTest.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/dataformat/json/JsonFullExampleTest.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ConstraintTestHelper.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASc_006.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASc_008.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_002.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_003.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_005.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_006.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_007.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_008.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_014.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_015.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_020.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_021.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_023.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_026.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_051.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_052a.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_053.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_054.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_055.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_056.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_057.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_058.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_060.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_063.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_064.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_067.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_068.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_069.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_076.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_077.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_080.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_081.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_090.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_092_059_ENTITY.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_093_059_COLLECTION.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_100.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_65a.java
delete mode 100644 validator/src/test/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/TestAASd_66a.java
diff --git a/README.md b/README.md
index fd16fcf29..8a85ddbcb 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,14 @@
# Eclipse AAS4J
-> :newspaper: The _`Eclipse AAS4J 1.0.0-milestone-03`_ release is available on Maven Central Repository and includes the following artifacts implementing the _AAS Specs – Part 1 V3.0 (final)_: `dataformat-core`, `dataformat-aasx`, `dataformat-xml`, `dataformat-json`, `dataformat-parent`, and `model`.
+> :newspaper: The _`Eclipse AAS4J 1.0.0-milestone-03`_ release is available on Maven Central Repository and includes the
+> following artifacts implementing the _AAS Specs – Part 1 V3.0 (final)_: `dataformat-core`, `dataformat-aasx`,
+> `dataformat-xml`, `dataformat-json`, `dataformat-parent`, and `model`.
-[Eclipse AA4J](https://projects.eclipse.org/projects/dt.aas4j) implements the specification of the Asset Administration Shell (AAS) such as metamodels, submodels, serialization and deserialization modules, validators, and transformation libraries based on the AAS specifications. It also contains all classes and properties as defined by the document 'Details of the Asset Administration Shell' published on [Industrial Digital Twin Association (IDTA)](https://industrialdigitaltwin.org/en/).
+[Eclipse AA4J](https://projects.eclipse.org/projects/dt.aas4j) implements the specification of the Asset Administration
+Shell (AAS) such as metamodels, submodels, serialization and deserialization modules, validators, and transformation
+libraries based on the AAS specifications. It also contains all classes and properties as defined by the document
+'Specification of the Asset Administration Shell Part 1: Meta-Model' published on
+[Industrial Digital Twin Association (IDTA)](https://industrialdigitaltwin.org/wp-content/uploads/2023/04/IDTA-01001-3-0_SpecificationAssetAdministrationShell_Part1_Metamodel.pdf).
Note: AAS libraries for java previously available in [admin-shell-io](https://github.com/admin-shell-io).
@@ -10,8 +16,10 @@ Note: AAS libraries for java previously available in [admin-shell-io](https://gi
[Eclipse AA4J](https://projects.eclipse.org/projects/dt.aas4j) consists of the following components:
- AAS Model
-- Dataformat Library
-- Validator
+- Dataformat AASX
+- Dataformat Core
+- Dataformat JSON
+- Dataformat XML
# AAS Model
@@ -57,10 +65,11 @@ The project contains several modules:
- `dataformat-json` JSON de-/serializer
- `dataformat-xml` XML de-/serializer
- `model` Meta-model classes be instantiated
-- `validator` Validator against the semantic restrictions of the AAS meta-model
[AAS4J's predecessor](https://github.com/admin-shell-io/java-serializer) contained serialization modules for AutomationML
and OPC UA for which however no longer up-to-date specifications exist. Implementation is halted until the specs have been updated.
+Additionally, the RDF serializer and the validator have been removed temporarily from this repo but are planned to be
+reintroduced in the future.
Additionally, the sources that are used for generating the static documentation using [DocFX](https://dotnet.github.io/docfx/) in the `gh-pages` branch are located in the `docs` folder.
@@ -89,7 +98,7 @@ This project was initiated by SAP and Fraunhofer to provide a foundation for the
## License
Copyright (c) 2021 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e. V.
-Copyright 2021 SAP SE or an SAP affiliate company and Eclipse AAS4J contributors.
+Copyright 2023 SAP SE or an SAP affiliate company and Eclipse AAS4J contributors.
The serializers contained in this repository provide the functionalities to serialize and deserialize instances of the Asset Administration Shell (AAS) data model from and to the AAS Java Model library. It is licensed under the Apache License
2.0 (see [LICENSE](https://github.com/eclipse-aas4j/aas4j/blob/main/LICENSE)).
diff --git a/validator/pom.xml b/validator/pom.xml
deleted file mode 100644
index babb5d505..000000000
--- a/validator/pom.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
- dataformat-parent
- org.eclipse.digitaltwin.aas4j
- ${revision}
-
- 4.0.0
- validator
- Asset Administration Shell Validator
-
-
-
- ${groupId}
- dataformat-rdf
- ${revision}
-
-
- ${groupId}
- dataformat-json
- ${revision}
- test
-
-
- ${groupId}
- dataformat-core
- ${revision}
- tests
- test
-
-
- org.apache.jena
- jena-shacl
- ${jena.version}
-
-
- org.slf4j
- slf4j-simple
- ${slf4j.version}
- test
-
-
-
\ No newline at end of file
diff --git a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ShaclValidator.java b/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ShaclValidator.java
deleted file mode 100644
index e39ed231b..000000000
--- a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ShaclValidator.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.digitaltwin.aas4j.v3.model.validator;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.stream.Collectors;
-
-import org.apache.jena.graph.compose.Union;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.rdf.model.ModelFactory;
-import org.apache.jena.riot.RDFLanguages;
-import org.apache.jena.riot.RiotException;
-import org.apache.jena.shacl.Shapes;
-import org.apache.jena.shacl.ValidationReport;
-import org.apache.jena.shacl.validation.ReportEntry;
-import org.apache.jena.util.FileUtils;
-import org.slf4j.LoggerFactory;
-
-import org.eclipse.digitaltwin.aas4j.v3.dataformat.rdf.Serializer;
-
-
-public class ShaclValidator implements Validator{
-
- private final static org.slf4j.Logger logger = LoggerFactory.getLogger(ShaclValidator.class);
- private final Shapes shapes;
- private final Model ontologyModel;
-
- private static ShaclValidator validator;
-
- private static final Serializer serializer = new Serializer();
-
-
- /**
- * Function to get the validator object. Initializes if it does not exist yet. Note that initialization might take a long time and should be done prior to incoming messages
- * @return ShaclValidator object to validate RDF
- */
- public static ShaclValidator getInstance() {
- if(validator == null)
- {
- validator = new ShaclValidator();
- }
- return validator;
- }
-
- /**
- * Function to validate Objects against SHACL shapes.
- * @param obj Object to be validated alongside the information model against the shape files
- */
- @Override
- public void validate(Object obj) throws ValidationException {
- //Perform the validation
- //The data graph is the information model plus the message, hence let's create a Union graph
- try {
- ValidationReport report = validateGetReport(obj);
-
- if (!report.conforms()) {
- throw new ValidationException(report.getEntries().stream().map(ReportEntry::toString).collect(Collectors.joining("\n")));
- }
- }
- catch (IOException e)
- {
- throw new ValidationException("Validation process could not be completed.", e);
- }
- }
-
- /**
- * Function to validate Objects against SHACL shapes.
- * @param obj Object to be validated alongside the information model against the shape files
- */
- public ValidationReport validateGetReport(Object obj) throws IOException {
- String rdfSerialization;
-
- //Turn object into JSON-LD
- rdfSerialization = serializer.serialize(obj, RDFLanguages.JSONLD, new HashMap<>());
-
- ShaclValidator val = getInstance();
- //Ontology is already loaded. Now we need to parse the message.
- Model messageModel = ModelFactory.createDefaultModel();
-
- //Read JSON-LD String into a model
- try {
- messageModel.read(new ByteArrayInputStream(rdfSerialization.getBytes(StandardCharsets.UTF_8)), null, "JSONLD");
- }
- catch (RiotException e)
- {
- throw new IOException("The message is no valid JSON-LD and could therefore not be checked for information model compliance.", e);
- }
-
- //Perform the validation
- //The data graph is the information model plus the message, hence let's create a Union graph
- return org.apache.jena.shacl.ShaclValidator.get().validate(val.shapes, new Union(messageModel.getGraph(), val.ontologyModel.getGraph()));
- }
-
-
- /**
- * Function to explicitly initialize the ShaclValidator object. This can be used to avoid long initialization times when a message comes in
- */
- @Override
- public void initialize() {
- if(validator == null)
- {
- validator = new ShaclValidator();
- }
- }
-
-
- private ShaclValidator() {
- logger.info("Initializing SHACL shapes.");
-
- //Initialize an empty model into which we will be loading the shapes
- Model shapesModel = ModelFactory.createDefaultModel();
-
- //All loaded, let's parse!
- //shapes = Shapes.parse(shapesModel);
- InputStream shapesInputStream = getClass().getClassLoader().getResourceAsStream("shapes.ttl");
- InputStream ontologyInputStream = getClass().getClassLoader().getResourceAsStream("ontology.ttl");
- InputStream constraintShapesInputStream = getClass().getClassLoader().getResourceAsStream("constraint_shapes.ttl");
- shapesModel.read(shapesInputStream, null, FileUtils.langTurtle);
- shapesModel.read(constraintShapesInputStream, null, FileUtils.langTurtle);
- shapes = Shapes.parse(shapesModel);
- ontologyModel = ModelFactory.createDefaultModel();
-
- logger.info("Loading ontology");
-
-
- //Load the input stream into the ontology model
- ontologyModel.read(ontologyInputStream, null, FileUtils.langTurtle);
- logger.info("Initialization of SHACL shapes complete.");
- }
-
-
-
-}
-
diff --git a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidationException.java b/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidationException.java
deleted file mode 100644
index 9e66a69c6..000000000
--- a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidationException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.digitaltwin.aas4j.v3.model.validator;
-
-public class ValidationException extends Exception {
-
- public ValidationException(String msg) {
- super(msg);
- }
-
- public ValidationException(String msg, Throwable err) {
- super(msg, err);
- }
-
-}
diff --git a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/Validator.java b/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/Validator.java
deleted file mode 100644
index 77d236bbd..000000000
--- a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/Validator.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.digitaltwin.aas4j.v3.model.validator;
-
-public interface Validator {
-
- void validate(Object obj) throws ValidationException;
-
- void initialize();
-
-}
diff --git a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidatorUtil.java b/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidatorUtil.java
deleted file mode 100644
index a28740020..000000000
--- a/validator/src/main/java/org/eclipse/digitaltwin/aas4j/v3/model/validator/ValidatorUtil.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.digitaltwin.aas4j.v3.model.validator;
-
-
-import org.apache.commons.io.IOUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-
-/**
- * Helper class for Serializer Tests
- *
- * @author sbader
- *
- */
-public class ValidatorUtil {
-
- public static String readResourceToString(String resourceName) throws IOException {
- ClassLoader classloader = Thread.currentThread().getContextClassLoader();
- InputStream is = classloader.getResourceAsStream(resourceName);
- StringWriter writer = new StringWriter();
- IOUtils.copy(is, writer, "UTF-8");
- return writer.toString();
- }
-
- public static String stripWhitespaces(String input) {
- return input.replaceAll("\\s+", "");
- }
-
-}
diff --git a/validator/src/main/resources/constraint_shapes.ttl b/validator/src/main/resources/constraint_shapes.ttl
deleted file mode 100644
index d87cba5f1..000000000
--- a/validator/src/main/resources/constraint_shapes.ttl
+++ /dev/null
@@ -1,451 +0,0 @@
-#
-# 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 dash: .
-@prefix dc: .
-@prefix dcterms: .
-@prefix owl: .
-@prefix rdf: .
-@prefix rdfs: .
-@prefix skos: .
-@prefix vann: .
-@prefix xsd: .
-@prefix sh: .
-@prefix aas: .
-@base .
-
-
-# AASd-002
-aas:IdShortShape a sh:NodeShape ;
- sh:targetClass aas:Referable ;
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:datatype xsd:string ;
- sh:maxCount 1 ;
- sh:minCount 1 ;
- sh:message "(IdShortShape): idShort of Referables shall only feature letters, digits, underscore (\"_\"); starting mandatory with a letter. I.e. [a-zA-Z][a-zA-Z0-9_]+."^^xsd:string ;
- sh:pattern "^[a-zA-Z]\\w*$"^^xsd:string ;
- ] ;
-.
-
-
-# AASd-005
-aas:RevisionRequiresVersionShape
- a sh:NodeShape ;
- sh:targetClass aas:AdministrativeInformation ;
- sh:message "(RevisionRequiresVersionShape): AASd-005 - A revision requires a version." ^^xsd:string ;
- sh:or (
- [
- sh:property [
- sh:path ;
- sh:minCount 0 ;
- sh:maxCount 0 ;
- ]
- ]
- [
- sh:and (
- sh:property [
- sh:path ;
- sh:minCount 1 ;
- sh:maxCount 1 ;
- ]
- sh:property [
- sh:path ;
- sh:minCount 1 ;
- sh:maxCount 1 ;
- ]
- )
- ]
- )
-.
-
-# AASd-006
-aas:AASd-006Shape a sh:NodeShape ;
- sh:targetClass aas:Qualifier ;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "If both, the value and the valueId of a Qualifier are present then the value needs to be identical to the value of the referenced coded value in Qualifier/valueId." ;
- sh:select """
- SELECT ?qualifier ?value
- WHERE {
- ?qualifier ?value .
- ?qualifier ?valueId .
- ?valueId ?key .
- ?key ?keyValue .
-
- FILTER (?value != ?keyValue)
- }
- """ ;
- ] ;
-.
-
-# AASd-007Shape
-aas:AASd-007Shape a sh:NodeShape ;
-sh:targetClass aas:Property;
-sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "If both, the Property/value and the Property/valueId are present then the value of Property/value needs to be identical to the value of the referenced coded value in Property/valueId." ;
- sh:prefixes rdf: ;
- sh:select """
- SELECT ?property ?value WHERE {
- ?property a .
- ?property ?value .
- ?property ?valueId .
- ?valueId ?key .
- ?key ?keyValue .
-
- FILTER (?value != ?keyValue)
- }""" ;
-] .
-
-# AASd-008
-aas:AASd-008Shape a sh:NodeShape ;
- sh:targetClass aas:Operation ;
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:class aas:ModelingKind ;
- sh:minCount 1 ;
- sh:minCount 1 ;
- sh:hasValue ;
- sh:message "(Operation.kind = Template):The submodel element value of an operation variable shall be of kind=Template."^^xsd:string ;
- ] ;
-.
-
-# AASd-014
-aas:SelfManagedEntityRequiresAssetIdShape a sh:NodeShape ;
- rdfs:subClassOf aas:SubmodelElementShape ;
- sh:targetClass aas:Entity ;
- sh:message "(SelfManagedEntityRequiresAssetIdShape): AASd-014 - Either the attribute globalAssetId or specificAssetId of an Entity must be set if Entity/entityType is set to “SelfManagedEntity”. They are not existing otherwise." ^^xsd:string ;
-
- sh:xone(
- [
- sh:and(
- [
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:minCount 1;
- sh:maxCount 1;
- sh:pattern "SelfManagedEntity";
- ];
- ]
- [
- sh:xone(
- [
- sh:property [
- sh:path ;
- sh:minCount 1;
- sh:maxCount 1;
- ];
- ]
- [
- sh:property [
- sh:path ;
- sh:minCount 1;
- sh:maxCount 1;
- ];
- ]
- )
- ]
- )
- ]
- [
- sh:and(
- [
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:minCount 1;
- sh:maxCount 1;
- sh:pattern "CoManagedEntity";
- ];
- ]
- [
- sh:property [
- sh:path ;
- sh:minCount 0;
- sh:maxCount 0;
- ];
- ]
- [
- sh:property [
- sh:path ;
- sh:minCount 0;
- sh:maxCount 0;
- ];
- ]
- )
- ]
-)
-.
-
-# AASd-015
-aas:AASd-015Shape a sh:NodeShape ;
- sh:targetClass aas:AccessControl;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "(AASd-015Shape) - The data element SubjectAttributes/subjectAttribute shall be part of the submodel that is referenced within the “selectableSubjectAttributes” attribute of “AccessControl”" ;
- sh:select """
- SELECT ?submodelElement WHERE {
- ?accessControl ?submodel .
- ?submodel ?submodelElement .
- ?submodelElement ?subjectAttribute .
- ?subjectAttribute ?dataElement .
- }"""
- ] ;
-.
-
-# AASd-020
-aas:AASd-020Shape a sh:NodeShape ;
- sh:targetClass aas:Qualifier ;
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "(AASd-020Shape) - The value of Qualifier/value shall be consistent to the data type as defined in Qualifier/valueType." ;
- sh:select """
- SELECT ?this ?value ?claimedValueType WHERE {
- ?this ?value .
- ?this ?claimedValueType .
-
- # reference for the constructor functions: https://www.w3.org/TR/2013/REC-sparql11-query-20130321/#FunctionMapping
- BIND(IF( (?value), true, false) AS ?isDateTime)
- BIND(IF( (?value), true, false) AS ?isBoolean)
- BIND(IF( (?value), true, false) AS ?isInteger)
- BIND(IF( (?value), true, false) AS ?isDouble)
- BIND(IF( (?value), true, false) AS ?isLong)
- BIND(IF( (?value), true, false) AS ?isFloat)
- BIND( isURI(?value) AS ?isUri)
- BIND( isIRI(?value) AS ?isIri)
- BIND(IF( (?value), true, false) AS ?isString)
-
- FILTER( ?claimedValueType = "integer" || ?claimedValueType = "int" || ?claimedValueType = "boolean" || ?claimedValueType = "dateTime" || ?claimedValueType = "double" || ?claimedValueType = "long" || ?claimedValueType = "float" || ?claimedValueType = "uri" || ?claimedValueType = "iri" || ?claimedValueType = "string" )
-
- FILTER( IF( ?claimedValueType = "dateTime", IF(BOUND(?isDateTime), false, true), true ) )
- FILTER( IF( ?claimedValueType = "boolean", IF(BOUND(?isBoolean), false, true), true ) )
- FILTER( IF( ?claimedValueType = "long", IF(BOUND(?isLong), false, true), true ) )
- FILTER( IF( ?claimedValueType = "float", IF(BOUND(?isFloat), false, true), true ) )
- FILTER( IF( ?claimedValueType = "integer" || ?claimedValueType = "int", IF(BOUND(?isInteger), false, true), true ) )
- FILTER( IF( ?claimedValueType = "double", IF(BOUND(?isDouble), false, true), true ) )
- FILTER( IF( ?claimedValueType = "string", IF(BOUND(?isString), false, true), true ) )
- FILTER( IF( ?claimedValueType = "uri", IF(?isUri, false, true), true ) )
- FILTER( IF( ?claimedValueType = "iri", IF(?isIri, false, true), true ) )
- }
- """
- ]
- ];
-.
-
-# AASd-021
-aas:AASd-021Shape a sh:NodeShape ;
- sh:targetClass aas:Qualifiable ;
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "(AASd-021Shape) - Every Qualifiable can only have one Qualifier with the same Qualifier/type." ;
- sh:select """
- SELECT ?qualifiable WHERE {
- ?qualifiable ?qualifier1 .
- ?qualifiable ?qualifier2 .
- ?qualifier1 ?valueType1 .
- ?qualifier2 ?valueType2 .
- FILTER (str(?valueType1) = str(?valueType2) )
- }
- """
- ]
- ];
-.
-
-# AASd-023
-#aas:AASd-023Shape a sh:NodeShape ;
- #sh:targetClass aas:AssetInformation;
- #sh:sparql [
- #a sh:SPARQLConstraint ;
- #sh:message "AssetInformation/globalAssetId either is a reference to an Asset object or a global reference." ;
- #sh:select """
- #SELECT ?keyType
- #WHERE {
- #?assetInformation a .
- #?assetInformation ?globalAssetId .
- #?globalAssetId ?key .
- #?key ?keyType .
- #FILTER (?keyType != && ?keyType != )
-
- #}
- #""" ;
-#] .
-
-# AASd-026
-# aas:AASd-026Shape a sh:NodeShape ;
- #sh:targetClass aas:SubmodelElementCollection ;
- #sh:prefixes xsd: ;
- #sh:sparql [
- #a sh:SPARQLConstraint ;
- #sh:message "If allowDuplicates==false then it is not allowed that the collection contains several elements with the same semantics (i.e. the same semanticId)." ;
- #sh:select """
- #SELECT ?keyType
- #WHERE {
- #?SubmodelElementCollection a .
- #?SubmodelElementCollection ?SubmodelElementCollectionIdShort .
- #?SubmodelElementCollection "False"^^xsd:boolean.
-
- #?SubmodelElementCollection ?Value1 .
- #?Value1 ?Value1SemanticId .
- #?Value1SemanticId ?Value1Key .
- #?Value1Key ?Value1KeyType .
- #?Value1Key ?Value1KeyValue .
- #?Value1Key ?Value1KeyIdType .
-
- #?SubmodelElementCollection ?Value2 .
- #?Value2 ?Value2SemanticId .
- #?Value2SemanticId ?Value2Key .
- #?Value2Key ?Value2KeyType .
- #?Value2Key ?Value2KeyValue .
- #?Value2Key ?Value2KeyIdType .
-
-
- #FILTER (?Value1SemanticId = ?Value2SemanticId )
-
- #}
- # """ ;
- #] .
-
-# AASd-051
-aas:ConceptDescriptionAllowedCategories a sh:NodeShape ;
- sh:targetClass aas:ConceptDescription ;
-
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:datatype xsd:string ;
- sh:maxCount 1 ;
- sh:minCount 0 ;
- sh:pattern "^VALUE|^PROPERTY|^REFERENCE|^DOCUMENT|^CAPABILITY|^RELATIONSHIP|^COLLECTION|^FUNCTION|^EVENT|^ENTITY|^APPLICATION_CLASS|^QUALIFIER|^VIEW";
- sh:message "A ConceptDescription shall have one of the following categories: VALUE, PROPERTY, REFERENCE, DOCUMENT, CAPABILITY, RELATIONSHIP, COLLECTION, FUNCTION, EVENT, ENTITY, APPLICATION_CLASS, QUALIFIER, VIEW." ^^xsd:string ;
- ] ;
-.
-
-
-# AASc-006
-aas:ConceptDescriptionWithCategoryDocumentAndIEC61360CorrectDataType a sh:NodeShape ;
- sh:targetClass aas:ConceptDescription;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "For a ConceptDescription with category DOCUMENT using data specification template IEC61360 (http://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/2/0) - DataSpecificationIEC61360/dataType shall be one of the following values: String or URL." ;
-
- sh:select """
- SELECT ?conceptDescription
- WHERE {
- ?element a .
- ?conceptDescription "DOCUMENT" .
- ?conceptDescription ?embeddedDataSpecification .
- ?embeddedDataSpecification ?dataSpecification .
- ?dataSpecification ?dataType .
- FILTER(?dataType != && ?dataType != )
- }
- """ ;
-] .
-
-# AASc-008
-aas:ConceptDescriptionDefinitionInEnglishIfNotValueCategory a sh:NodeShape ;
- sh:targetClass aas:ConceptDescription ;
-
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "For all ConceptDescriptions except for ConceptDescriptions of category VALUE using data specification template IEC61360 (https://admin-shell.io/aas/3/0/RC02/DataSpecificationIEC61360/definition) - DataSpecificationIEC61360/definition is mandatory and shall be defined at least in English." ;
- sh:prefixes rdf: ;
- sh:select """
- SELECT ?dataSpecification
- WHERE {
- ?conceptDescription a .
- MINUS {
- ?conceptDescription a .
- ?conceptDescription ?embeddedDataSpecificationEn .
- ?embeddedDataSpecificationEn ?dataSpecificationEn .
- ?dataSpecificationEn ?preferredNameEn .
- FILTER(LANGMATCHES(LANG(?preferredNameEn), "en"))
- }
- ?conceptDescription ?category .
- FILTER (?category != "VALUE")
- ?conceptDescription ?embeddedDataSpecification .
- ?embeddedDataSpecification ?dataSpecification .
- }
- """ ;
-] .
-
-
-
-# AASd-077
-aas:UniqueExtensionNames a sh:NodeShape ;
- sh:targetClass aas:HasExtensions ;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "The name of an extension within HasExtensions needs to be unique." ;
-
- sh:select """
- SELECT ?extensionName
- WHERE {
- ?extension1 a .
- ?extension1 ?extension1Name .
-
- ?extension2 a .
- ?extension2 ?extension2Name .
-
- ?hasExtensions ?extension1 .
- ?hasExtensions ?extension2 .
-
- FILTER(?extension1Name = ?extension2Name )
- }
- """ ;
-] .
-
-# AASd-090
-aas:DataElementExcludingFileAndBlobCorrectCategory a sh:NodeShape ;
- sh:targetClass aas:DataElement;
- sh:sparql [
- a sh:SPARQLConstraint ;
- sh:message "For data elements Referable/category shall be one of the following values: CONSTANT, PARAMETER or VARIABLE. Exception: File and Blob data elements." ;
- sh:prefixes rdf: ;
- sh:select """
- SELECT ?element
- WHERE {
- ?subclass + .
- FILTER(?subclass != && ?subclass != )
- ?element a ?subclass .
- ?element ?category .
- FILTER(?category != "CONSTANT" && ?category != "PARAMETER" && ?category != "VARIABLE")
- }
- """ ;
-] .
-
-
-# AASd-100
-aas:ReferableShape a sh:NodeShape ;
- sh:targetClass aas:Referable ;
- sh:property [
- a sh:PropertyShape ;
- sh:path ;
- sh:datatype xsd:string ;
- sh:maxCount 1 ;
- sh:minCount 0 ;
- sh:pattern "^(?!\\s*$).+" ;
- sh:message "(Referable.category):An attribute with data type \"string\" is not allowed to be empty."^^xsd:string ;
- ] ;
-.
diff --git a/validator/src/main/resources/jsonExample.json b/validator/src/main/resources/jsonExample.json
deleted file mode 100644
index ae9fddb49..000000000
--- a/validator/src/main/resources/jsonExample.json
+++ /dev/null
@@ -1,524 +0,0 @@
-{
- "assetAdministrationShells": [
- {
- "modelType": {
- "name": "AssetAdministrationShell"
- },
- "idShort": "ExampleMotor",
- "identification": {
- "idType": "Iri",
- "id": "http://customer.com/aas/9175_7013_7091_9168"
- },
- "assetInformation": {
- "assetKind": "Instance",
- "globalAssetId": {
- "keys": [
- {
- "type": "Asset",
- "value": "http://customer.com/assets/KHBVZJSQKIY",
- "idType": "Iri"
- }
- ]
- },
- "specificAssetIds": [
- {
- "key": "EquipmentID",
- "value": "538fd1b3-f99f-4a52-9c75-72e9fa921270",
- "subjectId": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "http://customer.com/Systems/ERP/012",
- "idType": "Iri"
- }
- ]
- }
- },
- {
- "key": "DeviceID",
- "value": "QjYgPggjwkiHk4RrQiYSLg==",
- "subjectId": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "http://customer.com/Systems/IoT/1",
- "idType": "Iri"
- }
- ]
- }
- }
- ],
- "thumbnail": {
- "modelType": {
- "name": "File"
- },
- "kind": "Instance",
- "idShort": "thumbnail",
- "mimeType": "image/png",
- "value": "https://github.com/admin-shell/io/blob/master/verwaltungsschale-detail-part1.png"
- }
- },
- "submodels": [
- {
- "keys": [
- {
- "type": "Submodel",
- "value": "http.//i40.customer.com/type/1/1/7A7104BDAB57E184",
- "idType": "Iri"
- }
- ]
- },
- {
- "keys": [
- {
- "type": "Submodel",
- "value": "http://i40.customer.com/instance/1/1/AC69B1CB44F07935",
- "idType": "Iri"
- }
- ]
- },
- {
- "keys": [
- {
- "type": "Submodel",
- "value": "http://i40.customer.com/type/1/1/1A7B62B529F19152",
- "idType": "Iri"
- }
- ]
- }
- ]
- }
- ],
- "assets": [
- {
- "modelType": {
- "name": "Asset"
- },
- "identification": {
- "idType": "Iri",
- "id": "http://customer.com/assets/KHBVZJSQKIY"
- }
- }
- ],
- "submodels": [
- {
- "modelType": {
- "name": "Submodel"
- },
- "semanticId": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "0173-1#01-AFZ615#016",
- "idType": "Irdi"
- }
- ]
- },
- "kind": "Instance",
- "idShort": "TechnicalData",
- "identification": {
- "idType": "Iri",
- "id": "http://i40.customer.com/type/1/1/7A7104BDAB57E184"
- },
- "submodelElements": [
- {
- "modelType": {
- "name": "Property"
- },
- "kind": "Instance",
- "semanticId": {
- "keys": [
- {
- "type": "ConceptDescription",
- "value": "0173-1#02-BAA120#008",
- "idType": "Irdi"
- }
- ]
- },
- "idShort": "MaxRotationSpeed",
- "category": "PARAMETER",
- "value": "5000",
- "valueType": "integer"
- }
- ]
- },
- {
- "modelType": {
- "name": "Submodel"
- },
- "kind": "Instance",
- "idShort": "Documentation",
- "identification": {
- "idType": "Iri",
- "id": "http://i40.customer.com/type/1/1/1A7B62B529F19152"
- },
- "submodelElements": [
- {
- "modelType": {
- "name": "SubmodelElementCollection"
- },
- "kind": "Instance",
- "semanticId": {
- "keys": [
- {
- "type": "ConceptDescription",
- "value": "http://www.vdi2770.com/blatt1/Entwurf/Okt18/cd/Document",
- "idType": "Iri"
- }
- ]
- },
- "idShort": "OperatingManual",
- "value": [
- {
- "modelType": {
- "name": "Property"
- },
- "kind": "Instance",
- "semanticId": {
- "keys": [
- {
- "type": "ConceptDescription",
- "value": "http://www.vdi2770.com/blatt1/Entwurf/Okt18/cd/Description/Title",
- "idType": "Iri"
- }
- ]
- },
- "idShort": "Title",
- "value": "OperatingManual",
- "valueType": "langString"
- },
- {
- "modelType": {
- "name": "File"
- },
- "kind": "Instance",
- "semanticId": {
- "keys": [
- {
- "type": "ConceptDescription",
- "value": "http://www.vdi2770.com/blatt1/Entwurf/Okt18/cd/StoredDocumentRepresentation/DigitalFile",
- "idType": "Iri"
- }
- ]
- },
- "idShort": "DigitalFile_PDF",
- "mimeType": "application/pdf",
- "value": "/aasx/OperatingManual.pdf"
- }
- ],
- "ordered": false,
- "allowDuplicates": false
- }
- ]
- },
- {
- "modelType": {
- "name": "Submodel"
- },
- "kind": "Instance",
- "idShort": "OperationalData",
- "identification": {
- "idType": "Iri",
- "id": "http://i40.customer.com/instance/1/1/AC69B1CB44F07935"
- },
- "submodelElements": [
- {
- "modelType": {
- "name": "Property"
- },
- "kind": "Instance",
- "semanticId": {
- "keys": [
- {
- "type": "ConceptDescription",
- "value": "http://customer.com/cd/1/1/18EBD56F6B43D895",
- "idType": "Iri"
- }
- ]
- },
- "idShort": "RotationSpeed",
- "category": "Variable",
- "value": "4370",
- "valueType": "integer"
- }
- ]
- }
- ],
- "conceptDescriptions": [
- {
- "modelType": {
- "name": "ConceptDescription"
- },
- "idShort": "Title",
- "identification": {
- "idType": "Iri",
- "id": "http://www.vdi2770.com/blatt1/Entwurf/Okt18/cd/Description/Title"
- },
- "embeddedDataSpecifications": [
- {
- "dataSpecification": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "http://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/2/0",
- "idType": "Iri"
- }
- ]
- },
- "dataSpecificationContent": {
- "preferredName": [
- {
- "language": "EN",
- "text": "Title"
- }
- ],
- "shortName": [
- {
- "language": "EN",
- "text": "Title"
- },
- {
- "language": "DE",
- "text": "Titel"
- }
- ],
- "unit": "ExampleUnit",
- "sourceOfDefinition": "ExampleDefinition",
- "dataType": "StringTranslatable",
- "definition": [
- {
- "language": "EN",
- "text": "Language-dependent title of the document.."
- }
- ]
- }
- }
- ]
- },
- {
- "modelType": {
- "name": "ConceptDescription"
- },
- "idShort": "DigitalFile",
- "identification": {
- "idType": "Iri",
- "id": "http://www.vdi2770.com/blatt1/Entwurf/Okt18/cd/StoredDocumentRepresentation/DigitalFile"
- },
- "embeddedDataSpecifications": [
- {
- "dataSpecification": {
-
-
- "keys": [
- {
- "type": "GlobalReference",
- "value": "http://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/2/0",
- "idType": "Iri"
- }
- ]
-
- },
- "dataSpecificationContent": {
- "preferredName": [
- {
- "language": "EN",
- "text": "DigitalFile"
- }
- ],
- "shortName": [
- {
- "language": "EN",
- "text": "DigitalFile"
- },
- {
- "language": "DE",
- "text": "DigitaleDatei"
- }
- ],
- "unit": "ExampleUnit",
- "sourceOfDefinition": "ExampleDefinition",
- "dataType": "String",
- "definition": [
- {
- "language": "EN",
- "text": "A file that represents the Document Version. In addition to the obligatory PDF file, other files can be specified. "
- }
- ]
- }
- }
- ]
- },
- {
- "modelType": {
- "name": "ConceptDescription"
- },
- "idShort": "MaxRotationSpeed",
- "category": "PROPERTY",
- "administration": {
- "version": "2",
- "revision": "2.1"
- },
- "identification": {
- "idType": "Irdi",
- "id": "0173-1#02-BAA120#008"
- },
- "embeddedDataSpecifications": [
- {
- "dataSpecification": {
- "keys": [{
- "type": "GlobalReference",
- "value": "http://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/2/0",
- "idType": "Iri"
- }
- ]
- },
- "dataSpecificationContent": {
- "preferredName": [
- {
- "language": "en",
- "text": "Max.rotationspeed"
- }
- ],
- "shortName": [],
- "unit": "1/min",
- "unitId": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "0173-1#05-AAA650#002",
- "idType": "Irdi"
- }
- ]
- },
- "sourceOfDefinition": "ExampleDefinition",
- "dataType": "RealMeasure",
- "definition": [
- {
- "language": "de",
- "text": "HöchstezulässigeDrehzahl,mitwelcherderMotoroderdieSpeiseinheitbetriebenwerdendarf"
- },
- {
- "language": "en",
- "text": "Greatestpermissiblerotationspeedwithwhichthemotororfeedingunitmaybeoperated"
- }
- ]
- }
- }
- ]
- },
- {
- "modelType": {
- "name": "ConceptDescription"
- },
- "idShort": "RotationSpeed",
- "category": "PROPERTY",
- "identification": {
- "idType": "Iri",
- "id": "http://customer.com/cd/1/1/18EBD56F6B43D895"
- },
- "embeddedDataSpecifications": [
- {
- "dataSpecification": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "http://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/2/0",
- "idType": "Iri"
- }
- ]
- },
- "dataSpecificationContent": {
- "preferredName": [
- {
- "language": "EN",
- "text": "Actualrotationspeed"
- }
- ],
- "shortName": [
- {
- "language": "DE",
- "text": "AktuelleDrehzahl"
- },
- {
- "language": "EN",
- "text": "ActualRotationSpeed"
- }
- ],
- "unit": "1/min",
- "unitId": {
- "keys": [
- {
- "type": "GlobalReference",
- "value": "0173-1#05-AAA650#002",
- "idType": "Irdi"
- }
- ]
- },
- "sourceOfDefinition": "ExampleDefinition",
- "dataType": "RealMeasure",
- "definition": [
- {
- "language": "DE",
- "text": "Aktuelle Drehzahl, mitwelcher der Motor oder die Speiseinheit betrieben wird"
- },
- {
- "language": "EN",
- "text": "Actual rotationspeed with which the motor or feedingunit is operated"
- }
- ]
- }
- }
- ]
- },
- {
- "modelType": {
- "name": "ConceptDescription"
- },
- "idShort": "Document",
- "identification": {
- "idType": "Iri",
- "id": "http://www.vdi2770.com/blatt1/Entwurf/Okt18/cd/Document"
- },
- "embeddedDataSpecifications": [
- {
- "dataSpecification": {
-
- "keys": [
- {
- "type": "GlobalReference",
- "value": "http://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/2/0",
- "idType": "Iri"
- }
- ]
-
- },
- "dataSpecificationContent": {
- "preferredName": [{
- "language": "EN",
- "text": "Document"
- }],
- "shortName": [
- {
- "language": "EN",
- "text": "Document"
- },
- {
- "language": "DE",
- "text": "Dokument"
- }
- ],
- "unit": "ExampleUnit",
- "sourceOfDefinition": "[ISO15519-1:2010]",
- "dataType": "String",
- "definition": [
- {
- "language": "EN",
- "text": "Fixed and ordered set of information intended for human use that can be managed and exchanged as a unit between users and the system."
- }
- ]
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/validator/src/main/resources/ontology.ttl b/validator/src/main/resources/ontology.ttl
deleted file mode 100644
index 450038c20..000000000
--- a/validator/src/main/resources/ontology.ttl
+++ /dev/null
@@ -1,2100 +0,0 @@
-@prefix aas: .
-@prefix owl: .
-@prefix rdf: .
-@prefix rdfs: .
-@prefix xs: .
-@base .
-
- rdf:type owl:Ontology ;
- owl:versionInfo "V3.0RC02" ;
- 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 V3.0RC02'."@en ;
- rdfs:isDefinedBy ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/AasSubmodelElements/AnnotatedRelationshipElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Annotated Relationship Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/BasicEventElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Basic Event Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/Blob
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Blob"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/Capability
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Capability"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/DataElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Data Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/Entity
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Entity"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/EventElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Event Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/File
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "File"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/MultiLanguageProperty
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Multi Language Property"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/Operation
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Operation"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/Property
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Property"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/Range
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Range"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/ReferenceElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Reference Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/RelationshipElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Relationship Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/SubmodelElement
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Submodel Element"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/SubmodelElementCollection
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Submodel Element Collection"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AasSubmodelElements/SubmodelElementList
- rdf:type aas:AasSubmodelElements ;
- rdfs:label "Submodel Element List"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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'."@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/AssetInformation/globalAssetId
- rdf:type owl:ObjectProperty ;
- rdfs:label "has global asset id"^^xs:string ;
- rdfs:domain aas:AssetInformation ;
- rdfs:range aas:Reference ;
- rdfs:comment "Global identifier of the asset the AAS is representing."@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/AssetKind
-aas:AssetKind rdf:type owl:Class ;
- rdfs:label "Asset Kind"^^xs:string ;
- rdfs:comment "Enumeration for denoting whether an asset is a type asset or an instance asset."@en ;
- owl:oneOf (
-
-
- ) ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AssetKind/Instance
- rdf:type aas:AssetKind ;
- rdfs:label "Instance"^^xs:string ;
- rdfs:comment "concrete, clearly identifiable component of a certain type"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/AssetKind/Type
- rdf:type aas:AssetKind ;
- rdfs:label "Type"^^xs:string ;
- rdfs:comment "hardware or software element which specifies the common attributes shared by all instances of the type"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/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/0/RC02/BasicEventElement/lastUpdate
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has last update"^^xs:string ;
- rdfs:domain aas:BasicEventElement ;
- rdfs:range xs:string ;
- rdfs:comment "Timestamp in UTC, when the last event was received (input direction) or sent (output direction)."@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/DataSpecificationIEC61360/definition
- rdf:type owl:ObjectProperty ;
- rdfs:label "has definition"^^xs:string ;
- rdfs:domain aas:DataSpecificationIEC61360 ;
- rdfs:range rdf:langString ;
- rdfs:comment "Definition in different languages"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/DataSpecificationIEC61360/preferredName
- rdf:type owl:ObjectProperty ;
- rdfs:label "has preferred name"^^xs:string ;
- rdfs:domain aas:DataSpecificationIEC61360 ;
- rdfs:range rdf:langString ;
- rdfs:comment "Preferred name"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationIEC61360/shortName
- rdf:type owl:ObjectProperty ;
- rdfs:label "has short name"^^xs:string ;
- rdfs:domain aas:DataSpecificationIEC61360 ;
- rdfs:range rdf:langString ;
- rdfs:comment "Short name"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/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/0/RC02/DataSpecificationPhysicalUnit
-aas:DataSpecificationPhysicalUnit rdf:type owl:Class ;
- rdfs:subClassOf aas:DataSpecificationContent ;
- rdfs:label "Data Specification Physical Unit"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/conversionFactor
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has conversion factor"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Conversion factor"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/definition
- rdf:type owl:ObjectProperty ;
- rdfs:label "has definition"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range rdf:langString ;
- rdfs:comment "Definition in different languages"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/dinNotation
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has din notation"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Notation of physical unit conformant to DIN"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/eceCode
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has ece code"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Code of physical unit conformant to ECE"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/eceName
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has ece name"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Name of physical unit conformant to ECE"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/nistName
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has nist name"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Name of NIST physical unit"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/registrationAuthorityId
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has registration authority id"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Registration authority ID"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/siName
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has si name"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Name of SI physical unit"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/siNotation
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has si notation"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Notation of SI physical unit"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/sourceOfDefinition
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has source of definition"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Source of definition"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/supplier
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has supplier"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Supplier"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/unitName
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has unit name"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Name of the physical unit"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataSpecificationPhysicalUnit/unitSymbol
- rdf:type owl:DatatypeProperty ;
- rdfs:label "has unit symbol"^^xs:string ;
- rdfs:domain aas:DataSpecificationPhysicalUnit ;
- rdfs:range xs:string ;
- rdfs:comment "Symbol for the physical unit"@en ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/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/0/RC02/DataTypeDefXsd/AnyUri
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Any Uri"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Base64Binary
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Base 64 Binary"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Boolean
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Boolean"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Byte
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Byte"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Date
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Date"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/DateTime
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Date Time"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/DateTimeStamp
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Date Time Stamp"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/DayTimeDuration
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Day Time Duration"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Decimal
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Decimal"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Double
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Double"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Duration
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Duration"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Float
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Float"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/GDay
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "G Day"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/GMonth
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "G Month"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/GMonthDay
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "G Month Day"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/GYear
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "G Year"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/GYearMonth
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "G Year Month"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/HexBinary
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Hex Binary"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Int
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Int"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Integer
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Integer"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Long
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Long"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/NegativeInteger
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Negative Integer"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/NonNegativeInteger
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Non Negative Integer"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/NonPositiveInteger
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Non Positive Integer"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/PositiveInteger
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Positive Integer"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Short
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Short"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/String
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "String"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/Time
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Time"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/UnsignedByte
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Unsigned Byte"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/UnsignedInt
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Unsigned Int"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/UnsignedLong
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Unsigned Long"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/UnsignedShort
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Unsigned Short"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeDefXsd/YearMonthDuration
- rdf:type aas:DataTypeDefXsd ;
- rdfs:label "Year Month Duration"^^xs:string ;
-.
-
-### https://admin-shell.io/aas/3/0/RC02/DataTypeIEC61360
-aas:DataTypeIEC61360 rdf:type owl:Class ;
- rdfs:label "Data Type IEC 61360"^^xs:string ;
- owl:oneOf (
-
-
-
-
-