Resource Description Framework RDF : Modèle et syntaxe et Schémas

By 24 July 2013

2.3.3. Resource Description Framework (RDF)

Nous allons décrire dans cette section le modèle et la syntaxe de RDF, ainsi que le schéma de RDF, RDFS, qui définissent RDF. L’objectif de cette description est de permettre l’utilisation de RDF et RDFS au lecteur afin d’exprimer un modèle de méta données propre à son organisation tout en bénéficiant des propriétés générales de RDF. Ces propriétés générales sont abordées en introduction.

2.3.3.1. Introduction

RDF19 est un modèle, associé à une syntaxe, dont le but est de permettre à une communauté d’utilisateurs de partager les mêmes méta données pour des ressources partagées. Il a été conçu initialement par le W3C pour permettre de structurer l’information accessible sur le web et de l’indexer efficacement.

18 Information and documentation — The Dublin Core metadata element set. (ISO TC 46/SC 4). ISO 15836:2003(E). Draft International Standard. The Dublin Core Metadata Initiative (DCMI) is the maintenance agency. http://dublincore.org/

RDF n’est pas particulièrement conçu pour permettre de stocker les méta données de documents mais plutôt pour permettre leur échange et leur traitement par des opérateurs humains ou artificiels. Un des gros avantages de RDF est son extensibilité, à travers l’utilisation des schémas20 RDF qui peuvent s’intégrer et ne s’excluent pas mutuellement grâce à l’utilisation du concept d’espace de nom (« namespace ») [41].

RDF est par ailleurs un des modèles de base et de syntaxe sur laquelle le web sémantique se construit avec l’ajout de couches (« layers ») au-dessus de RDF comme OIL (Ontology Inference Layer) et DAML (DARPA21 Agent Markup Language). OIL est utilisé pour définir des ontologies22 et DAML ajoute un petit nombre de caractéristiques au schéma RDF afin de rendre plus facile la définition de nouveaux langages permettant la communication entre agents intelligents (cf. Intelligence Artificielle) [42].

Les méta données du DCMI sont exprimées de manière normative avec la syntaxe RDF23. Lorsque les méta données d’un document sont exprimées en RDF en concordance avec le DCMI, elles font référence à l’espace de nom (domaine nominal ou « namespace » en anglais) des schémas RDF des méta données de Dublin Core. Conjointement avec RDF, l’initiative de Dublin Core vise à résoudre les problèmes d’ambiguïté sur la dénomination des ressources, et parmi elle surtout celles des propriétés24. Toutes les personnes désirant coopérer en échangeant de l’information ont là les moyens de le faire efficacement en résolvant les problèmes classiques auxquels ils peuvent être confrontés.

Enfin, les méta données en RDF peuvent être localisées en différents endroits. Tout d’abord, les méta données peuvent être imbriquées à l’intérieur d’un document lui-même (bloc de commentaire d’un fichier informatique ou à l’intérieur d’une balisede l’entête d’un fichier html) ou peuvent se situer sur une ressource externe (un autre document ou encore une base de donnée). Elles peuvent être distribuées (exemple de RSS – RDF Site Summary) ou centralisées dans un référentiel (exemple d’un répertoire UDDI – Universal Description, Discovery and Integration) [42]. RDF ne présuppose rien par rapport l’architecture des méta données et laisse une entière liberté par rapport à cela.

2.3.3.2. Modèle et syntaxe RDF

Eléments de base

La construction de base en RDF est le triplet {propriété, ressource, valeur}. Le langage de balise XML est utilisé pour le spécifier. On parle ainsi parfois de RDF / XML car d’autres formalismes peuvent être finalement retenus. Nous ne nous étendrons pas sur les deux syntaxes possibles de RDF : la syntaxe sérielle et la syntaxe abrégée ou encore simplifiée. De même, les propriétés peuvent être des éléments XML ou bien des attributs XML. Les exemples retiendront l’une ou l’autre forme sans autre distinction que celle imposée par XML, à savoir qu’un attribut ne peut contenir d’éléments fils et est forcément un élément terminal s’il est transposé en élément.

Tout ce qui est exprimé avec RDF est appelé une ressource. La ressource est toute entité d’information pouvant être référencée en un bloc, par un nom symbolique (littéral) ou un identificateur. L’identificateur est obligatoirement un URI (voir chapitre 2.2.2 « Uniform Resource Indicator (URI) »).

