SHACL

Shacl
Formen die Einschränkung der Sprache
Abkürzung Shacl
Status Veröffentlicht, W3C -Empfehlung [1]
Jahr begann 2015[2]
Erstmals veröffentlicht 8. Oktober 2015; vor 6 Jahren[2]
Organisation W3c
Komitee RDF -Daten formen Arbeitsgruppe
Redakteure
  • Holger Knublauch
  • Dimitris kontokostas
[1]
Grundstandards
Verwandte Standards
Domain Semantisches Web
Webseite www.W3.org/Tr/Shacl/

Formen die Einschränkung der Sprache[1] (Shacl) ist ein World Wide Web Konsortium (W3C) Standardsprache für die Beschreibung Ressourcenbeschreibung Framework (RDF) Diagramme. SHACL wurde entwickelt, um die semantischen und technischen Interoperabilitätsschichten von Ontologien zu verbessern, die als RDF -Diagramme ausgedrückt werden.[3]

SHACL -Modelle werden als Einschränkungen für den Inhalt, die Struktur und die Bedeutung eines Diagramms definiert. Shacl ist eine sehr ausdrucksstarke Sprache. Unter anderem enthält es Merkmale, um Bedingungen auszudrücken, die die Anzahl der Werte einschränken, die eine Eigenschaft haben kann, die Art solcher Werte, numerische Bereiche, Zeichenfolgenpassungsmuster und logische Kombinationen solcher Einschränkungen. SHACL enthält auch einen Erweiterungsmechanismus, um komplexere Bedingungen in Sprachen wie z. Sparql und JavaScript. SHACL -Regeln fügen Shacl in die Ausführungsfunktionen hinzu, sodass Benutzer definieren können, welche neuen Aussagen aus vorhandenen (geltenden) Aussagen abgeleitet werden können.

Die wachsende Einführung von Shacl kann die Zukunft von beeinflussen verknüpfte Daten.[4]

Terminologie

Mit Shacl können seine Benutzer Datenformen beschreiben und sich an die Anpassung einer bestimmten Form ansprechen.

Eigenschaftsformen

A Eigenschaftsform Beschreibt die Eigenschaften von Graphenknoten, die über einen bestimmten Pfad erreicht werden können. Ein Pfad kann ein einzelnes Prädikat (Eigenschaft) oder eine Kette von Prädikaten sein. Eine Eigenschaftsform muss immer einen Pfad angeben. Dies geschieht durch die Verwendung SH: Pfad Prädikat. Man kann sich Eigenschaftenformen vorstellen, die einfache Pfade als Beschreibung der Werte bestimmter Eigenschaften verwenden, z. B. Werte von a das Alter Eigenschaft oder Werte von a funktioniert für Eigentum. Komplexe Pfade können eine Kombination verschiedener Prädikate in einer Kette angeben, einschließlich der inversen Richtung, alternativen Prädikate und Transitivketten.

Eigenschaftsformen können als Teil einer Knotenform definiert werden. In diesem Fall zeigt eine Knotenform auf Eigenschaftsformen mithilfe SH: Eigentum Prädikat. Eigenschaftsformen können auch "eigenständig" sein, d. H. völlig unabhängig von allen Knotenformen.

Knotenformen

A Knotenform Beschreibt die Eigenschaften spezifischer Graphenknoten unabhängig davon, wie Sie zu ihnen kommen. Es kann beispielsweise gesagt werden, dass bestimmte Graphenknoten Literale oder URIs usw. sein müssen.

Zum Beispiel kann eine Knotenform für einen Mitarbeiter Eigenschaftenformen für einbeziehen das Alter und funktioniert für Eigenschaften.

Einschränkungen

A Zwang ist eine Möglichkeit, verschiedene Eigenschaften von Werten zu beschreiben. Eine Form enthält eine oder mehrere Einschränkungen. Shacl bietet viele vorgefertigte Einschränkungen. Zum Beispiel, SH: Datentyp wird verwendet, um die Art der wörtlichen Werte zu beschreiben, z. B. wenn es sich um Zeichenfolgen oder Ganzzahlen oder Daten handelt. SH: Mincount wird verwendet, um die minimale erforderliche Anzahl von Werten zu beschreiben. SH: Länge wird verwendet, um die Anzahl der Zeichen für einen Wert zu beschreiben.

Ziele

A Ziel Verbindet eine Form mit den beschriebenen Daten. Eine einfachste Möglichkeit, ein Ziel anzugeben, besteht darin, zu sagen, dass eine Knotenform auch eine Klasse ist. Dies bedeutet, dass seine Definition für alle Mitglieder (Instanzen) einer Klasse anwendbar ist. Andere Möglichkeiten, ein Ziel einer Form zu definieren, sind:

  1. Sagen Sie ausdrücklich, dass eine Form Mitglieder einer bestimmten Klasse abzielt. Dies kann geschehen, anstatt eine Knotenform auch zu einer Klasse zu machen.
  2. Sagen, dass eine Form auf eine bestimmte Ressource abzielt, indem er ihren URI angibt.
  3. Sagen, dass eine Form auf alle Probanden oder alle Dreifachobjekte mit einem bestimmten Prädikat abzielt.
  4. Verwenden einer Sparql -Abfrage, um einen Satz von Ressourcen auszuwählen, die gezielt sind.

