Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 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) A. Deutsch.

Ähnliche Präsentationen


Präsentation zum Thema: "1 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) A. Deutsch."—  Präsentation transkript:

1 1 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) 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) 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) A. Bonifati, S. Ceri: "Comparative Analysis of Five XML Query Languages" (SIGMOD Record, März 2000) Fankhauser, P., Wadler, P.: XQuery Tutorial Fankhauser, P., Wadler, P.: XQuery Tutorial

2 2 Gliederung MotivationMotivation –Warum eigentlich XML-Anfragen?? –Einsatzgebiete von XML-Anfragesprachen –Unterschied zu SQL/OQL Anfragesprachen für XMLAnfragesprachen für XML –Hauptbestandteile –Reguläre Pfadausdrücke –Sortieren –Quantifizierung, Negation –Subqueries –Kombinieren von Quellen (Joins) –Bewertung 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 3 Warum Query Languages für XML? Daten-Extraktion "Liefere alle Autoren aller Bücher"Daten-Extraktion "Liefere alle Autoren aller Bücher" Daten-Transformation "Erstelle ein neues Dokument mit den 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-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"Daten-Integration " Erstelle eine Sicht auf Daten, die zu unterschiedlichen DTDs gehören" 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

4 4 Warum nicht SQL/OQL verwenden? Relationale/objektorientierte Daten sind wohlstrukturiert:Relationale/objektorientierte Daten sind wohlstrukturiert: –Vorgegebenes Schema –Daten werden passend zu Schema importiert XML-Dokumente sind oft semistrukturiert:XML-Dokumente sind oft semistrukturiert: –Kein Schema vorhanden (Dokumente ohne DTD) –Wenig restriktive DTD SQL: Keine Unterstützung für BaumstrukturSQL: Keine Unterstützung für Baumstruktur Keine/unzureichende Möglichkeiten, Schema- Informationen anzufragenKeine/unzureichende Möglichkeiten, Schema- Informationen anzufragen Keine/unzureichende Konstruktions-OperatorenKeine/unzureichende Konstruktions-Operatoren Keine SQL/OQL-Konstrukte zur Integration von verschiedenen QuellenKeine SQL/OQL-Konstrukte zur Integration von verschiedenen Quellen 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

5 5 Beispiel "Erstelle eine Liste aller Abbildungen eines Buches" <figlist> { for $f in document("book1.xml")//figure { for $f in document("book1.xml")//figure return return { $f/@* } { $f/@* } { $f/title } { $f/title } } } Selektion und Transformation!

6 6 Ergebnis: ein XML-Dokument, das so aussehen könnte Ergebnis: ein XML-Dokument, das so aussehen könnte Traditional client/server architecture Traditional client/server architecture Graph representations of structures Graph representations of structures Examples of Relations Examples of Relations </figlist>

7 7 Anfragesprachen für XML Vorgestellt und verglichen werden XML-QL A. Deutsch, M. Fernandez, D. Florescu, A. Levy, D. Suciu www.w3.org/TR/NOTE-xml-ql-19980819XML-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.xmlXQL J. Robie (editor) metalab.unc.edu/xql/xql-proposal.xml XQueryXQuery W3C XML Query page W3C XML Query page http://www.w3.org/XML/Query.html http://www.w3.org/XML/Query.htmlhttp://www.w3.org/XML/Query.html http://www.research.avayalabs.com/~wadler/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

8 8 Hauptbestandteile der Sprachen Pattern clausePattern clause –Matchen von (verschachtelten) Elementen –Binden von Variablen Filter clauseFilter clause –Vergleichen von Variablen mit Konstanten und Variablen Constructor clauseConstructor 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) 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

9 9 XQuery – die Sprache des Web Beispieldaten<bib> Data on the Web Abiteboul Buneman Suciu Data on the Web Abiteboul Buneman Suciu XML Query Fernandez Suciu XML Query Fernandez Suciu

10 Datenmodell / Syntax XML Schema </xsd:group>

