Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML - Datenrepräsentation und Abfragesprachen WS 2001/02 XQuery Eine XML Abfragesprache Referent: Fabian Wleklinski

Ähnliche Präsentationen


Präsentation zum Thema: "XML - Datenrepräsentation und Abfragesprachen WS 2001/02 XQuery Eine XML Abfragesprache Referent: Fabian Wleklinski"—  Präsentation transkript:

1 XML - Datenrepräsentation und Abfragesprachen WS 2001/02 XQuery Eine XML Abfragesprache Referent: Fabian Wleklinski (fabian@wleklinski.de)fabian@wleklinski.de

2 14. Dezember 2001 XQuery: Eine XML Abfragesprache2 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache3 Einleitung Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

4 14. Dezember 2001 XQuery: Eine XML Abfragesprache4 Warum XQuery? XML weltweit wichtigste (?), technische Sprache z.B. 8,5 Mio. Dokumente bei Suche mit www.google.comwww.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 14. Dezember 2001 XQuery: Eine XML Abfragesprache5 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache6 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache7 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache8 Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

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

10 14. Dezember 2001 XQuery: Eine XML Abfragesprache10 Der XQuery Standard (1) XML Query Requirements Definition von Anforderungen an eine XML Abfragesprache Working Draft vom 15.2.2001, etwa 11 Seiten (2) XML Query Use Cases Anwendungsszenarien für XQuery Working Draft vom 8.6.2001, etwa 83 Seiten

11 14. Dezember 2001 XQuery: Eine XML Abfragesprache11 Der XQuery Standard (3) 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 (4) XQuery 1.0 Formal Semantics Definition der statischen und dynamischen Semantik von XQuery Working Draft vom 7.6.2001, etwa 136 Seiten (5) XQuery 1.0: An XML Query Language Zentrales Dokument der Sprachspezifikation, beinhaltet XQuery Syntax Working Draft vom 7.6.2001, etwa 80 Seiten

12 14. Dezember 2001 XQuery: Eine XML Abfragesprache12 Der XQuery Standard (6) 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 (7) 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache13 Der XQuery Standard Schwerpunkt dieser Präsentation: XQuery 1.0 Formal Semantics http://www.w3.org/TR/query-semantics/ Gliederung: 1. Introduction (2 Seiten) 2. XQuery Semantics by Example(26 Seiten) 3. XQuery Core Syntax(10 Seiten) 4. Static Semantics: Type-Inference Rules(25 Seiten) 5. Dynamic Semantics: Value-Inference Rules(12 Seiten) 6. XQuery Mapping to Core(13 Seiten) 7. References(45 Seiten)

14 14. Dezember 2001 XQuery: Eine XML Abfragesprache14 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache15 Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

16 14. Dezember 2001 XQuery: Eine XML Abfragesprache16 XQuery Core Syntax http://www.w3.org/TR/query-semantics, Kapitel 3 http://www.w3.org/TR/query-semantics 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache17 XQuery Core Syntax http://www.w3.org/TR/query-semantics, Kapitel6 http://www.w3.org/TR/query-semantics Konventionen: ==>= Umwandlung XQuery -> XQuery Core [[ Expr ]]= Expr nach XQuery Core transformiert Kein. und /! [[. ]]==>$dot [[ / ]]==>$roots Schauen wir uns ein paar Beispiele an...

18 14. Dezember 2001 XQuery: Eine XML Abfragesprache18 XQuery Core Syntax empty() empty : Sequence -> xs:boolean gibt genau dann true zurück, wenn das Argument die leere Folge ist empty-sequence() empty-sequence : Sequence erzeugt eine leere Folge (Konstruktor)

19 14. Dezember 2001 XQuery: Eine XML Abfragesprache19 XQuery Core Syntax xfo:value-equal() xfo:value-equal : (Sequence, Sequence ) -> 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

