@prefix xsd: . @prefix rdf: . @prefix rdfs: . @prefix owl: . @prefix sh: . @prefix shsh: . @prefix skos: . @prefix pav: . @prefix dc: . @prefix vs: . @prefix vann: . @prefix foaf: . @prefix imf: . @prefix ex: . @prefix pca-plm: . @prefix ottr: . @prefix o-rdf: . @prefix o-rdfs: . @prefix o-owl-ax: . @prefix o-owl-ma: . @prefix o-owl-rstr: . @prefix o-owl-dec: . @prefix o-imf: . @prefix o-imf-t-s: . @prefix o-imf-t-o: . o-imf:ShaclShape[ ottr:IRI ?id, # this' shapes' id ? xsd:string ?name, ? xsd:string ?description ] :: { ottr:Triple(?id, sh:name, ?name), ottr:Triple(?id, sh:description, ?description) } . o-imf:ShaclNodeShape[ ottr:IRI ?id, ? owl:Class ?targetClass, ? xsd:string ?name, ? xsd:string ?description ] :: { o-imf:ShaclShape(?id, ?name, ?description), o-rdf:Type(?id, sh:NodeShape), ottr:Triple(?id, sh:targetClass, ?targetClass) } . o-imf:ShaclPropertyShape[ ottr:IRI ?id, ottr:IRI ?nodeShape, ## the node shape to which this property belongs. ottr:IRI ?path, ? xsd:string ?name, ? xsd:string ?description, ? ottr:IRI ?severity, ? xsd:string ?message ] :: { o-imf:ShaclShape(?id, ?name, ?description), ottr:Triple(?nodeShape, sh:property, ?id), ottr:Triple(?id, sh:path, ?path), ottr:Triple(?id, sh:severity, ?severity), ottr:Triple(?id, sh:message, ?message) } . ####### o-imf-t-s:Type[ ottr:IRI ?id, # should be the same as ?targetClass + "Shape" owl:Class ?typeClass, # the IMF type class of this shape, e.g., BlockType owl:Class ?targetClass, # must be the Class represenation of this type ? xsd:string ?name, ? xsd:string ?description ] :: { o-imf:ShaclNodeShape(?id, ?targetClass, ?name, ?description), o-rdf:Type(?id, ?typeClass) } . o-imf-t-s:TypeReference[ ottr:IRI ?id = _:P, ottr:IRI ?typeSource, ottr:IRI ?path, ottr:IRI ?typeTarget, xsd:integer ?minCount = 0, ? xsd:integer ?maxCount, ? xsd:string ?name, ? xsd:string ?description, ? ottr:IRI ?severity, ? xsd:string ?message ] :: { o-imf:ShaclPropertyShape(?id, ?typeSource, ?path, ?name, ?description, ?severity, ?message), ottr:Triple(?id, sh:node, ?typeTarget), ottr:Triple(?id, sh:minCount, ?minCount), ottr:Triple(?id, sh:maxCount, ?maxCount) } . o-imf-t-s:PropertyConstaint[ ottr:IRI ?id = _:P, ottr:IRI ?typeSource, ottr:IRI ?path, ? rdfs:Resource ?value, ? List ?in, ? owl:Class ?class, ? ottr:IRI ?datatype, xsd:integer ?minCount = 0, ? xsd:integer ?maxCount, ? rdfs:Literal ?minInclusive, ? rdfs:Literal ?minExclusive, ? rdfs:Literal ?maxInclusive, ? rdfs:Literal ?maxExclusive, ? xsd:string ?pattern, ? xsd:string ?name, ? xsd:string ?description, ? ottr:IRI ?severity, ? xsd:string ?message ] :: { o-imf:ShaclPropertyShape(?id, ?typeSource, ?path, ?name, ?description, ?severity, ?message), ottr:Triple(?id, sh:hasValue, ?value), ottr:Triple(?id, sh:in, ?in), ottr:Triple(?id, sh:class, ?class), ottr:Triple(?id, sh:datatype, ?datatype), ottr:Triple(?id, sh:minCount, ?minCount), ottr:Triple(?id, sh:maxCount, ?maxCount), ottr:Triple(?id, sh:minInclusive, ?minInclusive), ottr:Triple(?id, sh:minExclusive, ?minExclusive), ottr:Triple(?id, sh:maxInclusive, ?maxInclusive), ottr:Triple(?id, sh:maxExclusive, ?maxExclusive), #ottr:Triple(?id, sh:minLength, ?minLength), #ottr:Triple(?id, sh:maxLength, ?maxLength), ottr:Triple(?id, sh:pattern, ?pattern) #ottr:Triple(?id, sh:flags, ?flags) } .