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