XML als Web Datenformat Motivation

Transcription

XML als Web Datenformat Motivation
XML als Web Datenformat
Motivation
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Unterschiede und Gemeinsamkeiten
HTML
• Dokumentorientiert
• Flexibilität
• Layout
• Präsentation
Datenbanken
• Datenorientiert
• Abstraktion
– Anfragesprache
– Manipulationssprache
• Formales Modell
• Vermeiden von Redundanz
• Versionierung, Nebenläufigkeit des Zugriffs,…
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Szenario: B2B
Firma SellItAll
Firma AddValue
Präsentation
Kontrolle
Daten
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Lösung W4F / Lixto / …
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Lösung W4F / Lixto / …
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Lösung W4F / Lixto / …
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
XML / Semistrukturierte Daten
HTML
• Dokumentorientiert
• Flexibilität
• Layout
• Präsentation
Datenbanken
• Datenorientiert
• Abstraktion
– Anfragesprache
– Manipulationssprache
• Formales Modell
• Vermeiden von Redundanz
• Versionierung, Nebenläufigkeit des Zugriffs,…
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Verbessertes Szenario: B2B
Firma SellItAll
Firma AddValue
Präsentation
Kontrolle
Daten
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Schichten eines DB-Systems
Views
Logisches Modell
Physikalisches Modell
• Was ist ein logisches
Modell / eine
Anfragesprache für
XML?
Zugriffe
Was
Wie
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Semi-strukturierte Daten
Eine Syntax für Daten
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Semi-Strukturierte Daten
• „schema-los“ oder „selbst beschreibend“
d.h. Daten haben keine separate Beschreibung der
Datenstrukturen und -typen
• Daten werden mit einer simplen Syntax beschrieben
• Assoziationslisten sind Label-Wert Paare (label-value
pairs) und werden als Record- oder Tupel-artige
Strukturen dargestellt.
name: “Alan”, tel: 2157786, email: “[email protected]”
{name: {first: “Alan”, last: “Black”},
tel: 2157786,
email:
}
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Graphenrepräsentation dieser
simplen Struktur
Daten lassen sich grafisch als Knoten darstellen, die durch
Kanten mit den zugehörigen Werten verbunden sind.
name
“Alan”
tel
email
name
tel
7786 “[email protected]”
first
email
7786 “[email protected]”
last
“Alan” “Black”
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Variationen von Tupeln
• Die Syntax macht es einfach, Mengen von Tupeln zu
beschreiben.
• Es existiert keine Einschränkung, dass alle Tupel einer
Menge vom selben Typ sein müssen.
• Es wird davon ausgegangen, dass Strukturen einem
bestimmten Typ ähneln.
• Eine Stärke von ssd ist die Fähigkeit, Variationen in der
Struktur zu kompensieren.
• Variationen entstehen durch fehlende Daten, duplizierte
Felder oder kleine Änderungen in der Repräsentation.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Variationen von Tupeln
{person:
{name: “Alan”, phone: 2157786, email: “[email protected]”},
person:
{name: “Sara”, phone: 2136877, email: “[email protected]”},
person:
{name: “Fred”, phone: 7786312, email: “[email protected]”}
}
{person:
{name: “Alan”,
person:
{name: {first:
phone:
email:
},
person:
{name: “Fred”,
}
phone: 2157786, email: “[email protected]”},
“Sara”, last: “Green”},
2136877,
“[email protected]”
phone: 7786312, Height: 183}
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Selbstbeschreibende Daten
• Datentyp: bei ssd unwichtig.
• Datenobjekt: Ordnung durch explizite
Beschreibung/Annotation (z.B. name, phone,...)
• Serialisierung: Daten werden in einem Byte-Strom
konvertiert, der sich leicht übertragen und vom
Empfänger rekonstruieren lässt.
• Redundanz: Selbst beschreibende Daten verschwenden
Speicher, da die Beschreibungen der Daten oft
wiederholt werden.
• Es gehen keine Information beim Weglassen des
Datentyps verloren.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Basis-Datentypen
• Datentypen können durch ihre Syntax
unterschieden werden:
– Nummern (beginnen mit einer Ziffer)
– Strings (beginnen mit einem
Anführungszeichen)
– Label (name, height,...)
• Es gibt viele Datentypen mit definierter
Kodierung (z.B. date, time, gif, wav,…)
• Ein Beispiel: date “1 May 1997”
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Repräsentation relationaler
Datenbanken
• Relationale Datenbanken werden durch
Schemata beschrieben.
r1(a,b,c) r2(c,d)
• r1 und r2 sind Relationen und a, b, c und d
sind Spaltennamen.
• Eine Instanz eines solchen Schemas ist ein
Datensatz, der diese Spezifikation einhält.
• Es existiert keine einheitliche Syntax, für die
Beschreibung relationaler Instanzen.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Darstellung einer Instanz
• Als Mengen: {r1: i1, r2: i2}
Beispiel:
{r1: {row:
row:
},
r2: {row:
row:
row:
}
}
{a: a1, b: b1, c: c1},
{a: a2, b: b2, c: c2}
{c: c2, d: d2},
{c: c3, d: d3},
{c: c4, d: d4}
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Darstellung einer Instanz
• In Form von Tabellen:
r1
a
b
c
a1
b1
c1
a2
b2
c2
r2
c
d
c2
d2
c3
d3
c4
d4
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Repräsentation von
Objektdatenbanken
• Objekt Identitäten (oid) werden genutzt, um Strukturen
mit Referenzen zu anderen Objekten zu konstruieren.
{person: &o1{name: “Mary”,
age: 45,
child: &o2,
child: &o3
},
person: &o2{name: “John”,
age: 17,
relatives: {mother: &o1,
sister: &o3}
}
person: &o3{name: “Jane”,
country: “Canada”,
mother: &o1
}
}
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Objektidentitäten
• Ihre Bedeutung ist auf eine bestimmte
Domänen beschränkt.
• In der gleichen Dateninstanz, können oids
von verschiedenen Domänen existieren.
• In ssd müssen Knoten nicht explizit einen
oid besitzen.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Repräsentation als Graph
person
person
person
child
mother
&o2
&o1
child
name
name
age
&o3
age
relatives
name
“John”
“Mary”
17
“Jane”
45
mother
country
sister
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
“Canada”
Syntaxspezifikation
ssd-expressions:
<ssd-expr> ::= <value> | oid<value> | oid
<value> ::= atomicvalue | <complexvalue>
<complexvalue> ::=
{label:<ssd-expr>,...,label:<ssd-expr>}
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Konsistenz
Für die Konsistenz einer ssd-expression s
müssen die folgenden zwei Bedingungen
erfüllt sein:
– Jede oid wird höchstens einmal in s definiert.
– Wenn eine oid o in s genutzt wird, dann muss
sie auch in s definiert sein.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Object Exchange Model (OEM)
• Das Objekt Exchange Modell wurde im
Kontext von Tsimmis, einem System zum
Integrieren von heterogenen
Datenquellen, definiert.
• OEM Modelle sind meist Kantenbeschriftete Graphen.
• Sie können aber auch Knoten-beschriftete
sowie Kanten- und Knoten-beschriftete
Graphen sein.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
OEM Objekt
• Ein OEM Objekt ist ein Quadrupel
(label, oid, type, value)
– label ist ein Character String.
– oid ist die Objektidentifikationsnummer.
– type
• komplexe Typen
• atomare Typen (z.B. Integer, String, gif-Bild)
– value
• eine Menge von oids, wenn type komplex ist
• atomarer Wert von type, wenn type atomar ist
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Objektdatenbanken
• Moderne Applikationen nutzen objektorientierten Datenmodelle.
• Standards für Objektdatenbanken bzw.
objekt-orientierten Datenbanken:
– ODMG Spezifikation
– ODL (Object Definition Language)
– OIF (Object Interchange Format)
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
ODMG Schema
class State
(extent states)
{
attribute string scode;
attribute string sname;
attribute City capital;
relationship set<City> cities-in
inverse City::state-of;
}
class City
(extent cities)
{
attribute string ccode;
attribute string cname;
relationship State state-of
inverse State::cities-in;
}
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Eigenschaften von ODMG
• Tupel, Mengen, Listen, Multimengen und
Arrays können ausgedrückt werden.
• Handles zu Objekten der Datenbank.
• Erweiterung bzw. Vererbung von Klassen.
• Objekte werden durch Konstruktoren
erzeugt, die durch die verwendete
Datenbank oder Sprache definiert werden.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Eigenschaften von ODMG
• Die verwendete Sprache bestimmt das
Löschen von Objekten
– Explizite Vernichtung durch Destruktoren
(siehe C).
– Unerreichbarkeit und garbage collection
(siehe Java).
• Beziehungen sind wie Attribute. Sie
können inverse Constraints ausdrücken.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Repräsentation von ODMG Daten als
SSD
{states: {state: &s1{scode:
“ID”,
sname:
“Idaho”,
capital: &c1,
cities-in:
{City: &c1,
City: &c3,…}
},
...
},
{cities: {city: &c1{ccode: “BOI”, cname: “Boise”,
state-of: &s1},
city: &c1{ccode: “CCN”,
cname: “Carson City”,
state-of: &s2},
...
Steffen Staab
}
ISWeb – Informationssysteme & Semantic Web
Repräsentation von ODMG
• Die Beschreibungen von ODMG Daten als
semi-strukturierte Daten ist dieselbe wie
die von relationalen Datenbanken.
• Es werden dabei Namen für oids genutzt,
um Attributwerte, die Objekte darstellen,
beschreiben zu können.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
ACeDB
(A.C. elegans Database)
• Entwickelt als Datenbank für genetische
Daten.
• Allgemeines Datenmodell.
• Populär bei Biologen da:
– Fähigkeit mit fehlenden Daten zu arbeiten.
– Gute Benutzerschnittstelle.
– Gute Browsing Tools.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
ACeDB
• Schemata und Daten können als Kantenbeschriftete Bäume betrachtet werden.
• Der Typname Int repräsentiert einen Knoten,
den eine unendliche Menge von Kanten
verlässt, die jeweils mit anderen Integer-Werten
versehen sind. (Text analog)
• Ein Schema kann als unendlich verzweigter
Baum und die Dateninstanz als ein endlicher
Teilbaum angesehen werden.
• Das Schlüsselwort UNIQUE spezifiziert, dass
jede Dateninstanz höchstens eine Kante
auswählen kann.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
ACeDB
• array Int UNIQUE Int:
– Schema: Knoten mit unendlicher Anzahl von
ausgehenden Kanten mit einem Integerwert, welche
jeweils zu einem Knoten mit unendlicher Anzahl von
ausgehenden Kanten mit einem Integerwert führen.
– Instanz: eine endliche Anzahl von top-level Kanten
(array indices), denen höchstens eine Kante mit
einem Integerwert folgt (associated value).
– Der Gebrauch von mit Integerwerten beschrifteten
Kanten erzeugt einen Array.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
ACeDB Schema und Daten
?Book title UNIQUE Text
authors Text
chapters Int UNIQUE Text
language UNIQUE english
french
other
date UNIQUE month Int
year Int
&hock2 title
“Computer Simulation Using Particles”
authors “Hockney”
“Eastwood”
chapters 1 “Computer Experiments”
2 “A One-Dimensional Model”
...
language english
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Terminologie der verwendeten
Graphentheorie
• Ein Graph (N,E) besteht aus einer Menge N von Knoten
und einer Menge E von Kanten.
• Zur jeder Kante e ∈ E gibt es ein (geordnetes)
Knotenpaar, das durch e verbunden wird. Der
Quellknoten wird s(e) genannt, der Zielknoten t(e).
• Ein Pfad ist eine Sequenz e1, e2,..., ek von Kanten mit
der Eigenschaft:
t(ei) = s(ei+1), 1≤ i ≤ k-1.
Ein solcher Pfad wird als ein Pfad von der Quelle von e1
(s(e1)) zum Ziel von ek (t(ek)) bezeichnet. Seine Länge k
ist gleich der Anzahl der Kanten in diesem Pfad.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Terminologie
• Ein Knoten r ist die Wurzel vom Graph (N,E),
wenn ein Pfad von r zu jedem n ∈ N und n ≠ r
existiert.
• Ein Zyklus in einem Graph ist ein Pfad zwischen
einem Knoten und sich selbst. Ein Graph ohne
Zyklen heißt azyklisch.
• Ein Graph mit Wurzel r ist ein Baum, wenn für
jedes n ∈ N und n ≠ r nur je ein einzigartiger
Pfad von r zu n existiert. (Ein Baum ist azyklisch
und hat nur eine Wurzel.)
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Terminologie
• Ein Knoten wird als Terminalknoten oder
als Blatt bezeichnet, wenn er für keine
Kante aus E der Quelleknoten ist.
• Gerichtete Graphen, die eine Wurzel
haben, werden directed acyclic graph
(DAG) genannt.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Terminologie
Graph mit Kreis
und ohne Wurzel
Baum
azyklischer Graph
mit Wurzel
Steffen Staab
ISWeb – Informationssysteme & Semantic Web