Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
XQuery Eine XML Abfragesprache
Referent: Fabian Wleklinski „XML - Datenrepräsentation und Abfragesprachen“ WS 2001/02
2
XQuery: Eine XML Abfragesprache
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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
3
XQuery: Eine XML Abfragesprache
Einleitung Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
4
XQuery: Eine XML Abfragesprache
Warum XQuery? XML weltweit wichtigste (?), technische Sprache z.B. 8,5 Mio. Dokumente bei Suche mit 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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
5
XQuery: Eine XML Abfragesprache
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 14. Dezember 2001 XQuery: Eine XML Abfragesprache
6
Warum XQuery? Anforderungen an XQuery: Wie kann eine XML Syntax
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??? 14. Dezember 2001 XQuery: Eine XML Abfragesprache
7
XQuery: Eine XML Abfragesprache
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...! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
8
XQuery: Eine XML Abfragesprache
Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
9
XQuery: Eine XML Abfragesprache
Der XQuery Standard Wird vom w3c definiert (XQuery Heimatseite) Besteht aus 7 Einzeldokumenten! Und was steht da so drinnen? 14. Dezember 2001 XQuery: Eine XML Abfragesprache
10
XQuery: Eine XML Abfragesprache
Der XQuery Standard XML Query Requirements Definition von Anforderungen an eine XML Abfragesprache Working Draft vom , etwa 11 Seiten XML Query Use Cases Anwendungsszenarien für XQuery Working Draft vom , etwa 83 Seiten 14. Dezember 2001 XQuery: Eine XML Abfragesprache
11
XQuery: Eine XML Abfragesprache
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 , etwa 36 Seiten XQuery 1.0 Formal Semantics Definition der statischen und dynamischen Semantik von XQuery Working Draft vom , etwa 136 Seiten XQuery 1.0: An XML Query Language Zentrales Dokument der Sprachspezifikation, beinhaltet XQuery Syntax Working Draft vom , etwa 80 Seiten 14. Dezember 2001 XQuery: Eine XML Abfragesprache
12
XQuery: Eine XML Abfragesprache
Der XQuery Standard XML Syntax for XQuery 1.0 (XQueryX) (Re-)Definition der Syntax von XQuery mittels XML (XQueryX) Working Draft vom , 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 , etwa 181 Seiten 14. Dezember 2001 XQuery: Eine XML Abfragesprache
13
XQuery: Eine XML Abfragesprache
Der XQuery Standard Schwerpunkt dieser Präsentation: XQuery 1.0 Formal 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. Dezember 2001 XQuery: Eine XML Abfragesprache
14
XQuery: Eine XML Abfragesprache
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...! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
15
XQuery: Eine XML Abfragesprache
Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
16
XQuery: Eine XML Abfragesprache
XQuery Core Syntax 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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
17
XQuery: Eine XML Abfragesprache
XQuery Core Syntax Kapitel6 Konventionen: „==>“ = Umwandlung XQuery -> XQuery Core „[[ Expr ]]“ = „ Expr“ nach XQuery Core transformiert Kein „.“ und „/“! [[ . ]] ==> $dot [[ / ]] ==> $roots Schauen wir uns ein paar Beispiele an... 14. Dezember 2001 XQuery: Eine XML Abfragesprache
18
XQuery: Eine XML Abfragesprache
XQuery Core Syntax empty() empty : Sequence<UnitValue> -> xs:boolean gibt genau dann true zurück, wenn das Argument die leere Folge ist empty-sequence() empty-sequence : Sequence<UnitValue> erzeugt eine leere Folge (Konstruktor) 14. Dezember 2001 XQuery: Eine XML Abfragesprache
19
XQuery: Eine XML Abfragesprache
XQuery Core Syntax xfo:value-equal() xfo:value-equal : (Sequence<UnitValue>, Sequence<UnitValue>) -> xs:boolean gibt genau dann true zurück, wenn beide Argumente vom Wert her gleich sind xfo:node-equal() xfo: node-equal : (Node,Node)->xs:boolean gibt genau dann true zurück, wenn beide Argumente die selbe Identität haben 14. Dezember 2001 XQuery: Eine XML Abfragesprache
20
XQuery: Eine XML Abfragesprache
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 $v case ELEMENT a (AnyComplexType) return $v default return () 14. Dezember 2001 XQuery: Eine XML Abfragesprache
21
XQuery: Eine XML Abfragesprache
XQuery Core Syntax [[ E/DATA() ]] [[ //a ]] for $v1 in [[ E ]] return typed-value ( [[ E ]] ) [[ descendent-or-self( $root )/a ]] 14. Dezember 2001 XQuery: Eine XML Abfragesprache
22
XQuery: Eine XML Abfragesprache
XQuery Core Syntax [[ E[i1 to i2] ]] for $v in index([[ E1 ]]) return if ([[ $v/fst/data() >= i1 ]] and [[ $v/fst/data() <= i2 ]]) then [[ $v/snd/deref() ]] else () 14. Dezember 2001 XQuery: Eine XML Abfragesprache
23
XQuery: Eine XML Abfragesprache
XQuery Core Syntax [[<{Et} a1=E1 ... an=En> E </>]] <{ [[ Et ]] }> {[ ATTRIBUTE a1 [[E1]], ..., ATTRIBUTE an [[En]], [[E]] ]} </> 14. Dezember 2001 XQuery: Eine XML Abfragesprache
24
XQuery: Eine XML Abfragesprache
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) } 14. Dezember 2001 XQuery: Eine XML Abfragesprache
25
XQuery: Eine XML Abfragesprache
XQuery Core Syntax Datenmodell wird ebenfalls von XSLT 2.0 + XPath 2.0 benutzt! sowie von weiteren XML Anwendungen Basierend auf XML Information Set 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache
26
XQuery: Eine XML Abfragesprache
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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
27
XQuery: Eine XML Abfragesprache
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!) 14. Dezember 2001 XQuery: Eine XML Abfragesprache
28
XQuery: Eine XML Abfragesprache
Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
29
XQuery: Eine XML Abfragesprache
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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
30
XQuery: Eine XML Abfragesprache
Was ist Semantik? Beispiel: a = b; In Java syntaktisch gültig! Beispiel (natürliche Sprache): Peter fährt Auto. (Subjekt Prädikat Objekt) => syntaktisch gültiger Satz! Aber auch „Baum fährt Auto“ entspricht dieser Regel! => syntaktische Regeln sind nur sehr „schwach“. 14. Dezember 2001 XQuery: Eine XML Abfragesprache
31
XQuery: Eine XML Abfragesprache
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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
32
XQuery: Eine XML Abfragesprache
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) => syntaktisch gültiger Satz! Semantisch ungültig! Prädikat „fahren“ akzeptiert („Auto“, „Baum“) nicht als (Subjekt,Objekt)! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
33
XQuery: Eine XML Abfragesprache
Was ist Semantik? Dynamische Semantik Betrachtet Werte statt Typen „run-time“ bzw. „evaluation-time“ Wirkung des Programms/Ausdrucks! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
34
XQuery: Eine XML Abfragesprache
Was ist Semantik? Beispiel: a = (Integer) new Object(); syntaktisch gültig (Java) Nach statischer Semantik ebenfalls fültig! => 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. => dynamische Semantik hat kontextabhängigen Charakter! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
35
XQuery: Eine XML Abfragesprache
Was ist Semantik? Nun wissen wir, was „Semantik“ bedeutet... ...aber wie definiert man sie? Dazu muss noch etwas ausgeholt werden... 14. Dezember 2001 XQuery: Eine XML Abfragesprache
36
XQuery: Eine XML Abfragesprache
Was ist Semantik? Umgebung = „Kontext der Ausführung“ Variablenwerte und –typen, Funktionen Umgebung besteht aus: Typumgebung of Wertumgebung VE of Funktionsumgebung FE of 14. Dezember 2001 XQuery: Eine XML Abfragesprache
37
XQuery: Eine XML Abfragesprache
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) 14. Dezember 2001 XQuery: Eine XML Abfragesprache
38
XQuery: Eine XML Abfragesprache
Was ist Semantik? Zugriff auf Elemente der Umgebung mittels „(...)“ siehe oben... 14. Dezember 2001 XQuery: Eine XML Abfragesprache
39
XQuery: Eine XML Abfragesprache
Was ist Semantik? Umgebungen verändern z.B. beim Definieren von Variablen oder Funktionen „lookup“ eines Elementes: durchsuche zuerst E´, danach durchsuche E 14. Dezember 2001 XQuery: Eine XML Abfragesprache
40
XQuery: Eine XML Abfragesprache
Was ist Semantik? Wie definiert man eine Semantik? Viele Möglichkeiten, wir beschränken uns auf: Abstraktes Regelwerk, Menge von „wenn-dann-Ausdrücken“ 14. Dezember 2001 XQuery: Eine XML Abfragesprache
41
XQuery: Eine XML Abfragesprache
Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
42
XQuery: Eine XML Abfragesprache
Statische Semantik 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...! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
43
Statische Semantik Wenn die Eingabe z.B <name>Mustermann</name> lautet... ...so ist das vom Typ ELEMENT name(xs:string) ! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
44
Statische Semantik Der Datentyp einer Folge von Werten...
...ist die Folge der Datentypen! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
45
Statische Semantik Ein bestimmter Datentyp, gefolgt von einer Folge desselben... ...ergibt wieder eine Folge dieses Datentyps! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
46
Statische Semantik Der Datentyp einer Zuweisung...
...ist der Typ des „folgenden“ Ausdrucks! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
47
Statische Semantik Der Datentyp einer bedingten Anweisung...
...ist entweder das Eine oder das Andere! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
48
XQuery: Eine XML Abfragesprache
Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
49
XQuery: Eine XML Abfragesprache
Dynamische Semantik Kapitel 5 Auswertung erst zur Abfragezeit! Performance! Fehlerquelle! Schauen wir uns ein paar exemplarische Regeln an...! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
50
Dynamische Semantik Wenn Expr1 falsch ist, und Expr3 den Wert v3 hat, ... ...hat der Wert der Bedingung den Wert v3! (Umgekehrt auch...) 14. Dezember 2001 XQuery: Eine XML Abfragesprache
51
Dynamische Semantik Bei Gleichheitstest mit „= “...
...wird der Knotenwert verglichen! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
52
Dynamische Semantik Bei Gleichheitstest mit „== “...
...wird die Knotenidentität geprüft! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
53
Dynamische Semantik Wenn Expr1 falsch ist, und Expr3 den Wert v3 hat, ... ...hat der Wert der Bedingung den Wert v3! (Umgekehrt auch...) 14. Dezember 2001 XQuery: Eine XML Abfragesprache
54
Dynamische Semantik Hier wird ein leeres Element erzeugt!
Beachte den Typ „t“! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
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! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
56
Wenn Expr1 zu u1 bis un mit Werten v1 bis vn ausgewertet werden kann...
Dynamische Semantik ...dann ist der Wert einer for-Schleife die Folge v1,...,vn! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
57
XQuery: Eine XML Abfragesprache
Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur 14. Dezember 2001 XQuery: Eine XML Abfragesprache
58
Software und Literatur
XQuery 1.0: An XML Query Language XQuery 1.0 Formal Semantics XQuery 1.0 and XPath 2.0 Data Model 14. Dezember 2001 XQuery: Eine XML Abfragesprache
59
Software und Literatur
Software AG XML Tamino + AddOns Software AG Quip XML Software Guide: Specialized XML Software XML Software Guide: Additional XML Software Resource Lists 14. Dezember 2001 XQuery: Eine XML Abfragesprache
60
Software und Literatur
XMLSOFTWARE XML Editors XMLSOFTWARE XML Browsers XML Software Guide: XML and XSL Editors XML.com Editors 14. Dezember 2001 XQuery: Eine XML Abfragesprache
61
Software und Literatur
Übersicht von Free XML Tools 14. Dezember 2001 XQuery: Eine XML Abfragesprache
62
XQuery: Eine XML Abfragesprache
Kontakt & Downloads Fabian Wleklinski: Folien und Ausarbeitung im PPT-, PDF-, PS- und HTML-Format verfügbar unter: 14. Dezember 2001 XQuery: Eine XML Abfragesprache
63
XQuery: Eine XML Abfragesprache
Ende Das war‘s! Vielen Dank für Eure Aufmerksamkeit! 14. Dezember 2001 XQuery: Eine XML Abfragesprache
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.