admin-shell-io / aas-specs

Repository of the Asset Administration Shell Specification IDTA-01001 - Metamodel
https://admin-shell-io.github.io/aas-specs-antora/index/home/index.html
Creative Commons Attribution 4.0 International
47 stars 26 forks source link

[BUG] relative URL without base in RDF examples #379

Open VladimirAlexiev opened 6 months ago

VladimirAlexiev commented 6 months ago

Describe the bug RDF examples use relative URLs but don't specify a @base. This is a bad practice since the full URL then depends on the (cwd of the) processing system

Where https://github.com/admin-shell-io/aas-specs/blob/2ab08f92bdd1d44edc1cfee52552fe5429d2178e/schemas/rdf/examples/generated/AssetAdministrationShell/maximal.ttl#L7

mristin commented 6 months ago

@sebbader-sap @mhrimaz can you please have a look?

mhrimaz commented 6 months ago

@VladimirAlexiev The Ontology of the metamodel and its constraints in the form of SHACL shapes outlines the structure of RDF representation of AAS. The focus of the examples are to show the structure of the RDF representation, but it does not really reflects best practices. If you also notice, all the attributes are blank nodes which is not suitable in many scenarios. So this example is also valid:

@base <https://dfki.de/dt/aas/> .

@prefix aas: <https://admin-shell.io/aas/3/0/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xs: <http://www.w3.org/2001/XMLSchema#> .

<shell-473220a3-8deb-4346-b7df-751bc55d57f3> rdf:type aas:AssetAdministrationShell ;
    <https://admin-shell.io/aas/3/0/Identifiable/id> "https://dfki.de/dt/aas/shell-473220a3-8deb-4346-b7df-751bc55d57f3"^^xs:string ;
    <https://admin-shell.io/aas/3/0/AssetAdministrationShell/assetInformation> [
        rdf:type aas:AssetInformation ;
        <https://admin-shell.io/aas/3/0/AssetInformation/assetKind> <https://admin-shell.io/aas/3/0/AssetKind/Instance> ;
        <https://admin-shell.io/aas/3/0/AssetInformation/globalAssetId> "https://dfki.de/dt/assets/asset-998cc9f2-2df1-44fe-9375-6166fe77d06f"^^xs:string ;
        <https://admin-shell.io/aas/3/0/AssetInformation/assetType> "https://dfki.de/catalouge/dfki_transporter_robot"^^xs:string ;
    ] ;
    <https://admin-shell.io/aas/3/0/AssetAdministrationShell/submodels> [
        rdf:type aas:Reference ;
        <https://admin-shell.io/aas/3/0/Reference/type> <https://admin-shell.io/aas/3/0/ReferenceTypes/ModelReference> ;
        <https://admin-shell.io/aas/3/0/Reference/keys> [
            rdf:type aas:Key ;
            <https://admin-shell.io/aas/3/0/Key/type> <https://admin-shell.io/aas/3/0/KeyTypes/Submodel> ;
            <https://admin-shell.io/aas/3/0/Key/value> "https://dfki.de/dt/aas/shell-473220a3-8deb-4346-b7df-751bc55d57f3/OperationalInformation"^^xs:string ;
        ] ;
    ] ;
.

You might also suggest a better vocabulary that follows best practices, spot issues related to data types, or invalid SHACL shape . These are under discussion.