翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SPARQL で使用されるクエリヒント DESCRIBE
SPARQL DESCRIBE
クエリは、リソースの説明をリクエストするための柔軟なメカニズムを提供します。ただし、SPARQL仕様では の正確なセマンティクスは定義されていませんDESCRIBE
。
エンジンリリース 1.2.0.2 以降、Neptune はさまざまな状況に適したいくつかの異なる DESCRIBE
モードとアルゴリズムをサポートしています。
このサンプルデータセットは、さまざまなモードを説明するのに役立ちます。
@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 .
以下の例では、次のようなSPARQLクエリを使用してリソースの説明:JaneDoe
がリクエストされていることを前提としています。
DESCRIBE <https://example.com/JaneDoe>
describeMode
SPARQL クエリヒント
hint:describeMode
SPARQL クエリヒントは、Neptune でサポートされている次のいずれかのSPARQLDESCRIBE
モードを選択するために使用されます。
ForwardOneStep
DESCRIBE モード
次のような describeMode
クエリヒントで ForwardOneStep
モードを呼び出します。
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }
ForwardOneStep
モードは、記述されるリソースの属性と転送リンクのみを返します。この例では、これは、記述されるリソース :JaneDoe
をサブジェクトとして持つトリプルを返すことを意味します。
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .
DESCRIBE クエリは、入力データセットと比較して、IDs毎回異なる _:b301990159
などの空白ノードを持つトリプルを返す場合があることに注意してください。
SymmetricOneStep
DESCRIBE モード
SymmetricOneStep
クエリヒントを指定しない場合、 はデフォルトDESCRIBEモードです。また、次のような describeMode
クエリヒントを使って明示的に呼び出すこともできます。
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }
SymmetricOneStep
セマンティクスでは、DESCRIBE
は、記述されるリソースの属性、送信リンク、逆リンクを返します。
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .
簡潔な境界説明 (CBD
) DESCRIBE モード
Concise Bounded Description (CBD
) モードは、次のような describeMode
クエリヒントを使用して呼び出されます。
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }
CBD
セマンティクスでは、DESCRIBE
は、記述されるリソースの Concise Bounded Description (W3C によって定義
: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 .
RDF リソース (つまり、RDFグラフ内のノード) の簡潔な境界付き説明は、スタンドアロンできるそのノードを中心とする最小のサブグラフです。実際には、このグラフを、指定されたノードをルートとするツリーと考えると、そのツリーの葉のような空白のノード (bnode) は存在しないということです。bnode は外部からアドレス指定することも、後続のクエリで使用することもできないため、現在のノードから次のシングルホップを見つけるには、グラフをブラウズするだけでは不十分です。また、後続のクエリで使用できるもの (つまり、bnode 以外のもの) を見つけるにも、十分に調査する必要があります。
の計算 CBD
ソースRDFグラフ内の特定のノード (開始ノードまたはルート) を指定すると、そのノードCBDの は次のように計算されます。
ステートメントのサブジェクトが開始ノードであるソースグラフ内のすべてのステートメントをサブグラフに含めます。
再帰的に、サブグラフ内のこれまでに空白のノードオブジェクトを持つすべてのステートメントについて、ソースグラフ内の、ステートメントのサブジェクトがその空白のノードであり、サブグラフにまだ含まれていないすべてのステートメントをサブグラフに含めます。
再帰的には、これまでのサブグラフに含まれるすべてのステートメントについて、ソースグラフ内のこれらのステートメントのすべての再確認について、各再確認の
rdf:Statement
ノードからのCBD先頭を含めます。
これにより、オブジェクトノードがIRIリファレンスまたはリテラルであるか、グラフ内のステートメントのサブジェクトとして機能していない空白ノードであるサブグラフになります。は、単一の SPARQL SELECT または CONSTRUCTクエリを使用して計算CBDできないことに注意してください。
Symmetric Concise Bounded Description (SCBD
) DESCRIBE モード
Symmetric Concise Bounded Description (SCBD
) モードは、次のような describeMode
クエリヒントを使用して呼び出されます。
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }
SCBD
セマンティクスでは、DESCRIBE
は、リソースの Symmetric Concise Bounded Description (W3C によって「リンクされたデータセットを 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 .
CBD および SymmetricOneStep
モードSCBDに対する ForwardOneStep
および モードの利点は、空白ノードが常に拡張され、その表現が含まれることです。これは、 を使用して空のノードをクエリできないため、重要な利点である可能性がありますSPARQL。さらに、 CBDおよび SCBD モードでは、再編成も考慮されます。
describeMode
クエリヒントは 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> }
describeIterationLimit
SPARQL クエリヒント
hint:describeIterationLimit
SPARQL クエリヒントは、 CBDや などの反復DESCRIBEアルゴリズムに対して実行される反復拡張の最大数に関するオプションの制約を提供しますSCBD。
DESCRIBE 制限はANDedまとめてあります。したがって、反復制限とステートメント制限の両方が指定されている場合、DESCRIBEクエリがカットされる前に両方の制限を満たす必要があります。
この値のデフォルトは 5 です。(ZERO0) に設定して、反復拡張の数に制限なしを指定できます。
describeStatementLimit
SPARQL クエリヒント
hint:describeStatementLimit
SPARQL クエリヒントは、DESCRIBEクエリレスポンスに存在する可能性のあるステートメントの最大数に関するオプションの制約を提供します。これは、 CBDや などの反復DESCRIBEアルゴリズムにのみ適用されますSCBD。
DESCRIBE 制限はANDedまとめてあります。したがって、反復制限とステートメント制限の両方が指定されている場合、DESCRIBEクエリがカットされる前に両方の制限を満たす必要があります。
この値のデフォルトは 5000 です。これを ZERO (0) に設定して、返されるステートメントの数に NO 制限を指定できます。