diff --git a/docker.SHACL.validation.configuration.md b/docker.SHACL.validation.configuration.md new file mode 100644 index 0000000000000000000000000000000000000000..66f2351c8093ebb2356701dd243db980a02a0d13 --- /dev/null +++ b/docker.SHACL.validation.configuration.md @@ -0,0 +1,53 @@ +docker.SHACL.validation.configuration.txt:: + +SHACL Validation server notes: See ShaclValidationManager.java + Support per validation type of loading the imports defined in the input that can also be set by users at validation time. + Support for querying SPARQL endpoints to retrieve the content to validate. + Remote SHACL shape caching: Caching is used to avoid constant lookups of remote SHACL shape files. + Once loaded, remote SHACL shape files will be automatically refreshed every hour. + +Docker development configuration::https://www.itb.ec.europa.eu/docs/guides/latest/installingTheTestBed/ +These steps are for the specific validator, not the generic one that is in actual use. +Step 1: Install Docker Community Edition & Docker Compose from https://docs.docker.com/desktop/install/ubuntu/ + docker --version => Docker version 26.0.0, build 2ae903e + docker compose version => Docker Compose version v2.25.0 +Step 2: Define the test bed’s configuration: + mkdir ~/dev/testbed && cd ~/dev/testbed && touch docker-compose.yml + sudo groupadd docker && sudo usermod -aG docker ${USER} && sudo chmod 666 /var/run/docker.sock + sudo ufw allow 8080/tcp && sudo ufw status verbose (Later: sudo netstat -lnp --tcp --udp) +Step 3: REST interface: http://localhost:8080/shacl/DOMAIN/api/validate DOMAIN={Commodity|Ontology} + Parameter Verb Description Example + validate POST Validate one RDF instance. Request payload type: application/json. http://localhost:8080/shacl/Ontology/api/validate <payload> +Step 4: Test your installation: browse to http://localhost:9000/ => test@test.com / test => })cdVZP8>=}wZFa <adminPassword> +Step 5: Docker commands to manage the test bed: + docker build -t local/OntologyValidator . # this binds the specific validator to the shapes configuration. NOT USED! + docker run -d --name SAREFvalidator -p 8080:8080 isaitb/shacl-validator # this runs the general validator. + + +Generic Validator Dockerfile:: +FROM isaitb/shacl-validator:latest +COPY resources /validator/resources/ +ENV validator.resourceRoot /validator/resources/ + +Docs for RDF validator: https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/index.html +Base docker image: https://hub.docker.com/r/isaitb/shacl-validator +Use Swagger UI for testing: http://localhost:8080/shacl/swagger-ui/index.html#/{domain}/api/validate + http://localhost:8080/shacl/swagger-ui.html + +~/dockerls.sh: sudo docker image ls && sudo docker volume ls && sudo docker container ls && sudo docker network ls + !!! images !!! + REPOSITORY TAG IMAGE ID CREATED SIZE + local/ontologyvalidator latest 8b929e2a947c 3 hours ago 436MB # THIS ONE IS NOT USED! + isaitb/shacl-validator latest 723eca0b679b 2 weeks ago 436MB # THIS ONE IS USED! + !!! volumes !!! + DRIVER VOLUME NAME + !!! containers !!! + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + d9daf40eed08 local/ontologyvalidator "java -XX:+ExitOnOut…" 3 hours ago Up 3 hours 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp SAREFvalidator + !!! networks !!! + NETWORK ID NAME DRIVER SCOPE + 4a98c5692963 bridge bridge local + f02e9cbf7d1d host host local + 631ce42d72e6 none null local + + diff --git a/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_10_1_Checker.java b/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_10_1_Checker.java index 74fbf8792cb53c3be1dfce834e6fe8d86b71b45f..0fa9ca6610ee7ae76d49b1c2f7f0e12255c7804c 100644 --- a/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_10_1_Checker.java +++ b/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_10_1_Checker.java @@ -60,7 +60,7 @@ public class Clause_10_1_Checker extends AbstractClauseChecker { } try { if (Files.walk(dir.toPath(), 1).filter(p -> !p.toFile().isFile() && !p.toFile().getName().startsWith(".")) - .count() != 1) { + .count() < 2) { // count README.md logError(getMessage(Clause_10_1_Checker.MESSAGE.one, repository.getProject().getOntologyFileName(Languages.TEXT_TURTLE))); } } catch (Exception ex) { diff --git a/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_9_4_6_Checker.java b/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_9_4_6_Checker.java index 3a27214c0452ec593d3436ed815c48e01f3dee79..ead4026ad64ba41c2e057f9d410c46f5dca2bd03 100644 --- a/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_9_4_6_Checker.java +++ b/src/main/java/fr/mines_stetienne/ci/saref/checkers/Clause_9_4_6_Checker.java @@ -29,8 +29,8 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.net.http.HttpResponse; import java.nio.file.Files; +import java.util.HashMap; import java.util.stream.Collectors; import fr.mines_stetienne.ci.saref.SAREFPipelineException; @@ -47,7 +47,7 @@ import org.semanticweb.owlapi.model.OWLOntology; public class Clause_9_4_6_Checker extends AbstractClauseChecker { private enum MESSAGE { - one, missing, ioexception, server_unavailable + one, missing, ioexception, server_unavailable, shacl_validation_failed } public Clause_9_4_6_Checker(RepositoryManager repositoryManager) throws SAREFPipelineException { @@ -96,15 +96,27 @@ public class Clause_9_4_6_Checker extends AbstractClauseChecker { logError(getMessage(Clause_9_4_6_Checker.MESSAGE.ioexception), e); } - ShaclValidationManager.PingValidationServer(); - - //Map<String, HttpResponse<String>> responseMap = new HashMap<String, HttpResponse<String>>(); try { + ShaclValidationManager.PingValidationServer(); ShaclValidationManager shaclValidationManager = new ShaclValidationManager(ontologyToValidate); - HttpResponse<String> response = shaclValidationManager.ValidateOntologyWithShacl(shaclFileList); - //responseMap.put(shaclFileName, response); // parse map for errors + HashMap<String, String> response = shaclValidationManager.ValidateOntologyWithShacl(shaclFileList); + if (!matchHashMap("200","true",response)) { + logError(getMessage(Clause_9_4_6_Checker.MESSAGE.shacl_validation_failed, ontologyToValidate)); + throw new SAREFPipelineException(response.get("500")); + } } catch (IOException | InterruptedException e) { logError(getMessage(Clause_9_4_6_Checker.MESSAGE.ioexception, ontologyToValidate)); } } + + private boolean matchHashMap(String key, String value, HashMap<String, String> sG) { + if (sG != null){ + if (sG.containsKey(key)){ + if ((sG.get(key)).equals(value)){ + return true; + } + } + } + return false; + } } \ No newline at end of file diff --git a/src/main/java/fr/mines_stetienne/ci/saref/managers/ShaclValidationManager.java b/src/main/java/fr/mines_stetienne/ci/saref/managers/ShaclValidationManager.java index 41d2e4bdf4f151cde4539941b9cbcae8f01112e9..2da545d613aac6c403a685c3056bcf2e2f6e5601 100644 --- a/src/main/java/fr/mines_stetienne/ci/saref/managers/ShaclValidationManager.java +++ b/src/main/java/fr/mines_stetienne/ci/saref/managers/ShaclValidationManager.java @@ -36,25 +36,26 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Paths; import java.util.Map; import java.util.List; +import java.util.HashMap; import java.util.ArrayList; -//import java.util.HashMap; -import org.apache.commons.lang3.StringEscapeUtils; +//import org.apache.commons.lang3.StringEscapeUtils; import com.fasterxml.jackson.databind.ObjectMapper; import fr.mines_stetienne.ci.saref.SAREFPipelineException; -/* docker run -d --name SAREFvalidator -p 8080:8080 isaitb/shacl-validator # runs the generic validator with Dockerfile +/* docker run -d --name SAREFvalidator -p 8080:8080 isaitb/shacl-validator # runs the generic validator locally given a Dockerfile. Docs for RDF validator: https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/index.html Base docker image: https://hub.docker.com/r/isaitb/shacl-validator (generic validator) - Use Swagger UI for testing: http://localhost:8080/shacl/swagger-ui/index.html#/{domain}/api/validate + Use Swagger UI for testing: http://localhost:8080/shacl/swagger-ui/index.html#/{domain}/api/validate or http://193.49.174.57:4050/shacl/swagger-ui/index.html# + Online validator: https://www.itb.ec.europa.eu/shacl/any/upload * */ public class ShaclValidationManager { - private static String VALIDATOR_URL = "http://localhost:8080/shacl/"; + private static String VALIDATOR_URL = "http://localhost:8080/shacl/"; //"http://193.49.174.57:4050/shacl/"; private final String TEXT_TURTLE = "text/turtle"; - private final String JSON_FORMAT = "application/json"; // application/x-www-form-urlencoded + private final String JSON_FORMAT = "application/json"; private final String STRING_FORMAT = "STRING"; - private String ontologyToValidate; // file:///home/davidgnabasik/dev/real_saref4auto/ontology/saref4auto.ttl or URL + private String ontologyToValidate; // can be file or URL. private List<String> shaclFileList; private List<RuleSet> ruleSetList; private HttpClient client; @@ -86,7 +87,6 @@ public class ShaclValidationManager { class ValidationRequest { private String contentToValidate; // JSON-encoded ontology private List<RuleSet> externalRules; - private Map<String, Object> properties; // needed? public String getContentToValidate() { return contentToValidate; @@ -96,12 +96,12 @@ public class ShaclValidationManager { this.contentToValidate = contentToValidate; } - public Map<String, Object> getProperties() { - return properties; + public List<RuleSet> getExternalRules() { + return externalRules; } - public void setProperties(Map<String, Object> properties) { - this.properties = properties; + public void setExternalRules(List<RuleSet> externalRules) { + this.externalRules = externalRules; } // constants for now... @@ -114,29 +114,25 @@ public class ShaclValidationManager { } public String getReportSyntax() { - return JSON_FORMAT; + return TEXT_TURTLE; } public String getRdfReportSyntax() { - return JSON_FORMAT; + return TEXT_TURTLE; } public String getLocale() { return "en"; } - public List<RuleSet> getExternalRules() { - return externalRules; + // TODO: set loadImports to true to allow recursive searches. + public boolean getLoadImports() { + return false; } - - public void setExternalRules(List<RuleSet> externalRules) { - this.externalRules = externalRules; - } - } /** - * Open a REST interface to the SHACL validator. + * Open a REST interface to the remote SHACL validator. */ public ShaclValidationManager(String ontologyToValidate) throws IOException { this.client = HttpClient.newHttpClient(); @@ -144,6 +140,7 @@ public class ShaclValidationManager { this.ontologyToValidate = ontologyToValidate; String url = System.getenv("VALIDATOR_URL"); if (url != null) VALIDATOR_URL = url; + System.out.println("SHACL validation server running at "+VALIDATOR_URL); } /** @@ -160,7 +157,6 @@ public class ShaclValidationManager { } catch (IOException e) { throw new SAREFPipelineException("response", "Unknown host: " + VALIDATOR_URL); } - //logError(getMessage(ShaclValidationManager.MESSAGE.http_exception, VALIDATOR_URL)); } /** @@ -176,7 +172,7 @@ public class ShaclValidationManager { try { String fileStr = new String(Files.readAllBytes(Paths.get(readingFile))); RuleSet ruleSet = new RuleSet(); - ruleSet.setRuleSet(fileStr); //.replaceAll("[\n]","\r\n")); + ruleSet.setRuleSet(fileStr); this.shaclFileList.add(readingFile); this.ruleSetList.add(ruleSet); } catch (IOException ex) { @@ -199,7 +195,7 @@ public class ShaclValidationManager { try { String fileStr = new String(Files.readAllBytes(Paths.get(this.ontologyToValidate))); this.validationRequest = new ValidationRequest(); - this.validationRequest.setContentToValidate(fileStr); // .replaceAll("[\n]","\r\n")); + this.validationRequest.setContentToValidate(fileStr); this.validationRequest.setExternalRules(this.ruleSetList); } catch (IOException ex) { throw new SAREFPipelineException("ShaclValidationManager", "Unable to read ontology file: " + this.ontologyToValidate); @@ -219,8 +215,17 @@ public class ShaclValidationManager { return HttpRequest.BodyPublishers.ofString(body.toString()); } + // Use 500 Internal server error for failed SHACL validation => value is SHACL file name OR error message. + private HashMap<String, String> parseHttpResponse(HttpResponse<String> response) { + String result = response.body().substring(response.body().indexOf("sh:conforms")+13); + result = result.substring(0,4).replaceAll("\\s+",""); + HashMap<String, String> map = new HashMap<>(); + map.put(String.valueOf(response.statusCode()), result); + return map; + } + /** - * POST JSON response format: + * POST JSON successful response format: LIST OF: @prefix : <https://saref.etsi.org/saref4auto/> . [ rdf:type sh:ValidationReport ; sh:conforms true @@ -229,28 +234,30 @@ public class ShaclValidationManager { * 2. Configure the user-provided SHACL shape as a RuleSet element of the externalRules array. * [ "ruleSet": "JSON-encoded_SHACL_shape", "embeddingMethod":"STRING", "ruleSyntax": TEXT_TURTLE ] * POST request to Validate a single RDF ontology. + * Return <HTTP status code, validation result>. * @throws SAREFPipelineException * @throws IOException * @throws InterruptedException */ - public HttpResponse<String> ValidateOntologyWithShacl(List<String> shaclFileList) throws SAREFPipelineException, InterruptedException { + public HashMap<String, String> ValidateOntologyWithShacl(List<String> shaclFileList) throws SAREFPipelineException, InterruptedException { try { createValidationRequest(shaclFileList); String jsonStr = this.objectMapper.writeValueAsString(this.validationRequest); - String escapedJson = StringEscapeUtils.escapeJson(jsonStr); - System.out.println(escapedJson);//<<< + // Had to format the json manually because escapeJson() also escaped double-quotes. See validation_request_using_strings.txt + //String escapedJson = StringEscapeUtils.escapeJson(jsonStr); + jsonStr = jsonStr.replace("text/turtle", "text~turtle").replace("application/json", "application~json"); + jsonStr = jsonStr.replace("/","\\/").replace("\\n","\\r\\n"); + jsonStr = jsonStr.replace("text~turtle", "text/turtle").replace("application~json", "application/json"); HttpRequest request = HttpRequest.newBuilder() .header("Content-Type", JSON_FORMAT) - .uri(URI.create(VALIDATOR_URL + "any/upload")) // any/api/validate - .POST(HttpRequest.BodyPublishers.ofString(jsonStr)) // escapedJson + .uri(URI.create(VALIDATOR_URL + "any/api/validate")) + .POST(HttpRequest.BodyPublishers.ofString(jsonStr)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); - System.out.println("Status code: " + response.statusCode()); //<<< - System.out.println("\n Body: " + response.body()); - return response; + return parseHttpResponse(response); } catch (IOException ex) { throw new SAREFPipelineException("ValidateOntologyWithShacl", "Unable to validate ontology: " + this.ontologyToValidate); } diff --git a/src/main/resources/messages/Clause_9_4_6_Checker.properties b/src/main/resources/messages/Clause_9_4_6_Checker.properties index 7c427cfcdb9a65f02643dd63335f88e99ccf3124..362bc9117975feb45c8ab906473d96986b136141 100644 --- a/src/main/resources/messages/Clause_9_4_6_Checker.properties +++ b/src/main/resources/messages/Clause_9_4_6_Checker.properties @@ -1,4 +1,5 @@ server_unavailable=The validation server is unavailable at `%s` +shacl_validation_failed=SHACL validation failed for `%s` ioexception=Error while accessing the local file system missing=The shacl directory should contain at least one file. This file shall conform to the pattern specification as defined in clause 9.4.6 in TS 103 673. one=If a shacl directory exists, it should contain at least one shapes.ttl file. diff --git a/validation_request_using_strings.txt b/validation_request_using_strings.txt new file mode 100644 index 0000000000000000000000000000000000000000..8fec3793a952eec41b125fb548aac62f5adf6aea --- /dev/null +++ b/validation_request_using_strings.txt @@ -0,0 +1,15 @@ +{ + "contentToValidate": "@prefix : <https:\/\/saref.etsi.org\/saref4auto\/> .\r\n@prefix dc: <http:\/\/purl.org\/dc\/elements\/1.1\/> .\r\n@prefix sf: <http:\/\/www.opengis.net\/ont\/sf#> .\r\n@prefix owl: <http:\/\/www.w3.org\/2002\/07\/owl#> .\r\n@prefix rdf: <http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#> .\r\n@prefix xml: <http:\/\/www.w3.org\/XML\/1998\/namespace> .\r\n@prefix xsd: <http:\/\/www.w3.org\/2001\/XMLSchema#> .\r\n@prefix rdfs: <http:\/\/www.w3.org\/2000\/01\/rdf-schema#> .\r\n@prefix time: <http:\/\/www.w3.org\/2006\/time#> .\r\n@prefix vann: <http:\/\/purl.org\/vocab\/vann\/> .\r\n@prefix geosp: <http:\/\/www.opengis.net\/ont\/geosparql#> .\r\n@prefix dctype: <http:\/\/purl.org\/dc\/dcmitype\/> .\r\n@prefix saref: <https:\/\/saref.etsi.org\/core\/> .\r\n@prefix s4syst: <https:\/\/saref.etsi.org\/saref4syst\/> .\r\n@prefix dcterms: <http:\/\/purl.org\/dc\/terms\/> .\r\n@prefix skos: <http:\/\/www.w3.org\/2004\/02\/skos\/core#> .\r\n@prefix s4auto: <https:\/\/saref.etsi.org\/saref4auto\/> .\r\n@base <https:\/\/saref.etsi.org\/saref4auto\/> .\r\n\r\n<https:\/\/saref.etsi.org\/saref4auto\/> a owl:Ontology ;\r\n dcterms:description \"This ontology extends the SAREF ontology for the automotive domain. This work has been developed in the context of the STF 566, which was established with the goal to create four SAREF extensions, one of them for the automotive domain.\"@en ;\r\n dcterms:creator <https:\/\/www.linkedin.com\/in\/lauradaniele> , <http:\/\/netellany.fr\/> ;\r\n dcterms:contributor <https:\/\/scholar.google.com\/citations?user=coCDIj8AAAAJ> ; \r\n dcterms:contributor <https:\/\/scholar.google.com\/citations?user=fLTLdPIAAAAJ> ; \r\n dcterms:issued \"2020-07-27\"^^xsd:date ;\r\n dcterms:modified \"2024-03-30\"^^xsd:date ;\r\n dcterms:license <https:\/\/forge.etsi.org\/etsi-software-license> ;\r\n dcterms:publisher <https:\/\/www.etsi.org\/> ;\r\n dcterms:source <https:\/\/saref.etsi.org\/sources\/saref4auto\/> ;\r\n rdfs:seeAlso <https:\/\/www.etsi.org\/deliver\/etsi_ts\/103400_103499\/10341007\/01.01.01_60\/ts_10341007v010101p.pdf> ;\r\n dcterms:title \"SAREF extension for automotive\"@en ;\r\n vann:preferredNamespacePrefix \"s4auto\" ;\r\n vann:preferredNamespaceUri \"https:\/\/saref.etsi.org\/saref4auto\/\" ;\r\n owl:versionIRI <https:\/\/saref.etsi.org\/saref4auto\/v2.1.1\/> ;\r\n owl:versionInfo \"v2.1.1\" ;\r\n\t owl:imports <https:\/\/saref.etsi.org\/core\/v3.2.1\/> ; \r\n\t owl:imports <https:\/\/saref.etsi.org\/saref4syst\/v1.1.2\/> .\r\n\r\n#################################################################\r\n# Annotation properties\r\n#################################################################\r\n\r\n### http:\/\/purl.org\/dc\/terms\/contributor\r\ndcterms:contributor a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/issued\r\ndcterms:issued a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/modified\r\ndcterms:modified a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/creator\r\ndcterms:creator a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/description\r\ndcterms:description a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/license\r\ndcterms:license a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/publisher\r\ndcterms:publisher a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/source\r\ndcterms:source a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/dc\/terms\/title\r\ndcterms:title a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/vocab\/vann\/preferredNamespacePrefix\r\nvann:preferredNamespacePrefix a owl:AnnotationProperty .\r\n\r\n### http:\/\/purl.org\/vocab\/vann\/preferredNamespaceUri\r\nvann:preferredNamespaceUri a owl:AnnotationProperty .\r\n\r\n#################################################################\r\n# saref:Property & saref:FeatureKind declarations\r\n#################################################################\r\n\r\n:Acceleration a owl:Class .\r\n:BrakeCapacity a owl:Class .\r\n:Heading a owl:Class .\r\n:Height a owl:Class .\r\n:LateralAcceleration a owl:Class .\r\n:Length a owl:Class .\r\n:LongitudinalAcceleration a owl:Class .\r\n:Movement a owl:Class .\r\n:Shape a owl:Class .\r\n:Size a owl:Class .\r\n:Speed a owl:Class .\r\n:Weight a owl:Class .\r\n:Width a owl:Class .\r\n:AutomotiveObject a owl:Class .\r\n:RoadObject a owl:Class .\r\n:RoadEntity a owl:Class .\r\n:Vehicle a owl:Class .\r\n\r\n#################################################################\r\n# Class declarations\r\n#################################################################\r\n\r\n:AutomotiveState a owl:Class .\r\n:AbsolutePosition a owl:Class .\r\n:AbsoluteSpeed a owl:Class .\r\n:AccelerationConfidence a owl:Class .\r\n:Address a owl:Class .\r\n:AngularDirection a owl:Class .\r\n:Assembling a owl:Class .\r\n:AtDropOffSpot a owl:Class .\r\n:AtPickUpSpot a owl:Class .\r\n:AutomationLevel a owl:Class .\r\n:Bus a owl:Class .\r\n:Car a owl:Class .\r\n:CardinalityUnit a owl:Class .\r\n:Charging a owl:Class .\r\n:Closed a owl:Class .\r\n:Confidence a owl:Class .\r\n:CriticalObject a owl:Class .\r\n:Disengaging a owl:Class .\r\n:DrivingToParkingSpot a owl:Class .\r\n:DrivingToPickUpSpot a owl:Class .\r\n:ElectricChargingParkingSpot a owl:Class .\r\n:EndPoint a owl:Class .\r\n:Engaging a owl:Class .\r\n:Forming a owl:Class .\r\n:Free a owl:Class .\r\n:HeavyTruck a owl:Class .\r\n:HeightUnit a owl:Class .\r\n:Identifier a owl:Class .\r\n:LargeObject a owl:Class .\r\n:LengthUnit a owl:Class .\r\n:LightTruck a owl:Class .\r\n:MediumObject a owl:Class .\r\n:NotifiedEvent a owl:Class .\r\n:Occupied a owl:Class .\r\n:P1Pedestrian a owl:Class .\r\n:P2Bicyclist a owl:Class .\r\n:P3Motorcyclist a owl:Class .\r\n:P4Animal a owl:Class .\r\n:Parked a owl:Class .\r\n:Parking a owl:Class .\r\n:ParkingSpot a owl:Class .\r\n:ParkingSpotPoint a owl:Class .\r\n:PassengerCar a owl:Class .\r\n:PersonalDevice a owl:Class .\r\n:Platoon a owl:Class .\r\n:PlatoonAutomationLevel a owl:Class .\r\n:PlatoonPosition a owl:Class .\r\n:PlatoonRole a owl:Class .\r\n:PlatoonState a owl:Class .\r\n:PlatoonVehicleState a owl:Class .\r\n:ParkingSpotState a owl:Class .\r\n:ParkingVehicleState a owl:Class .\r\n:PerceptionState a owl:Class .\r\n:Platooning a owl:Class .\r\n:Point a owl:Class .\r\n:Position a owl:Class .\r\n:PositionConfidenceEllipse a owl:Class .\r\n:PublicTransport a owl:Class .\r\n:RegularParkingSpot a owl:Class .\r\n:RelativePosition a owl:Class .\r\n:RelativeSpeed a owl:Class .\r\n:RendezvousLocation a owl:Class .\r\n:Reserved a owl:Class .\r\n:RoadSideActuator a owl:Class .\r\n:RoadSideEquipment a owl:Class .\r\n:RoadSideSensor a owl:Class .\r\n:RoadTopologyPosition a owl:Class .\r\n:Role a owl:Class .\r\n:Route a owl:Class .\r\n:RoutePoint a owl:Class .\r\n:Searching a owl:Class .\r\n:SmallObject a owl:Class .\r\n:SpecialPermitParkingSpot a owl:Class .\r\n:SpeedConfidence a owl:Class .\r\n:SpeedUnit a owl:Class .\r\n:Standalone a owl:Class .\r\n:StartPoint a owl:Class .\r\n:StationID a owl:Class .\r\n:TrafficLightController a owl:Class .\r\n:TrafficManagementCentre a owl:Class .\r\n:Tram a owl:Class .\r\n:Truck a owl:Class .\r\n:TwoWheeler a owl:Class .\r\n:UUID a owl:Class .\r\n:Unknown a owl:Class .\r\n:VehicleAutomationLevel a owl:Class .\r\n:VehicleEnvironment a owl:Class .\r\n:VehicleRole a owl:Class .\r\n:VulnerableRoadUser a owl:Class .\r\n:WidthUnit a owl:Class .\r\n:YawRate a owl:Class .\r\n\r\n\r\n#################################################################\r\n# ObjectProperty declarations\r\n#################################################################\r\n\r\nskos:broader a owl:ObjectProperty ; owl:inverseOf skos:narrower .\r\nskos:narrower a owl:ObjectProperty ; owl:inverseOf skos:broader .\r\n\r\n:detectsPosition a owl:ObjectProperty .\r\n:consistsOfEntity a owl:ObjectProperty .\r\n:consistsOfEquipment a owl:ObjectProperty .\r\n:consistsOfEvent a owl:ObjectProperty .\r\n:consistsOfObject a owl:ObjectProperty .\r\n:consistsOfUser a owl:ObjectProperty .\r\n:consistsOfVehicle a owl:ObjectProperty .\r\n:hasConfidenceUnitOfMeasure a owl:ObjectProperty .\r\n:hasAbsolutePosition a owl:ObjectProperty .\r\n:hasAutomationLevel a owl:ObjectProperty .\r\n:hasAutomotiveState a owl:ObjectProperty .\r\n:hasBrakeCapacity a owl:ObjectProperty .\r\n:hasConfidence a owl:ObjectProperty .\r\n:hasDestination a owl:ObjectProperty .\r\n:hasDestinationAddress a owl:ObjectProperty .\r\n:hasDestinationEndPoint a owl:ObjectProperty .\r\n:hasEnvironment a owl:ObjectProperty .\r\n:hasEstimatedRendezvousLocation a owl:ObjectProperty .\r\n:hasIdentifier a owl:ObjectProperty .\r\n:hasMember a owl:ObjectProperty .\r\n:hasOpeningTimeAvailability a owl:ObjectProperty .\r\n:hasOrigin a owl:ObjectProperty .\r\n:hasPlatoonMember a owl:ObjectProperty .\r\n:hasPlatoonPosition a owl:ObjectProperty .\r\n:hasPlatoonRole a owl:ObjectProperty .\r\n:hasPosition a owl:ObjectProperty .\r\n:hasRelativePosition a owl:ObjectProperty .\r\n:hasRoadTopologyPosition a owl:ObjectProperty .\r\n:hasRole a owl:ObjectProperty .\r\n:hasRoute a owl:ObjectProperty .\r\n:hasVehicleEnvironmentMember a owl:ObjectProperty .\r\n:hasVehicleRole a owl:ObjectProperty .\r\n:isCollectionOf a owl:ObjectProperty .\r\n:isConfidenceOf a owl:ObjectProperty .\r\n:isMemberOf a owl:ObjectProperty .\r\n:isMemberOfPlatoon a owl:ObjectProperty .\r\n:isMemberOfVehicleEnvironment a owl:ObjectProperty .\r\n:usesMeasurement a owl:ObjectProperty .\r\n\r\n#################################################################\r\n# Object Properties\r\n#################################################################\r\n\r\n### http:\/\/www.opengis.net\/ont\/geosparql#hasGeometry\r\ngeosp:hasGeometry a owl:ObjectProperty ;\r\n rdfs:domain geosp:Feature ;\r\n rdfs:range geosp:Geometry ;\r\n rdfs:comment \"A spatial representation for a given feature.\" ;\r\n rdfs:isDefinedBy <http:\/\/www.opengis.net\/ont\/geosparql> .\r\n\r\n\r\n### http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#location\r\n<http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#location> a owl:ObjectProperty ;\r\n rdfs:range <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing> ;\r\n rdfs:comment \"\"\"The relation between something and the point, \r\n or other geometrical thing in space, where it is. For example, the realtionship between\r\n a radio tower and a Point with a given lat and long.\r\n Or a relationship between a park and its outline as a closed arc of points, or a road and\r\n its location as a arc (a sequence of points).\r\n Clearly in practice there will be limit to the accuracy of any such statement, but one would expect\r\n an accuracy appropriate for the size of the object and uses such as mapping .\"\"\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#\" ;\r\n rdfs:label \"location\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2006\/time#hasBeginning\r\ntime:hasBeginning a owl:ObjectProperty ;\r\n rdfs:domain time:TemporalEntity ;\r\n rdfs:range time:Instant ;\r\n rdfs:comment \"Beginning of a temporal entity\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2006\/time\" ;\r\n rdfs:label \"hasBeginning\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2006\/time#hasEnd\r\ntime:hasEnd a owl:ObjectProperty ;\r\n rdfs:domain time:TemporalEntity ;\r\n rdfs:range time:Instant ;\r\n rdfs:comment \"End of a temporal entity.\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2006\/time\" ;\r\n rdfs:label \"hasEnd\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasConfidenceUnitOfMeasure\r\n:hasConfidenceUnitOfMeasure a owl:ObjectProperty ;\r\n rdfs:comment \"A relation that allows to specify the unit of measure associated with a certain confidence\"@en ;\r\n rdfs:label \"has confidence unit of measure\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/consistsOfEntity\r\n:consistsOfEntity a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:consistsOf ;\r\n rdfs:comment \"A relation to describe the entities that can compose the vehicle environment\"@en ;\r\n rdfs:label \"consists Of Entity\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/consistsOfEquipment\r\n:consistsOfEquipment a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:consistsOf ;\r\n rdfs:comment \"A relation to describe the type of equipment that can compose the vehicle environment\"@en ;\r\n rdfs:label \"consists of equipment\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/consistsOfEvent\r\n:consistsOfEvent a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:consistsOf ;\r\n rdfs:comment \"A relation to describe the events that can compose the vehicle environment\"@en ;\r\n rdfs:label \"consists of event\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/consistsOfObject\r\n:consistsOfObject a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:consistsOf ;\r\n rdfs:comment \"A relation to describe the objects that can compose the vehicle environment\"@en ;\r\n rdfs:label \"consists of object\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/consistsOfUser\r\n:consistsOfUser a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:consistsOf ;\r\n rdfs:comment \"A relation to describe the users that can compose the vehicle environment\"@en ;\r\n rdfs:label \"consists of user\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/consistsOfVehicle\r\n:consistsOfVehicle a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:consistsOf ;\r\n rdfs:comment \"A relation to describe the vehicles that can compose the vehicle environment\"@en ;\r\n rdfs:label \"consists of vehicle\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/detectsPosition\r\n:detectsPosition rdf:type owl:ObjectProperty ;\r\n rdfs:comment \"A relationship specifying the position (absolute or relative position) that can be detected by a certain device\"@en ;\r\n rdfs:label \"detects position\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasAbsolutePosition\r\n:hasAbsolutePosition a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasPosition ;\r\n rdfs:comment \"A relation between an entity, e.g., a vehicle or road entity, and AbsolutePosition to represent its absolute position\"@en ;\r\n rdfs:label \"hasAbsolutePosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasAutomationLevel\r\n:hasAutomationLevel a owl:ObjectProperty ;\r\n rdfs:comment \"\"\"A relation to define the level of automation of a singular vehicle. According to SAE J3016, there are five levels of automation:\r\n- Level 0: No Driving Automation.\r\n- Level 1: Driver assistance.\r\n- Level 2: Partial driving automation.\r\n- Level 3: Conditional driving automation.\r\n- Level 4: High driving automation.\r\n- Level 5: Full Driving automation.\r\n.\"\"\"@en ;\r\n rdfs:label \"hasAutomationLevel\"@en .\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasAutomotiveState\r\n:hasAutomotiveState a owl:ObjectProperty ;\r\n rdfs:subPropertyOf saref:hasState ;\r\n rdfs:comment \"A relation between an entity and the various states in which vehicles, platoons and parking spots assume over time.\"@en ;\r\n rdfs:label \"hasAutomotiveState\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasBrakeCapacity\r\n:hasBrakeCapacity a owl:ObjectProperty ;\r\n rdfs:range :BrakeCapacity ;\r\n rdfs:comment \"A relation to express that the vehicle has the capacity to reduce its speed (by action on the brake pedal or an autonomous actuator)\"@en ;\r\n rdfs:label \"hasBrakeCapacity\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasConfidence\r\n:hasConfidence a owl:ObjectProperty ;\r\n owl:inverseOf :isConfidenceOf ;\r\n rdfs:range :Confidence ;\r\n rdfs:comment \"A relation between an estimated measurement (saref:Observation class) and its confidence (:Confidence)\"@en ;\r\n rdfs:label \"hasConfidence\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasDestination\r\n:hasDestination a owl:ObjectProperty ;\r\n rdfs:comment \"A relation that defines the destination of an automotive object. For example, in a platoon, the current platoon leader defines the platoon destination. Following vehicles will share (partially) the route of the leader and can, therefore, have different final destinations.\" ;\r\n rdfs:label \"hasDestination\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasDestinationAddress\r\n:hasDestinationAddress a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasDestination ;\r\n rdfs:comment \"A relation to express the destination of a vehicle in terms of an Address\"@en ;\r\n rdfs:label \"hasDestinationAddress\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasDestinationEndPoint\r\n:hasDestinationEndPoint a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasDestination ;\r\n rdfs:comment \"A relation to express the destination of a vehicle, a platoon or a route in terms of an end point with latitude and longitude\"@en ;\r\n rdfs:label \"hasDestinationEndPoint\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasEnvironment\r\n:hasEnvironment a owl:ObjectProperty ;\r\n rdfs:comment \"A relation that allows to describe the environment of a vehicle\"@en ;\r\n rdfs:label \"hasEnvironment\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasEstimatedRendezvousLocation\r\n:hasEstimatedRendezvousLocation a owl:ObjectProperty ;\r\n rdfs:range :RendezvousLocation ;\r\n rdfs:comment \"A relation to express that, during the forming state, a vehicle member of a platoon is given an estimated rendezvous location for joining the platoon. It is expressed in global coordinates (lat, long, alt), e.g. according to WGS 84.\" ;\r\n rdfs:label \"hasEstimatedRendezvousLocation\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasIdentifier\r\n:hasIdentifier a owl:ObjectProperty ;\r\n rdfs:range :Identifier ;\r\n rdfs:comment \"A relation between an entity and its identifier (:Identifier) which is used to identify 1) a vehicle (station) during data exchange with other devices\/stations 2) a platoon during data exchange with other devices\/stations, 3) a parking spot within a parking area during data exchange with other devices\/stations. In all cases, this identifier may be a pseudonym. It may change over space and\/or over time.\"@en ;\r\n rdfs:label \"hasIdentifier\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasMember\r\n:hasMember a owl:ObjectProperty ;\r\n owl:inverseOf :isMemberOf ;\r\n rdfs:comment \"A general relationship to express that an entity can have members\"@en ;\r\n rdfs:label \"hasMember\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasOpeningTimeAvailability\r\n:hasOpeningTimeAvailability a owl:ObjectProperty ;\r\n rdfs:comment \"A relation to express the opening time of a parking spot\"@en ;\r\n rdfs:label \"hasOpeningTimeAvailability\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasOrigin\r\n:hasOrigin a owl:ObjectProperty ;\r\n rdfs:comment \"A relation to express the origin of an entity (e.g., a vehicle or a route) in terms of a StartPoint\"@en ;\r\n rdfs:label \"hasOrigin\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasPlatoonMember\r\n:hasPlatoonMember a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasMember ;\r\n rdfs:comment \"A relation to express that a platoon can have vehicles as its members\"@en ;\r\n rdfs:label \"hasPlatoonMember\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasPlatoonPosition\r\n:hasPlatoonPosition a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasPosition ;\r\n rdfs:comment \"A relation to express that a vehicle member of a platoon has a platoon position that is defined as the index of the vehicle in the platoon starting from zero (leader) up to N (trailing vehicle)\"@en ;\r\n rdfs:label \"hasPlatoonPosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasPlatoonRole\r\n:hasPlatoonRole a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasRole ;\r\n rdfs:comment \"A relation to specify that in a platoon a vehicle can assume roles such as: unknown, leader, follower, ready-for-leading, trailing, etc.\"@en ;\r\n rdfs:label \"hasPlatoonRole\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasPosition\r\n:hasPosition a owl:ObjectProperty ;\r\n rdfs:range :RelativePosition ;\r\n rdfs:comment \"A relation to define the position of an entity\"@en ;\r\n rdfs:label \"has position\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasRelativePosition\r\n:hasRelativePosition a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasPosition ;\r\n rdfs:comment \"A relation between an entity, e.g., a vehicle or road entity, and RelativePosition to represent its relative position (e.g., a car is x,y,z in front of another car)\"@en ;\r\n rdfs:label \"hasPlatoonPosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasRoadTopologyPosition\r\n:hasRoadTopologyPosition a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasPosition ;\r\n rdfs:comment \"A relation between Vehicle and RoadTopologyPosition to represent the road topology position of a vehicle\"@en ;\r\n rdfs:label \"hasRoadTopologyPosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasRole\r\n:hasRole a owl:ObjectProperty ;\r\n rdfs:range :Role ;\r\n rdfs:comment \"A general relation to express that an entity can have a role\"@en ;\r\n rdfs:label \"hasRole\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasRoute\r\n:hasRoute a owl:ObjectProperty ;\r\n rdfs:comment \"A relation to express the route of an entity, e.g., a vehicle or a platoon\"@en ;\r\n rdfs:label \"hasRoute\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasVehicleEnvironmentMember\r\n:hasVehicleEnvironmentMember a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasMember ;\r\n rdfs:comment \"A relation to express that a vehicle can have members in its environment\"@en ;\r\n rdfs:label \"hasVehicleEnvironmentMember\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasVehicleRole\r\n:hasVehicleRole a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :hasRole ;\r\n rdfs:comment \"A relation between Vehicle and VehicleRole classes, to express the role the vehicle plays in traffic. If not specified, it is assumed that it takes a default value. Otherwise, possible values to be specified are: publicTransport, specialTransport, dangerousGoods, roadWork, rescue, emergency, safetyCar, agriculture, commercial, military, roadOperator, taxi (see ETSI TR 103 508).\"@en ;\r\n rdfs:label \"hasVehicleRole\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/isCollectionOf\r\n:isCollectionOf a owl:ObjectProperty ;\r\n rdfs:comment \"A relation to express the intermediate destination of a route (e.g., of a vehicle or a platoon) in terms of RoutePoint\"@en ;\r\n rdfs:label \"isCollectionOf\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/isConfidenceOf\r\n:isConfidenceOf a owl:ObjectProperty ;\r\n rdfs:comment \"A relation between the confidence (:Confidence class) of an estimated measurement and this measurement (saref:Observation class)\"@en ;\r\n rdfs:label \"isConfidenceOf\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/isMemberOf\r\n:isMemberOf a owl:ObjectProperty ;\r\n rdfs:comment \"A general relationship to express that an entity is a member of another entity\"@en ;\r\n rdfs:label \"isMemberOf\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/isMemberOfPlatoon\r\n:isMemberOfPlatoon a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :isMemberOf ;\r\n rdfs:comment \"A relation to express that a vehicle can be member of a platoon\"@en ;\r\n rdfs:label \"isMemberOfPlatoon\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/isMemberOfVehicleEnvironment\r\n:isMemberOfVehicleEnvironment a owl:ObjectProperty ;\r\n rdfs:subPropertyOf :isMemberOf ;\r\n rdfs:comment \"A relation to express that an entity, e.g., a vehicle, can be member of another vehicle's environment\"@en ;\r\n rdfs:label \"isMemberOfVehicleEnvironment\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/usesMeasurement\r\n:usesMeasurement a owl:ObjectProperty ;\r\n rdfs:comment \"A relation to express that a device can use different types of measurements, such as speed, position of detected road objects (e.g., bicycles, vehicles). This applies in particular to the ElectronicControlUnit and TrafficLightController classes.\"@en ;\r\n rdfs:label \"usesMeasurement\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4syst\/hasSubSystem\r\ns4syst:hasSubSystem a owl:ObjectProperty ;\r\n owl:inverseOf s4syst:subSystemOf ;\r\n rdfs:comment \"In SAREF4AUTO, a relation to express that the vehicle has a subsystem called \u2018ElectronicControlUnit' (ECU) that provides measurements about relevant properties, such as speed, acceleration, position, etc.\"@en ,\r\n \"Links a system to one of its sub systems\"@en ;\r\n rdfs:isDefinedBy s4syst: ;\r\n rdfs:label \"hasSubSystem\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4syst\/subSystemOf\r\ns4syst:subSystemOf a owl:ObjectProperty ;\r\n rdfs:comment \"In SAREF4AUTO, a relation to express that the the ElectronicControlUnit (ECU) is a subsystem of the vehicle.\"@en ,\r\n \"Links a system to its super system. Properties of subsystems somehow contribute to the properties of the super system. The exact meaning of \\\"contribute is defined by sub properties of s4syst:subSystemOf. Property s4syst:subSystemOf is transitive.\"@en ;\r\n rdfs:isDefinedBy s4syst: ;\r\n rdfs:label \"subSystemOf\"@en .\r\n\r\n\r\n#################################################################\r\n# Data properties\r\n#################################################################\r\n\r\n### http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#alt\r\n<http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#alt> a owl:DatatypeProperty ;\r\n rdfs:domain <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing> ;\r\n rdfs:comment \"\"\"The WGS84 altitude of a SpatialThing (decimal meters \r\nabove the local reference ellipsoid).\"\"\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos\" ;\r\n rdfs:label \"altitude\" .\r\n\r\n\r\n### http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#lat\r\n<http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#lat> a owl:DatatypeProperty ;\r\n rdfs:domain <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing> ;\r\n rdfs:comment \"The WGS84 latitude of a SpatialThing (decimal degrees).\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos\" ;\r\n rdfs:label \"latitude\" .\r\n\r\n\r\n### http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#long\r\n<http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#long> a owl:DatatypeProperty ;\r\n rdfs:domain <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing> ;\r\n rdfs:comment \"The WGS84 longitude of a SpatialThing (decimal degrees).\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos\" ;\r\n rdfs:label \"longitude\" .\r\n\r\n\r\n### http:\/\/www.w3.org\/2006\/time#inXSDDateTimeStamp\r\ntime:inXSDDateTimeStamp a owl:DatatypeProperty ;\r\n rdfs:domain time:Instant ;\r\n rdfs:range xsd:dateTimeStamp ;\r\n rdfs:comment \"Position of an instant, expressed using xsd:dateTimeStamp\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2006\/time\" ;\r\n rdfs:label \"inXSDDateTimeStamp\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasConfidenceValue\r\n:hasConfidenceValue a owl:DatatypeProperty ;\r\n rdfs:comment \"A relation between the confidence (:Confidence) and its value, which can be a discrete value (+\/- 5 cm\/s) or a level (e.g. 95 %)\"@en ;\r\n rdfs:label \"hasConfidenceValue\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasCoordinateX\r\n:hasCoordinateX a owl:DatatypeProperty ;\r\n rdfs:comment \"A relation to define the X coordinate of a relative position\"@en ;\r\n rdfs:label \"hasCoordinateX\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasCoordinateY\r\n:hasCoordinateY a owl:DatatypeProperty ;\r\n rdfs:comment \"A relation to define the Y coordinate of a relative position\"@en ;\r\n rdfs:label \"hasCoordinateY\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasCoordinateZ\r\n:hasCoordinateZ a owl:DatatypeProperty ;\r\n rdfs:comment \"A relation to define the Z coordinate of a relative position\"@en ;\r\n rdfs:label \"hasCoordinateY\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasDescriptionName\r\n:hasDescriptionName a owl:DatatypeProperty ;\r\n rdfs:comment \"A relation to define that a parking spot can have a description name\"@en ;\r\n rdfs:label \"hasDescriptionName\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasEstimatedJoiningTime\r\n:hasEstimatedJoiningTime a owl:DatatypeProperty ;\r\n rdfs:range xsd:dateTime ;\r\n rdfs:comment \"A relation to express that, during the forming state, a vehicle member of a platoon is given an estimated time for joining\" ;\r\n rdfs:label \"hasEstimatedJoiningTime\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasIDValue\r\n:hasIDValue a owl:DatatypeProperty ;\r\n rdfs:comment \"A relationship to define the value of an identifier\"@en ;\r\n rdfs:label \"hasIDValue\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasMaxSize\r\n:hasMaxSize a owl:DatatypeProperty ;\r\n rdfs:comment \"A relation to express the max size of a platoon. Note that it is defined as a datatype property as this is a fixed\/static value of the platoon that does not change over time. In contrast, the current size of the platoon is actually a measurement that may change over time and it is therefore defined as an object property (see :hasSize).\"@en ;\r\n rdfs:label \"hasMaxSize\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/hasPlatoonIndex\r\n:hasPlatoonIndex a owl:DatatypeProperty ;\r\n rdfs:range xsd:int ;\r\n rdfs:comment \"A relation to express the index of the vehicle in the platoon starting from zero (leader) up to N (trailing vehicle)\"@en ;\r\n rdfs:label \"hasPlatoonIndex\"@en .\r\n\r\n\r\n#################################################################\r\n# Classes\r\n#################################################################\r\n\r\n### http:\/\/www.opengis.net\/ont\/geosparql#Feature\r\ngeosp:Feature a owl:Class ;\r\n rdfs:subClassOf geosp:SpatialObject ;\r\n owl:disjointWith geosp:Geometry ;\r\n rdfs:comment \"\"\"This class represents the top-level feature type. This class is \r\n equivalent to GFI_Feature defined in ISO 19156:2011, and it is \r\n superclass of all feature types.\"\"\" ;\r\n rdfs:isDefinedBy <http:\/\/www.opengis.net\/ont\/geosparql> ;\r\n rdfs:label \"Feature\"@en .\r\n\r\n\r\n### http:\/\/www.opengis.net\/ont\/geosparql#Geometry\r\ngeosp:Geometry a owl:Class ;\r\n rdfs:subClassOf geosp:SpatialObject ;\r\n rdfs:comment \"\"\"The class represents the top-level geometry type. This class is \r\n equivalent to the UML class GM_Object defined in ISO 19107, and \r\n it is superclass of all geometry types.\"\"\" ;\r\n rdfs:isDefinedBy <http:\/\/www.opengis.net\/ont\/geosparql> ;\r\n rdfs:label \"Geometry\"@en .\r\n\r\n\r\n### http:\/\/www.opengis.net\/ont\/geosparql#SpatialObject\r\ngeosp:SpatialObject a owl:Class ;\r\n rdfs:comment \"\"\"The class spatial-object represents everything that can have \r\n a spatial representation. It is superclass of feature and geometry.\"\"\" ;\r\n rdfs:isDefinedBy <http:\/\/www.opengis.net\/ont\/geosparql> ;\r\n rdfs:label \"SpatialObject\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#Point\r\n<http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#Point> a owl:Class ;\r\n rdfs:subClassOf <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing> ;\r\n rdfs:comment \"A point, typically described using a coordinate system relative to Earth, such as WGS84.\" ,\r\n \"\"\"Uniquely identified by lat\/long\/alt. i.e.\r\n\r\nspaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT),\r\n lat(P2, LAT), long(P2, LONG), alt(P2, ALT).\r\n\r\nsameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2).\"\"\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#\" ;\r\n rdfs:label \"Point\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing\r\n<http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#SpatialThing> a owl:Class ;\r\n rdfs:comment \"\"\"Anything with spatial extent, i.e. size, shape, or position.\r\n e.g. people, places, bowling balls, as well as abstract areas like cubes.\"\"\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#\" ;\r\n rdfs:label \"Spatial Thing\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2006\/time#Instant\r\ntime:Instant a owl:Class ;\r\n rdfs:subClassOf time:TemporalEntity ;\r\n rdfs:comment \"A temporal entity with zero extent or duration\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2006\/time\" ;\r\n rdfs:label \"Instant\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2006\/time#Interval\r\ntime:Interval a owl:Class ;\r\n rdfs:subClassOf time:TemporalEntity ;\r\n rdfs:comment \"A temporal entity with an extent or duration\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2006\/time\" ;\r\n rdfs:label \"Interval\"@en .\r\n\r\n\r\n### http:\/\/www.w3.org\/2006\/time#TemporalEntity\r\ntime:TemporalEntity a owl:Class ;\r\n rdfs:comment \"A temporal interval or instant.\" ;\r\n rdfs:isDefinedBy \"http:\/\/www.w3.org\/2006\/time\" ;\r\n rdfs:label \"TemporaryEntity\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AutomotiveState\r\n:AutomotiveState a owl:Class ;\r\n rdfs:subClassOf saref:State , \r\n [ a owl:Restriction ;\r\n owl:onProperty saref:hasTimestamp ;\r\n owl:allValuesFrom xsd:dateTime\r\n ] ;\r\n rdfs:label \"AutomotiveState\"@en ;\r\n rdfs:comment \"A class dedicated to describe the relevant states in the automotive domain\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AbsolutePosition\r\n:AbsolutePosition a owl:Class ;\r\n rdfs:subClassOf :Point , :Position ,\r\n [ a owl:Restriction ;\r\n owl:onProperty <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#alt> ;\r\n owl:someValuesFrom xsd:float\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#lat> ;\r\n owl:someValuesFrom xsd:float\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#long> ;\r\n owl:someValuesFrom xsd:float\r\n ] ;\r\n rdfs:comment \"The absolute position of an automotive object in terms of lat, long and lat\"@en ;\r\n rdfs:label \"AbsolutePosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AbsoluteSpeed\r\n:AbsoluteSpeed a owl:Class ;\r\n rdfs:subClassOf :Speed ;\r\n rdfs:comment \"A type of speed\"@en ;\r\n rdfs:label \"AbsoluteSpeed\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AccelerationConfidence\r\n:AccelerationConfidence a owl:Class ;\r\n rdfs:subClassOf :Confidence ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasConfidenceValue ;\r\n owl:someValuesFrom xsd:float\r\n ] ;\r\n rdfs:comment \"A type of confidence for acceleration measurements that represents the absolute accuracy of a reported vehicle acceleration value with a predefined confidence level (e.g. 95 %)\"@en ;\r\n rdfs:label \"AccelerationConfidence\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Address\r\n:Address a owl:Class ;\r\n rdfs:comment \"A class to define common information related to an address. It is out of scope of SAREF4AUTO to define the details of such an address. It is instead recommended to reuse existing ontologies that specify how to model an address in terms of Street, Postal Code, City, Region, Country, etc.\"@en ;\r\n rdfs:label \"Address\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AngularDirection\r\n:AngularDirection a owl:Class ;\r\n rdfs:subClassOf :Heading ;\r\n rdfs:comment \"A type of heading\"@en ;\r\n rdfs:label \"AngularDirection\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Assembling\r\n:Assembling a owl:Class ;\r\n rdfs:subClassOf :PlatoonState ;\r\n rdfs:comment \"A type of state for Platoon\"@en ;\r\n rdfs:label \"assembling\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AtDropOffSpot\r\n:AtDropOffSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Vehicle\"@en ;\r\n rdfs:label \"At Drop Off Spot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AtPickUpSpot\r\n:AtPickUpSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Vehicle\"@en ;\r\n rdfs:label \"At Pick Up Spot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AutomationLevel\r\n:AutomationLevel a owl:Class ;\r\n rdfs:comment \"The level of automation a platoon of vehicles or a singular vehicle\"@en ;\r\n rdfs:label \"AutomationLevel\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Acceleration\r\n:Acceleration a saref:Property ;\r\n saref:isPropertyOf :ElectronicControlUnit ;\r\n rdfs:label \"Acceleration\"@en ;\r\n rdfs:comment \"The Acceleration property of an ElectronicControlUnit.\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/BrakeCapacity\r\n:BrakeCapacity a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The BrakeCapacity property of a Vehicle.\"@en ;\r\n rdfs:label \"BrakeCapacity\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Bus\r\n:Bus a owl:Class ;\r\n rdfs:subClassOf :PublicTransport ;\r\n rdfs:comment \"A type of public transport\"@en ;\r\n rdfs:label \"Bus\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Car\r\n:Car a owl:Class ;\r\n rdfs:subClassOf :Vehicle ;\r\n rdfs:comment \"A type of vehicle. Example of a car is a passenger car\"@en ;\r\n rdfs:label \"Car\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/CardinalityUnit\r\n:CardinalityUnit a owl:Class ;\r\n rdfs:subClassOf saref:UnitOfMeasure ;\r\n rdfs:comment \"unit of measure of size\"@en ;\r\n rdfs:label \"cardinality unit\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Charging\r\n:Charging a owl:Class ;\r\n rdfs:subClassOf :ParkingSpotState ,\r\n :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Spot or for Parking Vehicle\"@en ;\r\n rdfs:label \"charging\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Closed\r\n:Closed a owl:Class ;\r\n rdfs:subClassOf :ParkingSpotState ;\r\n rdfs:comment \"A type of state for Parking Spot\"@en ;\r\n rdfs:label \"closed\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Confidence\r\n:Confidence a owl:Class ;\r\n rdfs:subClassOf [ a owl:Restriction ;\r\n owl:onProperty :hasConfidenceUnitOfMeasure ;\r\n owl:someValuesFrom saref:UnitOfMeasure\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasConfidenceValue ;\r\n owl:someValuesFrom xsd:float\r\n ] ;\r\n rdfs:comment \"Every measurement in the automotive domain is an estimated measurement coming from the aggregation of several measurements from different sensor or devices taken at the same time or at consecutive times very close to each other. Therefore, a confidence is always associated to each measurement to indicate that it has not 100% accuracy.\"@en ;\r\n rdfs:label \"Confidence\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/CriticalObject\r\n:CriticalObject a owl:Class ; \r\n saref:hasProperty s4auto:Height ;\r\n saref:hasProperty s4auto:Length ;\r\n saref:hasProperty s4auto:Movement ;\r\n saref:hasProperty s4auto:Shape ;\r\n saref:hasProperty s4auto:Width ;\r\n rdfs:comment \"A critical object located on the road. Critical objects are small object, medium object, large object\"@en ;\r\n rdfs:label \"CriticalObject\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Disengaging\r\n:Disengaging a owl:Class ;\r\n rdfs:subClassOf :PlatoonState ,\r\n :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for Platoon or for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"disengaging\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/DrivingToParkingSpot\r\n:DrivingToParkingSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Vehicle\"@en ;\r\n rdfs:label \"Driving To Parking Spot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/DrivingToPickUpSpot\r\n:DrivingToPickUpSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Vehicle\"@en ;\r\n rdfs:label \"Driving To Pick Up Spot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ElectricChargingParkingSpot\r\n:ElectricChargingParkingSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingSpot ;\r\n rdfs:comment \"A type pf parking spot\"@en ;\r\n rdfs:label \"ElectricChargingParkingSpot\"@en .\r\n\r\n\r\n:Vehicle saref:consistsOf :ElectronicControlUnit .\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ElectronicControlUnit\r\n:ElectronicControlUnit a saref:FeatureOfInterest , s4syst:System ;\r\n saref:observes :Acceleration ;\r\n saref:observes :Heading ;\r\n saref:observes :Speed ;\r\n saref:observes :Position ;\r\n rdfs:comment \"An electronic control unit (ECU) is any embedded system in automotive electronics that monitors and controls one or more of the electrical systems or subsystems in a vehicle. The ECU provides measurements about relevant properties of the vehicle, such as speed, acceleration, position, etc.\"@en ;\r\n rdfs:label \"ElectronicControlUnit\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/EndPoint\r\n:EndPoint a owl:Class ;\r\n rdfs:subClassOf :Point ;\r\n rdfs:comment \"The final destination of a vehicle or a platoon, or the final point of a route\"@en ;\r\n rdfs:label \"EndPoint\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Engaging\r\n:Engaging a owl:Class ;\r\n rdfs:subClassOf :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"engaging\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Forming\r\n:Forming a owl:Class ;\r\n rdfs:subClassOf :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"forming\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Free\r\n:Free a owl:Class ;\r\n rdfs:subClassOf :ParkingSpotState ;\r\n rdfs:comment \"A type of state for Parking Spot\"@en ;\r\n rdfs:label \"free\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Heading\r\n:Heading a saref:Property ;\r\n saref:isPropertyOf :ElectronicControlUnit ;\r\n rdfs:comment \"The Heading property of an ElectronicControlUnit.\"@en ;\r\n rdfs:label \"Heading\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/HeavyTruck\r\n:HeavyTruck a owl:Class ;\r\n rdfs:subClassOf :Truck ;\r\n rdfs:comment \"A type of truck\"@en ;\r\n rdfs:label \"HeavyTruck\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Height\r\n:Height a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Height property of a Vehicle.\"@en ;\r\n rdfs:label \"Height\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/HeightUnit\r\n:HeightUnit a owl:Class ;\r\n rdfs:subClassOf saref:UnitOfMeasure ;\r\n rdfs:comment \"unit of measure of height\"@en ;\r\n rdfs:label \"height unit\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Identifier\r\n:Identifier a owl:Class ;\r\n rdfs:subClassOf [ a owl:Restriction ;\r\n owl:onProperty :hasIDValue ;\r\n owl:someValuesFrom xsd:string\r\n ] ;\r\n rdfs:comment \"A class used to identify 1) a vehicle (station) during data exchange with other devices\/stations 2) a platoon during data exchange with other devices\/stations, 3) a parking spot within a parking area during data exchange with other devices\/stations. In all cases, this identifier may be a pseudonym. It may change over space and\/or over time.\"@en ;\r\n rdfs:label \"Identifier\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/LargeObject\r\n:LargeObject a owl:Class ;\r\n rdfs:subClassOf :CriticalObject ;\r\n rdfs:comment \"A type of Critical Object\"@en ;\r\n rdfs:label \"Large Object\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/LateralAcceleration\r\n:LateralAcceleration a saref:Property ;\r\n skos:broader :Acceleration ;\r\n rdfs:comment \"A type of acceleration\"@en ;\r\n rdfs:label \"Lateral Acceleration\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Length\r\n:Length a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Length property of a Vehicle.\"@en ,\r\n \"In a platoon, a property to express that a platoon has a size. This size is defined as 1. the total number of vehicles currently in the platoon (see :Size class); or 2. Length of the platoon (sum of all vehicles' length + inter-vehicle distance)\"@en ;\r\n rdfs:label \"Length\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/LengthUnit\r\n:LengthUnit a owl:Class ;\r\n rdfs:subClassOf saref:UnitOfMeasure ;\r\n rdfs:comment \"unit of measure of length\"@en ;\r\n rdfs:label \"length unit\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/LightTruck\r\n:LightTruck a owl:Class ;\r\n rdfs:subClassOf :Truck ;\r\n rdfs:comment \"A type of truck\"@en ;\r\n rdfs:label \"LightTruck\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/LongitudinalAcceleration\r\n:LongitudinalAcceleration a saref:Property ;\r\n skos:broader :Acceleration ;\r\n rdfs:comment \"A type of acceleration\"@en ;\r\n rdfs:label \"LongitudinalAcceleration\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/MediumObject\r\n:MediumObject a owl:Class ;\r\n rdfs:subClassOf :CriticalObject ;\r\n rdfs:comment \"A type of Critical Object\"@en ;\r\n rdfs:label \"Medium Object\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Movement\r\n:Movement a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Movement property of a Vehicle. Relevant types of movement are: Static (position only), moving in same direction (speed, acceleration), moving in reverse direction (speed acceleration), crossing (speed, acceleration, direction)\"@en ;\r\n rdfs:label \"Movement\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/NotifiedEvent\r\n:NotifiedEvent a owl:Class ;\r\n rdfs:subClassOf owl:Thing ;\r\n rdfs:comment \"The relevant types of events are trafficCondition, accident, roadworks, impassability, adverseWeatherCondition-Adhesion, aquaplannning, hazardousLocation-SurfaceCondition, hazardousLocation-ObstacleOnTheRoad, hazardousLocation-AnimalOnTheRoad, humanPresenceOnTheRoad, wrongWayDriving, rescueAndRecoveryWorkInProgress, adverseWeatherCondition-ExtremeWeatherCondition, adverseWeatherCondition-Visibility, adverseWeatherCondition-Precipitation, slowVehicle, dangerousEndOfQueue, vehicleBreakdown, postCrash, humanProblem, stationaryVehicle, emergencyVehicleApproaching, hazardousLocation-DangerousCurve, collisionRisk, signalViolation, dangerousSituation\"@en ;\r\n rdfs:label \"NotifiedEvent\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Occupied\r\n:Occupied a owl:Class ;\r\n rdfs:subClassOf :ParkingSpotState ;\r\n rdfs:comment \"A type of state for Parking Spot\"@en ;\r\n rdfs:label \"occupied\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/P1Pedestrian\r\n:P1Pedestrian a owl:Class ;\r\n rdfs:subClassOf :VulnerableRoadUser ;\r\n rdfs:comment \"VRU Profile 1 users, for example: adult, child, elderly person, pram, animal, blind person guided by a dog, rider off its bike\"@en ;\r\n rdfs:label \"P1 Pedestrian\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/P2Bicyclist\r\n:P2Bicyclist a owl:Class ;\r\n rdfs:subClassOf :VulnerableRoadUser ;\r\n rdfs:comment \"VRU Profile 2 users, for example: user of bicycle, wheelchair, skater, scooter, Segway, or a mounted horse rider\"@en ;\r\n rdfs:label \"P2 Bicyclist\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/P3Motorcyclist\r\n:P3Motorcyclist a owl:Class ;\r\n rdfs:subClassOf :VulnerableRoadUser ;\r\n rdfs:comment \"VRU Profile 3 users are Motorcyclists, which are equipped with engines that allow them to move on the road. It includes users (driver and passengers, e.g. children and animals) of Powered Two Wheelers (PTW) such as mopeds (motorized scooters), motorcycles or side-cars.\"@en ;\r\n rdfs:label \"P3 Motorcyclist\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/P4Animal\r\n:P4Animal a owl:Class ;\r\n rdfs:subClassOf :VulnerableRoadUser ;\r\n rdfs:comment \"VRU Profile 4 animals presenting a safety risk to other road users, for example : dogs, wild animals, horses, cows, sheep, kangaroos, etc.\"@en ;\r\n rdfs:label \"P4 Animal\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Parked\r\n:Parked a owl:Class ;\r\n rdfs:subClassOf :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Vehicle\"@en ;\r\n rdfs:label \"parked\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Parking\r\n:Parking a owl:Class ;\r\n rdfs:subClassOf :ParkingVehicleState ;\r\n rdfs:comment \"A type of state for Parking Vehicle\"@en ;\r\n rdfs:label \"parking\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ParkingSpot # FeatureKind?\r\n:ParkingSpot a owl:Class ; \r\n rdfs:subClassOf geosp:Feature ,\r\n [ a owl:Restriction ;\r\n owl:onProperty geosp:hasGeometry ;\r\n owl:someValuesFrom :ParkingSpotPoint\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasOpeningTimeAvailability ;\r\n owl:someValuesFrom time:TemporalEntity\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasAutomotiveState ; \r\n owl:maxQualifiedCardinality \"1\"^^xsd:nonNegativeInteger ;\r\n owl:onClass :ParkingSpotState\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasDescriptionName ;\r\n owl:someValuesFrom xsd:string\r\n ] ;\r\n\r\n saref:hasProperty s4auto:Height ;\r\n saref:hasProperty s4auto:Identifier ;\r\n saref:hasProperty s4auto:Length ;\r\n saref:hasProperty s4auto:Width ;\r\n rdfs:comment \"A location that is designated for parking. A parking spot has a geometry defining the parking area boundaries and its centre point\"@en ;\r\n rdfs:label \"ParkingSpot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ParkingSpotPoint\r\n:ParkingSpotPoint a owl:Class ;\r\n rdfs:subClassOf :Point ;\r\n rdfs:comment \"the position of a parking spot (its centre point) in terms of lat, long and alt\"@en ;\r\n rdfs:label \"ParkingSpotPoint\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PassengerCar\r\n:PassengerCar a owl:Class ;\r\n rdfs:subClassOf :Car ;\r\n rdfs:comment \"A type of car\"@en ;\r\n rdfs:label \"PassengerCar\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PersonalDevice\r\n:PersonalDevice a owl:Class ;\r\n rdfs:subClassOf saref:Device ;\r\n rdfs:comment \"A personal device is a nomadic device used by a pedestrian or the rider of a two-wheeler. A personal device in modelled as a different type of automotive object, as it normally does not have access to the vehicle CAN bus.\"@en ;\r\n rdfs:label \"PersonalDevice\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Platoon # FeatureKind?\r\n:Platoon a owl:Class ; \r\n rdfs:subClassOf \r\n [ a owl:Restriction ;\r\n owl:onProperty :hasDestinationEndPoint ;\r\n owl:someValuesFrom :EndPoint\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasPlatoonMember ;\r\n owl:someValuesFrom :Vehicle\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasRoute ;\r\n owl:someValuesFrom :Route\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasMaxSize ;\r\n owl:someValuesFrom xsd:int\r\n ] ;\r\n saref:hasProperty s4auto:Identifier ;\r\n saref:hasProperty s4auto:Length ;\r\n saref:hasProperty s4auto:AutomotiveState ;\r\n saref:hasProperty s4auto:Size ;\r\n rdfs:comment \"A group of vehicles automatically following each other at a relatively close distance\" ;\r\n rdfs:label \"Platoon\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonAutomationLevel\r\n:PlatoonAutomationLevel a owl:Class ;\r\n rdfs:subClassOf :AutomationLevel ;\r\n rdfs:comment \"A level of automation is defined for a vehicle that it is platooning. For example, in the ENSEMBLE project there are three levels of platoon automation defined: Level A, Level B, Level C. Level C represents the highest level of automation for platooning in terms of longitudinal and lateral control, shortest time gap supported, wider range of situations handled and support for merging of entire platoons.\"@en ;\r\n rdfs:label \"PlatoonAutomationLevel\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonPosition\r\n:PlatoonPosition a owl:Class ;\r\n rdfs:subClassOf :Position ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasPlatoonIndex ;\r\n owl:someValuesFrom xsd:int\r\n ] ;\r\n rdfs:comment \"A vehicle member of a platoon has a platoon position that is defined as the index of the vehicle in the platoon starting from zero (leader) up to N (trailing vehicle).\"@en ;\r\n rdfs:label \"PlatoonPosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonRole\r\n:PlatoonRole a owl:Class ;\r\n rdfs:subClassOf :Role ;\r\n rdfs:comment \"In platoon a vehicle can assume roles such as: unknown, leader, follower, ready-for-leading, trailing, etc.\"@en ;\r\n rdfs:label \"PlatoonRole\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonState\r\n:PlatoonState a owl:Class ;\r\n rdfs:subClassOf :AutomotiveState ;\r\n skos:narrower :Assembling , :Disengaging , :Platooning , :Standalone , :Unknown ;\r\n rdfs:comment \"The state of a platoon. Examples of states for a platoon are: unknown, standalone, assembling, platooning, disengaging, etc.\"@en ;\r\n rdfs:label \"PlatoonState\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonVehicleState\r\n:PlatoonVehicleState a owl:Class ;\r\n rdfs:subClassOf :AutomotiveState ;\r\n skos:narrower :Disengaging , :Platooning , :Standalone , :Unknown , :Engaging , :Forming , :Shape ;\r\n rdfs:comment \"Examples of states for a vehicle in a platoon are: unknown, standalone, engaging, platooning, disengaging, searching, forming.\"@en ;\r\n rdfs:label \"PlatoonVehicleState\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ParkingSpotState\r\n:ParkingSpotState a owl:Class ;\r\n rdfs:subClassOf :AutomotiveState ;\r\n skos:narrower :ParkingSpotState , :Charging , :Closed , :Free , :Occupied , :Reserved ;\r\n rdfs:comment \"A parking spot has a state. Possible values for parking spot state are Free, occupied, reserved, closed, charging\"@en ;\r\n rdfs:label \"ParkingSpotState\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ParkingVehicleState\r\n:ParkingVehicleState a owl:Class ;\r\n rdfs:subClassOf :AutomotiveState ;\r\n skos:narrower :AtDropOffSpot , :AtPickUpSpot , :DrivingToParkingSpot , :DrivingToPickUpSpot , :Parked , :Parking ;\r\n rdfs:comment \"A vehicle can be found at different states (or parking phases) during parking . Possible values for parking state (or parking phase) of a vehicle are: At drop-off spot, at pick-up spot, driving to parking spot, driving to pick up spot, parking, parked, charging.\"@en ;\r\n rdfs:label \"ParkingVehicleState\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PerceptionState\r\n:PerceptionState a owl:Class ;\r\n rdfs:subClassOf :AutomotiveState ;\r\n rdfs:comment \"A state of the vehicle related to its environment\"@en ;\r\n rdfs:label \"perception state\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Platooning\r\n:Platooning a owl:Class ;\r\n rdfs:subClassOf :PlatoonState ,\r\n :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for Platoon or for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"platooning\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Point\r\n:Point a owl:Class ;\r\n rdfs:subClassOf geosp:Geometry ,\r\n <http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#Point> ;\r\n rdfs:comment \"A geo point in SAREF4AUTO\"@en ;\r\n rdfs:label \"geographical point\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Position\r\n:Position a owl:Class ;\r\n rdfs:subClassOf [ a owl:Restriction ;\r\n owl:onProperty :hasConfidence ;\r\n owl:someValuesFrom :Confidence\r\n ] ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The position of an entity in the automotive domain\"@en ;\r\n rdfs:label \"Position\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PositionConfidenceEllipse\r\n:PositionConfidenceEllipse a owl:Class ;\r\n rdfs:subClassOf :Confidence ;\r\n rdfs:comment \"A type of confidence that represents horizontal position accuracy in a shape of ellipse with a predefined confidence level (e.g. 95 %). The centre of the ellipse shape corresponds to the reference position point for which the position accuracy is evaluated.\"@en ;\r\n rdfs:label \"PositionConfidenceEllipse\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PublicTransport\r\n:PublicTransport a owl:Class ;\r\n rdfs:subClassOf :Vehicle ;\r\n rdfs:comment \"A type of vehicle. Example of public transport is a bus or a tram\"@en ;\r\n rdfs:label \"PublicTransport\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RegularParkingSpot\r\n:RegularParkingSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingSpot ;\r\n rdfs:comment \"A type pf parking spot\"@en ;\r\n rdfs:label \"RegularParkingSpot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RelativePosition\r\n:RelativePosition a owl:Class ;\r\n rdfs:subClassOf :Position ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasCoordinateX ;\r\n owl:someValuesFrom xsd:float\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasCoordinateY ;\r\n owl:someValuesFrom xsd:float\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasCoordinateZ ;\r\n owl:someValuesFrom xsd:float\r\n ] ;\r\n rdfs:comment \"It represents the relative position of a vehicle (e.g., a car is x,y,z in front of another car)\"@en ;\r\n rdfs:label \"RelativePosition\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RelativeSpeed\r\n:RelativeSpeed a owl:Class ;\r\n rdfs:subClassOf :Speed ;\r\n rdfs:comment \"A type of speed\"@en ;\r\n rdfs:label \"RelativeSpeed\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RendezvousLocation\r\n:RendezvousLocation a owl:Class ;\r\n rdfs:subClassOf :Point ;\r\n rdfs:comment \"It is the estimated location where the vehicle member joins the platoon. It is expressed in global coordinates (lat, long, alt), e.g. according to WGS 84.\"@en ;\r\n rdfs:label \"RendezvousLocation\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Reserved\r\n:Reserved a owl:Class ;\r\n rdfs:subClassOf :ParkingSpotState ;\r\n rdfs:comment \"A type of state for Parking Spot\"@en ;\r\n rdfs:label \"reserved\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadEntity\r\n:RoadEntity a saref:FeatureKind ;\r\n skos:broader :AutomotiveObject ; \r\n saref:hasProperty :RoadSideEquipment, :NotifiedEvent, :CriticalObject, :VulnerableRoadUser, :Height, \r\n :AbsolutePosition, :Length, :Movement, :RelativePosition, :Shape, :Width ;\r\n rdfs:comment \"An entity present on the road in the neighbouring area of a vehicle\"@en ;\r\n rdfs:label \"RoadEntity\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadObject\r\n:RoadObject a saref:FeatureKind ;\r\n skos:broader :AutomotiveObject ; \r\n rdfs:comment \"Road side sensors measure properties (such as speed, position, dimension, direction, etc.) of road objects. Types of relevant road objects are Pedestrian, vehicles, obstacles, traffic signs, etc.\"@en ;\r\n rdfs:label \"RoadObject\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadSideActuator\r\n:RoadSideActuator a owl:Class ;\r\n rdfs:subClassOf saref:Actuator ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :usesMeasurement ;\r\n owl:someValuesFrom saref:Observation\r\n ] ;\r\n rdfs:comment \"Devices deployed along the road that produce signals based on road side sensor data measurements. Types of road side actuators that are relevant are devices such as traffic light controllers changing from red to green based on detected vehicles.\"@en ;\r\n rdfs:label \"\"\"RoadSideActuator\r\n\"\"\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadSideEquipment\r\n:RoadSideEquipment a owl:Class ;\r\n rdfs:comment \"A road side equipment can be either a simple data relay between vehicles and infrastructure or between the vehicles themselves, or it can run applications. It is usually high mounted in existing equipment, such as a street light, city traffic light, VMS or highway sign, or has its own pole.\"@en ;\r\n rdfs:label \"RoadSideEquipment\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadSideSensor\r\n:RoadSideSensor a owl:Class ;\r\n rdfs:subClassOf saref:Sensor ,\r\n [ a owl:Restriction ;\r\n owl:onProperty saref:hasPhenomenonTime ; \r\n owl:someValuesFrom time:TemporalEntity \r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :detectsPosition ;\r\n owl:someValuesFrom :AbsolutePosition\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :detectsPosition ;\r\n owl:someValuesFrom :RelativePosition\r\n ] ;\r\n saref:observes :Heading ; \r\n saref:observes :Height ;\r\n saref:observes :Length ; \r\n saref:observes :Speed ;\r\n saref:observes :Width ;\r\n rdfs:comment \"Sensors such as cameras, radars that are deployed along the road (e.g. at intersections and at poles along a highway). Road side sensors perform measurements, such as speed, position (relative or absolute), dimension, direction, etc. of road objects.\"@en ;\r\n rdfs:label \"RoadSideSensor\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadTopologyPosition\r\n:RoadTopologyPosition a owl:Class ;\r\n rdfs:subClassOf :Position ;\r\n rdfs:comment \"Position with respect to road topology (e.g. road, segment or lane) and lane characteristics (highway lane, road lane, bicycle lane, pavement, off-road).\"@en ;\r\n rdfs:label \"Road Topology Position\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Role\r\n:Role a owl:Class ;\r\n rdfs:comment \"The role that can be assumed by a vehicle or a platoon\"@en ;\r\n rdfs:label \"Role\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Route\r\n:Route a owl:Class ;\r\n rdfs:subClassOf [ a owl:Restriction ;\r\n owl:onProperty :hasDestinationEndPoint ;\r\n owl:someValuesFrom :EndPoint\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasOrigin ;\r\n owl:someValuesFrom :StartPoint\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :isCollectionOf ;\r\n owl:someValuesFrom :RoutePoint\r\n ] ;\r\n rdfs:comment \"The route of a vehicle or of a platoon. The route of a platoon is defined as the route of the current vehicle leader in the platoon that other follower vehicles (partially) share\"@en ;\r\n rdfs:label \"Route\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoutePoint\r\n:RoutePoint a owl:Class ;\r\n rdfs:subClassOf :Point ;\r\n rdfs:comment \"The intermediate points of a route\"@en ;\r\n rdfs:label \"RoutePoint\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Searching\r\n:Searching a owl:Class ;\r\n rdfs:subClassOf :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"Searching\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Shape\r\n:Shape a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Shape property of a Vehicle.. It defines the overall shape of an entity: i.e., Sphere, Torus, Cylinder, Cone, Ellipsoid, Cube, Cuboid, Pyramid, Prism, Multiple shapes\"@en ;\r\n rdfs:label \"Shape\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Size \r\n:Size a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Size property of a Vehicle. A platoon has a size. This size is defined as 1. the total number of vehicles currently in the platoon; or 2. Length of the platoon (sum of all vehicles' length + inter-vehicle distance)\"@en ;\r\n rdfs:label \"Size\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SmallObject\r\n:SmallObject a owl:Class ;\r\n rdfs:subClassOf :CriticalObject ;\r\n rdfs:comment \"A type of Critical Object\"@en ;\r\n rdfs:label \"Small Object\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SpecialPermitParkingSpot\r\n:SpecialPermitParkingSpot a owl:Class ;\r\n rdfs:subClassOf :ParkingSpot ;\r\n rdfs:comment \"A type pf parking spot. Parking spot reserved for special permits (authorities, disabled, blue Zone, resident ...)\"@en ;\r\n rdfs:label \"SpecialPermitParkingSpot\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Speed\r\n:Speed a saref:Property ;\r\n saref:isPropertyOf :ElectronicControlUnit ;\r\n rdfs:comment \"The Speed property of an ElectronicControlUnit.\"@en ;\r\n rdfs:label \"Speed\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SpeedConfidence\r\n:SpeedConfidence a owl:Class ;\r\n rdfs:subClassOf :Confidence ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :hasConfidenceValue ;\r\n owl:someValuesFrom xsd:int\r\n ] ;\r\n rdfs:comment \"A type of confidence for speed measurements that represents absolute accuracy of a speed value in cm\/s\"@en ;\r\n rdfs:label \"SpeedConfidence\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SpeedUnit\r\n:SpeedUnit a owl:Class ;\r\n rdfs:subClassOf saref:UnitOfMeasure ;\r\n rdfs:comment \"unit of measure of speed\"@en ;\r\n rdfs:label \"speed unit\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Standalone\r\n:Standalone a owl:Class ;\r\n rdfs:subClassOf :PlatoonState ,\r\n :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for Platoon or for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"standalone\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/StartPoint\r\n:StartPoint a owl:Class ;\r\n rdfs:subClassOf :Point ;\r\n rdfs:comment \"The origin of a route\"@en ;\r\n rdfs:label \"StartPoint\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/StationID\r\n:StationID a owl:Class ;\r\n rdfs:subClassOf :Identifier ;\r\n rdfs:comment \"A type of identifier for vehicles and platoons, as defined in ETSI TS 102 894-2.\"@en ;\r\n rdfs:label \"StationID\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/TrafficLightController\r\n:TrafficLightController a owl:Class ;\r\n rdfs:subClassOf [ a owl:Restriction ;\r\n owl:onProperty saref:hasPhenomenonTime ; \r\n owl:someValuesFrom time:TemporalEntity \r\n ] ;\r\n rdfs:subClassOf :RoadSideActuator ;\r\n rdfs:comment \"A device that automatically operates coloured lights, typically red, amber, and green, for controlling traffic at road junctions, pedestrian crossings, and roundabouts.\"@en ;\r\n rdfs:label \"TrafficLight\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/TrafficManagementCentre\r\n:TrafficManagementCentre a owl:Class ;\r\n rdfs:comment \"A traffic centre provides services to road users: exploiting data for road traffic management, providing information about mobility zones, operational management of the road infrastructure, etc.\"@en ;\r\n rdfs:label \"TrafficManagementCentre\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Tram\r\n:Tram a owl:Class ;\r\n rdfs:subClassOf :PublicTransport ;\r\n rdfs:comment \"A type of public transport\"@en ;\r\n rdfs:label \"tram\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Truck\r\n:Truck a owl:Class ;\r\n rdfs:subClassOf :Vehicle ;\r\n rdfs:comment \"A type of vehicle. Example of trucks are heavy trucks or light trucks.\"@en ;\r\n rdfs:label \"Truck\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/TwoWheeler\r\n:TwoWheeler a owl:Class ;\r\n rdfs:subClassOf :Vehicle ;\r\n rdfs:comment \"A type of vehicle. This class involves all sorts of two wheelers, from motorcycles to bicycles and (e-)scooters.\"@en ;\r\n rdfs:label \"TwoWheeler\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/UUID\r\n:UUID a owl:Class ;\r\n rdfs:subClassOf :Identifier ;\r\n rdfs:comment \"A universally unique identifier (UUID) is a 128-bit number used to identify items and is also known as: globally unique identifier (GUID). In its canonical textual representation, the sixteen octets of a UUID are represented as 32 hexadecimal (base 16) digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 alphanumeric characters and four hyphens). UUID are documented in ISO\/IEC 11578:1996 \\\"Information technology \u2013 Open Systems Interconnection \u2013 Remote Procedure Call (RPC)\\\" and in ITU-T Rec. X.667 ISO\/IEC 9834-8:2005.\"@en ;\r\n rdfs:label \"UUID\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Unknown\r\n:Unknown a owl:Class ;\r\n rdfs:subClassOf :PlatoonState ,\r\n :PlatoonVehicleState ;\r\n rdfs:comment \"A type of state for Platoon or for a Vehicle in a Platoon\"@en ;\r\n rdfs:label \"unknown\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/AutomotiveObject \r\n:AutomotiveObject a saref:FeatureKind ; \r\n skos:narrower s4auto:Vehicle, s4auto:RoadEntity, s4auto:RoadObject ;\r\n saref:hasProperty s4auto:BrakeCapacity ;\r\n saref:hasProperty s4auto:Height ;\r\n saref:hasProperty s4auto:Length ;\r\n saref:hasProperty s4auto:Movement ;\r\n saref:hasProperty s4auto:Shape ;\r\n saref:hasProperty s4auto:Size ;\r\n saref:hasProperty s4auto:Weight ;\r\n saref:hasProperty s4auto:Width ;\r\n rdfs:comment \"The static properties of an AutomotiveObject, whereas ElectronicControlUnit saref:observes the dynamic properties of :Acceleration, :Heading, :Speed, :Position ;\"@en ;\r\n rdfs:label \"AutomotiveObject\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Vehicle\r\n:Vehicle a saref:FeatureKind , s4syst:System ;\r\n skos:broader :AutomotiveObject ; \r\n saref:hasProperty :AbsolutePosition, :Address, :AutomationLevel, :AutomotiveState, :EndPoint, :Identifier, :Platoon, :PlatoonPosition, :PlatoonRole, :RelativePosition, :RendezvousLocation, :RoadTopologyPosition, :Route, :VehicleEnvironment, \r\n [ a owl:Restriction ;\r\n owl:onProperty :hasEstimatedJoiningTime ;\r\n owl:someValuesFrom xsd:dateTime\r\n ] ;\r\n rdfs:comment \"A vehicle is the main object of interest in the automotive domain. Example of types of vehicles are car, truck, public transport and two-wheeler. See ETSI TS 102 894-2 spec for full list of vehicles, which are type of \\\"stations\\\". See also the SENSORIS data model for possible type of vehicles. The main IoT device considered in the vehicle is the ECU (part of the vehicle on board equipment, or OBE), see :ElectronicControlUnit class.\"@en ;\r\n rdfs:label \"Vehicle\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/VehicleAutomationLevel\r\n:VehicleAutomationLevel a owl:Class ;\r\n rdfs:subClassOf :AutomationLevel ;\r\n rdfs:comment \"\"\"According to SAE J3016, there are five levels of automation for a vehicle:\r\n- Level 0: No Driving Automation.\r\n- Level 1: Driver assistance.\r\n- Level 2: Partial driving automation.\r\n- Level 3: Conditional driving automation.\r\n- Level 4: High driving automation.\r\n- Level 5: Full Driving automation.\"\"\"@en ;\r\n rdfs:label \"VehicleAutomationLevel\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/VehicleEnvironment\r\n:VehicleEnvironment a owl:Class ;\r\n rdfs:subClassOf [ a owl:Restriction ;\r\n owl:onProperty :consistsOfEntity ;\r\n owl:someValuesFrom :RoadEntity\r\n ] ,\r\n [ a owl:Restriction ;\r\n owl:onProperty :consistsOfVehicle ;\r\n owl:someValuesFrom :Vehicle\r\n ] ;\r\n rdfs:comment \"The vehicle environment is made of entities which are present on the road in the area around the vehicle\"@en ;\r\n rdfs:label \"VehicleEnvironment\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/VehicleRole\r\n:VehicleRole a owl:Class ;\r\n rdfs:subClassOf :Role ;\r\n rdfs:comment \"The role the vehicle plays in traffic. If not specified, it is assumed that it takes a default value. Otherwise, possible values to be specified are: publicTransport, specialTransport, dangerousGoods, roadWork, rescue, emergency, safetyCar, agriculture, commercial, military, roadOperator, taxi.\"@en ;\r\n rdfs:label \"VehicleRole\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/VulnerableRoadUser\r\n:VulnerableRoadUser a owl:Class ;\r\n saref:hasProperty s4auto:Height ;\r\n saref:hasProperty s4auto:Length ;\r\n saref:hasProperty s4auto:Movement ;\r\n saref:hasProperty s4auto:Width ;\r\n rdfs:comment \"Non-motorized road users as well as users of VRU vehicles (L class of vehicles, for example mopeds or motorcycles, etc.) participating to the road traffic\" ;\r\n rdfs:label \"VulnerableRoadUser\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Weight\r\n:Weight a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Weight property of a Vehicle.\"@en ;\r\n rdfs:label \"Weight\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Width\r\n:Width a saref:Property ;\r\n saref:isPropertyOf :Vehicle ;\r\n rdfs:comment \"The Width property of a Vehicle.\"@en ;\r\n rdfs:label \"Width\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/WidthUnit\r\n:WidthUnit a owl:Class ;\r\n rdfs:subClassOf saref:UnitOfMeasure ;\r\n rdfs:comment \"unit of measure of width\"@en ;\r\n rdfs:label \"width unit\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/YawRate\r\n:YawRate a owl:Class ;\r\n rdfs:subClassOf :Heading ;\r\n rdfs:comment \"A type of heading\"@en ;\r\n rdfs:label \"YawRate\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4syst\/System\r\ns4syst:System a owl:Class ;\r\n rdfs:comment \"The class of systems, i.e., systems virtually isolated from the environment, whose behaviour and interactions with the environment are modeled. Systems can be connected to other systems. Connected systems interact in some ways. Systems can also have subsystems. Properties of subsystems somehow contribute to the properties of the supersystem\"@en ;\r\n rdfs:isDefinedBy s4syst: ;\r\n rdfs:label \"System\"@en .\r\n\r\n\r\n#################################################################\r\n# Individuals\r\n#################################################################\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Agriculture\r\n:Agriculture a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"Agriculture\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Commercial\r\n:Commercial a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"Commercial\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/CrossingLeft\r\n:CrossingLeft a owl:NamedIndividual ,\r\n :Movement ;\r\n rdfs:comment \"A type of movement\"@en ;\r\n rdfs:label \"CrossingLeft\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/CrossingRight\r\n:CrossingRight a owl:NamedIndividual ,\r\n :Movement ;\r\n rdfs:comment \"A type of movement\"@en ;\r\n rdfs:label \"CrossingRight\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/DangerousGood\r\n:DangerousGood a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"DangerousGood\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Emergency\r\n:Emergency a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"Emergency\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Follower\r\n:Follower a owl:NamedIndividual ,\r\n :PlatoonRole ;\r\n rdfs:comment \"A type of platoon role\"@en ;\r\n rdfs:label \"Follower\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Leader\r\n:Leader a owl:NamedIndividual ,\r\n :PlatoonRole ;\r\n rdfs:comment \"A type of platoon role\"@en ;\r\n rdfs:label \"Leader\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Military\r\n:Military a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"Military\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PublicTransport\r\n:PublicTransport a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"PublicTransport\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ReadyForLeading\r\n:ReadyForLeading a owl:NamedIndividual ,\r\n :PlatoonRole ;\r\n rdfs:comment \"A type of platoon role\"@en ;\r\n rdfs:label \"ReadyForLeading\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Rescue\r\n:Rescue a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"Rescue\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ReverseDirection\r\n:ReverseDirection a owl:NamedIndividual ,\r\n :Movement ;\r\n rdfs:comment \"A type of movement\"@en ;\r\n rdfs:label \"ReverseDirection\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadOperator\r\n:RoadOperator a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"RoadOperator\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/RoadWork\r\n:RoadWork a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"RoadWork\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SafetyCar\r\n:SafetyCar a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"SafetyCar\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SameDirection\r\n:SameDirection a owl:NamedIndividual ,\r\n :Movement ;\r\n rdfs:comment \"A type of movement\"@en ;\r\n rdfs:label \"SameDirection\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/SpecialTransport\r\n:SpecialTransport a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"SpecialTransport\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Static\r\n:Static a owl:NamedIndividual ,\r\n :Movement ;\r\n rdfs:comment \"A type of movement\"@en ;\r\n rdfs:label \"Static\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Taxi\r\n:Taxi a owl:NamedIndividual ,\r\n :VehicleRole ;\r\n rdfs:comment \"A type of vehicle role\"@en ;\r\n rdfs:label \"Taxi\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/Trailing\r\n:Trailing a owl:NamedIndividual ,\r\n :PlatoonRole ;\r\n rdfs:comment \"A type of platoon role\"@en ;\r\n rdfs:label \"Trailing\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/UnknownPlatoonRole\r\n:UnknownPlatoonRole a owl:NamedIndividual ,\r\n :PlatoonRole ;\r\n rdfs:comment \"A type of platoon role\"@en ;\r\n rdfs:label \"UnknownPlatoonRole\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonStateKind\r\n:PlatoonStateKind a owl:NamedIndividual ,\r\n :PlatoonState ;\r\n rdfs:comment \"A kind of platoon state\"@en ;\r\n rdfs:label \"PlatoonStateKind\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PlatoonVehicleStateKind\r\n:PlatoonVehicleStateKind a owl:NamedIndividual ,\r\n :PlatoonVehicleState ;\r\n rdfs:comment \"A kind of platoon vehicle state\"@en ;\r\n rdfs:label \"PlatoonVehicleStateKind\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ParkingVehicleStateKind\r\n:ParkingVehicleStateKind a owl:NamedIndividual ,\r\n :ParkingVehicleState ;\r\n rdfs:comment \"A kind of parking vehicle state\"@en ;\r\n rdfs:label \"ParkingVehicleStateKind\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/ParkingSpotStateKind\r\n:ParkingSpotStateKind a owl:NamedIndividual ,\r\n :ParkingSpotState ;\r\n rdfs:comment \"A kind of parking spot state\"@en ;\r\n rdfs:label \"ParkingSpotStateKind\"@en .\r\n\r\n\r\n### https:\/\/saref.etsi.org\/saref4auto\/PerceptionStateKind\r\n:PerceptionStateKind a owl:NamedIndividual ,\r\n :PerceptionState ;\r\n rdfs:comment \"A kind of perception state\"@en ;\r\n rdfs:label \"PerceptionStateKind\"@en .\r\n\r\n### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https:\/\/github.com\/owlcs\/owlapi\r\n", + "contentSyntax": "text/turtle", + "embeddingMethod": "STRING", + "reportSyntax": "text/turtle", + "externalRules": [ + { + "ruleSet": "@prefix rdf: <http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#> .\r\n@prefix rdfs: <http:\/\/www.w3.org\/2000\/01\/rdf-schema#> .\r\n@prefix schema: <http:\/\/schema.org\/> .\r\n@prefix foaf: <http:\/\/xmlns.com\/foaf\/0.1\/> .\r\n@prefix sh: <http:\/\/www.w3.org\/ns\/shacl#> .\r\n@prefix xsd: <http:\/\/www.w3.org\/2001\/XMLSchema#> .\r\n@prefix dc: <http:\/\/purl.org\/dc\/elements\/1.1\/> .\r\n@prefix dcterms: <http:\/\/purl.org\/dc\/terms\/> .\r\n@prefix rdf4j: <http:\/\/rdf4j.org\/schema\/rdf4j#> .\r\n@prefix rsx: <http:\/\/rdf4j.org\/shacl-extensions#> .\r\n@prefix owl: <http:\/\/www.w3.org\/2002\/07\/owl#> .\r\n@prefix saref: <https:\/\/saref.etsi.org\/core\/> .\r\n\r\nsaref:Commodity a rdfs:Class, sh:NodeShape .\r\nsaref:PropaneInstance a rdfs:NamedIndividual, sh:NodeShape .\r\n\r\nschema:CommodityShape_522 a sh:NodeShape ;\r\n sh:targetClass saref:Commodity ;\r\n sh:property [ \r\n sh:path rdfs:label ;\r\n sh:datatype xsd:string ;\r\n sh:pattern \"!^*Commodity*\" ;\r\n ] ;\r\n sh:property [ \r\n sh:path rdfs:label ;\r\n sh:datatype xsd:string ;\r\n sh:pattern \"^[A-Z].*\" ;\r\n ] .\r\n\r\n", + "embeddingMethod": "STRING", + "ruleSyntax": "text/turtle" + } + ], + "loadImports": false, + "rdfReportSyntax": "text/turtle" +}