Aller au contenu principal

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