SHACL-DS : une extension de SHACL pour la validation de datasets RDF

26/11/2026 14h56 – 14h58

Intervenant⋅e⋅s

Résumé

SHACL (Shapes Constraint Language) est le standard du W3C pour la validation des graphes RDF en spécifiant des contraintes appelées formes. Cependant, les applications contemporaines opèrent fréquemment sur des datasets RDF, des collections de graphes nommés et d'un graphe par défaut, pour lesquels SHACL ne fournit aucun mécanisme de ciblage natif. En pratique, les utilisateurs ont recours à un prétraitement implicite (fusion ou transformation de graphes) qui n'est déclaré nulle part dans les formes elles-mêmes et reste donc caché, difficile à auditer et non reproductible. SHACL-DS comble ce vide par une extension formelle de SHACL articulée autour de quatre concepts.

Le Shapes Dataset est un dataset RDF contenant des graphes de contraintes SHACL, chacun exprimant de façon déclarative les graphes de données qu'il valide. Cette organisation permet de distribuer les contraintes selon des préoccupations distinctes (origines ou domaines).

Le ciblage de graphes (shds:targetGraph) permet à chaque graphe de contraintes de désigner les graphes qu'il valide : par IRI, par expression régulière, ou via une requête SPARQL. Des IRI prédéfinis (shds:all, shds:named, shds:default) désignent respectivement l'ensemble de tous les graphes, les seuls graphes nommés, et le graphe par défaut.

Les combinaisons de graphes (shds:targetGraphCombination) permettent de construire des graphes composites par opérations sur les ensembles (union (shds:or), intersection (shds:and), différence (shds:minus) ) sur des graphes existants du dataset.

La transformation de vue formalise le comportement des contraintes SPARQL lors de la validation : avant chaque exécution, le graphe ciblé devient le graphe par défaut, tandis que le graphe par défaut original reste accessible via GRAPH shds:default. Ce mécanisme garantit la réutilisabilité des contraintes entre graphes et évite les ambiguïtés d'évaluation.

Le rapport de validation est également étendu : chaque violation est annotée de shds:focusGraph (le graphe contenant le nœud en erreur) et de shds:sourceShapesGraph (le graphe de formes à l'origine de la contrainte). Cette traçabilité fine permet une attribution précise des erreurs à leur source dans le dataset.

La spécification est disponible sur un dépôt public qui contient deux implémentations (API TopBraid SHACL en Java, et dotNetRDF en C#), une suite de cas de test couvrant l'ensemble des fonctionnalités, ainsi que des cas d'usage concrets.

AUTEURS

  • Davan Chiem Dao - Institut Montefiore, Université de Liège - davan.chiemdao@uliege.be
  • Christophe Debruyne - Institut Montefiore, Université de Liège - c.debruyne@uliege.be

LIENS

  • Dépôt : https://github.com/Ikeragnell/SHACL-DS