Ressource anonyme

Un article de Wikipédia, l'encyclopédie libre.

Une ressource anonyme ou nœud anonyme (en anglais blank node ou bnode) est dans le langage RDF, une ressource, ou nœud d'un graphe RDF, qui n'est pas identifiée par une URI. Une ressource anonyme peut être sujet ou objet d'un triplet RDF.

Sommaire

[modifier] Exemple

"Jean a un(e) ami(e) né(e) un 21 avril" peut se traduire par les deux triplets suivants, qui utilisent des propriétés définies par le vocabulaire FOAF.

ex:Jean   foaf:knows   _:p1
_:p1   foaf:birthDate   04-21

Le premier triplet se lit "Jean connait p1". Le deuxième se lit "p1 est né(e) un 21 avril"

ex:Jean est une ressource nommée, c'est-à-dire identifiée de façon absolue par l'URI obtenue en remplaçant le préfixe ex: par l'espace de noms XML qu'il représente, par exemple http://example.org/Personne#Jean.

_:p1 représente l'ami(e) de Jean, une personne anonyme, non identifiée par une URI. On peut néanmoins déduire que _:p1 est de type foaf:Person d'après le premier triplet, et la sémantique déclarée dans FOAF:

foaf:knows   rdfs:range   foaf:Person

[modifier] Notation en RDF-XML

En RDF-XML un nœud anonyme peut être représenté en utilisant des éléments emboîtés.

<foaf:Person rdf:about="http://example.org/Personne#Jean">
 <foaf:knows>
  <foaf:Person foaf:birthDate="04-21"/>
 </foaf:knows>
</foaf:Person>

Si le même nœud anonyme est utilisé plusieurs fois dans le même graphe RDF, il peut être identifié par un attribut rdf:nodeID, qui l'identifie à l'intérieur de ce graphe. Par exemple pour exprimer que Jean et Marie ont un(e) ami(e) commun(e), mais dont on ne sait rien par ailleurs, on écrira:

<foaf:Person rdf:about="#Jean">
 <foaf:knows>
  <foaf:Person rdf:nodeID="b1"/>
 </foaf:knows>
</foaf:Person>
<foaf:Person rdf:about="#Marie">
 <foaf:knows>
  <foaf:Person rdf:nodeID="b1"/>
 </foaf:knows>
</foaf:Person>

[modifier] Exemples d'utilisation classiques

[modifier] Représentation de données complexes

Un nœud anonyme sera utilisé pour attacher de façon indirecte à une ressource un ensemble cohérent de propriétés qui constituent une donnée complexe, par exemple une adresse postale, les différents éléments de l'adresse (numéro, rue, ville, pays) étant des propriétés du nœud anonyme représentant l'adresse.

[modifier] Représentation de classes anonymes en OWL

Le langage d'ontologie OWL utilise des ressources anonymes pour définir par exemple des réunions ou intersections de classes, ou des classes appelées restrictions, définies par une contrainte sur une propriété.

Par exemple pour exprimer qu'une personne possède au maximum une date d'anniversaire, on écrira que la classe "Personne" est sous-classe d'une classe anonyme de type "owl:Restriction". Cette classe anonyme est définie par deux attributs indiquant la propriété concernée d'une part, et la contrainte imposée d'autre part (cardinalité > 1)

<owl:Class rdf:about="http://example.org/ontology/Personne">
   <rdfs:subClassOf>
     <owl:Restriction>
       <owl:maxCardinality>1</owl:maxCardinality>
       <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/birthDate"/>
     </owl:Restriction>
   </rdfs:subClassOf>
</owl:Class>
Autres langues