Langage de contraintes de formes (SHACL)
Shapes Constraint Language (SHACL) est une norme pour décrire Resource Description Framework (RDF) graphes et en les validant par rapport à un ensemble de conditions, fournies sous la forme d’un graphe RDF et appelées shapes graphs. Les graphes RDF qui sont validés par rapport à un graphe de formes sont appelés graphes de données. SHACL utilise SPARQL pour valider les graphiques de données par rapport aux graphiques de formes.
Exemples
-
Cagle (2016) “Meet SHACL, the Next OWL” : L’exemple suivant décrit une forme utilisateur nécessitant deux propriétés : la présence d’un seul foaf:name sous forme de chaîne et d’au moins un foaf:mbox qui est une adresse e-mail valide.
SHACL "User" shape:
ex:UserShape
a sh:Shape ;
sh:property [
sh:predicate foaf:name ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:predicate foaf:mbox ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
] . -
Cagle (2016) “Meet SHACL, the Next OWL” : L’instance suivante satisferait l’instruction SHACL . Il réussit car il remplit les conditions définies par la forme : un (et un seul) foaf:name qui est une chaîne et au moins un foaf:mbox qui est une ressource Web.
inst:User1
a foaf:Person ;
foaf:name "Jane Doe" ;
foaf:mbox mailto:jd@example.org> ;
foaf:mbox mailto:janedoe@gmail.com> . -
Cagle (2016) “Meet SHACL, the Next OWL” : L’instance suivante ne satisferait pas à la Déclaration SHACL. Cette instance échoue car il y a deux entrées pour foaf:name au lieu d’une, enfreignant ainsi la règle sh:maxCount 1.
inst:User2
a foaf:Person ;
foaf:name "Sarah Doe", "Sara Doe" ;
foaf:mbox mailto:sd@example.org> ;
foaf:mbox mailto:sarahdoe@gmail.com> .
Autres ressources
- SHACL (Wikipedia)
- TopQuadrant (2017) “An Overview of SHACL Shapes Constraint Language” [Vidéo]
- W3C (2017) Shapes Constraint Language (SHACL)