20 14. Dezember 2001 XQuery: Eine XML Abfragesprache20 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache21 XQuery Core Syntax [[ E/DATA() ]] [[ //a ]] for $v1 in [[ E ]] return typed-value ( [[ E ]] ) [[ descendent-or-self( $root )/a ]]

22 14. Dezember 2001 XQuery: Eine XML Abfragesprache22 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 ()

23 14. Dezember 2001 XQuery: Eine XML Abfragesprache23 XQuery Core Syntax [[ E ]] {[ ATTRIBUTE a1 [[E1]],..., ATTRIBUTE an [[En]], [[E]] ]}

24 14. Dezember 2001 XQuery: Eine XML Abfragesprache24 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache25 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache26 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache27 XQuery Core Syntax Beide Oberflächensyntaxen von XQuery können auf XQuery Core Syntax abgebildet werden! Es gibt nur wenige Ausnahmen (1) Vereinfachungen/Aliase der Oberflächensyntaxen Z.B. Existenz-Quantor (2) 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache28 Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

29 14. Dezember 2001 XQuery: Eine XML Abfragesprache29 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache30 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.

31 14. Dezember 2001 XQuery: Eine XML Abfragesprache31 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache32 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)!

33 14. Dezember 2001 XQuery: Eine XML Abfragesprache33 Was ist Semantik? Dynamische Semantik Betrachtet Werte statt Typen run-time bzw. evaluation- time Wirkung des Programms/Ausdrucks!

34 14. Dezember 2001 XQuery: Eine XML Abfragesprache34 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!

35 14. Dezember 2001 XQuery: Eine XML Abfragesprache35 Was ist Semantik? Nun wissen wir, was Semantik bedeutet......aber wie definiert man sie? Dazu muss noch etwas ausgeholt werden...

36 14. Dezember 2001 XQuery: Eine XML Abfragesprache36 Was ist Semantik? Umgebung = Kontext der Ausführung Variablenwerte und –typen, Funktionen Umgebung besteht aus: Typumgebung of WertumgebungVE of FunktionsumgebungFE of

37 14. Dezember 2001 XQuery: Eine XML Abfragesprache37 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache38 Was ist Semantik? Zugriff auf Elemente der Umgebung mittels (...) siehe oben...

39 14. Dezember 2001 XQuery: Eine XML Abfragesprache39 Was ist Semantik? Umgebungen verändern z.B. beim Definieren von Variablen oder Funktionen lookup eines Elementes: durchsuche zuerst E´, danach durchsuche E

40 14. Dezember 2001 XQuery: Eine XML Abfragesprache40 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache41 Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

42 14. Dezember 2001 XQuery: Eine XML Abfragesprache42 Statische Semantik http://www.w3.org/TR/quer y-semantics, Kapitel 4 http://www.w3.org/TR/quer y-semantics 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache43 Statische Semantik Wenn die Eingabe z.B Mustermann lautet......so ist das vom Typ ELEMENT name(xs:string) !

44 14. Dezember 2001 XQuery: Eine XML Abfragesprache44 Statische Semantik Der Datentyp einer Folge von Werten......ist die Folge der Datentypen!

45 14. Dezember 2001 XQuery: Eine XML Abfragesprache45 Statische Semantik Ein bestimmter Datentyp, gefolgt von einer Folge desselben......ergibt wieder eine Folge dieses Datentyps!

46 14. Dezember 2001 XQuery: Eine XML Abfragesprache46 Statische Semantik Der Datentyp einer Zuweisung......ist der Typ des folgenden Ausdrucks!

47 14. Dezember 2001 XQuery: Eine XML Abfragesprache47 Statische Semantik Der Datentyp einer bedingten Anweisung......ist entweder das Eine oder das Andere!

48 14. Dezember 2001 XQuery: Eine XML Abfragesprache48 Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

49 14. Dezember 2001 XQuery: Eine XML Abfragesprache49 Dynamische Semantik http://www.w3.org/TR/quer y-semantics, Kapitel 5 http://www.w3.org/TR/quer y-semantics Auswertung erst zur Abfragezeit! Performance! Fehlerquelle! Schauen wir uns ein paar exemplarische Regeln an...!

50 14. Dezember 2001 XQuery: Eine XML Abfragesprache50 Dynamische Semantik Wenn Expr 1 falsch ist, und Expr 3 den Wert v 3 hat,......hat der Wert der Bedingung den Wert v 3 ! (Umgekehrt auch...)

51 14. Dezember 2001 XQuery: Eine XML Abfragesprache51 Dynamische Semantik Bei Gleichheitstest mit =......wird der Knotenwert verglichen!

52 14. Dezember 2001 XQuery: Eine XML Abfragesprache52 Dynamische Semantik Bei Gleichheitstest mit ==......wird die Knotenidentität geprüft!

53 14. Dezember 2001 XQuery: Eine XML Abfragesprache53 Dynamische Semantik Wenn Expr 1 falsch ist, und Expr 3 den Wert v 3 hat,......hat der Wert der Bedingung den Wert v 3 ! (Umgekehrt auch...)

54 14. Dezember 2001 XQuery: Eine XML Abfragesprache54 Dynamische Semantik Hier wird ein leeres Element erzeugt! Beachte den Typ t !

55 14. Dezember 2001 XQuery: Eine XML Abfragesprache55 Dynamische Semantik Wenn Expr 1 zu v ausgewertet werden kann und v die leere Folge ist......dann ist der Wert einer for- Schleife die leere Folge!

56 14. Dezember 2001 XQuery: Eine XML Abfragesprache56 Dynamische Semantik Wenn Expr 1 zu u 1 bis u n mit Werten v 1 bis v n ausgewertet werden kann......dann ist der Wert einer for- Schleife die Folge v 1,...,v n !

57 14. Dezember 2001 XQuery: Eine XML Abfragesprache57 Warum XQuery? Der XQuery Standard XQuery Core Syntax Was ist Semantik? Statische Semantik Dynamische Semantik Software und Literatur

58 14. Dezember 2001 XQuery: Eine XML Abfragesprache58 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache59 Software und Literatur Software AG XML Tamino + AddOns www.xmlstarterkit.com Software AG Quip http://www.xmlstarterkit.com/developer/quip/default.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 14. Dezember 2001 XQuery: Eine XML Abfragesprache60 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 14. Dezember 2001 XQuery: Eine XML Abfragesprache61 Software und Literatur Übersicht von Free XML Tools http://www.garshol.priv.no/download/xmltools/name_ix.ht ml http://www.garshol.priv.no/download/xmltools/name_ix.ht ml Übersicht von Free XML Tools http://www.garshol.priv.no/download/xmltools/name_ix.ht ml http://www.garshol.priv.no/download/xmltools/name_ix.ht ml

62 14. Dezember 2001 XQuery: Eine XML Abfragesprache62 Kontakt & Downloads Fabian Wleklinski: fabian@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 http://www.stormzone.de/uni/Hauptstudium/seminare/xml /FW/list.php3

63 14. Dezember 2001 XQuery: Eine XML Abfragesprache63 Ende Das wars! Vielen Dank für Eure Aufmerksamkeit!


Herunterladen ppt "XML - Datenrepräsentation und Abfragesprachen WS 2001/02 XQuery Eine XML Abfragesprache Referent: Fabian Wleklinski"

Ähnliche Präsentationen


Google-Anzeigen