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. 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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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"
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"
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-
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
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)
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)
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 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']]
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>>
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
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.
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
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
• 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
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
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')
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)
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)
• 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
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