11 11 XQuery Algebra Repräsentation type Bib = bib [ Book{0, *} ] bib [ Book{0, *} ] type Book = book [ @year [ Integer ] & @year [ Integer ] & @isbn [ String ], @isbn [ String ], title [ String ], title [ String ], author [ String ]{1, *} ] author [ String ]{1, *} ] let bib0 : Bib = bib [ book [ @year [ 1999 ], [ book [ @year [ 1999 ], @isbn [ "1-55860-622-X" ], @isbn [ "1-55860-622-X" ], title [ "Data on the Web" ], title [ "Data on the Web" ], author [ "Abiteboul" ], author [ "Abiteboul" ], author [ "Buneman" ], author [ "Buneman" ], author [ "Suciu" ] ], author [ "Suciu" ] ], book [ @year [ 2001 ], @isbn [ "1-XXXXX-YYY-Z" ], title [ "XML Query" ], author [ "Fernandez" ], author [ "Suciu" ] ] book [ @year [ 2001 ], @isbn [ "1-XXXXX-YYY-Z" ], title [ "XML Query" ], author [ "Fernandez" ], author [ "Suciu" ] ]]

12 12 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/AUTHOR, $book/TITLE } { $book/AUTHOR, $book/TITLE } }</BOOKS>

13 13 XQuery GrundstrukturGrundstruktur For Binden von Variablen an Mengen For Binden von Variablen an Mengen For $t in document(http://...) For $t in document(http://...)http://... Let Binden eines Wertes an Variable Let Binden eines Wertes an Variable For $t = document(http://...) For $t = document(http://...)http://... Where Prädikat, wird je gebundenem Wert evaluiert where $t/book/@price = "20" where $t/book/@price = "20"$t/book/@price Return Ergebniskonstruktor (manchmal: do) return $t/book/title SORTBY ($t/book/@price) return $t/book/title SORTBY ($t/book/@price)

14 14 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

15 15 Atomare Daten Alle Autoren, aber als Werte book0/author/data() ==> "Abiteboul", ==> "Abiteboul","Buneman","Suciu" : String {1, *} book0/@year/data() ==> 1999 : Integer ==> 1999 : Integer Auch Benutzerdefinierte Funktionen erlaubt!

16 16 Iteration for b in bib0/book return book [ b/author, b/title ] book [ b/author, b/title ] ==> book [ ==> book [ author [ "Abiteboul" ], author [ "Abiteboul" ], author [ "Buneman" ], author [ "Buneman" ], author [ "Suciu" ], author [ "Suciu" ], title [ "Data on the Web" ] ], title [ "Data on the Web" ] ], book book [ author [ "Fernandez" ], [ author [ "Fernandez" ], author [ "Suciu" ], author [ "Suciu" ], title [ "XML Query" ] ] title [ "XML Query" ] ] : book [ author[ String ]{1, *}, title[ String ] ]{0, *} : book [ author[ String ]{1, *}, title[ String ] ]{0, *} Semantisch wie "list comprehension" (siehe Haskell): [(b.a,b.t)| b <- [book] ] where book...

17 17 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, *}

18 18 Filter filter selektiert Teile des Arguments (eines xml- Baums)filter selektiert Teile des Arguments (eines xml- Baums) Beispiel: Inhaltsverzeichnis: { filter(document ("cookbook.xml") // (section | section/title | section/title/text())) } { filter(document ("cookbook.xml") // (section | section/title | section/title/text())) }

19 19 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, *} : Book{0, *}

20 20 Quantifizierung Bücher, bei denen ein Autor "B..." heißt. for b in bib0/book return for a in distinct(b/author/data()) for a in distinct(b/author/data()) where a = "Buneman" return where a = "Buneman" return b ==> book [ @year [ 1999 ], @isbn [ "1-55860-622-X" ], @isbn [ "1-55860-622-X" ], title [ "Data on the Web" ], title [ "Data on the Web" ], author [ "Abiteboul" ], author [ "Buneman" ], author [ "Suciu" ] ] : Book{0, *} : Book{0, *}

21 21 Negierter Existenzquntor Bücher, von denen "B..." kein Autor ist. for b in bib0/book return where empty (for a in b/author where empty (for a in b/author where a/data() = "Buneman" return where a/data() = "Buneman" return a) a) return b return b ==> book [ @year [ 2001 ], @year [ 2001 ], @isbn [ "1-XXXXX-YYY-Z" ], title [ "XML Query" ], author [ "Fernandez" ], author [ "Suciu" ] author [ "Fernandez" ], author [ "Suciu" ] ] : Book{0, *}

22 22...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 where a/data() <> "Buneman" return a) return a) return b ==> () : Book{0, *}

