Loading AI tools
modèle de données pour la description des ressources sur le Web De Wikipédia, l'encyclopédie libre
Resource Description Framework (RDF) est un modèle de graphe destiné à décrire formellement les ressources Web et leurs métadonnées, afin de permettre le traitement automatique de ces descriptions. Développé par le W3C, RDF est le langage de base du Web sémantique. L'une des syntaxes (ou sérialisations) de ce langage est RDF/XML. D'autres syntaxes de RDF sont apparues ensuite, cherchant à rendre la lecture plus facile ; c'est le cas par exemple de Notation3 (ou N3).
Développé par | |
---|---|
Version initiale | |
Norme |
RDF 1.1 (d) |
Spécification | |
Site web |
En annotant des documents non structurés et en servant d'interface pour des applications et des documents structurés, telles que les bases de données et la GED, RDF permet une certaine interopérabilité entre des applications échangeant de l'information non formalisée et non structurée sur le Web.
Un document structuré en RDF est un ensemble de triplets.
Un triplet RDF est une association (sujet, prédicat, objet) :
Le sujet et l'objet, dans le cas où ce sont des ressources, peuvent être identifiés par un URI ou être des nœuds anonymes. Le prédicat est nécessairement identifié par un URI.
Les documents RDF peuvent être écrits en différentes syntaxes, y compris en XML. Mais RDF en soi n'est pas un dialecte XML. Il est possible d'avoir recours à d'autres syntaxes pour exprimer les triplets. RDF est simplement une structure de données constituée de nœuds et organisée en graphe. Bien que RDF/XML — sa version XML proposée par le W3C — ne soit qu'une syntaxe (ou sérialisation) du modèle, elle est souvent appelée RDF, par abus de langage.
Un document RDF ainsi formé correspond à un multigraphe orienté étiqueté. Chaque triplet correspond alors à une arête orientée dont l'étiquette est le prédicat, le nœud source est le sujet et le nœud cible est l'objet.
La sémantique d'un document RDF peut être exprimée en théorie des ensembles et en théorie des modèles en se donnant des contraintes sur le monde qui peuvent être décrites en RDF. RDF hérite alors de la généricité et de l'universalité de la notion d'ensemble. Cette sémantique peut être aussi traduite en formule de logique du premier ordre, positive, conjonctive et existentielle :
ce qui est équivalent à :
Le W3C a prévu un mécanisme d'inférence pour la sémantique de RDF déduisant exclusivement et intégralement les conséquences des prédicats, sans que ce mécanisme ne fasse l'objet d'une recommandation.
La structure de RDF est extrêmement générique et sert de base à un certain nombre de schémas ou vocabulaires dédiés à des applications spécifiques. Une partie de ces vocabulaires est spécifiée par le W3C, comme les langages d'ontologie RDFS et OWL, ou le vocabulaire SKOS pour la représentation des thésaurus et autres vocabulaires structurés. D'autres vocabulaires RDF, sans être spécifiés par le W3C, sont néanmoins utilisés largement et constituent des standards de fait dans la communauté du Web sémantique, comme FOAF qui est destiné à la représentation des personnes.
De nombreux langages de requête destinés à interroger les graphes RDF ont été développés. Le langage SPARQL, développé par le W3C, est destiné à devenir le standard en ce domaine.
Voici un exemple de requête SPARQL :
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE
{ ?x foaf:name ?name.
?x foaf:mbox ?mbox }
Si on applique cette requête au graphe RDF suivant (dans le format Turtle) :
@prefix foaf: <http://xmlns.com/foaf/0.1/> . <http://jlow.me> foaf:name "Johnny Lee Outlaw" . <http://jlow.me> foaf:mbox <mailto:jlow@jlow.me> . <http://peter.me> foaf:name "Peter Goodguy" . <http://peter.me> foaf:mbox <mailto:peter@peter.me> . <http://carol.me> foaf:mbox <mailto:carol@carol.me> .
On obtient alors le résultat suivant :
name | mbox |
---|---|
"Johnny Lee Outlaw" | <mailto:jlow@jlow.me> |
"Peter Goodguy" | <mailto:peter@peter.me> |
Pour en savoir plus : cours Wikiversité sur SPARQL
L'exemple suivant est tiré du site du W3C[1] qui décrit une ressource avec les déclarations « il y a une personne qui a comme identifiant http://www.w3.org/People/EM/contact#me, dont le nom est Eric Miller, dont l'adresse électronique est em@w3.org et qui a le titre de Docteur ».
La ressource « http://www.w3.org/People/EM/contact#me » est le sujet.
L'objet est :
Le sujet est un URI.
Les prédicats sont aussi des URI. Par exemple, l'URI pour chaque prédicat est :
De plus, le sujet a le type (avec le prédicat http://www.w3.org/1999/02/22-rdf-syntax-ns#type) personne (avec l'objet http://www.w3.org/2000/10/swap/pim/contact#Person).
Par conséquent, les triplets RDF suivants peuvent être exprimés :
Certains concepts en RDF sont tirés de la logique et de la linguistique, où les structures sujet-prédicat et sujet-prédicat-objet ont des significations semblables, mais distinctes. Cet exemple démontre :
En français, la déclaration « New York a l'abréviation postale NY » aurait « New York » comme sujet, « a l'abréviation postale » comme prédicat et « NY » comme objet.
Codé comme un triplet RDF, le sujet et le prédicat devraient être nommés par des ressources URI. L'objet pourrait être une ressource ou un élément littéral. Par exemple, dans la Notation3 sous forme de RDF, la déclaration pourrait ressembler à :
<urn:x-states:New%20York> <http://purl.org/dc/terms/alternative> "NY" .
Dans cet exemple, « urn:x-states:New%20York » est l'URI d'une ressource qui représente l'État américain New York, « http://purl.org/dc/terms/alternative » est l'URI du prédicat (dont voici la définition), et "NY" est une chaîne de caractères littérale. Notez que les URI choisis ici ne sont pas standards, et n'ont pas besoin de l'être, tant que leur signification est lisible et accessible.
N-Triples est l'un des formats standard de sérialisation du RDF. Le triplet ci-dessus peut également être représenté de manière équivalente avec le standard RDF/XML comme ci-dessous :
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/">
<rdf:Description rdf:about="urn:x-states:New%20York">
<dcterms:alternative>NY</dcterms:alternative>
</rdf:Description>
</rdf:RDF>
Toutefois, en raison des restrictions sur la syntaxe de QNames (comme dcterms:alternative
ci-dessus), il y a certains graphes RDF qui ne sont pas représentables avec RDF/XML.
D'une manière similaire, étant donné que « http://en.wikipedia.org/wiki/Tony_Benn » identifie une ressource particulière (indépendamment du fait que l'URI est un lien hypertexte, ou encore que la ressource est en réalité l'article Wikipédia sur Tony Benn) pour dire que le titre de cette ressource est "Tony Benn" et que son éditeur est « Wikipédia », on aurait deux assertions qui pourraient être exprimées comme des déclarations RDF valides. Dans le format N-Triples de RDF, ces déclarations pourraient ressembler aux éléments suivants :
<http://en.wikipedia.org/wiki/Tony_Benn> <http://purl.org/dc/elements/1.1/title> "Tony Benn" .
<http://en.wikipedia.org/wiki/Tony_Benn> <http://purl.org/dc/elements/1.1/publisher> "Wikipedia" .
Et ces déclarations pourraient être exprimées en RDF/XML comme :
<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://en.wikipedia.org/wiki/Tony_Benn">
<dc:title>Tony Benn</dc:title>
<dc:publisher>Wikipedia</dc:publisher>
</rdf:Description>
</rdf:RDF>
Pour une personne qui parle français, la même information peut être représentée simplement ainsi :
« Le titre de cette ressource, qui est publiée par Wikipédia, est "Tony Benn". »
Toutefois, RDF intègre les informations d'une manière formelle pour qu'une machine puisse le comprendre. L'objectif de RDF est de fournir un encodage et le mécanisme de l'interprétation afin de représenter les ressources pour les logiciels. Autrement dit, afin que les logiciels puissent accéder et utiliser des informations qui autrement ne pourraient pas être utilisées.
Les deux versions des déclarations ci-dessus sont longues, car une exigence pour une ressource RDF (comme un sujet ou un prédicat), c'est qu'il soit unique. Les ressources soumises doivent être uniques pour permettre d'identifier exactement les ressources décrites. Le prédicat doit être unique afin de réduire les chances de confondre la notion de titre ou d'éditeur par un logiciel. Si le logiciel reconnaît http://purl.org/dc/elements/1.1/title (une définition du concept de titre établie par la Dublin Core Metadata Initiative), il doit aussi savoir que ce titre est différent d'un titre foncier ou un titre honorifique ou tout simplement les lettres t-i-t-r-e mises ensemble.
L'exemple suivant montre comment représenter cette information en combinant plusieurs vocabulaires RDF. Ici, nous ajoutons en plus le thème principal de la page Wikipédia qui est une personne dont le nom est "Tony Benn":
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
<dc:title>Tony Benn</dc:title>
<dc:publisher>Wikipedia</dc:publisher>
<foaf:primaryTopic>
<foaf:Person>
<foaf:name>Tony Benn</foaf:name>
</foaf:Person>
</foaf:primaryTopic>
</rdf:Description>
</rdf:RDF>
Le RDF est un modèle de données et non un format. Pour publier un graphe RDF sur le Web, cela nécessite l’utilisation d’une syntaxe dite de sérialisation RDF[2].
Il existe plusieurs formats de sérialisation :
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.