19 Resource Description Framework (RDF) Model and Syntax Specification. W 3C Recommendation 22 February 1999. Newest Version: http://www.w3.org/TR/REC-rdf-syntax
20 RDF Vocabulary Description Language 1.0: RDF Schema. W 3C W orking Draft 05 September 2003. Latest Version: http://www.w3.org/TR/rdf-schema/
21 DARPA : Defence Advanced Research Projects Agency – US Department of Defence.
22 Une ontologie établit une terminologie commune, plus un consensus sur son interprétation entre des membres d’une communauté de communication. Ces membres peuvent être humains ou des agents artificiels. Les ontologies représentent un champ de recherche bien établi en philosophie et intelligence artificielle…
23 DCMI term declarations represented in RDF schema language : http://dublincore.org/schemas/rdfs/
24 Synonyme dans notre contexte de méta données, avec le mot attribut. Cette note est un exemple d’ambiguïté possible de synonymie, une autre ambiguïté courante étant l’homonymie.

Une propriété est un aspect spécifique, une caractéristique, un attribut ou une relation utilisé pour décrire une ressource. Chaque propriété a une signification spécifique, des valeurs autorisées, des types de ressources qu’elle peut décrire et des relations avec d’autres propriétés.

Une ressource spécifique associée à une propriété et sa valeur correspondante est une expression ou déclaration (« statement ») RDF. Ces trois parties (ressource, propriété, valeur) sont appelées respectivement sujet, prédicat et objet. L’objet d’une déclaration (i.e. la valeur de la propriété associée à une ressource) peu être une autre déclaration RDF (réification) ou un littéral, c’est-à-dire ou une ressource (spécifiée par un URI), ou une chaîne de caractères simple (ou encore un autre type de donnée primaire défini par XML). En langage RDF, un littéral (« literal ») peut avoir un contenu XML bien formé mais qui n’est plus pris en compte par un processeur (ou encore un analyseur syntaxique) RDF.

Illustrons cela tout de suite avec un exemple utilisant les méta données du DCMI [43].

xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:dc=”http://purl.org/metadata/dublin_core#”>
“http://www.dlib.org”
dc:Title=”D-Lib Program – Research in Digital Libraries”
dc:Description=”The D-Lib program supports the community of people
with research interests in digital libraries and electronic publishing.”
dc:Publisher=”Corporation For National Research Initiatives” dc:Date=”1995-01-07″/>

Quelques commentaires s’imposent. L’élément racine rdf:RDF permet à un processeur RDF de repérer le début d’un bloc de déclaration RDF.

