1
Teil 2Teil 2Querying XMLQuerying XML
Literatur:Literatur:• A. Deutsch et. al. "A Query Language for XML"A. Deutsch et. al. "A Query Language for XML"
(www.w3.org/TR/NOTE-xml-ql-19980819)(www.w3.org/TR/NOTE-xml-ql-19980819)
• Jonathan Robie (ed.) "XQL (XML Query Language)"Jonathan Robie (ed.) "XQL (XML Query Language)"
(metalab.unc.edu/xql/xql-proposal.xml)(metalab.unc.edu/xql/xql-proposal.xml)
• A. Bonifati, S. Ceri: "Comparative Analysis of Five A. Bonifati, S. Ceri: "Comparative Analysis of Five
XML Query Languages" XML Query Languages" (SIGMOD Record, März 2000)(SIGMOD Record, März 2000)
2
GliederungGliederung
• MotivationMotivation– Einsatzgebiete von XML-AnfragesprachenEinsatzgebiete von XML-Anfragesprachen– Unterschied zu SQL/OQLUnterschied zu SQL/OQL
• Anfragesprachen für XMLAnfragesprachen für XML– HauptbestandteileHauptbestandteile– Reguläre PfadausdrückeReguläre Pfadausdrücke– SortierenSortieren– Quantifizierung, NegationQuantifizierung, Negation– SubqueriesSubqueries– Kombinieren von Quellen (Joins)Kombinieren von Quellen (Joins)– BewertungBewertung
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
Warum Query Languages für Warum Query Languages für XML?XML?
• Daten-ExtraktionDaten-Extraktion"Liefere alle Autoren aller Bücher""Liefere alle Autoren aller Bücher"
• Daten-TransformationDaten-Transformation"Erstelle ein neues Dokument mit den Autoren "Erstelle ein neues Dokument mit den Autoren aller Bücher"aller Bücher"
• Daten-KonversionDaten-Konversion""Restrukturiere ein XML-Dokument exportiert von Restrukturiere ein XML-Dokument exportiert von einem RDBMS in ein Dokument zum Import in ein einem RDBMS in ein Dokument zum Import in ein OODBMS"OODBMS"
• Daten-IntegrationDaten-Integration""Erstelle eine Sicht auf Daten, die zu Erstelle eine Sicht auf Daten, die zu unterschiedlichen DTDs gehören"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
Warum nicht SQL/OQL Warum nicht SQL/OQL verwenden?verwenden?• Relationale/objektorientierte Daten sind Relationale/objektorientierte Daten sind
wohlstrukturiert:wohlstrukturiert:– Vorgegebenes SchemaVorgegebenes Schema– Daten werden passend zu Schema importiertDaten werden passend zu Schema importiert
• XML-Dokumente sind oft semistrukturiert:XML-Dokumente sind oft semistrukturiert:– Kein Schema vorhanden (Dokumente ohne DTD)Kein Schema vorhanden (Dokumente ohne DTD)– Wenig restriktive DTDWenig restriktive DTD
• SQL: Keine Unterstützung für BaumstrukturSQL: Keine Unterstützung für Baumstruktur• Keine/unzureichende Möglichkeiten, Schema-Keine/unzureichende Möglichkeiten, Schema-
Informationen anzufragenInformationen anzufragen• Keine/unzureichende Konstruktions-Keine/unzureichende Konstruktions-
OperatorenOperatoren• Keine SQL/OQL-Konstrukte zur Integration Keine SQL/OQL-Konstrukte zur Integration
von verschiedenen Quellenvon 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
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
DTD mit strukturellen DTD mit strukturellen AlternativenAlternativen
<!ELEMENT<!ELEMENT rezepterezepte (rezept)+>(rezept)+>
<!ELEMENT<!ELEMENT rezeptrezept ((namename, , zutatenzutaten, (, (anleitunganleitung))??)>)>
<!ELEMENT<!ELEMENT namename (#PCDATA)>(#PCDATA)>
<!ELEMENT<!ELEMENT zutatenzutaten ((texttext || ( (zutatzutat))++)>)>
<!ELEMENT<!ELEMENT texttext (#PCDATA)>(#PCDATA)>
<!ELEMENT<!ELEMENT zutatzutat (#PCDATA)>(#PCDATA)>
<!ATTLIST<!ATTLIST zutatzutat
nummernummer IDID #REQUIRED#REQUIRED
mische-mitmische-mit IDREFIDREF #IMPLIED#IMPLIED
nötignötig (ja|nein) (ja|nein) "ja""ja">>
<!ELEMENT<!ELEMENT anleitunganleitung (#PCDATA)> (#PCDATA)>
Zutaten werden entwederZutaten werden entwederdurch einen Text beschriebendurch einen Text beschrieben
oder einzeln aufgelistet.oder einzeln aufgelistet.
OptionaleOptionaleAnleitungAnleitung
6
Anfragesprachen für XMLAnfragesprachen für XML
Vorgestellt und verglichen werdenVorgestellt und verglichen werden
• XML-QLXML-QLA. Deutsch, M. Fernandez, D. Florescu, A. Levy, D. A. Deutsch, M. Fernandez, D. Florescu, A. Levy, D. SuciuSuciuwww.w3.org/TR/NOTE-xml-ql-19980819www.w3.org/TR/NOTE-xml-ql-19980819
• XQLXQLJ. Robie (editor)J. Robie (editor)metalab.unc.edu/xql/xql-proposal.xmlmetalab.unc.edu/xql/xql-proposal.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
7
Hauptbestandteile der Hauptbestandteile der SprachenSprachen
• PatternPattern clause clause– Matchen von (verschachtelten) ElementenMatchen von (verschachtelten) Elementen– Binden von VariablenBinden von Variablen
• FilterFilter clause clause– Vergleichen von Variablen mit Konstanten und Vergleichen von Variablen mit Konstanten und
VariablenVariablen
• ConstructorConstructor clause clause– Erzeugen von neuen XML-DokumentenErzeugen von neuen XML-Dokumenten
XML-QL unterstützt alle drei Konstrukte.XML-QL unterstützt alle drei Konstrukte.XQL unterstützt Patterns und Filters, sowie XQL unterstützt Patterns und Filters, sowie implizit auch Constructors implizit auch Constructors (renaming, (renaming, grouping)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
8
PatternPattern
PatternPattern
FilterFilter
FilterFilter
ConstructorConstructor
Gebe Subtrees mitGebe Subtrees mitWurzel Wurzel zutatzutat zurück zurück
XML-QLXML-QL
WHEREWHERE < <rezepterezepte..rezeptrezept..zutatenzutaten>> < <zutatzutat massemasse=$=$mm> $> $zz </</zutatzutat>> </> IN "www.me.de/rezepte.xml",</> IN "www.me.de/rezepte.xml", $$mm >= 100 >= 100CONSTRUCTCONSTRUCT <<hauptzutathauptzutat> $> $zz </ </hauptzutathauptzutat>>
XQLXQL
document("www.me.de/rezepte.xml")document("www.me.de/rezepte.xml") / /rezepterezepte//rezeptrezept//zutatenzutaten//zutatzutat [@[@massemasse > 100] > 100]
BeispielBeispiel
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
namename
PfadausdrückePfadausdrücke
Pfade spezifizieren Position Pfade spezifizieren Position von Objekten über von Objekten über mehrere Knoten hinweg.mehrere Knoten hinweg.
......
rezeptrezept
anleitunganleitungzutatenzutaten
zutatzutat
SalzSalz
rezepterezepte
TorteTorte
XML-QLXML-QL
<<rezepterezepte><><rezeptrezept><><namename>> TorteTorte</></></></></></>oderoder<<rezepterezepte..rezeptrezept..namename>Torte</>>Torte</>
XQLXQL
//rezepterezepte//rezeptrezept//namename="Torte"="Torte"
PfadPfad
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
10
Reguläre PfadausdrückeReguläre Pfadausdrücke
Zweck:Zweck:• Überspringen von Knoten (Elementen)Überspringen von Knoten (Elementen)• Alternative Pfade zu einem ZielknotenAlternative Pfade zu einem Zielknoten
OperatorenOperatoren• Überspringe einen KnotenÜberspringe einen Knoten
XQL: XQL: aa//**//bb XML-QL: XML-QL: aa..$$..bb• Überspringe beliebig viele KnotenÜberspringe beliebig viele Knoten
XQL: XQL: aa////bb XML-QL: XML-QL: aa..$*$*..bb• Alternative KnotenAlternative Knoten
XQL: XQL: aa || bb XML-QL: XML-QL: aa || bb• Optionaler Knoten Optionaler Knoten (nicht vorh. in XQL, XML-QL)(nicht vorh. in XQL, XML-QL)
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
11
BeispielBeispiel
"Selektiere alle Rezepte, die 'Olive' "Selektiere alle Rezepte, die 'Olive' entweder als Zutat verwenden, oder in entweder als Zutat verwenden, oder in der Anleitung erwähnen."der Anleitung erwähnen."
XML-QLXML-QLWHEREWHERE < <rezepterezepte..rezeptrezept>> <( <(zutatenzutaten..zutatzutat) ) || anleitunganleitung> '*Olive*' </>> '*Olive*' </> </> ELEMENT_AS $r IN </> ELEMENT_AS $r IN "www.me.de/rezepte.xml""www.me.de/rezepte.xml"CONSTRUCT $rCONSTRUCT $r
XQLXQL//rezepterezepte//rezeptrezept/((/((zutatenzutaten//zutatzutat) ) || anleitunganleitung)) [text() contains 'Olive'] [text() contains 'Olive']
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
12
SortierenSortieren
"Liste alle Zutaten geordnet nach Masse auf""Liste alle Zutaten geordnet nach Masse auf"
XQLXQL
(noch) nicht möglich(noch) nicht möglich
XML-QLXML-QLWHEREWHERE < <rezepterezepte..rezeptrezept..zutatenzutaten>> < <zutatzutat massemasse=$=$mm> $z </> $z </zutatzutat>> </> IN "www.me.de/rezepte.xml", </> IN "www.me.de/rezepte.xml",
ORDERED-BYORDERED-BY $ $mm
CONSTRUCTCONSTRUCT
<<zutatzutat> $z </> $z </zutatzutat>>
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
13
Quantoren, NegationQuantoren, Negation
• Existenzquantor in XML-QL und XQL Existenzquantor in XML-QL und XQL vorhandenvorhanden
• Allquantor und Negation nur in XQLAllquantor und Negation nur in XQL
""Liefere Rezepte, bei denen jede Zutat mindestens Liefere Rezepte, bei denen jede Zutat mindestens 10 Gramm hat."10 Gramm hat." / /rezepterezepte//rezeptrezept[[zutatenzutaten[$[$allall$ $ zutatzutat@@massemasse >= >= 10]]10]]
"Liefere Rezepte, bei denen die Zutat 'Butter' nicht "Liefere Rezepte, bei denen die Zutat 'Butter' nicht vorkommt."vorkommt." / /rezepterezepte//rezeptrezept[$[$notnot$ $ zutatenzutaten[[zutatzutat = 'Butter']] = 'Butter']]
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
14
SubqueriesSubqueries
"Liste alle Zutaten auf, und für jede Zutat die "Liste alle Zutaten auf, und für jede Zutat die Namen aller Rezepte, in denen sie verwendet Namen aller Rezepte, in denen sie verwendet wird."wird."
CONSTRUCT <CONSTRUCT <zutatenzutaten> > {{ WHERE WHERE < <rezepterezepte..rezeptrezept..zutatenzutaten..zutatzutat> $> $zz </> IN "www.me.de/rezepte.xml" </> IN "www.me.de/rezepte.xml" CONSTRUCT CONSTRUCT < <zutatzutat>> < <namename> $> $zz </ </namename> > {{ WHERE WHERE < <rezepterezepte..rezeptrezept> > < <namename> $> $nn </> </> < <zutatenzutaten..zutatzutat> $> $zz </> </> </> IN "www.me.de/rezepte.xml" </> IN "www.me.de/rezepte.xml" CONSTRUCT < CONSTRUCT <rezeptrezept> $> $nn </ </rezeptrezept> > } } </</zutatzutat>> }} </ </zutatenzutaten>>
Join überJoin überVariable $Variable $zz
SchachtelungSchachtelungvon Queriesvon Queries
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
15
Subqueries mit Skolem-Subqueries mit Skolem-FunktionenFunktionen
"Liste alle "Liste alle verschiedenenverschiedenen Zutaten auf, und für jede Zutaten auf, und für jede Zutat die Namen aller Rezepte, in denen sie Zutat die Namen aller Rezepte, in denen sie verwendet wird."verwendet wird."
CONSTRUCT <CONSTRUCT <zutatenzutaten> {> { WHERE WHERE < <rezepterezepte..rezeptrezept>> <<namename> $> $n n </></> <<zutatenzutaten..zutatzutat> $> $z z </></> </> IN "www.me.de/rezepte.xml" </> IN "www.me.de/rezepte.xml" CONSTRUCT CONSTRUCT < <zutat ID=zutat ID=ZutatzID(ZutatzID($$zz))>> < <namename> $> $zz </ </namename> > < <rezeptrezept> $> $nn </ </rezeptrezept> > </ </zutatzutat>> } </} </zutatenzutaten>>
Skolem-Funktion:Skolem-Funktion:Erzeugt für jedesErzeugt für jedesunterschiedlicheunterschiedlicheArgument-TupelArgument-Tupel
einen neuen Wert einen neuen Wert
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
16
Kombinieren von QuellenKombinieren von Quellen
• Join-Operationen erst in neuer Version von Join-Operationen erst in neuer Version von XQL möglich.XQL möglich.
Annahme im folgenden: Es gibt ein XML-Dokument Annahme im folgenden: Es gibt ein XML-Dokument über Bücher mit Rezepten:über Bücher mit Rezepten:
<<bücherbücher>> <<buchbuch>> < <titeltitel>Das Kochbuch</>Das Kochbuch</titeltitel>> ...... < <indexindex>> < <rezeptrezept>Quarkstrudel</>Quarkstrudel</rezeptrezept>> ... ... </ </indexindex>> </ </buchbuch>> ... ...</</bücherbücher>>
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
17
"Liste alle Rezeptnamen auf, die in einem "Liste alle Rezeptnamen auf, die in einem Kochbuch im Index vorkommen."Kochbuch im Index vorkommen."
XML-QLXML-QLCONSTRUCT <CONSTRUCT <rezepterezepte> {> { WHERE WHERE < <rezepterezepte..rezeptrezept..namename>> $$rr </> IN " </> IN "www.me.de/rezepte.xmlwww.me.de/rezepte.xml",", < <bücherbücher..buchbuch..indexindex..rezeptrezept>> $$r r </> IN " </> IN "www.me.de/buecher.xmlwww.me.de/buecher.xml"" CONSTRUCT CONSTRUCT < <rezeptrezept>> < <namename> $> $rr </ </namename> > </ </rezeptrezept>> } </} </rezepterezepte>>
Kombinieren von Quellen Kombinieren von Quellen (XML-QL)(XML-QL)
Join überJoin überVariable $Variable $rr
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
18
"Liste alle Rezeptnamen auf, die in einem "Liste alle Rezeptnamen auf, die in einem Kochbuch im Index vorkommen."Kochbuch im Index vorkommen."
XQLXQLdocument("document("www.me.de/rezepte.xmlwww.me.de/rezepte.xml")") / /rezepterezepte//rezeptrezept//namename[$[$rr := := ..]] [ [ document(" document("www.me.de/buecher.xmlwww.me.de/buecher.xml") ") / /bücherbücher//buchbuch//indexindex[[rezeptrezept = $ = $rr]] ] ]
Kombinieren von Quellen Kombinieren von Quellen (XQL)(XQL)
Join überJoin überVariable $Variable $rr
VariableVariableBindingBinding
FilterFilter
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
19
Bewertung von XML-QL und Bewertung von XML-QL und XQLXQLXML-QLXML-QL• Sehr mächtig ("relational vollständig")Sehr mächtig ("relational vollständig")• Konstruktion neuer DokumenteKonstruktion neuer Dokumente• Relativ komplizierte SyntaxRelativ komplizierte Syntax• Queries nicht in XML-FormatQueries nicht in XML-Format
XQLXQL• Entwickelt als einfache SelektionspracheEntwickelt als einfache Selektionsprache• Stark erweiterte Funktionalität in zweiter VersionStark erweiterte Funktionalität in zweiter Version
– Syntax der Erweiterungen schwer verständlichSyntax der Erweiterungen schwer verständlich
• In URLs einbettbarIn URLs einbettbar• Keine KonstruktorenKeine Konstruktoren
– In 2. Version lediglich Umbenennung von Elementen In 2. Version lediglich Umbenennung von Elementen sowie Auswahl der ins Ergebnis übernommenen sowie Auswahl der ins Ergebnis übernommenen Elemente.Elemente.
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
20
Teil 3Teil 3 XML und Information XML und Information
RetrievalRetrieval
21
GliederungGliederung
• Einbeziehung der Dokument-StrukturEinbeziehung der Dokument-Struktur
• XML-Anfragesprachen und IRXML-Anfragesprachen und IR– ProblemeProbleme– Lösungsansatz mit Regular Path ExpressionsLösungsansatz mit Regular Path Expressions– Lösungsansatz mit User InterfaceLösungsansatz mit User Interface
• Der ApproXQL-AnsatzDer ApproXQL-Ansatz– DatenmodellDatenmodell– AnfragespracheAnfragesprache– Ähnliche StrukturenÄhnliche Strukturen– Vages EnthaltenseinVages 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
22
Grundprinzip des IRGrundprinzip des IR
• Grundprinzip des IR: Grundprinzip des IR: – Es gibt ein InformationsbedürfnisEs gibt ein Informationsbedürfnis– Gesucht sind Dokumente, die Gesucht sind Dokumente, die
Informationsbedürfnis befiedigenInformationsbedürfnis befiedigen
• MerkmaleMerkmale– vage Dokumentrepräsentation vage Dokumentrepräsentation
(Vergabe von Deskriptoren)(Vergabe von Deskriptoren)– vage Queryformulierung vage Queryformulierung
(Abbildung Informationsbedürfnis auf (Abbildung Informationsbedürfnis auf Keywords)Keywords)
– vage Abbildung von Query auf Dokument-vage Abbildung von Query auf Dokument-RepräsentationReprä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
23
Was ändert sich durch Was ändert sich durch Struktur?Struktur?
• StrukturStruktur– in den Dokumentenin den Dokumenten– in den Anfragenin den Anfragen
kann helfen, die kann helfen, die PräzisionPräzision der Anfragen zu der Anfragen zu erhöhen.erhöhen.
• Interpretation der StrukturInterpretation der Struktur– vagevage in Dokumenten, Query und Abbildung in Dokumenten, Query und Abbildung
– strengstreng in Dokumenten, Query und Abbildung in Dokumenten, Query und Abbildung
– strengstreng in Dokumenten, in Dokumenten, vagevage in Query und in Query und AbbildungAbbildung
-> unrealistisch, da Struktur in Dokumenten vorgegeben-> unrealistisch, da Struktur in Dokumenten vorgegeben
-> XML-Anfragesprachen, IR-Systeme für strukt. Dok.-> XML-Anfragesprachen, IR-Systeme für strukt. Dok.
-> Relevanz-Ranking schwierig (?)-> 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
24
Vage Struktur-InterpretationVage Struktur-Interpretation
• Probleme mit dem Begriff "Relevance Probleme mit dem Begriff "Relevance Ranking"Ranking"– Dokument-Struktur vorgegeben (nicht vage)Dokument-Struktur vorgegeben (nicht vage)– Dokument-Struktur muß (teilweise) bekannt Dokument-Struktur muß (teilweise) bekannt
sein, um Anfrage zu formulierensein, um Anfrage zu formulieren
• KompromißKompromiß– Relevanzbewertung für den 'Inhaltsteil' von Relevanzbewertung für den 'Inhaltsteil' von
Anfragen und DokumentenAnfragen und Dokumenten– Ähnlichkeitsmaß für StrukturÄ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
25
XML-Anfragesprachen und XML-Anfragesprachen und IRIR
• Mächtigkeit von XML-Anfragesprachen Mächtigkeit von XML-Anfragesprachen höher als für IR nötighöher als für IR nötig– Formulieren von Anfrage schwierig und Formulieren von Anfrage schwierig und
aufwendigaufwendig– Kann durch Nutzer-Interfaces kompensiert Kann durch Nutzer-Interfaces kompensiert
werdenwerden
• Nutzer muß Dokumenten-Struktur kennenNutzer muß Dokumenten-Struktur kennen
• Restriktive Interpretation von Struktur und Restriktive Interpretation von Struktur und DatenDaten
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
26
Regular Path ExpressionsRegular Path Expressions
• Regular Path Expressions wurden Regular Path Expressions wurden eingeführt umeingeführt um
• mit struktureller Heterogenität mit struktureller Heterogenität umzugehenumzugehen
• Anfragen mit partieller Kenntnis der Anfragen mit partieller Kenntnis der Struktur zu erlaubenStruktur 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
27
Regular Path ExpressionsRegular Path Expressions
"Ich möchte alle Bücher, "Ich möchte alle Bücher, die von Smith geschrieben die von Smith geschrieben worden sind."worden sind."
<<bookbook>> <<authorauthor>Smith</>Smith</authorauthor>> ......</</bookbook>>
<<bookbook>> <<editoreditor>Smith</>Smith</editoreditor>> ......</</bookbook>>
<<bookbook>> <<chapterchapter>> < <authorauthor>Smith</>Smith</authorauthor>> ...... </</chapterchapter>></</bookbook>>
<<bookbook>> <<chapterchapter>> < <texttext> ... Smith ... </> ... Smith ... </texttext> > </ </chapterchapter>> ......</</bookbook>>
Query 1Query 1 //bookbook//authorauthor="Smith"="Smith"
Query 2Query 2 //bookbook/(/(author author || editor editor)) [. [. ="Smith"]="Smith"]
Query 3Query 3 //bookbook//(//(author author || editor editor)) [. [. ="Smith"]="Smith"]
Query 4Query 4 //bookbook//[.="Smith"]//[.="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
28
Probleme:Probleme:
• Regular Path Expressions erfordernRegular Path Expressions erfordern– umfangreiche Kenntnis von Struktur und Inhalt umfangreiche Kenntnis von Struktur und Inhalt
der Dokumenteder Dokumente– Vertrautheit mit der Sprache (-Vertrautheit mit der Sprache (-
>Gelegenheitsnutzer)>Gelegenheitsnutzer)
• Alle Ergebnisse einer Query Alle Ergebnisse einer Query (mit Regular (mit Regular
Path Expressions)Path Expressions) werden gleich bewertet werden gleich bewertet (mit 'true')(mit 'true')
Regular Path ExpressionsRegular 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
29
• User Interfaces machen den Nutzer User Interfaces machen den Nutzer mit der Dokumentenstruktur bekanntmit der Dokumentenstruktur bekannt
• Probleme:Probleme:– Anzeige der Anzeige der gesamten Strukturgesamten Struktur
führt zu "Information Overload" führt zu "Information Overload" Verringerung der Verringerung der Nutzerakzeptanz Nutzerakzeptanz
– Top-Down-NavigationTop-Down-Navigation führt evtl. führt evtl. zu Verlust von relevanten zu Verlust von relevanten Ergebnissen.Ergebnissen.
XML-Anfragesprachen und User XML-Anfragesprachen und User InterfacesInterfaces
bookbook
authorauthor
namename
editoreditor
chapterchapter++
++
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
30
LösungsansatzLösungsansatz
• Vereinfachtes DatenmodellVereinfachtes Datenmodell
• Einfache strukturierte AnfragenEinfache strukturierte Anfragen
• Unterstützung durch User InterfaceUnterstützung durch User Interface
• Klassische IR-Methoden für Dokument-Klassische IR-Methoden für Dokument-InhaltInhalt
• Ä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
31
DatenmodellDatenmodell
<<bookbook year year="1999"="1999">> <<authorauthor id id="a1"="a1">> <<namename>John >John BradleyBradley</</namename>> </</authorauthor>> ...... <<chapterchapter ref ref="a1"="a1">> <<authorauthor>>SmithSmith</</authorauthor>> <<sectionsection>> <<titletitle>>XMLXML</</titletitle>> ... ... </</sectionsection>> ...... </</chapterchapter>> ......</</bookbook>>
book
chapter
section
title
XML
author
name
John Bradley
author
Smith
{ year = "1999" }
PCDATA PCDATA
PCDATA
32
NormalisierungNormalisierung
book
chapter
section
title
XML
author
name
John Bradley
author
Smith
{ year = "1999" }
PCDATA PCDATA
PCDATA
• Entferne Entferne LinksLinks• Normalisiere AttributeNormalisiere 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
33
NormalisierungNormalisierung
book
chapter
section
title
XML
author
name
John Bradley
author
Smith
PCDATA PCDATA
PCDATA
year
1999
• Normalisiere PCDATANormalisiere PCDATA
• Entferne Entferne LinksLinks• Normalisiere AttributeNormalisiere 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
34
NormalisierungNormalisierung
book
chapter
section
title
author
name author
year
1999
XML
Smith
Bradley
John
• Füge neue Wurzel hinzuFüge neue Wurzel hinzu
• Normalisiere PCDATANormalisiere PCDATA
• Entferne Entferne LinksLinks• Normalisiere AttributeNormalisiere 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
35
NormalisierungNormalisierung
book
chapter
section
title
author
name author
year
1999
XML
Smith
Bradley
John
book
root
• Füge neue Wurzel hinzuFüge neue Wurzel hinzu
• Normalisiere PCDATANormalisiere PCDATA
• Entferne Entferne LinksLinks• Normalisiere AttributeNormalisiere 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
36
"Database""Database"
Anfragesprache (graph. Anfragesprache (graph. Interpretation)Interpretation)
• Eine Query ist ein gelabelter BaumEine Query ist ein gelabelter Baum• Kinder eines Knotens werden durch log. Kinder eines Knotens werden durch log.
Ausdruck verbundenAusdruck verbunden
bookbook
authauthoror
chapterchapter
"Smit"Smith"h"
titletitle
"XML""XML"
logischer Ausdrucklogischer Ausdruck
logischer Ausdrucklogischer Ausdruck
z.B. - Boolesche Logikz.B. - Boolesche Logik- Gewichtete - Gewichtete
SummeSumme
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
Was sind ähnliche Was sind ähnliche Strukturen?Strukturen?
articlearticle
authorauthor
bookbook
editoreditorähnlich?ähnlich?
bookbook
authorauthor
bookbook
chapterchapterähnlich?ähnlich?
authorauthor
QueryQuery DokumentDokument
bookbook
chapterchapter
bookbookähnlich?ähnlich?
authauthoror
authorauthor
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
Was sind ähnliche Was sind ähnliche Strukturen?Strukturen?
bookbook
authorauthor
bookbook
authorauthorähnlich?ähnlich?
authorauthor
bookbook
bookbook
authorauthorähnlich?ähnlich?
QueryQuery DokumentDokument
titletitleANDAND
bookbook
authorauthor
bookbookähnlich?ähnlich?
xx
yy
authauthoror
LinkLink
Verwandschaft zur Bio-Informatik Verwandschaft zur Bio-Informatik (Tree Edit Distance, Tree Alignment)(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
39
Sinnvolle Sinnvolle ÄhnlichkeitsoperatorenÄhnlichkeitsoperatoren
articlearticle
authorauthor
bookbook
editoreditor
QueryQuery DokumentDokument
1. 1. Umbenennen von KnotennamenUmbenennen von Knotennamen (Element-, Attributnamen)(Element-, Attributnamen)
mit Hilfe von Kostenfunktionmit Hilfe von Kostenfunktion
Ähnlichkeit der NamenÄ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
40
Sinnvolle Sinnvolle ÄhnlichkeitsoperatorenÄhnlichkeitsoperatoren
bookbook
authorauthor
bookbook
chapterchapter
QueryQuery DokumentDokument
2. 2. Überspringen von Datenknoten Überspringen von Datenknoten mit Hilfe von Kostenfunktionmit Hilfe von Kostenfunktion
Kosten der KnotenKosten der Knoten• von Administrator festgelegt (DTD-Analyse)von Administrator festgelegt (DTD-Analyse)• gelernt (z.B. via Data-Mining)gelernt (z.B. via Data-Mining)
authorauthor
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
Sinnvolle Sinnvolle ÄhnlichkeitsoperatorenÄhnlichkeitsoperatoren
bookbook
authorauthor
bookbook
QueryQuery DokumentDokument
3. 3. Löschen von Query-KnotenLöschen von Query-Knotenin in semantisch sinnvollersemantisch sinnvoller weise. weise.
vages Enthaltenseinvages Enthaltensein
authorauthorchapterchapter
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
42
"Smith""Smith"
authorauthor
bookbook
chapterchaptertitletitle"XML""XML"
"Database""Database"
DokumentDokument
EnthaltenseinEnthaltensein
"Database""Database"
bookbook
authauthoror
chapterchapter
"Smit"Smith"h"
titletitle
"XML""XML"
QueryQuerylogischer Ausdruck 1logischer Ausdruck 1
logischer Ausdruck 2logischer Ausdruck 2
logischer Ausdruck 2logischer Ausdruck 2
logischer Ausdruck 1logischer Ausdruck 1
Annahme 1:Annahme 1:• Vater-Kind-KnotenVater-Kind-Knoten
modellierenmodellierenEnthaltenseinEnthaltensein
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
Vages EnthaltenseinVages Enthaltensein
authorauthor
"Smith""Smith"
bookbook
chapterchaptertitletitle"XML""XML"
"Database""Database"
DokumentDokument
Annahme 2:Annahme 2:• Nutzer Nutzer bevorzugtbevorzugt bestimmten Kontext bestimmten Kontext
Score :=Score :=ff(book["Smith","XML",Database"]) (book["Smith","XML",Database"])
ff(book/author["Smith"]) (book/author["Smith"]) ff(book/(book/
chapter["XML",Database"]) chapter["XML",Database"]) ff(book/chapter/titel["XML"])(book/chapter/titel["XML"])
gleichesgleicheschapterchapter
gleichesgleichesbookbook
Constraints:Constraints:
logischer Ausdruck 2logischer Ausdruck 2logischer Ausdruck 1logischer 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
44
Zusammenfassung Teil 3Zusammenfassung Teil 3
• Dokumentstruktur erlaubt präzisere Dokumentstruktur erlaubt präzisere AnfragenAnfragen
• Nutzer muß Struktur partiell kennenNutzer muß Struktur partiell kennen
• Dokumentstruktur sollte vage interpretiert Dokumentstruktur sollte vage interpretiert werden (best matches first)werden (best matches first)
• Nicht alle strukturellen Ähnlichkeitsmaße Nicht alle strukturellen Ähnlichkeitsmaße sinnvollsinnvoll– SemantikSemantik– BerechnungskomplexitätBerechnungskomplexitä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
45
bookbook
authorauthor
namename
editoreditor
chapterchapter++
++
Diplomarbeit: User InterfaceDiplomarbeit: User Interface
• Probleme existierender UI:Probleme existierender UI:– Anzeige der gesamten Struktur Anzeige der gesamten Struktur
führt zu "Information Overload" führt zu "Information Overload" Verringerung der Verringerung der Nutzerakzeptanz Nutzerakzeptanz
– Top-Down-Navigation führt evtl. Top-Down-Navigation führt evtl. zu Verlust von Ergebnissen.zu Verlust von Ergebnissen.
• Ziel der ArbeitZiel der Arbeit– Vergleich existierender UIVergleich existierender UI– (Weiter-) Entwicklung eines geeigneten UI für (Weiter-) Entwicklung eines geeigneten UI für
nutzerorientierte Suchenutzerorientierte Suche– Implementierung als Java-AppletImplementierung als Java-Applet
46
Diplomarbeit: User Interface Diplomarbeit: User Interface (2)(2)
articlearticle
bookbook
chapterchapter
sectionsection
(more)(more)
bookbook
authorauthor
chapterchapter
sectionsection
titletitle
(more)(more)
authorauthor
SmithSmithtitletitle
XMLXML
chapterchapter
sectionsection
titletitle
(more)(more)
ANDAND
Beispiel:Beispiel:
47
Diplomarbeit: Realisierung des Diplomarbeit: Realisierung des vagen Enthaltenseinsvagen Enthaltenseins
• ProblemProblem– Test auf vages Enthaltensein einer Query erfordert:Test auf vages Enthaltensein einer Query erfordert:
• Auffinden der Elemente mit übereinstimmendem Auffinden der Elemente mit übereinstimmendem NamenNamen
• Test auf Vorgänger-Nachfolger BeziehungTest auf Vorgänger-Nachfolger Beziehung• Erfülltsein der logischen Ausdrücke der Knoten-KinderErfülltsein der logischen Ausdrücke der Knoten-Kinder
– Bekannte Realisierungen unterstützen nur Bekannte Realisierungen unterstützen nur exaktes exaktes EnthaltenseinEnthaltensein
• Ziel der ArbeitZiel der Arbeit– Vergleich von Implementierungstechniken für Vergleich von Implementierungstechniken für
strukturiertes Retrievalstrukturiertes Retrieval– Anpassung/Entwicklung eines Verfahrens für das Anpassung/Entwicklung eines Verfahrens für das
vage Enthaltenseinvage Enthaltensein– Implementierung auf der Basis der Berkeley Implementierung auf der Basis der Berkeley
DatabaseDatabase– Performance-TestsPerformance-Tests