6.4 Resource Description Framework (RDF)
6 Interoperabilität im WWW mit XML
6.1 XML – Definition und Nutzung
6.2 XML – Datenverwaltung und Indexierung
6.3 Anfragen auf XML-Datenbeständen
6.4 Semantische Inhaltsbeschreibung: RDF
1
Einführung
 Beispiel "Elektronischer Marktplatz"
 Anwendung: PC-Fertigung / Einkauf
 Ziel: Produktionsplanung,
Bauteile für Planungszeitraum unter Kostenu. Qualitätsrestriktionen bereitstellen
 Vorgehen für Bauteile ohne vorab festgelegte
Lieferanten (z.B. RAM)
 Beispiel: Suche 5000 Speicherbausteine à 8x32 Mbit,
Zugriffszeit höchstens 8 nsec,,.....
 Alternativen:



manuelle Suche mit Webbrowser ???
Suchmaschine auf textlicher Basis ??
Suchmaschine, die verteilte XML-Dokumente abfragt?
6.2
Ordnung im Chaos?
 Wie macht man beliebige Internet-Ressourcen
(Programmen) zugänglich?
 Standards


Conditio sine qua non (not just nice to have!)
Klar, aber man kann nicht alles standardisieren
(Produktbeschreibungen, Infos, ....)
 Gemeinsame Syntax und Semantik
 Elementare Approximation einer semantischen
Beschreibung: Wörter  Suchmaschine
 XML ?


Nur Syntax – Kommunikationspartner müssen sich über
gemeinsame Sprache verständigt haben
Syntaktische, keine semantische Konformität
6.3
Beispiel
<?xml version="1.0"?>
<note ID="4711">
<to>Nora</to>
<from>Chris</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
 "Bedeutung"
 eine Nachricht <note>
4711
 Absender ist Chris
 EmpfängerIn der Nachricht ist Nora
 Nachricht hat Titel Reminder
 Inhalt der Nachricht ist Don't
Hat_Empfänger
Nora
ist
<note>
forget me
this weekend!
6.4
und XML?
 Syntax von RDF ist XML!
(Serialisierung des Graphen)
 RDF: Darstellung von Fakten (Aussagen)
hat _Empfänger (4711, Nora)
Prädikat (Subjekt, Objekt)
in normierter Sprache
 Warum nicht gleich XML?
 Größere Beliebigkeit der XML-Syntax
<note to="Nora" from="Chris" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Extremfall, aber korrekte XML-Syntax!
Allerdings: wer so etwas schreibt, hat's nicht verstanden!
6.5
Das Modell von RDF
6.6
Resource Description Framework
 RDF description
 Beschreibung einer beliebigen resource
die durch URI (uniform resource identifier)
identifiziert werden kann

Bsp.: Web Server, Dokument, Bild, ....
 ... durch Eigenschaften (properties)
 Eigenschaften haben als Wert (value) Literale oder
Resourcen
Literale eigentlich Spezialfall von Resourcen
 RDF description = {(Resource , property, Value)}
oder: ( Subject, predicate, Object)
6.7
Beispiel
Subjekt (Resource) http://www.w3.org/Home/Lassila
Prädikat:
Creator
Objekt:
"Ora Lassila"
6.8
Beispiel
Einheitliche Darstellung:
(Resource , property, Resource)
Ein RDF Tripel heißt Aussage (Statement)
Properties sind "first class": können selbst eine URI besitzen
Im Beispiel: Creator ist im bibliographischen Standardvokabular
Dublin Core definiert
6.9
 RDF Description als Graph
Mehrwertige Prädikate erlaubt (Creator)
Konkrete Syntax von RDF: XML
6.10
RDF Schema Definition
 RDF Schema:
 Sprache zur Spezifikation von Schemata

