Aperçu sur la sérialisation de RDF/XML
RDF/XML est la notation XML pour représenter un modèle RDF. Les règles de présentation d'un modèle RDF en document XML sont :
Graphe RDF correspond à un fichier XML avec la racine de l'arbre "rdf:RDF" ,
A tout triplet correspond un élément XML nommé rdf:Description,
Sujet du triplet est décrit par un attribut de l'élément "rdf:Description" qui est rdf :about= "URIref"
Prédicat : sous-élement de rdf:Description
Objet du triplet sera :
un attribut rdf:resource="URIref" du prédicat si Object est une ressource
si Objet est un littéral , il sera le contenu de l'élément prédicat.
La notatiion XML pour l'exemple présenté précédemment est :
<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="http://www.cat.com/docs#R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.cat.com/docs#R20301">
<dc:title>Karin Homepage</dc:title>
</rdf:Description>
<rdf:Description rdf:about="http://www.cat.com/docs#R20301">
<dc:date>2021-01-20</dc:date>
</rdf:Description>
</rdf:RDF>
URI relatives
Dans un document RDF/XML (aussi graphe RDF) on peut utiliser des URI relatives à condition de définir l'adresse de base est définie par l'attribut xml:base.
<rdf:RDF xml:base="http://www.cat.com/docs"
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="#R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
</rdf:Description>
<rdf:Description rdf:about="#R20301">
<dc:title>Karin Homepage</dc:title>
</rdf:Description>
<rdf:Description rdf:about="#R20301">
<dc:date>2021-01-20</dc:date>
</rdf:Description>
</rdf:RDF>
Regroupement des éléments description pour une même ressource
Pour simplifier la description d'une ressource, tous les éléments XML "rdf :description" concernant une ressource donnée peuvent être regroupés dans un seul élément de type "rdf :description".
Pour la ressource identifiée par "#R20301", on aura la notation XML suivante :
<rdf:RDF xml:base="http://www.cat.com/docs"
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="#R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
<dc:title>Karin Homepage</dc:title>
<dc:date>2021-01-20</dc:date>
</rdf:Description>
</rdf:RDF>
Attribut rdf:about et rdf:ID
L'élément rdf:Description a :
un attribut rdf:about indiquant que la ressource a été “définie” ailleurs
un attribut rdf:ID indiquant que la définition de la ressource
La valeur de ID doit être un nom XML
<rdf:RDF xml:base="http://www.cat.com/docs"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:ID="R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
<dc:title>Karin Homepage</dc:title>
<dc:date>2021-01-20</dc:date>
</rdf:Description>
</rdf:RDF>
Attribut rdf:type
Un triplet RDF de la forme : (S, rdf:type, O) indique que la ressource O représente une catégorie ou une classe de ressources où la ressource S est une instance.
Telles ressources sont appelées des éléments nœuds typés dans un document RDF/XML.
On ajoute dans l'exemple que la page personnelle de Karin est un document de type "PersonalType" représenté par l'URI : http://www.cat.com/schema/PersonalDoc
<rdf:RDF xml:base="http://www.cat.com/docs"
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="#R20301">
<rdf:type rdf:resource="http://www.cat.com/schema/PersonalDoc"/>
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
<dc:title>Karin Homepage</dc:title>
<dc:date>2021-01-20</dc:date>
</rdf:Description>
</rdf:RDF>
Syntaxe abrégée
Règles de simplification peuvent être appliquées dans les cas suivants :
Les éléments de prédicat (p sans descendance dans les éléments description peuvent se remplacer par des attributs XML.
Pour les éléments de description avec élément de type, on peut utiliser le nom spécifié dans l'élément rdf:type au lieu de rdf:Description.
Ces règles créent des variations de syntaxe de la même déclaration RDF. Elles sont équivalentes en ce qui concerne le modèle de données RDF même si leur syntaxe XML est différente .
<rdf:RDF xml:base="http://www.cat.com/docs"
xmlns:cs="http://www.cat.com/schema/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<cs:PersonalDoc rdf:about="#R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
<dc:title>Karin Homepage</dc:title>
<dc:date>2021-01-20</dc:date>
</cs:PersonalDoc>
</rdf:RDF>
Types de données
Les types de données sont utilisés dans les langages de programmation pour permettre l'interprétation. En RDF, on utilise éventuellement des littéraux typés avec l'utilisation de l'attribut "rdf :datatype".
<rdf:RDF xml:base="http://www.cat.com/docs"
xmlns:cs="http://www.cat.com/schema/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<cs:PersonalDoc rdf:about="#R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
<dc:title>Karin Homepage</dc:title>
<dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">
2021-01-20
</dc:date>
</cs:PersonalDoc>
</rdf:RDF>
Syntaxe XML :
<rdf:Statement rdf:ID="StatementAboutR20301">
<rdf:subject rdf:resource="#R20301"/>
<rdf:predicate rdf:resource="http://purl.org/dc/elements/1.1/creator"/>
<rdf:object rdf:resource="http://www.cat.com/auth#R051156"/>
</rdf:Statement>
Réification
On souhaite parfois faire des déclarations à propos d'autres déclarations de triplets. Il faut pour cela pouvoir se référer à une déclaration ayant un identifiant.
RDF permet ce genre de référence via la réification qui transforme une déclaration en ressource.
Soit l'élément XML suivant :
<rdf:Description rdf:about="http://www.cat.com/docs#R20301">
<dc:creator rdf:resource="http://www.cat.com/auth#R051156"/>
</rdf:Description>
La réification de ce triplet précédent est :
stmts:S1 rdf:type rdf:Statement
stmts:S1 rdf:subject docid:R20301
stmts:S1 rdf:predicate dc:creator
stmts:S1 rdf:object authid:R051156
Syntaxe XML :
<rdf:Statement rdf:ID="StatementAboutR20301">
<rdf:subject rdf:resource="#R20301"/>
<rdf:predicate rdf:resource="http://purl.org/dc/elements/1.1/creator"/>
<rdf:object rdf:resource="http://www.cat.com/auth#R051156"/>
</rdf:Statement>