Querying XML

Werbung
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
Herunterladen