- PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

Description:

Seminarpr sentation 'XQuery: A Query Language for XML' von Fabian Wleklinski im Rahmen des Seminares 'XML - Datenrepr sentation und Abfragesprachen' im ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 64
Provided by: Fabia98
Category:
Tags: tamino

less

Transcript and Presenter's Notes

Title:


1
XQueryEine XML Abfragesprache
Referent Fabian Wleklinski (fabian_at_wleklinski.de)
  • XML - Datenrepräsentation und AbfragesprachenWS
    2001/02

2
Einleitung
  • Formale Semantik von XQuery...
  • ...ein 130 Seiten-Wälzer!
  • Ziele der Präsentation
  • Wie ist die XQuery Semantik definiert?
  • Was sind die Konzepte dahinter?
  • Einblick in die XQuery Semantik!

3
Einleitung
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

4
Warum XQuery?
  • XML
  • weltweit wichtigste (?), technische Sprache
  • z.B. 8,5 Mio. Dokumente bei Suche mit
    www.google.com
  • vgl. Suche nach SGML 1 Mio. Dokumente
  • Lösung für Ansprüche des Informationszeitalters?
  • XML zur Speicherung, Ãœbertragung und Bearbeitung!
  • Bedarf für Transformation bzw. Datenabfrage!
  • XML benötigt Komplementärstandards!
  • z.B. XPath, XLink, XPointer, XSL, XQuery
  • Nutzen des Basisstandards nur beschränkt!

5
Warum XQuery?
  • Warum kein SQL/OQL/... ???
  • Oracle,MSSQL,DB/2,... bieten doch XML an!?
  • proprietäre Zugriffsmethoden
  • Hauptaugenmerk nach wie vor relationale Daten
  • Featuretis, XML ist trendy
  • Lediglich transparente (?) Mechanismen für
    Ein-/Ausgabe
  • Unterstützung durch zukünftige Suchmaschinen?
  • Direkte Eingabe von XQuery-Abfragen
  • z.B. gezielte Suche nach Texten in Ãœberschriften
  • z.B. gezielte Suche nach Bildbeschreibungen

6
Warum XQuery?
  • Anforderungen an XQuery
  • Deklarative Syntax
  • Intuitive, menschenlesbare Syntax
  • XML Sprache
  • Protokollunabhängigkeit
  • Fehlerbehandlung
  • Erweiterbarkeit
  • spezielle XML-Funktionalitäten
  • Und und und ...!

Wie kann eine XML Syntax menschenlesbar sein???
7
Warum XQuery?
  • Menschenlesbarkeit vs. XML?!?
  • Lösung 2 Syntaxen!
  • XQuery Syntax (menschenlesbar)
  • XQueryX Syntax (XML)
  • Dazu später mehr...
  • Problem Definition der Semantik!?
  • Auf welche Syntax soll bezogen werden?
  • Lösung XQuery Core Syntax
  • Dazu später mehr...!

8
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

9
Der XQuery Standard
  • Wird vom w3c definiert
  • http//www.w3.org/XML/Query (XQuery Heimatseite)
  • Besteht aus 7 Einzeldokumenten!
  • Und was steht da so drinnen?

10
Der XQuery Standard
  • XML Query Requirements
  • Definition von Anforderungen an eine XML
    Abfragesprache
  • Working Draft vom 15.2.2001, etwa 11 Seiten
  • XML Query Use Cases
  • Anwendungsszenarien für XQuery
  • Working Draft vom 8.6.2001, etwa 83 Seiten

11
Der XQuery Standard
  • XQuery 1.0 and XPath 2.0 Data Model
  • Definition des Datenmodells von XQuery,
    Datenformate der Ein- und Ausgabe einer Abfrage
  • Working Draft vom 7.6.2001, etwa 36 Seiten
  • XQuery 1.0 Formal Semantics
  • Definition der statischen und dynamischen
    Semantik von XQuery
  • Working Draft vom 7.6.2001, etwa 136 Seiten
  • XQuery 1.0 An XML Query Language
  • Zentrales Dokument der Sprachspezifikation,
    beinhaltet XQuery Syntax
  • Working Draft vom 7.6.2001, etwa 80 Seiten

12
Der XQuery Standard
  • XML Syntax for XQuery 1.0 (XQueryX)
  • (Re-)Definition der Syntax von XQuery mittels XML
    (XQueryX)
  • Working Draft vom 7.6.2001, etwa 21 Seiten
  • XQuery 1.0 and XPath 2.0 Functions and Operators
    Version 1.0
  • Definition von grundlegenden Operatoren und
    Funktionen von XML Schema Datentypen für den
    Einsatz in XQuery und XPath.
  • Working Draft vom 27.8.2001, etwa 181 Seiten