Definiert Klassen (class) und deren Eigenschaften
(property), die in einer RDF Description mit Werten belegt
werden können.
 Analogie zu DB-Schema
 RDF Schema -Sprache -> Datenmodell (relational,
hierarchisch, ...)
 Konkretes RDF-Schema: legt die Klassen und
Eigenschaften einer Anwendung(s-Domäne) fest
6.11
<rdf:RDF xml:lang="en"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema19990303#">
<rdfs:Class rdf:ID="Person">
<rdfs:comment>The class of people.</rdfs:comment>
<rdfs:subClassOf
rdf:resource="http://www.classtypes.org/useful_classes#Animal"/>
</rdfs:Class>
<rdf:Property ID="maritalStatus">
<rdfs:range rdf:resource="#MaritalStatus"/>
<rdfs:domain rdf:resource="#Person"/>
</rdf:Property>
<rdf:Property ID="ssn">
<rdfs:comment>Social Security Number</rdfs:comment>
<rdfs:range
rdf:resource="http://www.datatypes.org/useful_types#Integer"/>
<rdfs:domain rdf:resource="#Person"/>
</rdf:Property>
....................
<rdf:Property ID="age">
<rdfs:range
rdf:resource="http://www.datatypes.org/useful_types#Intege
r"/>
<rdfs:domain rdf:resource="#Person"/>
</rdf:Property>
<rdfs:Class rdf:ID="MaritalStatus"/>
<MaritalStatus rdf:ID="Married"/>
<MaritalStatus rdf:ID="Divorced"/>
<MaritalStatus rdf:ID="Single"/>
<MaritalStatus rdf:ID="Widowed"/>
</rdf:RDF>
Definition von RDF
 RDF – Konzepte
 Grundlegende Konzepte:

Resource, Property, Statement
 Schema-Definitionskonzepte
zur Definition von neuen Vokabularen
 Hilfskonzepte zur Vereinfachung der Darstellung

Container, Klassen, Typen, ....
 Definiert in
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222#
http://www.w3.org/TR/1999/PF-rdf-schema-19990303#
(Namensräume rdf bzw. rdfs)
6.14
Grundlegende Konzepte
rdf:Resource
innerhalb desselben Kontext durch URI
identifizierbares Objekt
beachte Kontext:
z.B. W3C-Logo (mit URI !) wird abhängig vom Browser in
verschiedenen Bildformaten gelesen
Wetterbericht (mit gleicher URI) liefert täglich neuen Inhalt
rdf:Property
Eigenschaft sind Resourcen und können deshalb
selbst beschrieben werden.
Können unabhängig definiert werden
6.15
Grundlegende Konzepte
Rdf: Statement
Eine Resource, die ein Tripel
(resource, property, resource) reifiziert
Reifikation: Vergegenständlichung
Beispiel: Relation R mit Attribut Farbe
Reifikation von Farbe zu Relation F mit Attributen
Wert, Spektralfrequenz, .... (etc.)
Erlaubt Aussagen über das reifizierte Ding
6.16
Reifikation
 Beispiel : 'Laut Chris hat "Ora Lassila" das Objekt
http://.... gemacht.'
Subject (Resource):
Subjekt (Resource) http://www.w3.org/Home/Lassila
Prädikat:
Creator
Objekt:
"Ora Lassila"
Prädikat:
attributed_to
Object (Resource): http://www.w3.org/people/Chris
6.17
Schema Definition
rdfs:subPropertyOf
Beispiel: wenn mother subPropertyOf parent, dann soll jede Resource mit
Property mother auch property parent haben
Anwendung: Suche nach parent-Wert einer Person auch
erfolgreich, wenn Properties mother und/oder father
definiert sind
Semantik:
s, p1,o,p2 T(s,p1,o)  T(p1, rdfs:subPropertyOf ,p2)
 T(s,p2,o)
 p1,p2,p3 T(p1, rdfs:subPropertyOf ,p2) 