L’utilisation des domaines nominaux (déclarations « xmlns ») permet d’utiliser deux schémas RDF différents. Concrètement un seul est utilisé ici : celui du Dublin Core, l’autre déclaration de schéma, celui de RDF, étant obligatoire pour toute utilisation de RDF. La notion de domaine nominal est une notion fondamentale puisque c’est grâce à lui que l’on peut étendre les schémas de méta données sans avoir à en recréer un nouveau, reprenant l’ancien. De plus, la déclaration des domaines nominaux permet ensuite d’utiliser le préfixe abrégé de substitution pour référencer les propriétés décrites (c’est à dire par exemple dc:publisher au lieu de http://purl.org/metadata/dublin_core#publisher, la première forme dc:publisher étant bien plus lisible).

Maintenant, considérons la déclaration . Il s’agit de la déclaration type en RDF des propriétés (c’est à dire des méta données) de la ressource dans laquelle nous placerons les valeurs. La ressource est mentionnée dans l’attribut rdf:about de l’élément .

Enfin la propriété et sa valeur sont déclarées ici comme attribut XML, soit dc:Title=”D-Lib Program – Research in Digital Libraries” pour le titre de la ressource.

Une fois les déclarations préliminaires faites pour un document RDF, nous pourrons donc rencontrer des exemples basiques d’assertion comme celui ci :
Ora Lassila

Il sera l’expression du triplet :

– Sujet (Resource) : http://www.w3.org/Home/Lassila
– Predicat (Property) : Creator
– Objet (literal) : “Ora Lassila”

Cette assertion peut aussi être représentée par un graphe étiqueté orienté, système formel aux propriétés mathématiques bien définies sur lequel est basé RDF.

Graphe simple avec un nœud et un arc
Figure 1 : Graphe simple avec un nœud et un arc

Précisions sur les ressources, les propriétés et leurs valeurs : raffinements.

L’élément peut contenir plusieurs attributs. Nous avons l’attribut rdf:about, mais il existe aussi les attributs rdf:ID (pour pouvoir donner un identifiant à une déclaration RDF) , rdf:type (pour pouvoir donner un type prédéfini dans un schéma à une ressource). De plus, les éléments peuvent être emboîtés (nested).

Différentes formes de valeurs peuvent être données à une propriété : une chaîne de caractères littérale, une URI qui fait référence à une ressource, du langage XML bien formé ce qui a été dit déjà plus haut mais aussi une ressource anonyme avec ses propres propriétés, une ressource typée avec ses propriétés propres en plus de son URI.

RDF permet aussi l’utilisation de containeurs de ressource : collection (), séquence () ou alternative (). L’utilisation de l’attribut rdf:aboutEach dans l’élément permet ensuite d’affecter des propriétés avec la même valeur à un ensemble de ressources.

L’utilisation de l’attribut bagID dans un élément permet lui de réifier les propriétés contenues dans la déclaration RDF. L’exemple [42] suivant permettra de comprendre cette dernière caractéristique du langage RDF.
rdf:about=”http://www.epolitix.com/Articles/000005a4787.htm”
bagID=”classement”
>

Craig Hoy
Dans cet exemple, il est dit en fait que Craig Hoy est l’auteur du classement de l’article référencé par son URL (“000005a4787.htm”) dans les trois catégories (code 11, 12 et 13 définis par l’organisation IPTC). L’utilisation de l’attribut bagID permet de faire la description qui nous intéresse de façon « classique », ici la catégorisation d’un article, puis son utilisation dans la deuxième description permet de faire une déclaration à propos de cette première déclaration : c’est Craig Hoy qui est l’auteur de chacun de ces classements de l’article dans les catégories sus-mentionnées.

Le langage RDF, grâce à la réification, a la puissance nécessaire pour décrire un système de connaissance.

Récapitulation 25

Nous avons ainsi vu comment RDF est un modèle logique pouvant représenter les méta données, en utilisant le concept clé de triplet {ressource, propriété, valeur}, déclarations (« statement ») qui décrivent des ressources (i.e. des composants documentaires). Nous avons aussi vu comment RDF fournit une syntaxe pour représenter ce modèle avec le langage XML.

2.3.3.3. Schémas RDF

Les déclarations RDF définissent des relations entre des objets (nœud d’un graphe) qui appartiennent à un univers sémantique. A chacun de ces univers sémantiques correspond un domaine nominal, identifié par un préfixe particulier. Un tel domaine, pour lesquels sont définies des propriétés spécifiques et des catégories conceptuelles, est appelé un schéma.

Tout utilisateur a la possibilité de créer un nouveau schéma, de modifier, et notamment d’enrichir et d’affiner un schéma existant, de créer ce faisant un nouveau schéma personnalisé, et d’utiliser un schéma pour décrire les propriétés d’objets ayant une existence dans ce schéma.

RDFS (pour « RDF Schema ») offre les moyens de définir un modèle (ou bien encore un schéma) de méta données qui permet de :

– donner du sens aux propriétés associées à une ressource ;
– formuler des contraintes sur les valeurs associées à une propriété afin de lui assurer aussi une signification.

Par exemple, si l’on a une propriété qui représente un auteur26, on peut exiger que les valeurs de cette propriété soient une référence à une personne (et non pas une voiture ou une maison). On peut aussi vouloir restreindre quelles sont les propriétés s’appliquant à une ressource. Cela n’a probablement aucun sens d’autoriser une propriété « date de naissance » à être appliquée à un morceau de musique.

Déclaration d’une propriété dans un schéma RDFS

Une propriété est spécifiée dans un schéma RDFS en déclarant une URI qui identifie la ressource qui représente la propriété et où le type rdf:type de la ressource est rdf:property. Nous donnons ci-dessous un exemple extrait du schéma des méta données de Dublin Core qui définit le public (“audience“) comme étant une propriété RDF mais aussi comme étant une instance de la classe element du schéma de Dublin Core.
rdf:resource=”http://dublincore.org/usage/documents/principles/#element”/>

Restriction du domaine de valeur des propriétés

Pour indiquer qu’une propriété peut prendre seulement certaines valeurs, on utilise le prédicat (la propriété) rdfs:range.

Par exemple, pour exprimer qu’un créateur ne peut avoir que des ressources de type Personne (person) pour valeur, on a l’exemple suivant.
Si l’on veut indiquer que les valeurs que peut prendre le type Personne (Person) sont uniquement des chaînes de caractères littérales, on rajoutera la ligne suivante à l’exemple précédent.

Restriction du domaine d’application des propriétés

La propriété rdfs:domain est utilisée pour indiquer quel type de ressource peut être associé avec le sujet (la ressource) d’une propriété particulière. Dans l’exemple suivant, on précise qu’une date de naissance ne s’applique qu’à une ressource de type personne tout en rappelant que la valeur possible d’une date de naissance est un littéral.

Déclaration d’une classe de ressource

Nous avons vu dans le chapitre précédent sur RDF que nous pouvons typer une ressource déclarée avec RDF en utilisant l’attribut rdf:type dans l’élément et de ce fait ajouter de l’information à propos de la ressource.

Continuons avec l’exemple précédent. Pour pouvoir considérer la ressource Personne comme une classe, il faut la déclarer ainsi dans un schéma RDF avec rdfs:class :
Cela peut aussi s’écrire de la manière suivante :

On peut sous-classer des types de ressources, par exemple la classe personne en fonction d’un métier. Ainsi la classe Compositeur (de musique) et la classe Réalisateur sont des sous-classes de la classe Créateur qui elle-même peut être une sous-classe de la classe Personne. On utilisera pour cela la propriété rdfs:subClassOf.

Exemple d’utilisation du schéma RDFS issu des exemples de cette section

Nous pouvons maintenant déclarer à titre d’exemple final des méta données concernant un cas fictif approchant la réalité et reprenant le schéma de nos exemples. La date de naissance qui s’applique à John Smith, qui est une personne, est bien une valeur littérale. John Smith, une personne, est par ailleurs le créateur de la ressource dont le titre est « Utilisation des méta données dans notre organisation ».

xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:dc=”http://purl.org/metadata/dublin_core#”
xmlns:s=”http://www.schema.org/TR/rdf-schema#”>

Utilisation des méta données dans notre organisation
rdf:resource=”http://www.schema.org/TR/rdf-schema#Person” />
1954-06-23

Précisions et raffinements sur les schémas RDFS

1. D’autres éléments du schéma RDFS existent :

rdfs:Label, rdfs:comment, rdfs:seeAlso, rdfs:isDefinedBy. Leur description est reprise dans le Tableau 7 en annexe 4.1.

Un exemple issu du schéma RDFS des méta données de Dublin Core reprend ces éléments.
Audience Education Level

A general statement describing the education or training context.
Alternatively, a more specific statement of the location of the audience in terms of its progression through an education or training context.

2. De même, le schéma RDFS définit et déclare les éléments de RDF.

Par exemple, l’attribut ressource est définit comme une classe.

Mais cela outrepasse notre propos qui est de voir comment un schéma de méta données peut être créé afin de constituer un vocabulaire de méta données spécifiques de documents propres à une organisation et non pas d’étendre le modèle de schéma RDFS, comme peuvent le faire DAML ou OIL.

On trouvera en annexe 4.1 deux tableaux récapitulatifs du vocabulaire utilisé dans RDF. En annexe 4.2, on trouvera un exemple de schéma RDFS qui est une extension de schéma RDFS utilisant le schéma RDFS de Dublin Core. Enfin, l’annexe 4.3 reprendra un exemple de méta données au format RDF issu de ces schémas et s’appliquant à l’exemple de l’annexe 2.4.

On aura ainsi vu à travers cette section traitant des méta données quel peut être le champ que recouvre les méta données (méta données descriptives et d’applications) et comment les représenter (Dublin Core et RDF). Le chapitre suivant, premier chapitre sur l’architecture des systèmes de gestion de contenu, aborde le système de collecte, qui concerne l’acquisition de documents et de leurs méta données dans un système de gestion de contenu.

Lire le mémoire complet ==> (Les systèmes de gestion de contenu : description, classification et évaluation)
Mémoire présenté en vue d’obtenir le DIPLOME D’INGENIEUR C.N.A.M. en informatique
Conservatoire National Des Arts Et Métiers – Paris