13
Der XQuery Standard
  • Schwerpunkt dieser Präsentation XQuery 1.0
    Formal Semantics
  • http//www.w3.org/TR/query-semantics/
  • Gliederung
  • Introduction (2 Seiten)
  • XQuery Semantics by Example (26 Seiten)
  • XQuery Core Syntax (10 Seiten)
  • Static Semantics Type-Inference Rules (25
    Seiten)
  • Dynamic Semantics Value-Inference Rules (12
    Seiten)
  • XQuery Mapping to Core (13 Seiten)
  • References (45 Seiten)

14
Der XQuery Standard
  • Eine XQuery Anfrage besteht aus
  • Preamble
  • Schemadeklarationen
  • Namensraumdeklarationen
  • Funktionsdeklarationen
  • Body
  • Genau 1 XQuery Ausdruck
  • XQuery benutzt XML Schema und XPath!
  • Einige Erweiterungen und Einschränkungen
  • Später mehr...!

15
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

16
XQuery Core Syntax
  • http//www.w3.org/TR/query-semantics, Kapitel 3
  • operiert auf XQuery Datenmodell
  • Beide Oberflächensyntaxen lassen sich auf die
    XQuery Core Syntax abbilden
  • dient zur Definition der XQuery Semantik!
  • kann nicht benutzt werden!

17
XQuery Core Syntax
  • http//www.w3.org/TR/query-semantics, Kapitel6
  • Konventionen
  • gt Umwandlung XQuery -gt XQuery Core
  • Expr Expr nach XQuery Core
    transformiert
  • Kein . und /!
  • . gt dot
  • / gt roots
  • Schauen wir uns ein paar Beispiele an...

18
XQuery Core Syntax
  • empty()
  • empty SequenceltUnitValuegt -gt xsboolean
  • gibt genau dann true zurück, wenn das Argument
    die leere Folge ist
  • empty-sequence()
  • empty-sequence SequenceltUnitValuegt
  • erzeugt eine leere Folge (Konstruktor)

19
XQuery Core Syntax
  • xfovalue-equal()
  • xfovalue-equal (SequenceltUnitValuegt,
    SequenceltUnitValuegt) -gt xsboolean
  • gibt genau dann true zurück, wenn beide Argumente
    vom Wert her gleich sind
  • xfonode-equal()
  • xfo node-equal (Node,Node)-gtxsboolean
  • gibt genau dann true zurück, wenn beide Argumente
    die selbe Identität haben

20
XQuery Core Syntax
  • Keine Pfadausdrücke!
  • Z.B. statt E/a

for v1 in E return for v2 in
children(v1) return typeswitch (v2) as
v3 case ELEMENT a (AnyComplexType)
return v3 default return ()
21
XQuery Core Syntax
  • E/DATA()
  • //a

for v1 in E return typed-value ( E
)
descendent-or-self( root )/a
22
XQuery Core Syntax
  • Ei1 to i2

for v in index( E1 ) return if (
v/fst/data() gt i1 and v/fst/data() lt
i2 ) then v/snd/deref() else ()
23
XQuery Core Syntax
  • ltEt a1E1 ... anEngt E lt/gt

lt Et gt ATTRIBUTE a1 E1, ...,
ATTRIBUTE an En, E lt/gt
24
XQuery Core Syntax
  • (TREAT AS Type) E
  • root()

typeswitch ( E ) as v case Type return v
default return ERROR
function root(AnyElement x) returns AnyElement
let p parent(x) return if p
() then x else root(p)
25
XQuery Core Syntax
  • Datenmodell
  • wird ebenfalls von XSLT 2.0 XPath 2.0 benutzt!
  • sowie von weiteren XML Anwendungen
  • Basierend auf XML Information Set
  • http//www.w3.org/TR/xml-infoset
  • Erweitert um
  • Unterstützung der Datentypen aus XML Schema
  • Datentypen für die Repräsentation von mehreren
    Dokumenten
  • Referenzen für den Verweis eines XML-Elementes
    auf ein anderes XML-Element

26
XQuery Core Syntax
  • 5 Arten von Datentypen
  • Knoten
  • Folgen
  • Schemakomponenten
  • Einfache Werte
  • 19 XML Schema Datentypen
  • Fehler
  • Ein einziger Fehlertyp!
  • Alle Wertebereiche (bis auf Fehler) sind
    unendlich!

