XML -RDF
Beispiel für ein RDF-Dokument
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">
<rdf:Description rdf:about="https://www.w3schools.com">
<si:title>W3Schools</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
Was ist RDF?
- RDF steht für Resource D esscription Framework
- RDF ist ein Framework zur Beschreibung von Ressourcen im Web
- RDF wurde entwickelt, um von Computern gelesen und verstanden zu werden
- RDF ist nicht darauf ausgelegt, Menschen angezeigt zu werden
- RDF ist in XML geschrieben
- RDF ist Teil der Semantic Web Activity des W3C
- RDF ist eine W3C-Empfehlung vom 10. Februar 2004
RDF - Anwendungsbeispiele
- Beschreiben von Eigenschaften für Einkaufsartikel, wie z. B. Preis und Verfügbarkeit
- Beschreiben von Zeitplänen für Web-Events
- Beschreiben von Informationen über Webseiten (Inhalt, Autor, Erstellungs- und Änderungsdatum)
- Beschreibung des Inhalts und Bewertung von Webbildern
- Beschreibung von Inhalten für Suchmaschinen
- Beschreibung elektronischer Bibliotheken
RDF wurde entwickelt, um von Computern gelesen zu werden
RDF wurde entwickelt, um eine gemeinsame Methode zur Beschreibung von Informationen bereitzustellen, damit sie von Computeranwendungen gelesen und verstanden werden können.
RDF-Beschreibungen sind nicht für die Anzeige im Web konzipiert.
RDF ist in XML geschrieben
RDF-Dokumente werden in XML geschrieben. Die von RDF verwendete XML-Sprache heißt RDF/XML.
Durch die Verwendung von XML können RDF-Informationen problemlos zwischen verschiedenen Computertypen mit unterschiedlichen Betriebssystemen und Anwendungssprachen ausgetauscht werden.
RDF und "Das semantische Web"
Die RDF-Sprache ist Teil der Semantic Web Activity des W3C. Die „Semantic Web Vision“ des W3C ist eine Zukunft, in der:
- Web-Informationen haben eine genaue Bedeutung
- Webinformationen können von Computern verstanden und verarbeitet werden
- Computer können Informationen aus dem Internet integrieren
RDF verwendet Web-Identifikatoren (URIs), um Ressourcen zu identifizieren.
RDF beschreibt Ressourcen mit Eigenschaften und Eigenschaftswerten.
RDF-Ressource, Eigenschaft und Eigenschaftswert
RDF identifiziert Dinge mithilfe von Web-Identifikatoren (URIs) und beschreibt Ressourcen mit Eigenschaften und Eigenschaftswerten.
Erläuterung von Ressource, Eigentum und Eigentumswert:
- Eine Ressource ist alles, was einen URI haben kann, z. B. „https://www.w3schools.com/rdf“.
- Eine Eigenschaft ist eine Ressource, die einen Namen hat, z. B. „Autor“ oder „Homepage“.
- Ein Eigenschaftswert ist der Wert einer Eigenschaft, z. B. „Jan Egil Refsnes“ oder „https://www.w3schools.com“ (beachten Sie, dass ein Eigenschaftswert eine andere Ressource sein kann).
Das folgende RDF-Dokument könnte die Ressource "https://www.w3schools.com/rdf" beschreiben:
<?xml version="1.0"?>
<RDF>
<Description about="https://www.w3schools.com/rdf">
<author>Jan Egil Refsnes</author>
<homepage>https://www.w3schools.com</homepage>
</Description>
</RDF>
Das obige Beispiel ist vereinfacht. Namensräume werden weggelassen.
RDF-Anweisungen
Die Kombination aus einer Ressource, einer Eigenschaft und einem Eigenschaftswert bildet eine Anweisung (bekannt als Subjekt, Prädikat und Objekt einer Anweisung).
Schauen wir uns zum besseren Verständnis einige Beispielaussagen an:
Aussage: "Der Autor von https://www.w3schools.com/rdf ist Jan Egil Refsnes".
- Der Betreff der obigen Erklärung lautet: https://www.w3schools.com/rdf
- Das Prädikat ist: Autor
- Das Objekt ist: Jan Egil Refsnes
Erklärung: "Die Homepage von https://www.w3schools.com/rdf ist https://www.w3schools.com".
- Der Betreff der obigen Erklärung lautet: https://www.w3schools.com/rdf
- Das Prädikat lautet: Homepage
- Das Objekt ist: https://www.w3schools.com
RDF-Beispiel
Hier zwei Aufnahmen aus einer CD-Liste:
Title | Artist | Country | Company | Price | Year |
---|---|---|---|---|---|
Empire Burlesque | Bob Dylan | USA | Columbia | 10.90 | 1985 |
Hide your heart | Bonnie Tyler | UK | CBS Records | 9.90 | 1988 |
Unten sind ein paar Zeilen aus einem RDF-Dokument:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
<cd:artist>Bonnie Tyler</cd:artist>
<cd:country>UK</cd:country>
<cd:company>CBS Records</cd:company>
<cd:price>9.90</cd:price>
<cd:year>1988</cd:year>
</rdf:Description>
.
.
.
</rdf:RDF>
Die erste Zeile des RDF-Dokuments ist die XML-Deklaration. Auf die XML-Deklaration folgt das Root-Element von RDF-Dokumenten: <rdf:RDF> .
Der Namespace xmlns:rdf gibt an, dass Elemente mit dem Präfix rdf aus dem Namespace „http://www.w3.org/1999/02/22-rdf-syntax-ns#“ stammen.
Der Namespace xmlns:cd gibt an, dass Elemente mit dem Präfix cd aus dem Namespace „http://www.recshop.fake/cd#“ stammen.
Das Element <rdf:Description> enthält die Beschreibung der Ressource, die durch das Attribut rdf:about identifiziert wird.
Die Elemente: <cd:artist>, <cd:country>, <cd:company> usw. sind Eigenschaften der Ressource.
RDF-Online-Validator
Der RDF-Validierungsdienst des W3C ist beim Erlernen von RDF hilfreich. Hier können Sie mit RDF-Dateien experimentieren.
Der Online-RDF-Validator parst Ihr RDF-Dokument, überprüft Ihre Syntax und generiert tabellarische und grafische Ansichten Ihres RDF-Dokuments.
Kopieren Sie das folgende Beispiel und fügen Sie es in den RDF-Validator des W3C ein:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">
<rdf:Description rdf:about="https://www.w3schools.com">
<si:title>W3Schools.com</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
Wenn Sie das obige Beispiel parsen, sieht das Ergebnis in etwa so aus .
RDF-Elemente
Die Hauptelemente von RDF sind das Wurzelelement <RDF> und das Element <Description>, das eine Ressource identifiziert.
Das <rdf:RDF>-Element
<rdf:RDF> ist das Wurzelelement eines RDF-Dokuments. Es definiert das XML-Dokument als RDF-Dokument. Es enthält auch einen Verweis auf den RDF-Namensraum:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...Description goes here...
</rdf:RDF>
Das <rdf:Description>-Element
Das Element <rdf:Description> identifiziert eine Ressource mit dem about-Attribut.
Das Element <rdf:Description> enthält Elemente, die die Ressource beschreiben:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
</rdf:RDF>
Die Elemente Künstler, Land, Firma, Preis und Jahr werden im Namensraum http://www.recshop.fake/cd# definiert. Dieser Namensraum befindet sich außerhalb von RDF (und ist kein Teil von RDF). RDF definiert nur den Rahmen. Die Elemente Künstler, Land, Unternehmen, Preis und Jahr müssen von jemand anderem (Unternehmen, Organisation, Person usw.) definiert werden.
Eigenschaften als Attribute
Die Eigenschaftselemente können auch als Attribute (statt als Elemente) definiert werden:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" />
</rdf:RDF>
Eigenschaften als Ressourcen
Die Eigenschaftselemente können auch als Ressourcen definiert werden:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
...
...
</rdf:Description>
</rdf:RDF>
Im obigen Beispiel hat die Eigenschaft Künstler keinen Wert, sondern einen Verweis auf eine Ressource, die Informationen über den Künstler enthält.
RDF-Behälter
RDF-Container werden verwendet, um Gruppen von Dingen zu beschreiben.
Die folgenden RDF-Elemente werden verwendet, um Gruppen zu beschreiben: <Bag>, <Seq> und <Alt>.
Das <rdf:Bag>-Element
Das Element <rdf:Bag> wird verwendet, um eine Liste von Werten zu beschreiben, die nicht in einer bestimmten Reihenfolge vorliegen müssen.
Das Element <rdf:Bag> kann doppelte Werte enthalten.
Beispiel
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
<cd:artist>
<rdf:Bag>
<rdf:li>John</rdf:li>
<rdf:li>Paul</rdf:li>
<rdf:li>George</rdf:li>
<rdf:li>Ringo</rdf:li>
</rdf:Bag>
</cd:artist>
</rdf:Description>
</rdf:RDF>
Das <rdf:Seq>-Element
Das Element <rdf:Seq> wird verwendet, um eine geordnete Liste von Werten zu beschreiben (z. B. in alphabetischer Reihenfolge).
Das Element <rdf:Seq> kann doppelte Werte enthalten.
Beispiel
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
<cd:artist>
<rdf:Seq>
<rdf:li>George</rdf:li>
<rdf:li>John</rdf:li>
<rdf:li>Paul</rdf:li>
<rdf:li>Ringo</rdf:li>
</rdf:Seq>
</cd:artist>
</rdf:Description>
</rdf:RDF>
Das <rdf:Alt>-Element
Das Element <rdf:Alt> wird verwendet, um eine Liste alternativer Werte zu beschreiben (der Benutzer kann nur einen der Werte auswählen).
Beispiel
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
<cd:format>
<rdf:Alt>
<rdf:li>CD</rdf:li>
<rdf:li>Record</rdf:li>
<rdf:li>Tape</rdf:li>
</rdf:Alt>
</cd:format>
</rdf:Description>
</rdf:RDF>
RDF-Bedingungen
In den obigen Beispielen haben wir bei der Beschreibung der Containerelemente von "Werteliste" gesprochen. In RDF werden diese "Wertelisten" Mitglieder genannt.
Wir haben also folgendes:
- Ein Container ist eine Ressource, die Dinge enthält
- Die enthaltenen Dinge heißen Mitglieder (nicht Werteliste)
RDF-Sammlungen
RDF-Sammlungen beschreiben Gruppen, die NUR die angegebenen Mitglieder enthalten können.
Das Attribut rdf:parseType="Collection".
Wie im vorherigen Kapitel gesehen, sagt ein Container, dass die enthaltenden Ressourcen Mitglieder sind – er sagt nicht, dass andere Mitglieder nicht erlaubt sind.
RDF-Sammlungen werden verwendet, um Gruppen zu beschreiben, die NUR die angegebenen Mitglieder enthalten können.
Eine Collection wird durch das Attribut rdf:parseType="Collection" beschrieben.
Beispiel
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://recshop.fake/cd#">
<rdf:Description
rdf:about="http://recshop.fake/cd/Beatles">
<cd:artist rdf:parseType="Collection">
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>
</cd:artist>
</rdf:Description>
</rdf:RDF>
RDF-Schema und Anwendungsklassen
RDF-Schema (RDFS) ist eine Erweiterung von RDF.
RDF beschreibt Ressourcen mit Klassen, Eigenschaften und Werten.
Darüber hinaus benötigt RDF auch eine Möglichkeit, anwendungsspezifische Klassen und Eigenschaften zu definieren. Anwendungsspezifische Klassen und Eigenschaften müssen mithilfe von Erweiterungen zu RDF definiert werden.
Eine solche Erweiterung ist RDF Schema.
RDF-Schema (RDFS)
Das RDF-Schema stellt keine eigentlichen anwendungsspezifischen Klassen und Eigenschaften bereit.
Stattdessen stellt RDF Schema das Framework bereit, um anwendungsspezifische Klassen und Eigenschaften zu beschreiben.
Classes in RDF Schema are much like classes in object oriented programming languages. This allows resources to be defined as instances of classes, and subclasses of classes.
RDFS Example
The following example demonstrates some of the RDFS facilities:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">
<rdf:Description rdf:ID="animal">
<rdf:type
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="horse">
<rdf:type
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>
</rdf:RDF>
In the example above, the resource "horse" is a subclass of the class "animal".
Example Abbreviated
Since an RDFS class is an RDF resource we can abbreviate the example above by using rdfs:Class instead of rdf:Description, and drop the rdf:type information:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">
<rdfs:Class rdf:ID="animal" />
<rdfs:Class rdf:ID="horse">
<rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>
</rdf:RDF>
That's it!
The Dublin Core
The Dublin Core Metadata Initiative (DCMI) has created some predefined properties for describing documents.
RDF is metadata (data about data). RDF is used to describe information resources.
The Dublin Core is a set of predefined properties for describing documents.
The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is currently maintained by the Dublin Core Metadata Initiative.
Property | Definition |
---|---|
Contributor | An entity responsible for making contributions to the content of the resource |
Coverage | The extent or scope of the content of the resource |
Creator | An entity primarily responsible for making the content of the resource |
Format | The physical or digital manifestation of the resource |
Date | A date of an event in the lifecycle of the resource |
Description | An account of the content of the resource |
Identifier | An unambiguous reference to the resource within a given context |
Language | A language of the intellectual content of the resource |
Publisher | An entity responsible for making the resource available |
Relation | A reference to a related resource |
Rights | Information about rights held in and over the resource |
Source | A Reference to a resource from which the present resource is derived |
Subject | A topic of the content of the resource |
Title | A name given to the resource |
Type | The nature or genre of the content of the resource |
A quick look at the table above indicates that RDF is ideal for representing Dublin Core information.
RDF Example
The following example demonstrates the use of some of the Dublin Core properties in an RDF document:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc= "http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="https://www.w3schools.com">
<dc:description>W3Schools - Free tutorials</dc:description>
<dc:publisher>Refsnes Data as</dc:publisher>
<dc:date>2008-09-01</dc:date>
<dc:type>Web Development</dc:type>
<dc:format>text/html</dc:format>
<dc:language>en</dc:language>
</rdf:Description>
</rdf:RDF>
RDF Reference
The RDF namespace (xmlns:rdf) is: http://www.w3.org/1999/02/22-rdf-syntax-ns#
The RDFS namespace (xmlns:rdfs ) is: http://www.w3.org/2000/01/rdf-schema#
The recommended file extension for RDF files is .rdf. However, the extension .xml is often used to provide compatibility with old xml parsers.
The MIME type should be "application/rdf+xml".
RDFS / RDF Classes
Element | Class of | Subclass of |
---|---|---|
rdfs:Class | All classes | |
rdfs:Datatype | Data types | Class |
rdfs:Resource | All resources | Class |
rdfs:Container | Containers | Resource |
rdfs:Literal | Literal values (text and numbers) | Resource |
rdf:List | Lists | Resource |
rdf:Property | Properties | Resource |
rdf:Statement | Statements | Resource |
rdf:Alt | Containers of alternatives | Container |
rdf:Bag | Unordered containers | Container |
rdf:Seq | Ordered containers | Container |
rdfs:ContainerMembershipProperty | Container membership properties | Property |
rdf:XMLLiteral | XML literal values | Literal |
RDFS / RDF Properties
Element | Domain | Range | Description |
---|---|---|---|
rdfs:domain | Property | Class | The domain of the resource |
rdfs:range | Property | Class | The range of the resource |
rdfs:subPropertyOf | Property | Property | The property is a sub property of a property |
rdfs:subClassOf | Class | Class | The resource is a subclass of a class |
rdfs:comment | Resource | Literal | The human readable description of the resource |
rdfs:label | Resource | Literal | The human readable label (name) of the resource |
rdfs:isDefinedBy | Resource | Resource | The definition of the resource |
rdfs:seeAlso | Resource | Resource | The additional information about the resource |
rdfs:member | Resource | Resource | The member of the resource |
rdf:first | List | Resource | |
rdf:rest | List | List | |
rdf:subject | Statement | Resource | The subject of the resource in an RDF Statement |
rdf:predicate | Statement | Resource | The predicate of the resource in an RDF Statement |
rdf:object | Statement | Resource | The object of the resource in an RDF Statement |
rdf:value | Resource | Resource | The property used for values |
rdf:type | Resource | Class | The resource is an instance of a class |
RDF Attributes
Attribute | Description |
---|---|
rdf:about | Defines the resource being described |
rdf:Description | Container for the description of a resource |
rdf:resource | Defines a resource to identify a property |
rdf:datatype | Defines the data type of an element |
rdf:ID | Defines the ID of an element |
rdf:li | Defines a list |
rdf:_n | Defines a node |
rdf:nodeID | Defines the ID of an element node |
rdf:parseType | Defines how an element should be parsed |
rdf:RDF | The root of an RDF document |
xml:base | Defines the XML base |
xml:lang | Defines the language of the element content |