Modèle rdf

Il y a une erreur dans ce XML RDF; il ne représente pas exactement le modèle que nous avons créé. Le nœud vide dans le modèle a reçu une référence d`URI. Il n`est plus vide. La syntaxe RDF/XML n`est pas capable de représenter tous les modèles RDF; par exemple, il ne peut pas représenter un nœud vide qui est l`objet de deux instructions. L`écrivain «muet» que nous avons utilisé pour écrire ce RDF/XML ne fait aucune tentative d`écrire correctement le sous-ensemble de modèles qui peuvent être écrits correctement. Il donne un URI à chaque nœud vide, ce qui le rend plus vide. Il commence par certaines définitions constantes, puis crée un modèle ou un modèle vide, à l`aide de la méthode ModelFactory createDefaultModel () pour créer un modèle basé sur la mémoire. Jena contient d`autres implémentations de l`interface Model, par exemple un qui utilise une base de données relationnelle: ces types de modèle sont également disponibles à partir de ModelFactory. Comme indiqué précédemment, Jena représente un modèle RDF comme ensemble d`instructions, donc l`ajout d`une instruction avec le sujet, le prédicat et l`objet comme un déjà dans le modèle n`aura aucun effet. Jena ne définit pas lequel des deux surnoms présents dans le modèle sera retourné. Le résultat de l`appel de vCard.

getProperty (VCARD. SURNOM) est indéterminée. Jena retournera une des valeurs, mais il n`y a aucune garantie même que deux appels consécutifs retournera la même valeur. La méthode Model. listStatements (), qui répertorie toutes les instructions d`un modèle, est peut-être la manière la plus cruelle d`interroger un modèle. Son utilisation n`est pas recommandée sur de très grands modèles. Model. Listsujets () est similaire, mais retourne un itérateur sur toutes les ressources qui ont des propriétés, à savoir sont l`objet d`une certaine instruction. Jena fournit trois opérations pour manipuler les modèles dans leur ensemble. Ce sont les opérations d`ensemble communes de l`Union, l`intersection et la différence. Par exemple, le modèle pour un sac simple contenant les vCards de la Smith pourrait ressembler à ceci: tandis que les membres du sac sont représentés par les propriétés RDF: _ 1, RDF: _ 2 etc. l`ordre des propriétés n`est pas significatif.

Nous pourrions changer les valeurs des propriétés RDF: _ 1 et RDF: _ 2 et le modèle résultant représenterait les mêmes informations. Jusqu`à présent, ce tutoriel a traité principalement avec la création, la lecture et l`écriture des modèles RDF. Il est maintenant temps de traiter de l`accès aux informations détenues dans un modèle. Ici, nous avons ajouté une nouvelle propriété, vCard: N, pour représenter la structure du nom de John Smith. Il y a plusieurs choses intéressantes à propos de ce modèle. Notez que la propriété vCard: N prend une ressource comme valeur. Notez également que l`ellipse représentant le nom composé n`a pas d`URI. Il est connu comme un nœud vide. Alors que fonctionnellement ils peuvent être équivalents, le premier formulaire répertoriera toutes les instructions dans le modèle et tester chacun individuellement, tandis que le second permet les index maintenus par l`implémentation pour améliorer les performances. Essayez-le sur un grand modèle et voir par vous-même, mais faire une tasse de café d`abord. En 1999, le W3C a publié la première spécification RDF recommandée, le modèle et la spécification de syntaxe (“RDF M&S”). [9] Ceci décrivait le modèle de données de RDF et une sérialisation XML.

Cet écrivain, le soi-disant PrettyWriter, tire parti des fonctionnalités de la syntaxe abrégée RDF/XML pour écrire un modèle plus compactement. Il est également capable de préserver les noeuds vides où cela est possible. Il est cependant, ne convient pas pour l`écriture de très grands modèles, car sa performance est peu probable d`être acceptable. Pour écrire des fichiers volumineux et conserver des nœuds vides, écrivez au format N-triples: étant donné l`URI d`une ressource, l`objet de ressource peut être récupéré à partir d`un modèle à l`aide de la méthode Model. getResource (String URI).