@prefix rdf: . @prefix rdfs: . @prefix owl: . @prefix xsd: . @prefix sh: . @prefix shds: . @prefix dcterms: . @prefix vann: . @prefix foaf: . # =========================================================================== # Ontology Declaration # =========================================================================== a owl:Ontology ; rdfs:label "SHACL-DS"@en ; rdfs:comment "SHACL Extension for Datasets (SHACL-DS): introduces dataset-level targeting, graph combinations, and extended validation reporting for RDF datasets."@en ; dcterms:title "SHACL-DS Vocabulary"@en ; dcterms:description "SHACL-DS extends SHACL to enable native validation of RDF datasets. It provides mechanisms for selecting target graphs, combining graphs with set operations, reporting dataset-level validation results, and formalizes the execution of SPARQL-based constraints over RDF datasets through a dataset view transformation."@en ; dcterms:creator [ a foaf:Person ; foaf:name "CHIEM DAO, Davan" ; foaf:mbox ; foaf:organization "University of Liège" ] ; dcterms:license ; dcterms:created "2025-01-01"^^xsd:date ; dcterms:modified "2026-02-20"^^xsd:date ; vann:preferredNamespacePrefix "shds" ; vann:preferredNamespaceUri "https://w3id.org/shacl-ds#" ; owl:versionInfo "0.1.0" . # =========================================================================== # Target Graph Declaration Predicates # =========================================================================== shds:targetGraph a rdf:Property ; rdfs:label "target graph"@en ; rdfs:comment "Declares that a shapes graph targets a specific graph (or a predefined set of graphs) in the data dataset. The object is either a named graph IRI or one of the predefined IRIs shds:all, shds:named, or shds:default."@en ; rdfs:domain rdfs:Resource ; rdfs:range rdfs:Resource ; rdfs:isDefinedBy . shds:targetGraphExclude a rdf:Property ; rdfs:label "target graph exclude"@en ; rdfs:comment "Excludes a specific graph IRI (or a predefined set) from the set of target graphs after inclusion. Applied after shds:targetGraph and shds:targetGraphPattern."@en ; rdfs:domain rdfs:Resource ; rdfs:range rdfs:Resource ; rdfs:isDefinedBy . shds:targetGraphPattern a rdf:Property ; rdfs:label "target graph pattern"@en ; rdfs:comment "Declares that a shapes graph targets all graphs whose IRI matches the given regular expression string (XQuery 1.0 / XPath 2.0 syntax)."@en ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string ; rdfs:isDefinedBy . shds:targetGraphExcludePattern a rdf:Property ; rdfs:label "target graph exclude pattern"@en ; rdfs:comment "Excludes all graphs whose IRI matches the given regular expression string from the set of target graphs. Applied after inclusion."@en ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string ; rdfs:isDefinedBy . # =========================================================================== # Target Graph Combination # =========================================================================== shds:targetGraphCombination a rdf:Property ; rdfs:label "target graph combination"@en ; rdfs:comment "Declares that a shapes graph targets a virtual graph constructed by combining multiple data graphs using set operators (shds:or, shds:and, shds:minus)."@en ; rdfs:domain rdfs:Resource ; rdfs:range rdfs:Resource ; rdfs:isDefinedBy . shds:or a rdf:Property ; rdfs:label "or (graph union)"@en ; rdfs:comment "Set union operator for graph combinations. Accepts an RDF list of graph IRIs or nested combination nodes. The resulting graph contains all triples from all operand graphs."@en ; rdfs:domain rdfs:Resource ; rdfs:range rdf:List ; rdfs:isDefinedBy . shds:and a rdf:Property ; rdfs:label "and (graph intersection)"@en ; rdfs:comment "Set intersection operator for graph combinations. Accepts an RDF list of graph IRIs or nested combination nodes. The resulting graph contains only triples present in all operand graphs."@en ; rdfs:domain rdfs:Resource ; rdfs:range rdf:List ; rdfs:isDefinedBy . shds:minus a rdf:Property ; rdfs:label "minus (graph difference)"@en ; rdfs:comment "Set difference operator for graph combinations. Accepts an RDF list of exactly two elements: the minuend and the subtrahend. The resulting graph contains triples in the first operand that are not in the second."@en ; rdfs:domain rdfs:Resource ; rdfs:range rdf:List ; rdfs:isDefinedBy . # =========================================================================== # Validation Report Extension Predicates # =========================================================================== shds:sourceShapesGraph a rdf:Property ; rdfs:label "source shapes graph"@en ; rdfs:comment "In a validation result, identifies the named shapes graph within the Shapes Dataset that contained the shape responsible for the result."@en ; rdfs:domain sh:ValidationResult ; rdfs:range rdfs:Resource ; rdfs:isDefinedBy . shds:focusGraph a rdf:Property ; rdfs:label "focus graph"@en ; rdfs:comment "In a validation result, identifies the data graph (or graph combination) from the Data Dataset where the focus node was found."@en ; rdfs:domain sh:ValidationResult ; rdfs:range rdfs:Resource ; rdfs:isDefinedBy . # =========================================================================== # Predefined Graph Selector IRIs # =========================================================================== shds:all a rdfs:Resource ; rdfs:label "all graphs"@en ; rdfs:comment "Predefined IRI that refers to all graphs in the data dataset, including both the default graph and all named graphs."@en ; rdfs:isDefinedBy . shds:named a rdfs:Resource ; rdfs:label "named graphs"@en ; rdfs:comment "Predefined IRI that refers to all named graphs in the data dataset, excluding the default graph."@en ; rdfs:isDefinedBy . shds:default a rdfs:Resource ; rdfs:label "default graph"@en ; rdfs:comment "Predefined IRI with two roles: (1) as a target graph selector, it refers to the default graph of the data dataset; (2) inside SPARQL queries executed under the dataset view transformation, it is the named graph IRI under which the original default graph is stored, so that the focus graph can replace the default graph position."@en ; rdfs:isDefinedBy .