27
XQuery Core Syntax
  • Beide Oberflächensyntaxen von XQuery können auf
    XQuery Core Syntax abgebildet werden!
  • Es gibt nur wenige Ausnahmen
  • Vereinfachungen/Aliase der Oberflächensyntaxen
  • Z.B. Existenz-Quantor
  • Noch offene Probleme
  • XQuery Core Syntax ist syntaxneutral ?
  • Weitere Oberflächensyntaxen sind denkbar
  • Semantik muss nicht einmal pro Syntax definiert
    werden! (Anders als z.B. bei C!)

28
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

29
Was ist Semantik?
  • Syntax
  • Definition des Aussehens einer Sprache
  • Welches Wort gehört zur Sprache, welches nicht?
  • Es kann mehr als eine Syntax für eine Semantik
    geben!
  • Siehe XQuery!
  • Lässt sich durch einen Parser validieren!

30
Was ist Semantik?
  • Beispiel a b
  • In Java syntaktisch gültig!
  • Beispiel (natürliche Sprache) Peter fährt Auto.
  • (Subjekt Prädikat Objekt) gt syntaktisch gültiger
    Satz!
  • Aber auch Baum fährt Auto entspricht dieser
    Regel!
  • gt syntaktische Regeln sind nur sehr schwach.

31
Was ist Semantik?
  • Semantik
  • Semantik Lehre von inhaltlicher Bedeutung einer
    Sprache
  • Z.B. Programmiersprachen
  • Semantik statische Semantik dynamische
    Semantik
  • Neben Syntax 2. Standbein formaler
    Sprachdefinition
  • Statische Semantik
  • Betrachtet Datentypen
  • compile-time bzw. analyze-time
  • frühe Analyse, Fehlererkennung und Optimierung!

32
Was ist Semantik?
  • Beispiel boolean a (int) b
  • syntaktisch gültig (Java), semantisch ungültig!
  • Wird beim Compilieren bemängelt!
  • Beispiel (natürliche Sprache) Auto fährt Baum.
  • (Subjekt Prädikat Objekt) gt syntaktisch gültiger
    Satz!
  • Semantisch ungültig!
  • Prädikat fahren akzeptiert (Auto, Baum)
    nicht als (Subjekt,Objekt)!

33
Was ist Semantik?
  • Dynamische Semantik
  • Betrachtet Werte statt Typen
  • run-time bzw. evaluation-time
  • Wirkung des Programms/Ausdrucks!

34
Was ist Semantik?
  • Beispiel a (Integer) new Object()
  • syntaktisch gültig (Java)
  • Nach statischer Semantik ebenfalls fültig! gt
    Wird beim Compilieren nicht bemängelt!
  • Beispiel (natürliche Sprache) Peter fährt Auto.
  • Syntaktisch gültiger Satz, statisch-semantisch
    gültiger Satz!
  • Nach dynamischer Semantik aber eventuell
    ungültig, z.B. dann, wenn Peter ein Kind ist.
  • gt dynamische Semantik hat kontextabhängigen
    Charakter!

35
Was ist Semantik?
  • Nun wissen wir, was Semantik bedeutet...
  • ...aber wie definiert man sie?
  • Dazu muss noch etwas ausgeholt werden...

36
Was ist Semantik?
  • Umgebung Kontext der Ausführung
  • Variablenwerte und typen, Funktionen
  • Umgebung ? besteht aus
  • Typumgebung ? of ?
  • Wertumgebung VE of ?
  • Funktionsumgebung FE of ?

37
Was ist Semantik?
  • Typumgebung (static environment)
  • Festes Regelwerk über Datentypen
  • Wertumgebung (value environment)
  • Werte der sichtbaren Variablen
  • 2-Tupel (Variablenname,Wert)
  • Funktionsumgebung (function environment)
  • Deklarationen der sichtbaren Funktionen
  • 3-Tupel (Funktionsname,Ausdruck,Parameterliste)

38
Was ist Semantik?
  • Zugriff auf Elemente der Umgebung mittels (...)
  • siehe oben...

39
Was ist Semantik?
  • Umgebungen verändern
  • z.B. beim Definieren von Variablen oder
    Funktionen
  • lookup eines Elementes
  • durchsuche zuerst E,
  • danach durchsuche E

40
Was ist Semantik?
  • Wie definiert man eine Semantik?
  • Viele Möglichkeiten, wir beschränken uns auf
  • Abstraktes Regelwerk,
  • Menge von wenn-dann-Ausdrücken

41
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

