SHACL – “Fesseln” für bessere Datenqualität

By | 8. Dezember 2017

Linked Data wurde ursprünglich entwickelt, um Wissen über einzelne Datenbestände hinaus zu vernetzen, um Daten anzureichern und neue Informationen aus der Kombination der vorhandener zu gewinnen. Ein ehrgeiziges Ziel, von dessen Umsetzungen man bei amsl bereits zum Teil profitieren kann. Doch diese Flexibilität und Ausrichtung auf verteilte Datenbestände bringt einige Grundprinzipien mit sich, die weitreichende Konsequenzen haben. Eine Konsequenz ist, dass Ontologien und Vokabulare, welche die verknüpften Daten beschreiben und einordnen, keine Einschränkungen für die Daten darstellen, sondern lediglich Schlussfolgerungen über die Daten zulassen.

Möchte man nun die Linked-Data-Technologien nicht nur zur Zusammenführung, sondern zur eigentlichen Verwaltung und Eingabe von Daten nutzen, entstehen Schwierigkeiten. Wie kann sichergestellt werden, dass nur schlüssige, korrekte Daten aufgenommen werden? Wie kann die Konsistenz des bisherigen Datenbestandes gewährleistet werden? Für Systeme wie amsl, die wegen ihrer komplexen Abfragen hohe Qualitätsanforderungen an die vorhandenen Daten stellen, ist deren Konsistenz essentiell.

Hier bietet die seit Sommer 2017 standardisierte Shapes Constraint Language (SHACL, in Anspielung auf engl. shackles, Fesseln) eine interessante und gut durchdachte Lösung. Zusätzlich zu verschiedenen Vokabularen werden dabei sogenannte Shapes-Graphen definiert, die genaue Regeln für die Form der Daten enthalten. Von zulässigen Eingenschaften, erwarteten Datentypen und Zeichenfolgen bis hin zu sehr komplexen Abhängigkeiten können verschiedenste Einschränkungen formuliert werden. Diese erstellten Shapes-Graphen werden dann zur Validierung eines Daten-Graphen herangezogen. Als Ergebnis wird ein weiterer Graph mit nicht regelkonforme Ressourcen ausgegeben, gemeinsam mit der Information über die Art des Verstoßes und dessen Schwere.

Und inwiefern hilft ein solches Validierungsergebnis konkret? Im amsl-Kontext ist es von großem Nutzen. Durch die bisher recht offen und frei gestaltete Datenerfassung sowie etliche Imports von Daten aus Fremd- und Vorgängersystemen haben sich über die inzwischen drei Jahre, in denen amsl produktiv genutzt wird, etliche Inkonsistenzen eingeschlichen. So fehlen etwa an manchen Verträgen Vertragsbeginn oder -ende, teils ist kein Lizenzgeber erfasst – die üblichen kleinen Fehler, die sich bei jeder Arbeit einschleichen und über die Zeit aufsummieren. Anhand eines SHACL-Validierungsergebnisses können die entsprechenden Stellen gezielt aufgezeigt und korrigiert werden. Bei kurzen Validierungsrhythmen bleiben die Daten so konsistent.

Perspektivisch ist aber noch deutlich mehr möglich und auch für amsl geplant: Direkt bei der Eingabe kann mit Hilfe der SHACL-Regeln geprüft werden, ob die Eingabe zulässig ist, und im Zweifel auf verschiedenen Stufen ein Hinweis gegeben oder das Schreiben komplett unterbunden werden. Außerdem unterstützt SHACL einige Funktionen zur Gestaltung von Formularen, wie etwa die Angabe von Reihenfolge und Gruppen. Dadurch könnten zukünftig die recht pflegeintensiven bisherigen amsl-Templates abgelöst werden.

Wie auf der SWIB 2017 in Hamburg kurz in einem Lightning Talk vorgestellt, befindet sich die SHACL-Validierung für amsl momentan im Aufbau. Verschiedene Zusammenhänge können bereits prototypisch geprüft werden, an der Abdeckung des gesamten Datenbestandes wird aktuell gearbeitet.