XML RDF
Příklad 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 je RDF?
- RDF je zkratka pro R esource D escription F ramework
- RDF je rámec pro popis zdrojů na webu
- RDF je navrženo tak, aby jej četly a rozuměly mu počítače
- RDF není určeno k zobrazování lidem
- RDF je napsáno v XML
- RDF je součástí sémantické webové aktivity W3C
- RDF je doporučení W3C z 10. února 2004
RDF - Příklady použití
- Popis vlastností pro nákupní položky, jako je cena a dostupnost
- Popis časových plánů pro webové události
- Popis informací o webových stránkách (obsah, autor, datum vytvoření a úpravy)
- Popis obsahu a hodnocení webových obrázků
- Popis obsahu pro vyhledávače
- Popis elektronických knihoven
RDF je navrženo pro čtení počítači
RDF byl navržen tak, aby poskytoval běžný způsob popisu informací, aby je bylo možné číst a porozumět počítačovým aplikacím.
Popisy RDF nejsou určeny k zobrazení na webu.
RDF je napsáno v XML
Dokumenty RDF jsou psány v XML. Jazyk XML používaný RDF se nazývá RDF/XML.
Pomocí XML lze snadno vyměňovat informace RDF mezi různými typy počítačů pomocí různých typů operačních systémů a aplikačních jazyků.
RDF a "Sémantický web"
Jazyk RDF je součástí aktivity sémantického webu W3C. „Vize sémantického webu“ W3C je budoucností, kde:
- Webová informace má přesný význam
- Webové informace mohou počítače pochopit a zpracovat
- Počítače mohou integrovat informace z webu
RDF používá webové identifikátory (URI) k identifikaci zdrojů.
RDF popisuje zdroje s vlastnostmi a hodnotami vlastností.
Zdroj RDF, majetek a hodnota majetku
RDF identifikuje věci pomocí webových identifikátorů (URI) a popisuje zdroje pomocí vlastností a hodnot vlastností.
Vysvětlení hodnoty zdroje, majetku a majetku:
- Zdroj je cokoli , co může mít URI, například „https://www.w3schools.com/rdf“
- Vlastnost je zdroj , který má název, například „autor“ nebo „domovská stránka“
- Hodnota nemovitosti je hodnota nemovitosti, například „Jan Egil Refsnes“ nebo „https://www.w3schools.com“ (všimněte si, že hodnotou nemovitosti může být jiný zdroj)
Následující dokument RDF by mohl popisovat zdroj „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>
Výše uvedený příklad je zjednodušený. Jmenné prostory jsou vynechány.
RDF prohlášení
Kombinace zdroje, vlastnosti a hodnoty vlastnosti tvoří Výpis (známý jako předmět, predikát a předmět Výpisu).
Podívejme se na několik příkladů prohlášení, abychom lépe porozuměli:
Prohlášení: "Autorem https://www.w3schools.com/rdf je Jan Egil Refsnes".
- Předmětem výše uvedeného prohlášení je: https://www.w3schools.com/rdf
- Predikát je: autor
- Objekt je: Jan Egil Refsnes
Prohlášení: „Domovská stránka https://www.w3schools.com/rdf je https://www.w3schools.com“.
- Předmětem výše uvedeného prohlášení je: https://www.w3schools.com/rdf
- Predikát je: domovská stránka
- Objekt je: https://www.w3schools.com
Příklad RDF
Zde jsou dva záznamy ze seznamu 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 |
Níže je několik řádků 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>
První řádek dokumentu RDF je deklarace XML. Po deklaraci XML následuje kořenový prvek dokumentů RDF: <rdf:RDF> .
Jmenný prostor xmlns:rdf určuje, že prvky s předponou rdf jsou ze jmenného prostoru "http://www.w3.org/1999/02/22-rdf-syntax-ns#".
Jmenný prostor xmlns:cd určuje, že prvky s předponou cd pocházejí ze jmenného prostoru "http://www.recshop.fake/cd#".
Element <rdf:Description> obsahuje popis zdroje identifikovaného atributem rdf:about .
Prvky: <cd:artist>, <cd:country>, <cd:company> atd. jsou vlastnostmi zdroje.
Online validátor RDF
Služba W3C RDF Validation Service je užitečná při učení RDF. Zde můžete experimentovat se soubory RDF.
Online RDF Validator analyzuje váš dokument RDF, zkontroluje vaši syntaxi a generuje tabulkové a grafické pohledy na váš dokument RDF.
Zkopírujte a vložte níže uvedený příklad do validátoru 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>
Když analyzujete výše uvedený příklad, výsledek bude vypadat nějak takto .
Prvky RDF
Hlavními prvky RDF jsou kořenový prvek <RDF> a prvek <Description>, který identifikuje zdroj.
Prvek <rdf:RDF>
<rdf:RDF> je kořenový prvek dokumentu RDF. Definuje dokument XML jako dokument RDF. Obsahuje také odkaz na jmenný prostor RDF:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...Description goes here...
</rdf:RDF>
Prvek <rdf:Description>
Element <rdf:Description> identifikuje zdroj pomocí atributu about.
Element <rdf:Description> obsahuje prvky, které popisují zdroj:
<?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>
Prvky, umělec, země, společnost, cena a rok jsou definovány ve jmenném prostoru http://www.recshop.fake/cd#. Tento jmenný prostor je mimo RDF (a není součástí RDF). RDF definuje pouze rámec. Prvky, umělec, země, společnost, cena a rok, musí být definovány někým jiným (společností, organizací, osobou atd.).
Vlastnosti jako atributy
Prvky vlastnosti lze také definovat jako atributy (místo prvků):
<?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>
Vlastnosti jako zdroje
Prvky vlastností lze také definovat jako zdroje:
<?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>
Ve výše uvedeném příkladu nemá umělec nemovitosti hodnotu, ale odkaz na zdroj obsahující informace o umělci.
RDF kontejnery
RDF kontejnery se používají k popisu skupiny věcí.
K popisu skupin se používají následující prvky RDF: <Bag>, <Seq> a <Alt>.
Prvek <rdf:Bag>
Element <rdf:Bag> se používá k popisu seznamu hodnot, které nemusí být v určitém pořadí.
Prvek <rdf:Bag> může obsahovat duplicitní hodnoty.
Příklad
<?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>
Prvek <rdf:Seq>
Prvek <rdf:Seq> se používá k popisu uspořádaného seznamu hodnot (například v abecedním pořadí).
Prvek <rdf:Seq> může obsahovat duplicitní hodnoty.
Příklad
<?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>
Prvek <rdf:Alt>
Prvek <rdf:Alt> se používá k popisu seznamu alternativních hodnot (uživatel může vybrat pouze jednu z hodnot).
Příklad
<?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>
Podmínky RDF
Ve výše uvedených příkladech jsme při popisu prvků kontejneru hovořili o "seznamu hodnot". V RDF se tyto "seznamy hodnot" nazývají členy.
Máme tedy následující:
- Kontejner je zdroj, který obsahuje věci
- Obsažené věci se nazývají členy (nikoli seznam hodnot)
Sbírky RDF
Kolekce RDF popisují skupiny, které mohou obsahovat POUZE určené členy.
Atribut rdf:parseType="Collection".
Jak je vidět v předchozí kapitole, kontejner říká, že zdroje, které obsahují, jsou členy – neříká, že ostatní členové nejsou povoleni.
Kolekce RDF se používají k popisu skupin, které mohou obsahovat POUZE určené členy.
Kolekce je popsána atributem rdf:parseType="Collection".
Příklad
<?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>
Schéma RDF a aplikační třídy
RDF Schema (RDFS) je rozšířením RDF.
RDF popisuje prostředky s třídami, vlastnostmi a hodnotami.
Kromě toho RDF také potřebuje způsob, jak definovat třídy a vlastnosti specifické pro aplikaci. Třídy a vlastnosti specifické pro aplikaci musí být definovány pomocí rozšíření RDF.
Jedním z takových rozšíření je RDF Schema.
Schéma RDF (RDFS)
Schéma RDF neposkytuje skutečné třídy a vlastnosti specifické pro aplikaci.
Místo toho RDF Schema poskytuje rámec pro popis tříd a vlastností specifických pro aplikaci.
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 |