T(p2, rdfs:subPropertyOf ,p3)
T(p1, rdfs:subPropertyOf ,p3)
T(p, rdfs:subPropertyOf ,p) (nicht in RDF auszudrücken)
6.18
Schema Definition
rdfs:Class, rdfs:type, rdfs:subClassOF
Klassen: Mengen gleichartiger Resourcen
Zugehörigkeit einer resource r zu einer Klasse c
durch (r, rdfs:type,c)
Semantik:
x, c1,c2 T(x, rdfs:type, c1)  T(c1, rdfs:subClassOf ,c2)
 T(x, rdfs:type, c2)
analog zu:
rdfs:subPropertyOf: Transitivität, keine Zyklen
6.19
<rdf:RDF xml:lang="en"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#">
<rdf:Description ID="registeredTo">
<rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
<rdfs:domain rdf:resource="#MotorVehicle"/>
<rdfs:range rdf:resource="#Person"/>
</rdf:Description>
<rdf:Description ID="rearSeatLegRoom">
<rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
<rdfs:domain rdf:resource="#PassengerVehicle"/>
<rdfs:domain rdf:resource="#Minivan"/>
<rdfs:range
rdf:resource="http://www.w3.org/datatypes#Number"/>
</rdf:Description>
</rdf:RDF>
Schema Definition
rdfs:domain, rdfs:range
Drücken constraints von rdf:property aus:
- Welche Resourcen dürfen die Property haben?
(domain)
- Welchen Wert (eindeutig!) darf eine Property
haben
Werte in beiden Fällen eine rdfs:class
Entspricht einer Typ-Constraint von rdf:Property
auf Schemaebene. Allgemeiner:
rdfs:domain, rdfs:range sind Werte von
rdfs:ConstraintProperty, die Subklasse von
rdf:Property ist
6.21
Schema Definition
rdfs:Literal
definiert die Menge der Literale
Degenerierte Klasse, in der Spezifikation nicht
als Klasse (also Menge der Objekte, die Literale
sind) behandelt.
rdf:Property
rdfs:Literal
rdf:Property
6.22
Hilfskonzepte
rdf:Container
Container sind Kollektionen von Resourcen,
Subklassen sind
rdf:Bag
ungeordnete Menge
rdf:Seq
Sequenz
rdf:Alt
Alternative
6.23
Beispiel (Bag): Darstellung des Satzes
The students in course 6.001 are Amy, Tim, John, Mary, and Sue.
<rdf:RDF>
<rdf:Descriptionabout="http://mycollege.edu/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li resource="http://mycollege.edu/students/Amy"/>
<rdf:li resource="http://mycollege.edu/students/Tim"/>
<rdf:li resource="http://mycollege.edu/students/John"/>
<rdf:li resource="http://mycollege.edu/students/Mary"/>
<rdf:li resource="http://mycollege.edu/students/Sue"/>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
RDF-Datenverwaltung
 Was ?
 RDF-Statements (Subject, Prädikat, Objekt)
 UIDs
 Literale
 Namensraum
 Probleme:
 Skalierbarkeit: 1 G Tripel?
 Welche Arten von Anfragen?
 Effizienz!
 Optimierung: Indexe?
 Overhead?
 Datei, Relational, Main-Memory-DB mit Persistenz?
6.25
Mögliches Rel. Schema für RDF*
 Resourcen
 Namespace
 Literale ...
 Statement
CREATE TABLE RDFresource
(Id INTEGER not null primary key,
NS INTEGER not null,
RoName varchar(255))
CREATE TABLE RDFNamespace
(Id INTEGER not null primary key,
NsName varchar(255))
CREATE TABLE RDFStatement
(Id INTEGER not null primary key,
Subject INTEGER not null,
Predicate INTEGER not null,
Object INTEGER,
Literal INTEGER,
ResType CHAR(1)) /* literal|resource?
Nach B. McBride
6.26

6.3 Ressource Description Framework (RDF)