42
Statische Semantik
  • http//www.w3.org/TR/query-semantics, Kapitel 4
  • Statische Semantik von XQuery nutzt XML Schema
  • Typisierung von Ausdrücken bereits zur
    Analysezeit!
  • Frühe Analyse,
  • Fehlererkennung,
  • Kompilierung,
  • Optimierung!
  • Schauen wir uns einige Regeln an...!

43
Statische Semantik
Wenn die Eingabe z.B ltnamegtMustermannlt/namegt
lautet...
...so ist das vom TypELEMENT name(xsstring) !
44
Statische Semantik
Der Datentyp einer Folge von Werten...
...ist die Folge der Datentypen!
45
Statische Semantik
Ein bestimmter Datentyp, gefolgt von einer Folge
desselben...
...ergibt wieder eine Folge dieses Datentyps!
46
Statische Semantik
Der Datentyp einer Zuweisung...
...ist der Typ des folgenden Ausdrucks!
47
Statische Semantik
Der Datentyp einer bedingten Anweisung...
...ist entweder das Eine oder das Andere!
48
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

49
Dynamische Semantik
  • http//www.w3.org/TR/query-semantics, Kapitel 5
  • Auswertung erst zur Abfragezeit!
  • Performance!
  • Fehlerquelle!
  • Schauen wir uns ein paar exemplarische Regeln
    an...!

50
Dynamische Semantik
Wenn Expr1 falsch ist, und Expr3 den Wert v3 hat,
...
...hat der Wert der Bedingung den Wert v3!
(Umgekehrt auch...)
51
Dynamische Semantik
Bei Gleichheitstest mit ...
...wird der Knotenwert verglichen!
52
Dynamische Semantik
Bei Gleichheitstest mit ...
...wird die Knotenidentität geprüft!
53
Dynamische Semantik
Wenn Expr1 falsch ist, und Expr3 den Wert v3 hat,
...
...hat der Wert der Bedingung den Wert v3!
(Umgekehrt auch...)
54
Dynamische Semantik
Hier wird ein leeres Element erzeugt!
Beachte den Typ t!
55
Dynamische Semantik
Wenn Expr1 zu v ausgewertet werden kann und v die
leere Folge ist...
...dann ist der Wert einer for-Schleife die leere
Folge!
56
Dynamische Semantik
Wenn Expr1 zu u1 bis un mit Werten v1 bis vn
ausgewertet werden kann...
...dann ist der Wert einer for-Schleife die Folge
v1,...,vn!
57
  • Warum XQuery?
  • Der XQuery Standard
  • XQuery Core Syntax
  • Was ist Semantik?
  • Statische Semantik
  • Dynamische Semantik
  • Software und Literatur

58
Software und Literatur
  • XQuery 1.0 An XML Query Language
  • http//www.w3.org/TR/xquery/
  • XQuery 1.0 Formal Semantics
  • http//www.w3.org/TR/query-semantics/
  • XQuery 1.0 and XPath 2.0 Data Model
  • http//www.w3.org/TR/query-datamodel/

59
Software und Literatur
  • Software AG XML Tamino AddOns
  • www.xmlstarterkit.com
  • Software AG Quip
  • http//www.xmlstarterkit.com/developer/quip/defaul
    t.htm
  • XML Software Guide Specialized XML Software
  • http//wdvl.com/Software/XML/special.html
  • XML Software Guide Additional XML Software
    Resource Lists
  • http//wdvl.com/Software/XML/resources.html

60
Software und Literatur
  • XMLSOFTWARE XML Editors
  • http//xmlsoftware.com/editors/
  • XMLSOFTWARE XML Browsers
  • http//www.xmlsoftware.com/browsers/
  • XML Software Guide XML and XSL Editors
  • http//wdvl.com/Software/XML/editors.html
  • XML.com Editors
  • http//www.xml.com/pub/pt/3

61
Software und Literatur
  • Ãœbersicht von Free XML Tools
  • http//www.garshol.priv.no/download/xmltools/name_
    ix.html
  • Ãœbersicht von Free XML Tools
  • http//www.garshol.priv.no/download/xmltools/name_
    ix.html

62
Kontakt Downloads
  • Fabian Wleklinski
  • fabian_at_wleklinski.de
  • Folien und Ausarbeitung im PPT-, PDF-, PS- und
    HTML-Format verfügbar unter
  • http//www.stormzone.de/uni/Hauptstudium/seminare/
    xml/FW/list.php3

63
Ende
  • Das wars!
  • Vielen Dank für Eure Aufmerksamkeit!
Write a Comment
User Comments (0)
About PowerShow.com