400 likes | 530 Views
Resource Description Framework (RDF). Spezifikationen: http://www.w3.org/RDF/#specs. Definition Metadaten: „ Metadata is machine understandable information about web resources or other things.“ (Berners Lee)
E N D
Spezifikationen: http://www.w3.org/RDF/#specs
Definition Metadaten: „Metadata is machine understandable information about web resources or other things.“ (Berners Lee) „Metadata is sometimes defined literally as 'data about data,' but the term is normally understood to mean structured data about resources that can be used to help support a wide range of operations.“ (Michael Day)
RDF - Charakteristika • RDF ist eine Spezifikation die es erlaubt, auf einfache Weise Aussagen (statements) über Ressourcen zu machen. Frau Merkel trägt ein schwarzes Kostüm. • Die Intention der Urheber von RDF ist vor allem die, Aussagen über Ressourcen im WWW zu machen. Primär ist RDF jedoch auch eine generelle Möglichkeit, Ressourcen zu beschreiben, die nicht zwingend Webressourcen sind.
RDF - Charakteristika • In der Praxis sollen RDF Aussagen vor allem auch maschinell verarbeitbar sein. Für diesen Zweck wird (auf Empfehlung der W3C) RDF auf Basis der XML verwendet (RDF/XML). • Maschinelle Verarbeitbarkeit von Webressourcen bedingt auch eine eindeutige Zuordbarkeit der Ressourcen. Dies kann mittels URIs geschehen.
RDF Grundkonzepte 1. Binäre Relationen Natürlichsprachige Aussage: Die Webseite „http://www.example.org“hat einen Urhebernamens Peter Schmidt. Die Aussage besteht aus dem Gegenstand der Aussage einer Eigenschaft des Gegenstandes und einem Wert für diese Eigenschaft. In RDF Terminologie wird der Gegenstand der Aussage als Subjekt (subject), die Eigenschaft als Prädikat (predicate) und Wert der Eigenschaft als Objekt (object) bezeichnet. Subjekt, Prädikat und Objekt bilden ein sog. Triple.
2. RDF Modell • Ein oder mehrere Triples bilden einen RDF Graphen. • RDF Graphen können tatsächlich als Diagramm dargestellt werden; Subjekt und Objekt sind dann die Knoten, Prädikate die Kanten im Graphen. Subject A Object A Predicate A Object B Predicate B
Graphen können auch notiert dargestellt werden, als Triple-Notation: Subject A Predicate A Object A Subject A Predicate B Object B • Subjekt, Prädikat und Objekt werden für jedes Triple, getrennt durch Leerstellen, aneinandergereiht. • Im Gegensatz zur grafischen Darstellung wird hier jedes Triple vollständig aufgeführt.
3. URI Referenzen, Literale und Anonyme • Prädikate werden in RDF Aussagen immer als URI Referenzen (URI reference) dargestellt. • Subjekte können zusätzlich im Modell als anonym (blank node) erscheinen. • Objekte können als dritte Möglichkeit auch zusätzlich als Zeichenketten (literals) dargestellt werden.
Modellierung: RDF Graph Beispiel Quelle (diese u. folgende): RDF Primer, W3C.
Triple-Notation: • URIs werden in spitze Klammern (<…>) gesetzt, Literals in Anführungszeichen (“…“).
Da die Aneinanderreihung von URIs sehr lang ausfallen kann, gibt es die Konvention, über die Verwendung von qualifizierten Bezeichnern (qualified names) abzukürzen. Dem Bezeichner wird dabei zuvor die URI zugewiesen. • Qualified names können frei vergeben werden; die Verwendung allgemein anerkannter Vokabulare (z.B. DC), erleichtert jedoch die Kompatibilität.
Knoten in einem RDF Graph können auch leer sein: sie werden als blank nodes bezeichnet.
Die notierte Form sieht dann so aus: Zusammenfassung Notationskonventionen: Literals: „ ………….“ URI: < ……………. > QN: ……. : …… BNode: …. _: …..
Wozu blank nodes? exstaff:85740 exterms:address „1501 Grant Avenue, Bedford, Massachusettes, 01730“. Quelle: RDF Primer, W3C.
Das Konzept Adresse der Person ist ein Relation, die nicht mehr binär, sonder n-är ist. Im vorherigen Graphen wird ein explizit referenzierter Knoten verwendet; dieser „Zwischenschritt“ ist nicht immer notwendig. Anstatt dessen kann ein blank node verwendet werden: Quelle: RDF Primer, W3C.
Mit Blank nodes lassen sich also 1. komplexere (n-äre) Relationen darstellen, die 2. Knoten enthalten, auf die nicht unbedingt referenziert werden muß. • In Notationsform muss ein leerer Knoten aber irgendwie repräsentiert werden. Das führt zu der bereits vorgestellten Notationsform, in der „blank node identifier“ verwendet werden: Quelle: RDF Primer, W3C.
Blank nodes können 3. auch dazu dienen, Ressourcen zu beschreiben, die keine URIs besitzen, aber über Relationen zu anderen Ressourcen beschrieben werden können. _:jane exterms:mailbox <mailto:jane@example.org> . _:jane rdf:type exterms:Person . _:jane exterms:name "Jane Smith" . _:jane exterms:empID "23748" . _:jane exterms:age "26" . Quelle: RDF Primer, W3C.
Die Verwendung von URIs in RDF Subjekt, Prädikat und Objekt können in RDF Aussagen als URI-Referenzen (URIref) angegeben werden. Eine URIref kann in RDF optional einen „fragment identifier“ besitzen: http://www.example.org/index.htm#section1 fragment identifier URI Schema URI Referenz
Ein Webbrowser benutzt einen URI zur Identifikation und zum Abruf einer Webseite, RDF hingegen identifiziert lediglich über den URI die Ressource. • Der Webbrowser nimmt also an, dass über den URI tatsächlich ein physisches Objekt (die Webseite) zu erreichen ist. • RDF nimmt dies explizit nicht an. RDF kann auch Ressourcen identifizieren, die über den URI nicht erreichbar sind (z.B. eine Beschreibung der Person X). • RDF wird jedoch häufig in der Praxis mit der Konvention der tatsächlichen Erreichbarkeit der Ressource angewendet.
Das „Identifikationsmerkmal“ wirkt sich auch in folgendem Beispiel aus: http://www.example.org/index.htm http://www.example.org/index.htm#section1 http://www.example.org/chapter1.htm • In HTML sind alle drei URLs miteinander verbunden, d.h. „section1“ bezeichnet eine bestimmte Stelle auf der Indexseite, „index.htm“ und „chapter1.htm“ beziehen sich beide auf „www.example.org“. • RDF sieht alle URLs als syntaktisch unterschiedlich und nimmt deshalb keine Beziehung zwischen diesen drei URLs an. Beziehungen können existieren, müssen aber nicht.
Standardnotationen für RDF • N 3 ,Turtle, N-Triple Die bisherigen Beispiele wurden in N Triple Form notiert. RDF Statements können auch in N 3 und Turtle notiert werden. N Triple und Turtle sind Untermengen von N3. N-Triple; Quelle: RDF Test Cases, W3C.
2. RDF/XML • RDF/XML wird von der W3C als Darstellungsform von RDF empfohlen. Sie gilt hier als normative Syntax für RDF. Beispiel: http://www.example.org/index.html http://www.example.org/terms/creation-date August 16, 1999
Entspricht: ex:index.htm exterms:creation-date „August 16, 1999“ . in N Triple Notation. • In XML/RDF:
Weitere RDF Features • Container • Mit Hilfe von RDF Container können Gruppen von gleichartigen Dingen beschrieben werden. z.B. eine Liste aller Teilnehmer einer Veranstaltung, Buch mit mehreren Autoren. • Das RDF Vokabular umfasst 3 Typen von Containern: rdf : Bag rdf : Seq rdf : Alt
Ein Bag dient dazu eine Gruppe von Ressourcen zu beschreiben, wobei die Reihenfolge der Ressourcenbeschreibungen keine Rolle spielt. • Beispiel
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students> <rdf:Bag> <rdf:li rdf:resource="http://example.org/students/Amy"/> <rdf:li rdf:resource="http://example.org/students/Mohamed"/> <rdf:li rdf:resource="http://example.org/students/Johann"/> <rdf:li rdf:resource="http://example.org/students/Maria"/> <rdf:li rdf:resource="http://example.org/students/Phuong"/> </rdf:Bag> </s:students> </rdf:Description> </rdf:RDF>
Sequence Eine Sequenz repräsentiert eine Menge vonRessourcen, deren Reihenfolge signifikant ist. <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students> <rdf:Seq> <rdf:li rdf:resource="http://example.org/students/Amy"/> <rdf:li rdf:resource="http://example.org/students/Johann"/> <rdf:li rdf:resource="http://example.org/students/Maria"/> <rdf:li rdf:resource="http://example.org/students/Mohamed"/> <rdf:li rdf:resource="http://example.org/students/Phuong"/> </rdf:Seq> </s:students> </rdf:Description> </rdf:RDF>
Alternative Eine Alternative repräsentiert eine Menge von Ressourcen, die eine Wahlmöglichkeit implizieren.
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/packages/vocab#"> <rdf:Description rdf:about="http://example.org/packages/X11"> <s:DistributionSite> <rdf:Alt> <rdf:li rdf:resource="ftp://ftp.example.org"/> <rdf:li rdf:resource="ftp://ftp1.example.org"/> <rdf:li rdf:resource="ftp://ftp2.example.org"/> </rdf:Alt> </s:DistributionSite> </rdf:Description> </rdf:RDF>
Weitere RDF Features 2. RDF Collections • Container bieten keine Möglichkeit eine eindeutige Aussage über die Vollständigkeit zu machen. Es wird nur angenommen, dass bestimmte Ressourcen Teil des Containers sind, ohne jedoch die Existenz weiterer Ressourcen, die auch Teil des Containers sein können, auszuschließen. • RDF collections unterstützen die Beschreibung von geschlossenen Gruppen.
Beispiel: „The students in course 6.001 are Amy, Mohamed and Johann.“
Beispiel: „The students in course 6.001 are Amy, Mohamed and Johann.“ <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students rdf:parseType="Collection"> <rdf:Description rdf:about="http://example.org/students/Amy"/> <rdf:Description rdf:about="http://example.org/students/Mohamed"/> <rdf:Description rdf:about="http://example.org/students/Johann"/> </s:students> </rdf:Description> </rdf:RDF>
Weitere RDF Features • Reification • Manchmal ist es sinnvoll, eine Aussage selbst als Ressource zu beschreiben: Dies nennt man in RDF Reification. Reification stellt also eine Möglichkeit dar, Metadaten über Metadaten zu beschreiben.
<?xml version="1.0"?> <!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:exterms="http://www.example.com/terms/" xml:base="http://www.example.com/2002/04/products"> <rdf:Description rdf:ID="item10245"> <exterms:weight rdf:datatype="&xsd;decimal">2.4</exterms:weight> </rdf:Description> <rdf:Statement rdf:about="#triple12345"> <rdf:subject rdf:resource="http://www.example.com/2002/04/products#item10245"/> <rdf:predicate rdf:resource="http://www.example.com/terms/weight"/> <rdf:object rdf:datatype="&xsd;decimal">2.4</rdf:object> <dc:creator rdf:resource="http://www.example.com/staffid/85740"/> </rdf:Statement> <rdf:RDF>
RDF Schema • RDF bietet mit RDF Schema als Typisierungssystem ein eigenes erweitertes Vokabular, um Ressourcen und deren Beziehungen auszudrücken. • Einer der wichtigsten Aspekte von RDF Schema ist die Beschreibung von Klassen, rdf: class.
Beispiel: Klassifizierung „Motorisiertes Fahrzeug“ http://www.w3.org/TR/rdf-primer/#example28