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 :

1
<?xml version="1.0"?>
2
 <rdf:RDF	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
4
	
5
	<rdf:Description	rdf:about="http://www.cat.com/docs#R20301">
6
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
7
 	</rdf:Description> 	
8
	<rdf:Description  rdf:about="http://www.cat.com/docs#R20301">
9
			 <dc:title>Karin Homepage</dc:title>
10
 	</rdf:Description> 	
11
	<rdf:Description  rdf:about="http://www.cat.com/docs#R20301">
12
 			<dc:date>2021-01-20</dc:date>
13
	 </rdf:Description> 
14
15
</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.

1
<?xml version="1.0"?>
2
 <rdf:RDF	xml:base="http://www.cat.com/docs"
3
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
5
	
6
	<rdf:Description	rdf:about="#R20301">
7
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
8
 	</rdf:Description>
9
 	
10
	<rdf:Description  rdf:about="#R20301">
11
			 <dc:title>Karin Homepage</dc:title>
12
 	</rdf:Description> 
13
	
14
	<rdf:Description  rdf:about="#R20301">
15
 			<dc:date>2021-01-20</dc:date>
16
	 </rdf:Description> 
17
18
</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 :

1
<?xml version="1.0"?>
2
 <rdf:RDF	xml:base="http://www.cat.com/docs"
3
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
5
	
6
	<rdf:Description	rdf:about="#R20301">
7
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
8
			 <dc:title>Karin Homepage</dc:title>
9
  			<dc:date>2021-01-20</dc:date>
10
	 </rdf:Description> 
11
12
</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

1
<?xml version="1.0"?>
2
 <rdf:RDF	xml:base="http://www.cat.com/docs"
3
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
5
	
6
	<rdf:Description	rdf:ID="R20301">
7
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
8
			 <dc:title>Karin Homepage</dc:title>
9
  			<dc:date>2021-01-20</dc:date>
10
	 </rdf:Description> 
11
12
</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

1
<?xml version="1.0"?>
2
 <rdf:RDF	xml:base="http://www.cat.com/docs"
3
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
5
	
6
	<rdf:Description	rdf:about="#R20301">
7
		<rdf:type   rdf:resource="http://www.cat.com/schema/PersonalDoc"/>
8
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
9
			 <dc:title>Karin Homepage</dc:title>
10
  			<dc:date>2021-01-20</dc:date>
11
	 </rdf:Description> 
12
13
</rdf:RDF>

Syntaxe abrégée

Règles de simplification peuvent être appliquées dans les cas suivants :

  1. Les éléments de prédicat (p sans descendance dans les éléments description peuvent se remplacer par des attributs XML.

  2. 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 .

1
<?xml version="1.0"?>
2
 <rdf:RDF	xml:base="http://www.cat.com/docs"
3
			xmlns:cs="http://www.cat.com/schema/"
4
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
5
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
6
	
7
	<cs:PersonalDoc		rdf:about="#R20301">
8
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
9
			 <dc:title>Karin Homepage</dc:title>
10
  			<dc:date>2021-01-20</dc:date>
11
	 </cs:PersonalDoc> 
12
13
</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".

1
<?xml version="1.0"?>
2
 <rdf:RDF	xml:base="http://www.cat.com/docs"
3
			xmlns:cs="http://www.cat.com/schema/"
4
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
5
 			xmlns:dc="http://purl.org/dc/elements/1.1/"> 	
6
	
7
	<cs:PersonalDoc		rdf:about="#R20301">
8
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
9
			 <dc:title>Karin Homepage</dc:title>
10
  			<dc:date	 rdf:datatype="http://www.w3.org/2001/XMLSchema#date">
11
				2021-01-20
12
			</dc:date>
13
	 </cs:PersonalDoc> 
14
15
</rdf:RDF>

Syntaxe XML :

1
<rdf:Statement rdf:ID="StatementAboutR20301">
2
	<rdf:subject        rdf:resource="#R20301"/>
3
	<rdf:predicate 	rdf:resource="http://purl.org/dc/elements/1.1/creator"/>
4
	<rdf:object	rdf:resource="http://www.cat.com/auth#R051156"/>
5
</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 :

1
<rdf:Description	rdf:about="http://www.cat.com/docs#R20301">
2
 			<dc:creator  rdf:resource="http://www.cat.com/auth#R051156"/>
3
</rdf:Description> 	

La réification de ce triplet précédent est :

1
stmts:S1     rdf:type        rdf:Statement
2
stmts:S1 	   rdf:subject 		 docid:R20301 
3
stmts:S1 	   rdf:predicate 	 dc:creator 
4
stmts:S1 	   rdf:object 		 authid:R051156

Syntaxe XML :

1
<rdf:Statement rdf:ID="StatementAboutR20301">
2
	<rdf:subject        rdf:resource="#R20301"/>
3
	<rdf:predicate 	    rdf:resource="http://purl.org/dc/elements/1.1/creator"/>
4
	<rdf:object	        rdf:resource="http://www.cat.com/auth#R051156"/>
5
</rdf:Statement>