Zieldeklarationen können in eine Knotenform oder in Eigenschaftsform aufgenommen werden. Wenn jedoch eine Eigenschaftsform Teil einer Knotenform ist, werden ihre eigenen Ziele ignoriert.

Shacl verwendet RDFS: Unterklasse Aussagen zur Identifizierung von Zielen. Eine Form, die sich an die Mitglieder einer Klasse richtet, zielt auch auf Mitglieder aller Unterklassen ab. Mit anderen Worten, alle Shacl -Definitionen für eine Klasse werden durch Unterklassen geerbt.

Validierung

SHACL ermöglicht die Validierung von Graphen. Eine SHACL -Validierungs -Engine nimmt als Eingabe ein, die ein Diagramm (als Datengraphen bezeichnet) und ein Diagramm mit SHACL -Formendeklarationen (als Formengrafik bezeichnet) nimmt und einen Validierungsbericht erstellt, der ebenfalls als Graph ausgedrückt wird. Alle diese Grafiken können in jedem dargestellt werden Ressourcenbeschreibung Framework (RDF) Serialisierungsformate einschließlich JSON-LD oder Schildkröte.

Shacl ist in seinem Ansatz ziemlich einzigartig, da es nicht nur die Fähigkeit aufbaut, ein Schweregrad der Validierungsergebnisse anzugeben, sondern auch die Fähigkeit, Vorschläge zu geben, wie Daten festgelegt werden können, wenn das Validierungsergebnis erhöht wird. Eingebaute Niveaus sind Verstoß, Warnung und Infos, die gegen Verstoß gegen Verstöße gegeneinander liegen, wenn nein SH: Schwere wurde für eine Form spezifiziert. Benutzer von Shacl können andere benutzerdefinierte Schweregradniveaus hinzufügen. Validierungsergebnisse können auch Werte für andere Eigenschaften aufweisen, wie in der Spezifikation beschrieben. Zum Beispiel die Eigenschaft SH: Ergebnismessage Es wurde entwickelt, um Benutzern zusätzliche Textdetails zu kommunizieren, einschließlich Empfehlungen, wie Daten an die Adresse an das Validierungsergebnis repariert werden können. In Fällen, in denen eine Einschränkung keine Werte für die Werte hat SH: Nachricht In der Formengrafik kann der Shacl -Prozessor automatisch andere Werte generieren SH: Ergebnismessage. Einige SHACL -Prozessoren (z. B. die von Topquadrant implementierte) machten diese Vorschläge in der Software umsetzbar und automatisierten ihre Anwendung auf die Anfrage des Benutzers.

Spezifikationen

World Wide Web Konsortium veröffentlichte die folgenden SHACL -Spezifikationen:

  • Shacl[1] (W3C Technische Empfehlung) ist das Hauptdokument, das die Merkmale des Shacl-Kerns und seines Verlängerungsmechanismus als Shacl-Sparql definiert. Der Shacl-Kern definiert die grundlegende Syntax und Struktur von Formen, Einschränkungen, integrierten Arten von Einschränkungen und der Verknüpfung von Formen mit Datenknoten. Shacl-sparql definiert, wie man Einschränkungen ausdrückt, die nicht durch die integrierten Einschränkungen abgedeckt werden.
  • Shacl Advanced Features[5] (W3C Arbeitsgruppe Note), die neueste Version Davon wird von der Shacl Community Group die Unterstützung für SHACL -Regeln definiert, ein leistungsstarkes Merkmal (inspiriert von Spin -Regeln) für Datenumwandlungen, Schlussfolgerungen und Zuordnungen, die auf Datenformen basieren. Enthält auch Erweiterungen von shacl-sparql wie benutzerdefinierten Funktionen.
  • Shacl JavaScript -Erweiterungen[6] (W3C Arbeitsgruppe Hinweis) definiert, wie JavaScript verwendet werden kann, um Einschränkungen, Regeln, Funktionen und andere Funktionen auszudrücken. Dies deckt einen ähnlichen Boden wie Shacl-sparql ab, verwendet jedoch JavaScript als Ausführungssprache.
  • Shacl Compact Syntax[7] (SHACL Community Group Report).

Open-Source-Tools

Das Shacl Test Suite und Implementierungsbericht[8] Aus der SHACL -W3C -Spezifikation verlinkte Open -Source -Tools, die zum Ende Juni 2019 für die SHACL -Validierung verwendet werden könnten. Bis Ende 2019 kündigten viele kommerzielle RDF -Datenbank- und Framework -Anbieter die Unterstützung für mindestens Shacl Core an.

