XPath ist eine Selektionssprache für XML Daten und basiert auf Pfadausdrücken, die einen Navigationspfad durch den
XML-Baum beschreiben und Knoten am Ende des Pfads selektieren.
Die Fragestellung, ob die Ergebnismenge einer XPath-Anfrage p Teil der Ergebnismenge einer zweiten
Anfrage p' ist, wurde in der Arbeit von Miklau und Suciu [1,2] theoretisch erörtert und ein auf Baumautomaten
bzw. Matching Sets basierender Algorithmus vorgeschlagen.
Die Teilmengen-Beziehung (Containment) wird dabei nicht anhand von konkreten XML Daten sondern
ausschließlich anhand der beiden Anfragen p und p' entschieden.
Wenn die Teilmengen-Beziehung in beide Richtungen gilt, so sind p und p' semantisch äquivalent.
Ziel der Arbeit:
-
In dieser Arbeit soll das Verfahren zur Entscheidung der Teilmengen-Beziehung von XPath-Ausdrücken ausführlich erklärt
und eine Referenzimplementierung in Java erstellt werden.
Die Implementierung soll als Open-Source auf der Webseite des Instituts für Informationssysteme zum Download für
Interessierte angeboten werden.
Aus diesem Grund ist die Implementierung besonders sorgfältig und mit englischen Kommentaren durchzuführen.
-
Über eine einfache Webschnittstelle soll ein Benutzer den Algorithmus zu Testzwecken aufrufen können.
-
Mit geeigneten Tests ist die Korrektheit der Implementierung zu überprüfen, bevor sie zum Download angeboten wird.
[1] Gerome Miklau and Dan Suciu: Containment and equivalence for a fragment of XPath,
Journal of the ACM , vol 51, num 1, 2004m pages 2-45, ACM Press
[2] Gerome Miklau and Dan Suciu: Containment and equivalence for an XPath fragment ,
Proceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems,
Madison, Wisconsin, 2002, pages 65-76