XML RDF
Exemple de document 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>
Qu'est-ce que RDF ?
- RDF signifie R esource D escription F ramework
- RDF est un framework pour décrire des ressources sur le web
- RDF est conçu pour être lu et compris par les ordinateurs
- RDF n'est pas conçu pour être affiché aux gens
- RDF est écrit en XML
- RDF fait partie de l'activité Web sémantique du W3C
- RDF est une recommandation du W3C du 10 février 2004
RDF - Exemples d'utilisation
- Décrire les propriétés des articles d'achat, telles que le prix et la disponibilité
- Description des horaires des événements Web
- Description des informations sur les pages Web (contenu, auteur, date de création et de modification)
- Description du contenu et évaluation des images Web
- Description du contenu pour les moteurs de recherche
- Description des bibliothèques électroniques
RDF est conçu pour être lu par des ordinateurs
RDF a été conçu pour fournir une manière commune de décrire les informations afin qu'elles puissent être lues et comprises par les applications informatiques.
Les descriptions RDF ne sont pas conçues pour être affichées sur le Web.
RDF est écrit en XML
Les documents RDF sont écrits en XML. Le langage XML utilisé par RDF s'appelle RDF/XML.
En utilisant XML, les informations RDF peuvent facilement être échangées entre différents types d'ordinateurs utilisant différents types de systèmes d'exploitation et de langages d'application.
RDF et "le Web sémantique"
Le langage RDF fait partie de l'activité Web sémantique du W3C. La "Vision Web sémantique" du W3C est un avenir où :
- Les informations Web ont une signification exacte
- Les informations Web peuvent être comprises et traitées par des ordinateurs
- Les ordinateurs peuvent intégrer des informations provenant du Web
RDF utilise des identifiants Web (URI) pour identifier les ressources.
RDF décrit les ressources avec des propriétés et des valeurs de propriété.
Ressource RDF, propriété et valeur de propriété
RDF identifie les éléments à l'aide d'identificateurs Web (URI) et décrit les ressources avec des propriétés et des valeurs de propriété.
Explication de la ressource, de la propriété et de la valeur de la propriété :
- Une ressource est tout ce qui peut avoir un URI, tel que "https://www.w3schools.com/rdf"
- Une propriété est une ressource qui a un nom, tel que "auteur" ou "page d'accueil"
- Une valeur de propriété est la valeur d'une propriété, telle que "Jan Egil Refsnes" ou "https://www.w3schools.com" (notez qu'une valeur de propriété peut être une autre ressource)
Le document RDF suivant pourrait décrire la ressource "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>
L'exemple ci-dessus est simplifié. Les espaces de noms sont omis.
Déclarations RDF
La combinaison d'une ressource, d'une propriété et d'une valeur de propriété forme une déclaration (appelée sujet, prédicat et objet d'une déclaration).
Examinons quelques exemples d'énoncés pour mieux comprendre :
Déclaration : "L'auteur de https://www.w3schools.com/rdf est Jan Egil Refsnes".
- Le sujet de la déclaration ci-dessus est : https://www.w3schools.com/rdf
- Le prédicat est : auteur
- L'objet est : Jan Egil Refsnes
Déclaration : "La page d'accueil de https://www.w3schools.com/rdf est https://www.w3schools.com".
- Le sujet de la déclaration ci-dessus est : https://www.w3schools.com/rdf
- Le prédicat est : page d'accueil
- L'objet est : https://www.w3schools.com
Exemple RDF
Voici deux enregistrements d'une liste de 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 |
Voici quelques lignes d'un document 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>
La première ligne du document RDF est la déclaration XML. La déclaration XML est suivie de l'élément racine des documents RDF : <rdf:RDF> .
L' espace de noms xmlns:rdf spécifie que les éléments avec le préfixe rdf proviennent de l'espace de noms "http://www.w3.org/1999/02/22-rdf-syntax-ns#".
L' espace de noms xmlns:cd spécifie que les éléments avec le préfixe cd proviennent de l'espace de noms "http://www.recshop.fake/cd#".
L' élément <rdf:Description> contient la description de la ressource identifiée par l' attribut rdf:about .
Les éléments : <cd:artist>, <cd:country>, <cd:company>, etc. sont des propriétés de la ressource.
Validateur en ligne RDF
Le service de validation RDF du W3C est utile lors de l'apprentissage de RDF. Ici, vous pouvez expérimenter avec des fichiers RDF.
Le validateur RDF en ligne analyse votre document RDF, vérifie votre syntaxe et génère des vues tabulaires et graphiques de votre document RDF.
Copiez et collez l'exemple ci-dessous dans le validateur RDF du 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>
Lorsque vous analysez l'exemple ci-dessus, le résultat ressemblera à ceci .
Éléments RDF
Les principaux éléments de RDF sont l'élément racine, <RDF>, et l'élément <Description>, qui identifie une ressource.
L'élément <rdf:RDF>
<rdf:RDF> est l'élément racine d'un document RDF. Il définit le document XML comme étant un document RDF. Il contient également une référence à l'espace de noms RDF :
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...Description goes here...
</rdf:RDF>
L'élément <rdf:Description>
L'élément <rdf:Description> identifie une ressource avec l'attribut about.
L'élément <rdf:Description> contient des éléments décrivant la ressource :
<?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>
Les éléments, artiste, pays, entreprise, prix et année, sont définis dans l'espace de noms http://www.recshop.fake/cd#. Cet espace de noms est en dehors de RDF (et ne fait pas partie de RDF). RDF ne définit que le cadre. Les éléments, artiste, pays, entreprise, prix et année, doivent être définis par quelqu'un d'autre (entreprise, organisation, personne, etc.).
Propriétés en tant qu'attributs
Les éléments de propriété peuvent également être définis comme des attributs (au lieu d'éléments) :
<?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>
Propriétés en tant que ressources
Les éléments de propriété peuvent également être définis comme des ressources :
<?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>
Dans l'exemple ci-dessus, la propriété artist n'a pas de valeur, mais une référence à une ressource contenant des informations sur l'artiste.
Conteneurs RDF
Les conteneurs RDF sont utilisés pour décrire un groupe de choses.
Les éléments RDF suivants sont utilisés pour décrire les groupes : <Bag>, <Seq> et <Alt>.
L'élément <rdf:Bag>
L'élément <rdf:Bag> est utilisé pour décrire une liste de valeurs qui n'ont pas besoin d'être dans un ordre spécifique.
L'élément <rdf:Bag> peut contenir des valeurs en double.
Exemple
<?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>
L'élément <rdf:Seq>
L'élément <rdf:Seq> est utilisé pour décrire une liste ordonnée de valeurs (par exemple, par ordre alphabétique).
L'élément <rdf:Seq> peut contenir des valeurs en double.
Exemple
<?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>
L'élément <rdf:Alt>
L'élément <rdf:Alt> est utilisé pour décrire une liste de valeurs alternatives (l'utilisateur ne peut sélectionner qu'une seule des valeurs).
Exemple
<?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>
Termes RDF
Dans les exemples ci-dessus, nous avons parlé de "liste de valeurs" lors de la description des éléments du conteneur. En RDF, ces "listes de valeurs" sont appelées membres.
Donc, nous avons ce qui suit :
- Un conteneur est une ressource qui contient des choses
- Les éléments contenus sont appelés membres (et non liste de valeurs)
Collections RDF
Les collections RDF décrivent des groupes qui peuvent UNIQUEMENT contenir les membres spécifiés.
L'attribut rdf:parseType="Collection"
Comme vu dans le chapitre précédent, un conteneur indique que les ressources contenantes sont des membres - il ne dit pas que les autres membres ne sont pas autorisés.
Les collections RDF sont utilisées pour décrire des groupes qui peuvent UNIQUEMENT contenir les membres spécifiés.
Une collection est décrite par l'attribut rdf:parseType="Collection".
Exemple
<?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 et classes d'application
RDF Schema (RDFS) est une extension de RDF.
RDF décrit les ressources avec des classes, des propriétés et des valeurs.
De plus, RDF a également besoin d'un moyen de définir des classes et des propriétés spécifiques à l'application. Les classes et les propriétés spécifiques à l'application doivent être définies à l'aide d'extensions de RDF.
L'une de ces extensions est RDF Schema.
Schéma RDF (RDFS)
RDF Schema ne fournit pas de classes et de propriétés spécifiques à l'application.
Au lieu de cela, RDF Schema fournit le cadre pour décrire les classes et les propriétés spécifiques à l'application.
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 |