Einige der im Bericht aufgeführten Open -Source -Tools sind:

  • DotnetRDF Shacl - Ein Online -Shacl -Validator -Service in der .NET Framework[9][10]
  • PyshaCl - Eine Open Source Shacl Validator Library für die Befehlszeile verwendet in geschriebenes in geschriebenes in Python[11]
  • Shaclex - a Scala Implementierung von Shacl und Shex[12]
  • TOPBRAID SHACL API - Eine Open -Source -Implementierung von Shacl durch Topquadrant basiert auf Apache Jena. Es deckt die SHACL-Kern- und Shacl-Sparql-Validierung sowie die Shacl Advanced Features, die Shacl JavaScript-Erweiterung und die SHACL-Kompakt-Syntax ab. Der gleiche Code wird in der verwendet Topbraid kommerzielle Produkte.[13]

Shacl -Spielplatz ist ein kostenloser SHACL -Validierungsdienst, der in JavaScript implementiert ist.[14]

ECLIPSE RDF4J ist ein Open -Source -Java -Framework von der Eclipse Foundation Zur Verarbeitung von RDF -Daten, die die SHACL -Validierung unterstützt.[15]

Kommerzielle Werkzeuge

SHACL wird von den meisten Anbietern von RDF -Graphentechnologie unterstützt, darunter Cambridge Semantics (ANZO, COMMEN IN Q1 2022), Franz (AllegrographActs), Metaphacts, OnTotext (GraphDB), Stardog und Topquadrant. Es gibt sogar Unterstützung in den kommerziellen Produkten, die das Eigenschaftsdiagrammdatenmodell wie NEO4J verwenden. [16]

Implementierungsebenen können variieren. Zumindest unterstützen die Anbieter Shacl Core. Einige unterstützen auch SHACL SPARQL für höhere Expression, während andere möglicherweise Shacl Advanced -Funktionen unterstützen, die Regeln und Funktionen enthalten.

Siehe auch

Verweise

  1. ^ a b c d Knublauch, Holger; Kontokostas, Dimitris, Hrsg. (2017-07-20). "Force Constraint Language (Shacl)". W3c. RDF -Daten formen Arbeitsgruppe. Abgerufen 2021-04-06.
  2. ^ a b "Shapes Constraint Language (SHACL) Publikationsgeschichte - W3C". W3c. Abgerufen 2021-04-06.
  3. ^ "CAMSSS -Bewertung von Shacl durch die Europäische Kommission".
  4. ^ Voskuil, Jan (2017-11-14). "Die webbasierte Graphentechnologie steigt. Hier ist warum". LinkedIn (Blogeintrag). Abgerufen 2021-04-06.
  5. ^ Knublauch, Holger; Allemang, Dean; Steyskal, Simon, Hrsg. (2017-06-08). "Shacl Advanced Features". W3c. RDF -Daten formen Arbeitsgruppe. Abgerufen 2021-04-06.
  6. ^ Knublauch, Holger; Maria, Pano, Hrsg. (2018-01-09). "Shacl JavaScript -Erweiterungen". W3c. Shacl Community Group.
  7. ^ Knublauch, Holger; Maria, Pano, Hrsg. (2018-01-09). "Shacl Compact Syntax". W3c. Shacl Community Group.
  8. ^ Labra Gayo, Jose Emilio; Knublauch, Holger; Kontokostas, Dimitris, Hrsg. (2021-01-22). "Shacl Test Suite und Implementierungsbericht". W3c.
  9. ^ Lang, Samu (n.d.). "Dotnetrdf Shacl". Langsamu.net. Abgerufen 2021-04-06.
  10. ^ Lang, Samu (2019-06-01). "DotnetRDF Shacl Validator Service". GitHub. Abgerufen 2021-04-07.
  11. ^ Sommer, Ashley; Car, Nicholas (2018-08-15). "RDFLIB/PYSHACL: Ein Python -Validator für Shacl". GitHub. Abgerufen 2021-04-06.
  12. ^ Labra Gayo, Jose Emilio; et al. (Web Semantics Oviedo, Universität Oviedo). "Weso/Shaclex: Shacl/Shex -Implementierung". GitHub. Abgerufen 2021-04-06.
  13. ^ Knublauch, Holger (2015-05-24). "Topquadrant/Shacl: Shacl -API in Java basierend auf Apache Jena". GitHub. Abgerufen 2021-04-06.
  14. ^ Knublauch, Holger (2017-05-01). "Shacl -Spielplatz". Shacl -Spielplatz. Abgerufen 2021-04-07.
  15. ^ "Validierung von NEO4J -Diagrammen gegen Shacl".
  16. ^ Knublauch, Holger (2017-05-01). "Shacl -Spielplatz". Shacl -Spielplatz. Abgerufen 2021-04-07.

Weitere Lektüre