XML RDF
Przykład dokumentu RDF
<?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>
Co to jest RDF?
- RDF oznacza Ramę Opisu Zasobów _ _
- RDF to framework do opisywania zasobów w sieci
- RDF jest przeznaczony do czytania i zrozumienia przez komputery
- RDF nie jest przeznaczony do wyświetlania ludziom
- RDF jest napisany w XML
- RDF jest częścią Semantic Web Activity W3C
- RDF jest rekomendacją W3C od 10 lutego 2004 r.
RDF - Przykłady użycia
- Opisywanie właściwości przedmiotów zakupowych, takich jak cena i dostępność
- Opisywanie harmonogramów wydarzeń internetowych
- Opisywanie informacji o stronach internetowych (treść, autor, data utworzenia i modyfikacji)
- Opisywanie treści i ocenianie zdjęć internetowych
- Opisywanie treści dla wyszukiwarek
- Opisywanie bibliotek elektronicznych
RDF jest przeznaczony do odczytu przez komputery
RDF został zaprojektowany, aby zapewnić wspólny sposób opisywania informacji, aby mogły być odczytywane i rozumiane przez aplikacje komputerowe.
Opisy RDF nie są przeznaczone do wyświetlania w Internecie.
RDF jest napisany w XML
Dokumenty RDF są napisane w XML. Język XML używany przez RDF nazywa się RDF/XML.
Używając XML, informacje RDF mogą być łatwo wymieniane pomiędzy różnymi typami komputerów używających różnych typów systemów operacyjnych i języków aplikacji.
RDF i „Sieć semantyczna”
Język RDF jest częścią Semantic Web Activity W3C. „Wizja sieci semantycznej” W3C to przyszłość, w której:
- Informacje internetowe mają dokładne znaczenie
- Informacje internetowe mogą być rozumiane i przetwarzane przez komputery
- Komputery mogą integrować informacje z sieci
RDF używa identyfikatorów internetowych (URI) do identyfikacji zasobów.
RDF opisuje zasoby z właściwościami i wartościami właściwości.
Zasób RDF, własność i wartość własności
RDF identyfikuje rzeczy za pomocą identyfikatorów internetowych (URI) i opisuje zasoby za pomocą właściwości i wartości właściwości.
Wyjaśnienie wartości zasobu, właściwości i właściwości:
- Zasób to wszystko , co może mieć identyfikator URI, na przykład „https://www.w3schools.com/rdf”
- Właściwość to zasób , który ma nazwę, na przykład „autor” lub „strona główna”
- Wartość właściwości to wartość właściwości, na przykład „Jan Egil Refsnes” lub „https://www.w3schools.com” (pamiętaj, że wartość nieruchomości może być innym zasobem)
Poniższy dokument RDF może opisywać zasób „https://www.w3schools.com/rdf”:
<?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>
Powyższy przykład jest uproszczony. Przestrzenie nazw są pomijane.
Oświadczenia RDF
Kombinacja wartości zasobu, właściwości i właściwości tworzy oświadczenie (znane jako podmiot, predykat i obiekt instrukcji).
Spójrzmy na kilka przykładowych stwierdzeń, aby lepiej zrozumieć:
Oświadczenie: „Autorem https://www.w3schools.com/rdf jest Jan Egil Refsnes”.
- Przedmiotem powyższego oświadczenia jest: https://www.w3schools.com/rdf
- Predykat to: autor
- Obiekt to: Jan Egil Refsnes
Oświadczenie: „Strona główna https://www.w3schools.com/rdf to https://www.w3schools.com”.
- Przedmiotem powyższego oświadczenia jest: https://www.w3schools.com/rdf
- Predykat to: strona główna
- Obiekt to: https://www.w3schools.com
Przykład RDF
Oto dwa rekordy z listy CD:
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 |
Poniżej kilka linijek z dokumentu RDF:
<?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>
Pierwsza linia dokumentu RDF to deklaracja XML. Po deklaracji XML następuje główny element dokumentów RDF: <rdf:RDF> .
Przestrzeń nazw xmlns:rdf określa, że elementy z prefiksem rdf pochodzą z przestrzeni nazw „http://www.w3.org/1999/02/22-rdf-syntax-ns#”.
Przestrzeń nazw xmlns:cd określa, że elementy z prefiksem cd pochodzą z przestrzeni nazw „http://www.recshop.fake/cd#”.
Element <rdf:Description> zawiera opis zasobu identyfikowanego przez atrybut rdf:about .
Elementy: <cd:artist>, <cd:country>, <cd:company> itd. są właściwościami zasobu.
Walidator online RDF
Usługa Walidacji RDF W3C jest przydatna podczas nauki RDF. Tutaj możesz poeksperymentować z plikami RDF.
Walidator RDF online analizuje twój dokument RDF, sprawdza twoją składnię i generuje tabelaryczne i graficzne widoki twojego dokumentu RDF.
Skopiuj i wklej poniższy przykład do walidatora RDF W3C:
<?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>
Kiedy przeanalizujesz powyższy przykład, wynik będzie wyglądał mniej więcej tak .
Elementy RDF
Głównymi elementami RDF są element główny, <RDF> oraz element <Description>, który identyfikuje zasób.
Element <rdf:RDF>
<rdf:RDF> jest głównym elementem dokumentu RDF. Definiuje dokument XML jako dokument RDF. Zawiera również odniesienie do przestrzeni nazw RDF:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...Description goes here...
</rdf:RDF>
Element <rdf:Opis>
Element <rdf:Description> identyfikuje zasób z atrybutem about.
Element <rdf:Description> zawiera elementy opisujące zasób:
<?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>
Elementy, wykonawca, kraj, firma, cena i rok są zdefiniowane w przestrzeni nazw http://www.recshop.fake/cd#. Ta przestrzeń nazw znajduje się poza RDF (i nie jest częścią RDF). RDF definiuje tylko ramy. Elementy, artysta, kraj, firma, cena i rok muszą być zdefiniowane przez kogoś innego (firmę, organizację, osobę itp.).
Właściwości jako atrybuty
Elementy właściwości można również zdefiniować jako atrybuty (zamiast elementów):
<?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>
Właściwości jako zasoby
Elementy właściwości można również zdefiniować jako zasoby:
<?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>
W powyższym przykładzie własność artysty nie ma wartości, ale odniesienie do zasobu zawierającego informacje o artyście.
Pojemniki RDF
Kontenery RDF służą do opisu grupy rzeczy.
Do opisu grup używane są następujące elementy RDF: <Bag>, <Seq> i <Alt>.
Element <rdf:Bag>
Element <rdf:Bag> służy do opisania listy wartości, które nie muszą być w określonej kolejności.
Element <rdf:Bag> może zawierać zduplikowane wartości.
Przykład
<?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>
Element <rdf:Seq>
Element <rdf:Seq> służy do opisu uporządkowanej listy wartości (na przykład w kolejności alfabetycznej).
Element <rdf:Seq> może zawierać zduplikowane wartości.
Przykład
<?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>
Element <rdf:Alt>
Element <rdf:Alt> służy do opisu listy alternatywnych wartości (użytkownik może wybrać tylko jedną z wartości).
Przykład
<?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>
Warunki RDF
W powyższych przykładach przy opisie elementów kontenera mówiliśmy o „liście wartości”. W RDF te „listy wartości” nazywane są członkami.
Mamy więc:
- Kontener to zasób, który zawiera rzeczy
- Zawarte rzeczy nazywane są członkami (nie listą wartości)
Kolekcje RDF
Kolekcje RDF opisują grupy, które mogą zawierać TYLKO określonych członków.
Atrybut rdf:parseType="Collection"
Jak widać w poprzednim rozdziale, kontener mówi, że zasoby zawierające są członkami — nie oznacza, że inni członkowie nie są dozwoleni.
Kolekcje RDF są używane do opisywania grup, które mogą zawierać TYLKO określonych członków.
Kolekcja jest opisana atrybutem rdf:parseType="Collection".
Przykład
<?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>
Schematy RDF i klasy aplikacji
Schemat RDF (RDFS) jest rozszerzeniem RDF.
RDF opisuje zasoby za pomocą klas, właściwości i wartości.
Ponadto RDF potrzebuje również sposobu na zdefiniowanie klas i właściwości specyficznych dla aplikacji. Klasy i właściwości specyficzne dla aplikacji muszą być zdefiniowane za pomocą rozszerzeń RDF.
Jednym z takich rozszerzeń jest schemat RDF.
Schemat RDF (RDFS)
Schemat RDF nie zapewnia rzeczywistych klas i właściwości specyficznych dla aplikacji.
Zamiast tego RDF Schema zapewnia strukturę do opisywania klas i właściwości specyficznych dla aplikacji.
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 |