Extrahieren von Schemata aus Daten Extrahieren von Schemata aus Daten Problem der Schema-Extraktion: Für semistrukturierte Dateninstanzen kann mehr als nur ein Schema existieren. Im Folgenden wird die Schema-Extraktion besprochen für: – Schemagraphen – Datalog Typisierungen Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web &r Daten-Leitfaden (Data Guides) employee employee employee manages employee employee manages manages &p1 manages &p2 &p3 name employee position &p6 employee managedby &p7 managedby phone name manages name &p4 worksfor &p5 managedby managedby name name position worksfor name worksfor name worksfor worksfor worksfor worksfor company worksfor &c name Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web &p8 name position managedby position Daten-Leitfaden wurden im Lore Projekt eingeführt als eine knappe, präzise und sorgfältige Zusammenfassung der gegebenen Daten. employee Zwei Eigenschaften eines Daten-Leitfadens Ziel: Konstruktion eines neuen OEM Graphen als Daten-Leitfaden für employee employee.name employee.manages employee.manages.managedby …. employee.manages.managedby.manages.managedby.manages company company.name … Folgende zwei Eigenschaften muss ein Daten-Leitfaden erfüllen: – Genauigkeit (Accurate) Jeder Pfad in den Daten taucht im Daten-Leitfaden auf und umgekehrt. – Knappheit/Sparsam (Concise) Jeder Pfad im Daten-Leitfaden taucht exakt nur einmal auf. Steffen Staab ISWeb – Informationssysteme & Semantic Web Konstruktion des DatenLeitfadens • Der Daten-Leitfaden fasst die Daten knapp zusammen und ist unabhängig von der Datenmenge. • Die Konstruktion des Daten-Leitfadens ähnelt der Technik, einen nichtdeterministischen endlichen Zustandsautomaten in einem deterministischen umzuwandeln (unter Umständen: betrachte Potenzmenge der Datenknoten!) Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel für einen DatenLeitfaden employee Root &r Employee &p1,&p2,&p3,&p4, &p5,&p6,&p7,&p8 managedby name phone position company worksfor Boss &p1,&p4,&p6 name phone worksfor Company &c managedby manages manages Regular &p2,&p3,&p5, &p7,&p8 name worksfor name position Steffen Staab ISWeb – Informationssysteme & Semantic Web Konstruktion des DatenLeitfadens • Die Knoten in einem Daten-Leitfaden definieren Klassen von Knoten. • Erzeugen von Daten-Leitfaden Knoten für Mengen von Datenknoten. • Die Klassifikation ist nicht eindeutig. • Der Daten-Leitfaden identifiziert zwei Subklassen von Employee: – Subklasse Boss – Subklasse Regular ⇒ Sinnvoll für viele Dateninstanzen; aber gefährlich wegen der kombinatorische Explosion der Größe des Daten-Leitfadens Anmerkung Der Begriff Subklasse kennzeichnet eine Untermenge und nicht im objekt-orientierten Sinne eine Subklasse. Steffen Staab ISWeb – Informationssysteme & Semantic Web Originalproblem Frage Wie findet man den spezifischsten Schemagraphen? Antwort Es ist der Daten-Leitfaden! Der Daten-Leitfaden ist ein Schemagraph. Die Daten passen sich diesem an. Steffen Staab ISWeb – Informationssysteme & Semantic Web Der spezifischster Schemagraph Der Daten-Leitfaden ist der spezifischste Schemagraph für jene Daten. Genauer: – Der Daten-Leitfaden ist ein deterministischer Schemagraph. – Andere beliebige deterministische Schemagraphen ordnen sich dem DatenLeitfaden unter. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beobachtungen Einige Beobachtungen bzgl. des DatenLeitfadens: – Deterministisch vs. Nicht-deterministisch – Sorgfältigkeit – Inverse Kanten – „If and only if“ Steffen Staab ISWeb – Informationssysteme & Semantic Web Extrahieren von Datalog Regeln aus Daten Steffen Staab ISWeb – Informationssysteme & Semantic Web Extrahieren von Datalog Regeln aus Daten Problemstellung: Man hat eine semistrukturierte Dateninstanz und will automatisch die spezifischste Typisierung extrahieren, die durch eine Menge von Datalog Regeln gegeben ist. Beispiel Voraussetzung Die Suche wird auf Datalog Regeln beschränkt, die nur ausgehende Kanten beschränken; analog mit eingehenden Kanten. • Man erzeuge ein intensionales Prädikat für jedes komplexes Wert-Objekt in den Daten. ⇒ die erzeugten Pärdikate: pred_r, pred_c, pred_p1, pred_p2, pred_p3, pred_p4, pred_p5, pred_p6, pred_p7, pred_p8 Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel pred_r(X) :- ref(X,company,Y), pred_c(Y), ref(X,employee,Z1), pred_p1(Z1), ... ref(X,employee,Z8), pred_p8(Z8) pred_c(X) :- ref(X,name,N), string(N) pred_p1(X):- ref(X,worksfor,Y), pred_c(Y), ref(X,name,N),string(N), ref(X,phone,P), string(P),ref(X,manages,Z), pred_p2(Z), ref(X,manages,U), pred_p3(U) pred_p2(X):- ref(X,worksfor,Y), pred_c(Y), ref(X,name,N), string(N), ref(X,managedby,Z), pred_p1(Z) pred_p3(X):- ... ... Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Berechnung des spezifischsten Typs als Fixpunkt Auch wenn der Typ am spezifischsten ist, da er die Daten exakt beschreibt, ist er unbrauchbar. ⇒ da er zu groß ist! Daher wird der größte Fixpunkt des Datalogprogramms berechnet: 1. Jedes Prädikat wird mit der Menge sämtlicher Objekte initialisiert. 2. Iteratives Anwenden der Datalog Regeln, die die sukzessiven Modelle J1, J2,... berechnen, bis ein Fixpunkt erreicht wird. Steffen Staab ISWeb – Informationssysteme & Semantic Web Ergebnis nach einer Iteration Objekt Prädikate &r &c, &p1, &p2, &p3, &p4, &p5, &p6, &p7, &p8 &p1 &p2, &p3, &p5, &p7, &p8 &p3, &p5, &p7, &p8 &p1, &p4, &p6 &p3, &p5, &p7, &p8 &p1, &p4, &p6 &p3, &p5, &p7, &p8 &p3, &p5, &p7, &p8 pred_r pred_c pred_p1 pred_p2 pred_p3 pred_p4 pred_p5 pred_p6 pred_p7 pred_p8 Steffen Staab ISWeb – Informationssysteme & Semantic Web Ergebnis des Beispiels Root(X) :- ref(X,company,Y), Company(Y), ref(X,employee,Z1), Boss1(Z1), ref(X,employee,Z2), Boss2(Z2), ref(X,employee,U1), Regular1(U1),... ref(X,employee,U3), Regular3(U3) Company(X):- ref(X,name,N),string(N) Boss1(X) :- ref(X,worksfor,Y), Company(Y), ref(X,name,N), string(N), ref(X,phone,P), string(P), ref(X,manages,Z), Regular1(Z), ref(X,manages,U), Regular2(U) Boss2(X) :- ref(X,worksfor,Y), Company(Y), ref(X,name,N), string(N), ref(X,phone,P), string(P), ref(X,manages,Z), Regular3(Z) Steffen Staab ISWeb – Informationssysteme & Semantic Web Äquivalenzrelation Aus dem letzten Beispiel kann man folgendes sehen: • Manche Prädikate werden durch dieselbe Menge von Objekten bestückt. ⇒Definiere eine Äquivalenzrelation zwischen den Prädikaten p ≡ p‘ gdw. p und p‘ durch dieselbe Menge von Objekten bestückt wird. Ergebnis dieser Äquivalenzrelation pred_p4 ≡ pred_p6 und pred_p5 ≡ pred_p7 ≡ pred_p8. Steffen Staab ISWeb – Informationssysteme & Semantic Web Ergebnis des Beispiels Regular1(X):- ref(X,worksfor,Y),Company(Y), ref(X,name,N), string(N), ref(X,managedby,Z), Boss1(Z) Regular2(X):- ref(X,worksfor,Y),Company(Y), ref(X,name,N), string(N), ref(X,position,P), string(P), ref(X,managedby,Z), Boss1(Z) Regular3(X):- ref(X,worksfor,Y),Company(Y), ref(X,name,N), string(N), ref(X,position,P), string(P), ref(X,managedby,Z), Boss2(Z) Steffen Staab ISWeb – Informationssysteme & Semantic Web Verbindung zur Simulation Man vergleiche Datalog Regeln mit der Simulation: • Die Menge vom Beispiel läßt sich auch durch Anwendung der Algorithmen für die Simulationsberechnung extrahieren. Algorithmus: 1. Man starte mit der Berechnung der größten („rooted“ und „typed“) Simulation R zwischen den semistrukturierten Daten und R selbst. Verbindung zu Simulation 2. Solche Simulation existiert, weil die Identitätsrelation {(o,o)|o ist ein Objekt in D} eine „rooted“ und „typed“ Simulation ist. 3. Definiere zwei Objekte o und o‘, die äquivalent sind, wenn (o,o‘) ∈ R und (o‘,o) ∈ R sind. 4. Konstruiere einen neuen Datengraphen, dessen Objekte Äquivalenzklassen sind [o], [o‘],... Und für diese man eine mit l beschriftete Kante von [o] nach [o‘] haben, gdw. eine Kante von o nach o‘ in den Daten existiert. Ergebnis: Ein Graph, der der extrahierten Menge von Datalog Regeln entspricht. Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Schemata aus Anfragen folgern Manche semistrukturierte Dateninstanzen werden durch Altsysteme erzeugt oder sind Ergebnis von Anfragen. Es macht eher Sinn, die Struktur aus der Anfrage, die die Daten generierte, abzuleiten als die Daten zu produzieren, um dann das Schema aus den Daten zu extrahieren. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel where bib -> L -> X, X -> “author” -> A, X -> “title” -> T, X -> “year” -> Y create Root(), HomePage(A), YearEntry(A,Y), PaperEntry(X) link Root()-> “person”->HomePage(A), HomePage(A)-> “year”->YearEntry(A,Y), YearEntry(A,Y)-> “paper”->PaperEntry(X), PaperEntry(X)-> “title”-> T, PaperEntry(X)-> “author”-> HomePage(A), PaperEntry(X)-> “year”-> Y Steffen Staab ISWeb – Informationssysteme & Semantic Web Dateninstanz resultierend aus einer Anfrage Schema-Inferenz • Ein mögliches Ergebnis dieser Anfrage: person person Root() author HomePage(“Jones”) HomePage(“Smith”) author year year year YearEntry(“Jones”,1997) author YearEntry(“Smith”,1995) paper author YearEntry(“Smith”,1997) paper paper PaperEntry(o423) title paper year PaperEntry(o552) PaperEntry(o153) title year title year “1995” “Moving the period” “More on moving” “Moving the comma” “1997” “1997” Eine Schema-Inferenz aus Anfragen ist ähnlich einer Typ-Inferenz in Programmiersprachen. Polymorphe Sprachen haben folgende Eigenschaften: – Jedes Programm hat einen eindeutigen allgemeinsten Typ. – Effiziente Typ-Herleitungs-Algorithmen existieren, die den allgemeinsten Typen herleiten. Für semistrukturierte Daten: Der allgemeinste Typ muss nicht existieren oder herleitbar sein. Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Schema-Inferenz Beispiel: where /*some complex conditions on X, Y */ create Root(), F(X), F(Y), G(X), H(Y) link Root() -> “A” -> F(X), F(X) -> “C” -> G(X) Root() -> “B” -> F(Y), F(X) -> “D” -> H(Y) ergibt das folgende Schema: Root: {A : F, B : F} F: {C : G, D : H} Schema-Inferenz Nach Untersuchung der komplexen Bedingungen, X und Y zu binden, kann gefolgert werden: ⇒Die beiden Variablen werden nie in einer Eingabedateninstanz an das gleiche Objekt gebunden. Beispiel X -> “price” -> P, P > 50, Y -> “price” -> Q, Q < 20 Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Schema-Inferenz Das folgende engere Schema beschreibt alle Instanzen, die durch die Anfrage erzeugt werden: Root: {A : F1 {C : G}, B : F2 {D : H}} • Ein Objekt kann nicht gleichzeitig eine C- und eine D-Kante haben. • Die ganze Ausgabe ist dem Schema angepasst. Steffen Staab ISWeb – Informationssysteme & Semantic Web Sharing, Multiplizität und Ordnung Als nächstes werden die folgenden Eigenschaften besprochen: – Sharing – Kontrolle von Attribut Multiplizität – Ordnung All diese Eigenschaften machen die Typisierungsformalismen komplizierter. Außerdem ist nicht mehr klar, wie die SchemaExtraktion und die Schema-Inferenz gemacht werden soll. Steffen Staab ISWeb – Informationssysteme & Semantic Web Sharing, Multiplizität und Ordnung Steffen Staab ISWeb – Informationssysteme & Semantic Web Sharing Angenommen eine binäre Relation r mit zwei Attribute a,b vom Typ Integer. Beispiel (OEM) I {tuple: o1 {a: o2(5), b: o3(6)}, tuple: o4 [a: o5(5), b: o6(7)}} Der Typ kann folgendermaßen aussehen: type r = {tuple: v1 { a: v2(string), b: v3(string)}} I ist vom Typ r und die folgende Variante I‘ auch: I‘ {tuple: o1 {a: o2(5), b: o3(6)}, tuple: o4 [a: o2(5), b: o6(7)}} ⇒ Unterschied: 2 Tupeln teilen sich ein Subobjekt. Steffen Staab ISWeb – Informationssysteme & Semantic Web Sharing Wichtig: Unterscheidung zwischen geteilten und ungeteilten Komponenten Verbieten von Sharing (syntaktisch): Man nehme an, dass der Typ r kein Sharing erlaubt. ⇒ I ist vom Typ r, während I‘ es nicht ist. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel Wir definieren type t = {a: t, b: t} OR string Dies definiert alle binären Bäume (ohne Sharing). Andererseits definiert der Typ type t = {a: &t, b: &t} OR string ein Graphen mit t-Objekten, die entweder Strings sind oder Komponenten a, b haben, die t Objekte sind. Steffen Staab ISWeb – Informationssysteme & Semantic Web Sharing Der folgende Typ erlaubt das Sharing: type r‘ = {tuple : v1 {a : &v2, b: v3(string) }} v2(string) • Die a Komponente ist eine Objekt-Komponente. Objekte können geteilt werden. • Die b Komponente ist eine Value-Komponente und kann nicht geteilt werden. Die Fähigkeit, das Sharing zu kontrollieren, ist ein vielseitiges Werkzeug der Typisierung. Steffen Staab ISWeb – Informationssysteme & Semantic Web 2. Beispiel Berücksichtige den folgenden Typ: type r = {person: &p} type p = {name: string, firstname: string, friend:&p} Eine Instanz von diesem ist: I {person o1, person o2, person o3} o1 {name: “smith”, firstname: “john”, friend: &03} o2 {name: “smith”, firstname: “sue”} o3 {name: “doe”, firstname: “bob”, friend: &o1, friend: &o2} Steffen Staab ISWeb – Informationssysteme & Semantic Web Attribut Multiplizität Unterschiede zu DTDs Datalog Typisierung und Simulationen erlauben nicht, die Multiplizität eines bestimmten Attributs zu kontrollieren, z.B. Kardinalität Attribut Multiplizität als regulärer Ausdruck ähnelt den DTDs. Kontrolle von Multiplizität ist erwünscht. ⇒ Alternative Technik: Struktur mit einem regulären Ausdruck zu beschreiben. Aber es gibt 2 Schlüsselunterschiede: type p = {(author:string)+, title:string, (year:int)?} – Die Ordnung der Attribute ist nicht wichtig. – Die DTDs unterscheiden kaum zwischen Typen und Labelnamen. Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Ordnung Die Ordnung der Subobjekte wird in einem komplexen Objekt vorgegeben. Im generischen OEM Modell ist das nicht möglich. ⇒Erweiterung des Modells durch zwei Arten von komplexer Objekte: – Ungeordnete – Geordnete Beispiel Typsyntax type Company = {(person: {(name:string, assignments:Assign, (phone:string)?})*} type Assign = [(assignment: {name:string, year:string, (kind:string)*})] Erweiterung des Typsyntax durch eine Listennotation [...] (In dieser Liste sind die Subobjekte geordnet.) Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel Instanz c1 {person: {name: “Dupont”, assignments: [assignment: {name: “prototype design”, year: 1994, kind: “low priority”}, assignment: {name: “production desgin”, year: 1997, kind: “high priority”}], phone: “2345”}, person: {…}} Steffen Staab ISWeb – Informationssysteme & Semantic Web Beschränkungen in anderen Datenbanken In strukturierten Datenbanken • Das Schema dient zwei Ziele: – Beschreibung der Struktur/ des Datentyps – Beschreibung bestimmter Beschränkungen • Relationstyp (Struktur der Tupeln) ↔ Beschränkungen (Schlüssel- und Inklusionsabhängigkeiten) In objekt-orientierten Datenbanken • Ist wie bei strukturierten DB, aber der Typ wird durch seine Klasse beschrieben. • Die Abgrenzung zwischen Typ und Beschränkung ist nicht immer wohldefiniert (abhängig vom Typ-System). Steffen Staab ISWeb – Informationssysteme & Semantic Web Pfadbeschränkungen Steffen Staab ISWeb – Informationssysteme & Semantic Web Überprüfung der Beschränkungen • Praktische Unterscheidung: Typ wird statisch geprüft durch Analyse des Programmcodes. • Beschränkungen werden dynamisch geprüft bei Datenbank-Updates. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beschränkungen in relationalen Datenbanken Das Beispiel zeigt ein Fragment einer typischen relationalen Schemadefinition. Die relationale Deklaration sagt aus: – Es gibt eine Komponente der Datenbank, Departments, die diesen Typ hat (extent). – Schlüsselbeschränkungen: • Keine zwei Tupel haben das gleiche DeptId Feld. • Es existiert eine Fremdschlüssel-Beschränkung in der Employees Relation. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beschränkungen in objektorientierten Datenbanken Das nächste Beispiel zeigt ein OEM Schema: • Die Verbindung zwischen diesem und einem objekt-orientierten Typ-System: – Streichung der Zeilen A1, A3, P1 und P3 – Änderung der Zeilen A2 und P2 zu attribute ⇒Übrig bleibt etwas, was einer Typ-/ Klassendeklaration ähnelt. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel für ein relationales Schema create table Employees ( EmpId: integer, EmpName: char(30), DeptId: integer,... primary key(EmpId), foreign key(DeptId) references Departments ) create table Departments ( DeptId: integer, Dname: char(10), ... Primary key(DeptId) ) Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel für ein OEM Schema interface Publication extent publication { attribute String title; attribute Date date; relationship set<Autor> auth inverse Author::pub; } //line P1 //line P2 //line P3 interface Author extent author //line A1 { attribute String name; attribute String address; relationship set<Publication> pub //line A2 inverse Publication::auth //line A3 } Steffen Staab ISWeb – Informationssysteme & Semantic Web Semistrukturierte Graphenrepräsentation einer Datenbank r publication author pub title date ... ... Steffen Staab ISWeb – Informationssysteme & Semantic Web author publication name ... author author pub pub address ... author title date ... ... name ... ... Steffen Staab ISWeb – Informationssysteme & Semantic Web Inklusionsbeschränkung Inverse Relation Inklusionsbeschränkung Eine Inklusionsbeschränkung legt fest, dass die Menge der Knoten, erreichbar entlang des Pfads α, eine Untermenge der Menge der Knoten ist, die entlang des Pfads β erreichbar sind. ∀X(α(r,x)) → β(r,x)) Inverse Relation Wenn man den Pfad α von der Wurzel bis zu einem Objekt x traversiert und von dort aus erreicht man ein Objekt y via β, dann ist x von y via γ erreichbar. ∀x(α(r,x) → ∀y(β(p,y) → γ(y,x))) Beispiel ∀p(∃a(author(r,a) ∧ pub(a,p)) → publication(r,p)) Beispiel ∀p(∃a(author(r,p) → ∀a(auth(p,a) → pub(a,p))) Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web address Die folgende Grafik zeigt eine semistrukturierte Graphenrepräsentation einer Datenbank, die durch ein objektorientiertes Schema beschrieben wird. Nichts semistrukturiertes am Graphen, weil er eine reguläre Struktur beschreibt. Semistrukturierte Graphenrepräsentation einer Datenbank Beschränkungen sind wichtig • Beschränkungen sind wichtig: – Sie liefern Formen der semantischen Integrität. – Sie sind für die Anfrageoptimierung wichtig. ⇒Die gilt für strukturierte und für semistrukturierte Daten. Beispiel //query Q1 select row: P2 from r.publication P1, r.publication P2, P1.auth A where “Database Systems“ in P1.title and A in P2.auth //query Q2 select row: P‘ from r.publication P, P1.auth A, A.pub P‘ where “Database Systems“ in P.title Steffen Staab ISWeb – Informationssysteme & Semantic Web Das BeschränkungsinferenzProblem Es ist möglich, die Existenz anderer Beschränkungen zu folgern: Beispiel ∀x(author.pub(r,x)→publication(r,x) ∀x(publication.auth(r,x)→author(r,x)) Dann folgt daraus dies: ∀x(author.pub.auth(r,x)→author(r,x)) Steffen Staab ISWeb – Informationssysteme & Semantic Web Steffen Staab ISWeb – Informationssysteme & Semantic Web Folgerung von Beschränkungen • C1...Cn sind als Beschränkungen gegeben. Wenn gefolgert werden kann, dass C gilt. Dann gilt für einen Datengraph der Beschränkungen C1,...,Cn erfüllt, das dieser auch C erfüllt. • Daraus ergeben sich Vorteile für: – Die Optimierung. – Die Prüfung von Beschränkungen. • C muss nicht überprüft werden, da C1,...,Cn schon vorher geprüft worden sind und C1,...,Cn → C gilt! Steffen Staab ISWeb – Informationssysteme & Semantic Web Zusammenfassung Zusammenfassung: – Inklusionsbeschränkungen – Pfadbeschränkungen Praktisches Nutzen dieser Beschränkungen: Einbettung einer semistrukturierten Datenbank in eine andere Anmerkung: Inklusionsbeschränkungen sind ein spezieller Fall von Pfadbeschränkungen. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beispiel für XML-Daten <elementType id = “Author”> <attribute name = “Name”/> <attribute name = “Pub” range = “#Publication”/> ... </elementType> <elementType id = <attribute name <attribute name <attribute name ... </elementType> “Publication”> = “Title”/> = “Auth” range = “#Author”/> = “Pub_date” range = “#Date”/> Steffen Staab ISWeb – Informationssysteme & Semantic Web Entscheidbarkeit Für Inklusionsbeschränkungen: Das Inferenzproblem ist entscheidbar. Für Pfadbeschränkungen: Das Problem ist für die leichte Generalisation der Inklusionsbeschränkungen nicht entscheidbar. Aber unter praktischen Einschränkungen ist das Problem entscheidbar. Anmerkung: Unsere Beschreibung der Beschränkungen ist auf den Datengraphen angewiesen. Steffen Staab ISWeb – Informationssysteme & Semantic Web Beschränkungen in XML • XML-Daten werden genutzt, um den Datentypen zu beschreiben. • In den XML-Daten beschränkt die range Aussage den Typen des assoziierten Elements, aber sagt nicht über die Lage der Daten aus. • Inverse und Inklusionsbeschränkung werden eingeführt, wie sie in der objekt-orientierten Data Definition Language ausgedrückt werden. • Abgesehen von XML-Links gibt es keine Ansätze für Inklusions- oder Pfadbeschränkung. Steffen Staab ISWeb – Informationssysteme & Semantic Web