title: SHACL validation of evolving RDF graphs
Creators: name: Jäger, Dominic
Publisher: name: TU Wien
Year: 2023
Subjects: subject: SHACL
subject: RDF data
subject: updates
subject: static verification

description: Es gibt die Vision eines Internets, in dem enorme Mengen von Daten verknüpft sind und verwendet und ausgetauscht werden können. Um diese Vision wahr werden zu lassen, veröffentlichte das World Wide Web Consortium (W3C) den RDF-Standard zum Beschreiben von Informationen im Internet. Aufgrund vieler vorteilhafter Eigenschaften hat RDF weltweite Bekanntheit erlangt und sich zu einer Kerntechnologie des semantischen Internets entwickelt. Das Prüfen der Korrektheit und Vollständigkeit von Daten ist dabei zu einer wesentlichen Herausforderung geworden. Beispiele dafür liegen in der Sicherheit für Industrieanwendungen oder beim Datenaustausch für Geschäftsanwendungen. Um diese Herausforderung zu meistern, hat das W3C den SHACL-Standard vorgestellt. Da aber SHACL eine relativ junge Sprache ist, sind viele andere Anwendungsfälle sind noch nicht betrachtet worden. Darunter ist die Auswirkung von Änderungen auf den Datengraph für die Validierung in Betracht zu ziehen. Insbesondere betrachten wir die Situation, dass ein validierter Datengraph gegeben ist und wir wissen wollen, ob er valide bleibt, wenn wir Änderungen am Graph vornehmen. Das Problem dabei ist, dass Änderungen auf – potenziell sehr großen – Teilen des Graphen und eine Re-Validierung eine große Menge von Ressourcen benötigen kann. Außerdem ist es nützlich zu wissen, ob eine Reihe von Änderungen zu einem gültigen Graph führt, falls die Rückkehr zum ursprünglichen Graph schwierig ist, oder falls wir im System nicht die Berechtigung haben, Änderungen durchzuführen. Deshalb wollen wir einen Weg finden zu prüfen, ob eine Reihe von Änderungen einen gültigen Graphen liefert, bei dem das tatsächliche Durchführen der Änderungen nicht notwendig ist. Wir nennen dies statische Validierung unter Änderungen. Um diese Herausforderung zu bewältigen, entwickeln wir zuerst eine formale Sprache zum Beschreiben von Änderungen an Datengraphen. Der Hauptbeitrag ist eine Reduktion des statischen Validierungsproblems zu SHACL-Validierung. Diese Reduktion nimmt eine Folge von Änderungen und eine Menge von SHACL-Bedingungen und transformiert sie in eine neue Menge von Bedingungen. Wir zeigen, dass diese neue Menge von Bedingungen den originalen Datengraphen genau dann und nur dann validiert, wenn der veränderte Datengraph die originalen Bedingungen validiert. Um diese Reduktion zu ermöglichen, werden wir außerdem existierende SHACL-Formalisierungen aus der Literatur erweitern. Abschließend zeigen wir eine prototypische Implementierung der Technik, die uns hilft, ihr Potenzial zu verstehen.
description: Imagine a web of data and services in which huge amounts of data are linked and can be used and exchanged. To fulfill this vision, the World Wide Web Consortium (W3C) presented the RDF standard to describe information in the Web. Due to multiple favorable properties, RDF gained a world-wide audience and developed into a core technology for the Semantic Web. As RDF is a very flexible language, checking the correctness and completeness of data graphs is a key challenge. Examples for this are safety for industry applications or integration between various enterprise applications. To solve this challenge, the W3C proposed the SHACL standard. As SHACL is a relatively young language, several use-cases have not yet been addressed. Among them is to take the effect of updates on the graph into account for validation. Specifically, we look at the situation where we have a validated graph and want to know if it remains valid when performing updates on the graph data. The problem is that performing updates on – potentially large – parts of the graph and then re-validating it can require vast resources. Furthermore, it is beneficial to know if a set of updates leads to a valid graph in case that returning to the initial state is difficult, or that we do not have sufficient permissions in a system to perform the updates. Therefore, we want to find a way to verify that a set of updates yields a valid graph that avoids actually performing the updates on the graph. We call this static validation under updates. To tackle this challenge, we develop a suitable formal update language for describing updates on data graphs. The main contribution is a reduction of the static validation problem to SHACL validation. This reduction takes a sequence of actions and a set of SHACL constraints and transforms them into a new set of constraints. We prove that this new set of constraints validates the original graph if and only if the updated data graph validates the original constraints. This technique requires extending SHACL formalizations that have already been considered in the literature. Finally, we provide a proof-of-concept implementation of the technique that enables us to understand its feasibility and potential.