Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XQuery Eine XML Abfragesprache

Ähnliche Präsentationen


Präsentation zum Thema: "XQuery Eine XML Abfragesprache"—  Präsentation transkript:

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


Herunterladen ppt "XQuery Eine XML Abfragesprache"

Ähnliche Präsentationen


Google-Anzeigen