Extrahieren von Schemata aus Daten

Werbung
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
Herunterladen