teil 2 querying xml

Post on 06-Jan-2016

76 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

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

top related