23 23 Binden von Werten (let) Äquivalente Formulierung: for b in bib0/book let nonbunemans = let nonbunemans = (for a in b/author where a/data() <> "Buneman" return a) where a/data() <> "Buneman" return a) where empty(nonbunemans) return where empty(nonbunemans) return b

24 24 Verbund Erweitertes Schema type Reviews = reviews [ reviews [ book [ book [ title [ String ], title [ String ], review [ String ] review [ String ] ] {0, *} ] let review0 : Reviews = reviews [ book [ title [ "XML Query" ], reviews [ book [ title [ "XML Query" ], review [ "A darn fine book." ] ], review [ "A darn fine book." ] ], book [ title [ "Data on the Web" ], book [ title [ "Data on the Web" ], review [ "This is great!" ] ] ] review [ "This is great!" ] ] ]

25 25 Verbund (inner join) Titel, Autor und Review für jedes Buch for b in bib0/book return for r in review0/book for r in review0/book where b/title/data() = r/title/data() return where b/title/data() = r/title/data() return book [ b/title, b/author, r/review ] book [ b/title, b/author, r/review ] Wie "nested loop-join", Semantik – nicht notwendig Ausführung

26 26 Restrukturierung und Gruppierung Buchtitel gruppiert nach Autor. for a in distinct(bib0/book/author/data()) biblio [ biblio [ author[a], author[a], for b in bib0/book return for b in bib0/book return for a2 in b/author/data() for a2 in b/author/data() where a = a2 return where a = a2 return b/title ] b/title ]

27 27 XPath und XQuery Return all authors of all books /BOOKS/BOOK/AUTHOR= for $dot1 in $root/BOOKS return for $dot2 in $dot1/BOOK return for $dot2 in $dot1/BOOK return $dot2/AUTHOR $dot2/AUTHOR

28 28 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

29 29 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 $book/TITLEelse() Abbildung von Oberflächensyntax auf "core language"

30 30 Teil 3 XML und Information Retrieval T. Schlieder

31 31 Gliederung Einbeziehung der Dokument-StrukturEinbeziehung der Dokument-Struktur XML-Anfragesprachen und IRXML-Anfragesprachen und IR –Probleme –Lösungsansatz mit Regular Path Expressions –Lösungsansatz mit User Interface Der ApproXQL-AnsatzDer ApproXQL-Ansatz –Datenmodell –Anfragesprache –Ähnliche Strukturen –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

32 32 Grundprinzip des IR Grundprinzip des IR:Grundprinzip des IR: –Es gibt ein Informationsbedürfnis –Gesucht sind Dokumente, die Informationsbedürfnis befiedigen MerkmaleMerkmale –vage Dokumentrepräsentation (Vergabe von Deskriptoren) –vage Queryformulierung (Abbildung Informationsbedürfnis auf Keywords) –vage Abbildung von Query auf Dokument- Repräsentation 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

33 33 Was ändert sich durch Struktur? StrukturStruktur –in den Dokumenten –in den Anfragen kann helfen, die Präzision der Anfragen zu erhöhen. Interpretation der StrukturInterpretation der Struktur –vage in Dokumenten, Query und Abbildung –streng in Dokumenten, Query und Abbildung –streng in Dokumenten, vage in Query und Abbildung -> unrealistisch, da Struktur in Dokumenten vorgegeben -> XML-Anfragesprachen, IR-Systeme für strukt. Dok. -> Relevanz-Ranking schwierig (?) 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

34 34 Vage Struktur-Interpretation Probleme mit dem Begriff "Relevance Ranking"Probleme mit dem Begriff "Relevance Ranking" –Dokument-Struktur vorgegeben (nicht vage) –Dokument-Struktur muß (teilweise) bekannt sein, um Anfrage zu formulieren KompromißKompromiß –Relevanzbewertung für den 'Inhaltsteil' von Anfragen und Dokumenten –Ähnlichkeitsmaß für 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

35 35 XML-Anfragesprachen und IR Mächtigkeit von XML-Anfragesprachen höher als für IR nötigMä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 kennenNutzer muß Dokumenten-Struktur kennen Restriktive Interpretation von Struktur und DatenRestriktive Interpretation von Struktur und Daten 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

36 36 Regular Path Expressions Regular Path Expressions wurden eingeführt umRegular Path Expressions wurden eingeführt um mit struktureller Heterogenität umzugehenmit struktureller Heterogenität umzugehen Anfragen mit partieller Kenntnis der Struktur zu erlaubenAnfragen mit partieller Kenntnis der Struktur zu erlauben 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

37 37 Regular Path Expressions "Ich möchte alle Bücher, die von Smith geschrieben worden sind." Smith Smith...... Smith Smith...... Smith Smith......... Smith...... Smith......... Query 1 /book/author="Smith" /book/author="Smith" Query 2 /book/(author | editor) [. ="Smith"] /book/(author | editor) [. ="Smith"] Query 3 /book//(author | editor) [. ="Smith"] /book//(author | editor) [. ="Smith"] Query 4 /book//[.="Smith"] /book//[.="Smith"] 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

38 38 Probleme: Regular Path Expressions erfordernRegular 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')Alle Ergebnisse einer Query (mit Regular Path Expressions) werden gleich bewertet (mit 'true') 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

39 39 User Interfaces machen den Nutzer mit der Dokumentenstruktur bekanntUser Interfaces machen den Nutzer mit der Dokumentenstruktur bekannt Probleme:Probleme: –Anzeige der gesamten Struktur führt zu "Information Overload" Verringerung der Nutzerakzeptanz –Top-Down-Navigation führt evtl. zu Verlust von relevanten Ergebnissen. XML-Anfragesprachen und User Interfaces book author author name name editor editor chapter chapter+ + 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

40 40 Lösungsansatz Vereinfachtes DatenmodellVereinfachtes Datenmodell Einfache strukturierte AnfragenEinfache strukturierte Anfragen Unterstützung durch User InterfaceUnterstützung durch User Interface Klassische IR-Methoden für Dokument-InhaltKlassische IR-Methoden für Dokument-Inhalt Ähnlichkeitsbewertung der StrukturÄhnlichkeitsbewertung der 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

41 41 Datenmodell John Bradley John Bradley...... Smith Smith XML XML.................. book chapter section title XML author name John Bradley author Smit h { year = "1999" } PCDATA

42 42 Normalisierung book chapter section title XML author name John Bradley author Smit h { year = "1999" } PCDATA Entferne Links Entferne Links Normalisiere Attribute Normalisiere Attribute 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

43 43 Normalisierung book chapter section title XML author name John Bradley author Smit h PCDATA year 1999 Normalisiere PCDATA Normalisiere PCDATA Entferne Links Entferne Links Normalisiere Attribute Normalisiere Attribute 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

44 44 Normalisierung book chapter section title author nameauthor year 1999 XML Smit h BradleyJohn Füge neue Wurzel hinzu Füge neue Wurzel hinzu Normalisiere PCDATA Normalisiere PCDATA Entferne Links Entferne Links Normalisiere Attribute Normalisiere Attribute 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

45 45 Normalisierung book chapter section title author nameauthor year 1999 XML Smit h BradleyJohn book root Füge neue Wurzel hinzu Füge neue Wurzel hinzu Normalisiere PCDATA Normalisiere PCDATA Entferne Links Entferne Links Normalisiere Attribute Normalisiere Attribute 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

46 46 "Database" Anfragesprache (graph. Interpretation) Eine Query ist ein gelabelter BaumEine Query ist ein gelabelter Baum Kinder eines Knotens werden durch log. Ausdruck verbundenKinder eines Knotens werden durch log. Ausdruck verbunden book authorchapter "Smith " title "XML" logischer Ausdruck z.B. - Boolesche Logik - Gewichtete Summe 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

47 47 Was sind ähnliche Strukturen? article author book editor ähnlich?bookauthorbookchapter ähnlich? author QueryDokumentbookchapterbookähnlich? author author 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

48 48 Was sind ähnliche Strukturen? book author book author ähnlich?authorbookbookauthor ähnlich? QueryDokument title AND book author book ähnlich? x y authorLink Verwandschaft zur Bio-Informatik (Tree Edit Distance, Tree Alignment) 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

49 49 Sinnvolle Ähnlichkeitsoperatoren article author book editor QueryDokument 1. Umbenennen von Knotennamen (Element-, Attributnamen) mit Hilfe von Kostenfunktion Ähnlichkeit der Namen von Administrator festgelegt (DTD-Analyse) von Administrator festgelegt (DTD-Analyse) gelernt (z.B. via Data-Mining) gelernt (z.B. via Data-Mining) 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

50 50 Sinnvolle Ähnlichkeitsoperatoren book author book chapter QueryDokument 2. Überspringen von Datenknoten mit Hilfe von Kostenfunktion Kosten der Knoten von Administrator festgelegt (DTD-Analyse) von Administrator festgelegt (DTD-Analyse) gelernt (z.B. via Data-Mining) gelernt (z.B. via Data-Mining) author 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

51 51 Sinnvolle Ähnlichkeitsoperatoren book author book QueryDokument 3. Löschen von Query-Knoten in semantisch sinnvoller weise. vages Enthaltensein vages Enthaltensein authorchapter 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

52 52 "Smith" author book chaptertitle "XML" "Database"DokumentEnthaltensein "Database" book authorchapter "Smith " title "XML" Query logischer Ausdruck 1 logischer Ausdruck 2 logischer Ausdruck 1 Annahme 1: Vater-Kind-Knoten modellieren Enthaltensein Vater-Kind-Knoten modellieren 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

53 53 Vages Enthaltensein author "Smith" book chapter title "XML" "Database" Dokument Annahme 2: Nutzer bevorzugt bestimmten Kontext Nutzer bevorzugt bestimmten Kontext Score :=f(book["Smith","XML",Database"]) f(book/author["Smith"]) f(book/author["Smith"]) f(book/chapter["XML",Database"]) f(book/chapter["XML",Database"]) f(book/chapter/titel["XML"]) f(book/chapter/titel["XML"]) gleicheschapter gleichesbookConstraints: logischer Ausdruck 2 logischer Ausdruck 1 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

54 54 Zusammenfassung Teil 3 Dokumentstruktur erlaubt präzisere AnfragenDokumentstruktur erlaubt präzisere Anfragen Nutzer muß Struktur partiell kennenNutzer muß Struktur partiell kennen Dokumentstruktur sollte vage interpretiert werden (best matches first)Dokumentstruktur sollte vage interpretiert werden (best matches first) Nicht alle strukturellen Ähnlichkeitsmaße sinnvollNicht alle strukturellen Ähnlichkeitsmaße sinnvoll –Semantik –Berechnungskomplexität 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


Herunterladen ppt "1 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) A. Deutsch."

Ähnliche Präsentationen


Google-Anzeigen