Querying XML: Xquery H. Schweppe und T. Schlieder Literatur: • A. Deutsch et. al. "A Query Language for XML" (www.w3.org/TR/NOTE-xml-ql-19980819) • Jonathan Robie (ed.) "XQL (XML Query Language)" (metalab.unc.edu/xql/xql-proposal.xml) • A. Bonifati, S. Ceri: "Comparative Analysis of Five XML Query Languages" (SIGMOD Record, März 2000) • Fankhauser, P., Wadler, P.: XQuery Tutorial 1 Gliederung Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Motivation – Warum eigentlich XML-Anfragen?? – Einsatzgebiete von XML-Anfragesprachen – Unterschied zu SQL/OQL • Anfragesprachen für XML – – – – – – – Hauptbestandteile Reguläre Pfadausdrücke Sortieren Quantifizierung, Negation Subqueries Kombinieren von Quellen (Joins) Bewertung 2 Warum Query Languages für XML? Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Daten-Extraktion "Liefere alle Autoren aller Bücher" • Daten-Transformation "Erstelle ein neues Dokument mit den Autoren aller Bücher" • Daten-Konversion "Restrukturiere ein XML-Dokument exportiert von einem RDBMS in ein Dokument zum Import in ein OODBMS" • Daten-Integration "Erstelle eine Sicht auf Daten, die zu unterschiedlichen DTDs gehören" 3 Warum nicht SQL/OQL verwenden? Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Relationale/objektorientierte Daten sind wohlstrukturiert: – Vorgegebenes Schema – Daten werden passend zu Schema importiert • XML-Dokumente sind oft semistrukturiert: – Kein Schema vorhanden (Dokumente ohne DTD) – Wenig restriktive DTD • SQL: Keine Unterstützung für Baumstruktur • Keine/unzureichende Möglichkeiten, SchemaInformationen anzufragen • Keine/unzureichende Konstruktions-Operatoren • Keine SQL/OQL-Konstrukte zur Integration von verschiedenen Quellen 4 Beispiel "Erstelle eine Liste aller Abbildungen eines Buches" <figlist> { for $f in document("book1.xml")//figure return <figure> { $f/@* } { $f/title } </figure> } </figlist> Selektion und Transformation! 5 Ergebnis: ein XML-Dokument, das so aussehen könnte <figlist> <figure height="400" width="400"> <title>Traditional client/server architecture </title> </figure> <figure height="200" width="500"> <title>Graph representations of structures </title> </figure> <figure height="250" width ="400"> <title>Examples of Relations </title> </figure> </figlist> 6 Anfragesprachen für XML Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein Vorgestellt und verglichen werden • XML-QL A. Deutsch, M. Fernandez, D. Florescu, A. Levy, D. Suciu www.w3.org/TR/NOTE-xml-ql-19980819 • XQL J. Robie (editor) metalab.unc.edu/xql/xql-proposal.xml • XQuery W3C XML Query page http://www.w3.org/XML/Query.html http://www.research.avayalabs.com/~wadler/xml/ 7 Hauptbestandteile der Sprachen Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Pattern clause – Matchen von (verschachtelten) Elementen – Binden von Variablen • Filter clause – Vergleichen von Variablen mit Konstanten und Variablen • Constructor clause – Erzeugen von neuen XML-Dokumenten Xquery, XML-QL unterstützen alle drei Konstrukte. XQL unterstützt Patterns und Filters, sowie implizit auch Constructors (renaming, grouping) 8 XQuery – die Sprache des Web Beispieldaten <bib> <book year="1999" isbn="1-55860-622-X"> <title>Data on the Web</title> <author>Abiteboul</author> <author>Buneman</author> <author>Suciu</author> </book> <book year="2001" isbn="1-XXXXX-YYY-Z"> <title>XML Query</title> <author>Fernandez</author> <author>Suciu</author> </book> </bib> 9 Datenmodell / Syntax XML Schema <xsd:group name="Bib"> <xsd:element name="bib"> <xsd:complexType> <xsd:group ref="Book" minOccurs="0" maxOccurs="unbounded"/> </xsd:complexType> </xsd:element> </xsd:group> <xsd:group name="Book"> <xsd:element name="book"> <xsd:complexType> <xsd:attribute name="year" type="xsd:integer"/> <xsd:attribute name="isbn" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string" maxOccurs="unbounded"/> </xsd:complexType> </xsd:element> </xsd:group> XQuery Algebra Repräsentation type Bib = bib [ Book{0, *} ] type Book = book [ @year [ Integer ] & @isbn [ String ], title [ String ], author [ String ]{1, *} ] let bib0 : Bib = bib [ book [ @year [ 1999 ], @isbn [ "1-55860-622-X" ], title [ "Data on the Web" ], author [ "Abiteboul" ], author [ "Buneman" ], author [ "Suciu" ] ], book [ @year [ 2001 ], @isbn [ "1-XXXXX-YYY-Z" ], title [ "XML Query" ], author [ "Fernandez" ], author [ "Suciu" ] ] ] 11 XQuery und Schemata Autoren und Bücher, die vor 2000 veröffentlich wurden schema http://www.example.com/books namespace default = http://www.example.com/books validate <BOOKS>{ for $book in /BOOKS/BOOK[@YEAR < 2000] return <BOOK>{ $book/AUTHOR, $book/TITLE }</BOOK> }</BOOKS> 12 XQuery • Grundstruktur For Binden von Variablen an Mengen For $t in document(http://...) Let Binden eines Wertes an Variable For $t = document(http://...) Where Prädikat, wird je gebundenem Wert evaluiert where $t/book/@price = "20" Return Ergebniskonstruktor (manchmal: do) return $t/book/title SORTBY ($t/book/@price) 13 Projektion Finde alle Autoren aller Bücher /bib0/book/author ==> author [ "Abiteboul" ], author [ "Buneman" ], author [ "Suciu" ], author [ "Fernandez" ], author [ "Suciu" ] : author [ String ] {0, *} :type of result Äquivalent zu entsprechendem XML-Dokument 14 Atomare Daten Alle Autoren, aber als Werte book0/author/data() ==> "Abiteboul", "Buneman", Auch Benutzerdefinierte "Suciu" Funktionen erlaubt! : String {1, *} book0/@year/data() ==> 1999 : Integer 15 Iteration for b in bib0/book return Semantisch wie "list comprehension" (siehe Haskell): book [ b/author, b/title ] [(b.a,b.t)| b <- [book] ] where ==> book [ book... author [ "Abiteboul" ], author [ "Buneman" ], author [ "Suciu" ], title [ "Data on the Web" ] ], book [ author [ "Fernandez" ], author [ "Suciu" ], title [ "XML Query" ] ] : book [ author[ String ]{1, *}, title[ String ] ]{0, *} 16 Typableitung bib0/book : Book{0, *} b : Book b/author : author [ String ]{1, *} b/title : title [ String ] Type inference => : book [ author[ String ]{1, *}, title[ String ] ]{0, *} 17 Filter • filter selektiert Teile des Arguments (eines xmlBaums) Beispiel: Inhaltsverzeichnis: <toc> { filter(document ("cookbook.xml") // (section | section/title | section/title/text())) } </toc> 18 Selektion Bücher mit allen Elementen, die vor 2000 publiziert wurden for b in bib0/book where b/@year/data() <= 2000 return b ==> book [ @year [ 1999 ], @isbn [ "1-55860-622-X" ], title [ "Data on the Web" ], author [ "Abiteboul" ], author [ "Buneman" ], author [ "Suciu" ] ] : Book{0, *} 19 Quantifizierung Bücher, bei denen ein Autor "B..." heißt. for b in bib0/book return for a in distinct(b/author/data()) where a = "Buneman" return b ==> book [ @year [ 1999 ], @isbn [ "1-55860-622-X" ], title [ "Data on the Web" ], author [ "Abiteboul" ], author [ "Buneman" ], author [ "Suciu" ] ] : Book{0, *} 20 Negierter Existenzquntor Bücher, von denen "B..." kein Autor ist. for b in bib0/book return where empty (for a in b/author where a/data() = "Buneman" return a) return b ==> book [ @year [ 2001 ], @isbn [ "1-XXXXX-YYY-Z" ], title [ "XML Query" ], author [ "Fernandez" ], author [ "Suciu" ] ] : Book{0, *} 21 ...Quantifizierung Alle Bücher, bei denen nur "B..." Autor ist. for b in bib0/book return where empty (for a in b/author where a/data() <> "Buneman" return a) return b ==> () : Book{0, *} 22 Binden von Werten (let) Äquivalente Formulierung: for b in bib0/book let nonbunemans = (for a in b/author where a/data() <> "Buneman" return a) where empty(nonbunemans) return b 23 Verbund Erweitertes Schema type Reviews = reviews [ book [ title [ String ], review [ String ] ] {0, *} ] let review0 : Reviews = reviews [ book [ title [ "XML Query" ], review [ "A darn fine book." ] ], book [ title [ "Data on the Web" ], review [ "This is great!" ] ] ] 24 Verbund (inner join) Titel, Autor und Review für jedes Buch for b in bib0/book return for r in review0/book where b/title/data() = r/title/data() return book [ b/title, b/author, r/review ] Wie "nested loop-join", Semantik – nicht notwendig Ausführung 25 Restrukturierung und Gruppierung Buchtitel gruppiert nach Autor. for a in distinct(bib0/book/author/data()) biblio [ author[a], for b in bib0/book return for a2 in b/author/data() where a = a2 return b/title ] 26 XPath und XQuery Return all authors of all books /BOOKS/BOOK/AUTHOR = for $dot1 in $root/BOOKS return for $dot2 in $dot1/BOOK return $dot2/AUTHOR 27 Umformungsregeln Associativität in XPath BOOKS/(BOOK/AUTHOR) = (BOOKS/BOOK)/AUTHOR Associativität in XQuery for $dot1 in $root/BOOKS return for $dot2 in $dot1/BOOK return $dot2/AUTHOR = for $dot2 in ( for $dot1 in $root/BOOKS return $dot1/BOOK ) return $dot2/AUTHOR 28 Xquery: "Core language" /BOOKS/BOOK[@YEAR < 2000]/TITLE = for $book in /BOOKS/BOOK return if (not(empty( for $year in $book/@YEAR returns if $year < 2000 then $year else () )) ) then Abbildung von $book/TITLE Oberflächensyntax auf "core language" else () 29 Teil 3 XML und Information Retrieval T. Schlieder 30 Gliederung Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Einbeziehung der Dokument-Struktur • XML-Anfragesprachen und IR – Probleme – Lösungsansatz mit Regular Path Expressions – Lösungsansatz mit User Interface • Der ApproXQL-Ansatz – – – – Datenmodell Anfragesprache Ähnliche Strukturen Vages Enthaltensein 31 Grundprinzip des IR Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Grundprinzip des IR: – Es gibt ein Informationsbedürfnis – Gesucht sind Dokumente, die Informationsbedürfnis befiedigen • Merkmale – vage Dokumentrepräsentation (Vergabe von Deskriptoren) – vage Queryformulierung (Abbildung Informationsbedürfnis auf Keywords) – vage Abbildung von Query auf DokumentRepräsentation 32 Was ändert sich durch Struktur? Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Struktur – in den Dokumenten – in den Anfragen kann helfen, die Präzision der Anfragen zu erhöhen. • Interpretation der Struktur – vage in Dokumenten, Query und Abbildung -> unrealistisch, da Struktur in Dokumenten vorgegeben – streng in Dokumenten, Query und Abbildung -> XML-Anfragesprachen, IR-Systeme für strukt. Dok. – streng in Dokumenten, vage in Query und Abbildung -> Relevanz-Ranking schwierig (?) 33 Vage Struktur-Interpretation Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Probleme mit dem Begriff "Relevance Ranking" – Dokument-Struktur vorgegeben (nicht vage) – Dokument-Struktur muß (teilweise) bekannt sein, um Anfrage zu formulieren • Kompromiß – Relevanzbewertung für den 'Inhaltsteil' von Anfragen und Dokumenten – Ähnlichkeitsmaß für Struktur 34 XML-Anfragesprachen und IR Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Mächtigkeit von XML-Anfragesprachen höher als für IR nötig – Formulieren von Anfrage schwierig und aufwendig – Kann durch Nutzer-Interfaces kompensiert werden • Nutzer muß Dokumenten-Struktur kennen • Restriktive Interpretation von Struktur und Daten 35 Regular Path Expressions Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung • Regular Path Expressions wurden eingeführt um • mit struktureller Heterogenität umzugehen • Anfragen mit partieller Kenntnis der Struktur zu erlauben XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein 36 Regular Path Expressions Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein "Ich möchte alle Bücher, die von Smith geschrieben worden sind." Query 1 /book/author="Smith" Query 2 /book/(author | editor) [. ="Smith"] Query 3 /book//(author | editor) [. ="Smith"] Query 4 /book//[.="Smith"] <book> <author>Smith</author> ... </book> <book> <editor>Smith</editor> ... </book> <book> <chapter> <author>Smith</author> ... </chapter> </book> <book> <chapter> <text> ... Smith ... </text> </chapter> ... </book> 37 Regular Path Expressions Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein Probleme: • Regular Path Expressions erfordern – umfangreiche Kenntnis von Struktur und Inhalt der Dokumente – Vertrautheit mit der Sprache (->Gelegenheitsnutzer) • Alle Ergebnisse einer Query (mit Regular Path Expressions) werden gleich bewertet (mit 'true') 38 XML-Anfragesprachen und User Interfaces Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • User Interfaces machen den Nutzer mit der Dokumentenstruktur bekannt • Probleme: – Anzeige der gesamten Struktur führt zu "Information Overload" Verringerung der Nutzerakzeptanz book author name + editor + chapter – Top-Down-Navigation führt evtl. zu Verlust von relevanten Ergebnissen. 39 Lösungsansatz Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Vereinfachtes Datenmodell • Einfache strukturierte Anfragen • Unterstützung durch User Interface • Klassische IR-Methoden für Dokument-Inhalt • Ähnlichkeitsbewertung der Struktur 40 Datenmodell <book year="1999"> <author id="a1"> <name>John Bradley</name> </author> ... <chapter ref="a1"> <author>Smith</author> <section> <title>XML</title> ... </section> ... </chapter> ... </book> { year = "1999" } book author chapter name author section PCDATA PCDATA title John Bradley Smit h PCDATA XML 41 Normalisierung Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Entferne Links • Normalisiere Attribute { year = "1999" } book author chapter name author section PCDATA PCDATA title John Bradley Smit h PCDATA XML 42 Normalisierung Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Entferne Links • Normalisiere Attribute • Normalisiere PCDATA book year author 1999 name author section PCDATA PCDATA title John Bradley chapter Smit h PCDATA XML 43 Normalisierung Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • • • • Entferne Links Normalisiere Attribute Normalisiere PCDATA Füge neue Wurzel hinzu book year author 1999 name author section Bradley Smit h title John chapter XML 44 Normalisierung Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • • • • Entferne Links Normalisiere Attribute Normalisiere PCDATA Füge neue Wurzel hinzu root book book year author 1999 name author section Bradley Smit h title John chapter XML 45 Anfragesprache (graph. Interpretation) Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Eine Query ist ein gelabelter Baum • Kinder eines Knotens werden durch log. Ausdruck verbunden z.B. - Boolesche Logik - Gewichtete Summe book logischer Ausdruck author chapter logischer Ausdruck title "Smith " "XML" "Database" 46 Was sind ähnliche Strukturen? Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein Query article author book author Dokument ähnlich? ähnlich? book editor book chapter author book chapter ähnlich? book author author 47 Was sind ähnliche Strukturen? Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein Query Dokument book AND author title author book ähnlich? ähnlich? book author book author Link book author ähnlich? book y x author Verwandschaft zur Bio-Informatik (Tree Edit Distance, Tree Alignment) 48 Sinnvolle Ähnlichkeitsoperatoren Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein 1. Umbenennen von Knotennamen (Element-, Attributnamen) mit Hilfe von Kostenfunktion Query Dokument article book author editor Ähnlichkeit der Namen • von Administrator festgelegt (DTD-Analyse) • gelernt (z.B. via Data-Mining) 49 Sinnvolle Ähnlichkeitsoperatoren Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein 2. Überspringen von Datenknoten mit Hilfe von Kostenfunktion Query Dokument book book author chapter author Kosten der Knoten • von Administrator festgelegt (DTD-Analyse) • gelernt (z.B. via Data-Mining) 50 Sinnvolle Ähnlichkeitsoperatoren Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein 3. Löschen von Query-Knoten in semantisch sinnvoller weise. Query Dokument book book chapter author author vages Enthaltensein 51 Enthaltensein Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein book Query logischer Ausdruck 1 author chapter logischer Ausdruck 2 Annahme 1: • Vater-Kind-Knoten modellieren Enthaltensein title "Smith " Dokument author "Smith" "XML" "Database" book "XML" title chapter logischer Ausdruck 2 logischer Ausdruck 1 "Database" 52 Vages Enthaltensein Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein Annahme 2: • Nutzer bevorzugt bestimmten Kontext Dokument author book "XML" logischer Ausdruck 1 title chapter logischer Ausdruck 2 "Smith" "Database" Constraints: Score := f(book["Smith","XML",Database"]) f(book/author["Smith"]) f(book/chapter["XML",Database"]) f(book/chapter/titel["XML"]) gleiches chapter gleiches book 53 Zusammenfassung Teil 3 Querying XML Motivation Einsatzgebiete SQL/OQL Anfragesprachen Hauptbestandteile Pfadausdrücke Sortieren Quantoren Subqueries QuellenKomb. Bewertung XML und IR Struktur IR und QL für XML Path Expressions User Interfaces ApproXQL-Ansatz Datenmodell Anfragesprache Ähnlichkeit Enthaltensein • Dokumentstruktur erlaubt präzisere Anfragen • Nutzer muß Struktur partiell kennen • Dokumentstruktur sollte vage interpretiert werden (best matches first) • Nicht alle strukturellen Ähnlichkeitsmaße sinnvoll – Semantik – Berechnungskomplexität 54