SPARQLconseils de requête utilisés avec DESCRIBE - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

SPARQLconseils de requête utilisés avec DESCRIBE

Une SPARQL DESCRIBE requête fournit un mécanisme flexible pour demander des descriptions de ressources. Cependant, les SPARQL spécifications ne définissent pas la sémantique précise de. DESCRIBE

À partir de la version 1.2.0.2 du moteur, Neptune prend en charge plusieurs modes et algorithmes DESCRIBE adaptés à différentes situations.

Cet exemple de jeu de données permet d'illustrer les différents modes :

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <https://example.com/> . :JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JohnDoe :firstName "John" . :JaneDoe :knows _:b1 . _:b1 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . :RichardRoe :firstName "Richard" . _:s1 rdf:type rdf:Statement . _:s1 rdf:subject :JaneDoe . _:s1 rdf:predicate :knows . _:s1 rdf:object :JohnDoe . _:s1 :knowsFrom "Berlin" . :ref_s2 rdf:type rdf:Statement . :ref_s2 rdf:subject :JaneDoe . :ref_s2 rdf:predicate :knows . :ref_s2 rdf:object :JohnDoe . :ref_s2 :knowsSince 1988 .

Les exemples ci-dessous supposent qu'une description de la ressource :JaneDoe est demandée à l'aide d'une SPARQL requête comme celle-ci :

DESCRIBE <https://example.com/JaneDoe>

L'indice describeMode SPARQL de requête

L'indice de hint:describeMode SPARQL requête est utilisé pour sélectionner l'un des SPARQL DESCRIBE modes suivants pris en charge par Neptune :

Le ForwardOneStep DESCRIBE mode

Vous invoquez le mode ForwardOneStep avec l'indicateur de requête describeMode comme suit :

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }

Le mode ForwardOneStep renvoie uniquement les attributs et les liens de transfert de la ressource à décrire. Dans le cas de cet exemple, cela signifie qu'il renvoie les triplets dont la ressource à décrire, :JaneDoe, est le sujet :

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .

Notez que la DESCRIBE requête peut renvoyer des triplets avec des nœuds vides, tels que_:b301990159, qui sont différents à IDs chaque fois, par rapport au jeu de données en entrée.

Le SymmetricOneStep DESCRIBE mode

SymmetricOneStepest le DESCRIBE mode par défaut si vous ne fournissez aucun indice de requête. Vous pouvez également l'invoquer explicitement avec l'indicateur de requête describeMode comme ceci :

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }

Sous la sémantique SymmetricOneStep, DESCRIBE renvoie les attributs, les liens de transfert et les liens inverses de la ressource à décrire :

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .

Le mode Description limitée concise (CBD) DESCRIBE

Le mode CBD (Concise Bounded Description) est invoqué à l'aide de l'indicateur de requête describeMode suivant :

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }

Sous la sémantique CBD, DESCRIBE renvoie la description CBD (telle que définie par le W3C) de la ressource à décrire :

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b285212943 . _:b285212943 :knows :RichardRoe . _:b285213199 rdf:subject :JaneDoe . _:b285213199 rdf:type rdf:Statement . _:b285213199 rdf:predicate :knows . _:b285213199 rdf:object :JohnDoe . _:b285213199 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .

La description limitée concise d'une RDF ressource (c'est-à-dire un nœud dans un RDF graphe) est le plus petit sous-graphe centré sur ce nœud qui peut être autonome. En pratique, cela signifie que si vous considérez ce graphe comme un arbre, avec le nœud désigné comme racine, il n'y a pas de nœuds vides comme feuilles de cet arbre. Comme les nœuds vides ne peuvent pas être traités de manière externe ni utilisés dans les requêtes ultérieures, il ne suffit pas de parcourir le graphe pour trouver le ou les prochains sauts individuels à partir du nœud actuel. Vous devez également aller assez loin pour trouver ce qui pourra être utilisé dans les requêtes ultérieures (à savoir autre chose qu'un nœud vide).

Calcul du CBD

Étant donné un nœud particulier (le nœud ou la racine de départ) dans le RDF graphe source, le nœud CBD de ce nœud est calculé comme suit :

  1. Incluez dans le sous-graphe toutes les déclarations du graphe source dont le sujet de la déclaration est le nœud de départ.

  2. De manière récursive, pour toutes les déclarations du sous-graphe contenant jusqu'à présent un objet de nœud vide, incluez dans le sous-graphe toutes les déclarations du graphe source dont le sujet de la déclaration correspond à ce nœud vide, et qui ne sont pas déjà incluses dans le sous-graphe.

  3. Récursivement, pour toutes les instructions incluses dans le sous-graphe jusqu'à présent, pour toutes les réifications de ces instructions dans le graphe source, incluez le CBD début du rdf:Statement nœud de chaque réification.

Il en résulte un sous-graphe où les nœuds de l'objet sont soit des IRI références, soit des littéraux, soit des nœuds vides ne faisant l'objet d'aucune instruction dans le graphe. Notez que le CBD ne peut pas être calculé à l'aide d'une seule SPARQL SELECT CONSTRUCT requête.

Le mode Symetric Concise Bounded Description () SCBD DESCRIBE

Le mode SCBD (Symetric Concise Bounded Description) est invoqué à l'aide de l'indicateur de requête describeMode suivant :

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }

Sous la sémantique SCBD, DESCRIBE renvoie la description SCBD (telle que définie par le W3C dans Description des jeux de données liés avec le vocabulaire VoID) :

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b335544591 . _:b335544591 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . _:b335544847 rdf:subject :JaneDoe . _:b335544847 rdf:type rdf:Statement . _:b335544847 rdf:predicate :knows . _:b335544847 rdf:object :JohnDoe . _:b335544847 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .

L'avantage des SymmetricOneStep modes CBD ForwardOneStep et SCBD est que les nœuds vides sont toujours étendus pour inclure leur représentation. Cela peut être un avantage important car vous ne pouvez pas interroger un nœud vide à l'aide deSPARQL. En outre, les SCBD modèles CBD D prennent également en compte les réifications.

Notez que l'indicateur de requête describeMode peut également faire partie d'une clause WHERE :

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE ?s WHERE { hint:Query hint:describeMode "CBD" . ?s rdf:type <https://example.com/Person> }

L'indice describeIterationLimit SPARQL de requête

L'indice de hint:describeIterationLimit SPARQL requête fournit une contrainte facultative sur le nombre maximum d'extensions itératives à effectuer pour les DESCRIBE algorithmes itératifs tels que et. CBD SCBD

DESCRIBEles limites sont ANDed réunies. Par conséquent, si la limite d'itération et la limite d'instructions sont spécifiées, les deux limites doivent être respectées avant que la DESCRIBE requête ne soit interrompue.

La valeur par défaut est 5. Vous pouvez le définir sur ZERO (0) pour ne spécifier AUCUNE limite sur le nombre d'extensions itératives.

L'indice describeStatementLimit SPARQL de requête

L'indice de hint:describeStatementLimit SPARQL requête fournit une contrainte facultative sur le nombre maximum d'instructions pouvant être présentes dans une réponse à une DESCRIBE requête. Il n'est appliqué qu'aux DESCRIBE algorithmes itératifs tels que CBD etSCBD.

DESCRIBEles limites sont ANDed réunies. Par conséquent, si la limite d'itération et la limite d'instructions sont spécifiées, les deux limites doivent être respectées avant que la DESCRIBE requête ne soit interrompue.

La valeur par défaut est 5 000. Vous pouvez le définir sur ZERO (0) pour ne pas limiter le nombre de déclarations renvoyées.