63
„XML - Datenrepräsentation und Abfragesprachen“ WS 2001/02 XQuery Eine XML Abfragesprache Referent: Fabian Wleklinski ([email protected])

XML - Datenrepräsentation und Abfragesprachen WS 2001/02 XQuery Eine XML Abfragesprache Referent: Fabian Wleklinski ([email protected])[email protected]

Embed Size (px)

Citation preview

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

„XML - Datenrepräsentation und Abfragesprachen“WS 2001/02

XQueryEine XML Abfragesprache

Referent: Fabian Wleklinski ([email protected])

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 3

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

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

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 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???

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 8

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 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?

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 10

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 11

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 12

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 13

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)

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 15

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 17

XQuery Core Syntax http://www.w3.org/TR/query-semantics, Kapitel6 Konventionen:

„==>“ = Umwandlung XQuery -> XQuery Core „[[ Expr ]]“ = „ Expr“ nach XQuery Core transformiert

Kein „.“ und „/“! [[ . ]] ==> $dot [[ / ]] ==> $roots

Schauen wir uns ein paar Beispiele an...

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 18

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)

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 19

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 21

XQuery Core Syntax [[ E/DATA() ]]

[[ //a ]]

for $v1 in [[ E ]] return typed-value ( [[ E ]] )

[[ descendent-or-self( $root )/a ]]

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 22

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 ()

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 23

XQuery Core Syntax [[<{Et} a1=E1 ... an=En> E </>]]

<{ [[ Et ]] }> {[ ATTRIBUTE a1 [[E1]], ..., ATTRIBUTE an [[En]], [[E]]]} </>

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 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) }

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

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 27

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!)

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 28

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 30

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“.

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 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) =>

syntaktisch gültiger Satz! Semantisch ungültig!

• Prädikat „fahren“ akzeptiert („Auto“, „Baum“) nicht als (Subjekt,Objekt)!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 33

Was ist Semantik? Dynamische Semantik

Betrachtet Werte statt Typen „run-time“ bzw. „evaluation-

time“ Wirkung des

Programms/Ausdrucks!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 34

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!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 35

Was ist Semantik?

Nun wissen wir, was „Semantik“ bedeutet... ...aber wie definiert man sie?

Dazu muss noch etwas ausgeholt werden...

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 36

Was ist Semantik? Umgebung = „Kontext der Ausführung“

Variablenwerte und –typen, Funktionen

Umgebung besteht aus: Typumgebung of Wertumgebung VE of Funktionsumgebung FE of

: ,VE,FE

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 38

Was ist Semantik?

of Datentyp von

VE of Wert von

FE of Funktion

Variable t Variable

Variable v Variable

QName f f

Zugriff auf Elemente der Umgebung mittels „(...)“ siehe oben...

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 39

Was ist Semantik?

, " verändert durch "

of , of ;

, : VE of ,VE of ;

FE of ,FE of

Umgebungen verändern z.B. beim Definieren von Variablen oder Funktionen „lookup“ eines Elementes:

• durchsuche zuerst E´,

• danach durchsuche E

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 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“

Hessen

Frankfurt

Es regnet true

(nass werden) true

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 41

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 43

Statische Semantik

:

/ : ELEMENT ( )

Data t

NCName Data NCName NCName t

Wenn die Eingabe z.B <name>Mustermann</name>

lautet...

...so ist das vom TypELEMENT

name(xs:string) !

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 44

Statische Semantik

1 1 2 2

1 2 1 2

: :

, : ,

Data t Data t

Data Data t t

Der Datentyp einer Folge von Werten...

...ist die Folge der Datentypen!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 45

Statische Semantik

1 2

1 2

: : min max

, : min 1 max 1

Data t Data t m n

Data Data t m n

Ein bestimmter Datentyp, gefolgt von einer Folge

desselben...

...ergibt wieder eine Folge dieses Datentyps!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 46

Statische Semantik

1 1 1 2 2

1 2 2

: , : :

let := return :

Expr t Variable t Expr t

Variable Expr Expr t

Der Datentyp einer Zuweisung...

...ist der Typ des „folgenden“ Ausdrucks!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 47

Statische Semantik

1 2 2 3 3

1 2 3 2 3

:xs:boolean : :

if then else : |

Expr Expr t Expr t

Expr Expr Expr t t

Der Datentyp einer bedingten Anweisung...

...ist entweder das Eine oder das Andere!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 48

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 50

Dynamische Semantik

1 2 2

1 2 2

, |

let := return

Expr v Variable v Expr v

Variable Expr Expr v

Wenn Expr1 falsch ist, und Expr3 den Wert v3 hat, ...

...hat der Wert der Bedingung den Wert v3! (Umgekehrt auch...)

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 51

Dynamische Semantik

1 1 2 2

1 2 1 2= : value-equal( , )

Expr u Expr u

Expr Expr xfo u u

Bei Gleichheitstest mit „= “...

...wird der Knotenwert verglichen!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 52

Dynamische Semantik

1 1 2 2

1 2 1 2== : node-equal( , )

Expr u Expr u

Expr Expr xfo u u

Bei Gleichheitstest mit „== “...

...wird die Knotenidentität geprüft!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 53

Dynamische Semantik

1 3 3

1 2 3 3

false

if then else

Expr Expr v

Expr Expr Expr v

Wenn Expr1 falsch ist, und Expr3 den Wert v3 hat, ...

...hat der Wert der Bedingung den Wert v3! (Umgekehrt auch...)

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 54

Dynamische Semantik

1

1

of / :

,empty-sequence(),empty-sequence(),/ Element-node

empty-sequence(),schema-component t

NameSpec v NameSpec t

vNameSpec

Hier wird ein leeres Element erzeugt!

Beachte den Typ „t“!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 55

Dynamische Semantik

1

1 2

empty( )

for in return empty-sequence()

Expr v v

Variable Expr Expr

Wenn Expr1 zu v ausgewertet werden kann und v die leere Folge ist...

...dann ist der Wert einer for-Schleife die leere

Folge!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 56

Dynamische Semantik

1 1

1 2 1

2

1 2 1

, ,

,

,

for in return append( , , )

n

n n

n

Expr u u

Variable u Expr v

Variable u Expr v

Variable Expr Expr v v

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!

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 57

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 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/

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

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

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

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

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 62

Kontakt & Downloads Fabian Wleklinski:

[email protected]

Folien und Ausarbeitung im PPT-, PDF-, PS- und HTML-Format verfügbar unter: http://www.stormzone.de/uni/Hauptstudium/seminare/xml/

FW/list.php3

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

14. Dezember 2001 XQuery: Eine XML Abfragesprache 63

Ende

Das war‘s! Vielen Dank für Eure

Aufmerksamkeit!