47
1 Teil 2 Teil 2 Querying XML Querying XML teratur: teratur: 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 F A. Bonifati, S. Ceri: "Comparative Analysis of F ML Query Languages" ML Query Languages" (SIGMOD Record, März 2000) (SIGMOD Record, März 2000)

Teil 2 Querying XML

  • Upload
    langer

  • View
    74

  • Download
    4

Embed Size (px)

DESCRIPTION

Teil 2 Querying XML. 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) - PowerPoint PPT Presentation

Citation preview

Page 1: Teil 2 Querying XML

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)

Page 2: Teil 2 Querying XML

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

Page 3: Teil 2 Querying XML

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

Page 4: Teil 2 Querying XML

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

Page 5: Teil 2 Querying XML

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

Page 6: Teil 2 Querying XML

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

Page 7: Teil 2 Querying XML

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

Page 8: Teil 2 Querying XML

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

Page 9: Teil 2 Querying XML

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

Page 10: Teil 2 Querying XML

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

Page 11: Teil 2 Querying XML

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

Page 12: Teil 2 Querying XML

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

Page 13: Teil 2 Querying XML

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

Page 14: Teil 2 Querying XML

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

Page 15: Teil 2 Querying XML

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

Page 16: Teil 2 Querying XML

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

Page 17: Teil 2 Querying XML

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

Page 18: Teil 2 Querying XML

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

Page 19: Teil 2 Querying XML

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

Page 20: Teil 2 Querying XML

20

Teil 3Teil 3 XML und Information XML und Information

RetrievalRetrieval

Page 21: Teil 2 Querying XML

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

Page 22: Teil 2 Querying XML

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

Page 23: Teil 2 Querying XML

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

Page 24: Teil 2 Querying XML

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

Page 25: Teil 2 Querying XML

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

Page 26: Teil 2 Querying XML

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

Page 27: Teil 2 Querying XML

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

Page 28: Teil 2 Querying XML

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

Page 29: Teil 2 Querying XML

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

Page 30: Teil 2 Querying XML

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

Page 31: Teil 2 Querying XML

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

Page 32: Teil 2 Querying XML

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

Page 33: Teil 2 Querying XML

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

Page 34: Teil 2 Querying XML

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

Page 35: Teil 2 Querying XML

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

Page 36: Teil 2 Querying XML

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

Page 37: Teil 2 Querying XML

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

Page 38: Teil 2 Querying XML

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

Page 39: Teil 2 Querying XML

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

Page 40: Teil 2 Querying XML

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

Page 41: Teil 2 Querying XML

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

Page 42: Teil 2 Querying XML

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

Page 43: Teil 2 Querying XML

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

Page 44: Teil 2 Querying XML

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

Page 45: Teil 2 Querying XML

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

Page 46: Teil 2 Querying XML

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:

Page 47: Teil 2 Querying XML

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