翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SPARQL DESCRIBE のデフォルトグラフに対する動作
SPARQL DESCRIBEDESCRIBE が使用できるさまざまなモードやアルゴリズムを呼び出すクエリヒントがいくつか用意されています。
Neptune の実装では、モードに関係なく、DESCRIBE は SPARQL デフォルトグラフにあるデータのみを使用します。これは SPARQL がデータセットを扱う方法と一致しています (SPARQL 仕様の「RDF データセットの指定
Neptune では、FROM や FROM NAMED 句を使用して特定の名前付きグラフが指定されない限り、デフォルトのグラフには、データベース内のすべての名前付きグラフの和集合に含まれるすべてのユニークなトリプルが含まれます。Neptune のすべての RDF データは、名前付きのグラフに保存されます。名前付きグラフのコンテキストなしでトリプルが挿入された場合、Neptune は http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph という名前付きグラフに格納します。
FROM 句を使用して 1 つ以上の名前付きグラフが指定された場合、デフォルトのグラフは、それらの名前付きグラフに含まれるすべてのユニークなトリプルを結合したグラフになります。FROM 句がなく、FROM NAMED 句が 1 つ以上ある場合、デフォルトのグラフは空になります。
SPARQL DESCRIBE の例
以下のデータを考慮します。
PREFIX ex: <https://example.com/> GRAPH ex:g1 { ex:s ex:p1 "a" . ex:s ex:p2 "c" . } GRAPH ex:g2 { ex:s ex:p3 "b" . ex:s ex:p2 "c" . } ex:s ex:p3 "d" .
このクエリでは:
PREFIX ex: <https://example.com/> DESCRIBE ?s FROM ex:g1 FROM NAMED ex:g2 WHERE { GRAPH ex:g2 { ?s ?p "b" . } }
Neptune は以下を返します。
ex:s ex:p1 "a" . ex:s ex:p2 "c" .
ここでは、グラフパターン GRAPH ex:g2 { ?s ?p "b" } が最初に評価され、その結果として ?s のバインディングが行われ、次に DESCRIBE 部分がデフォルトのグラフ (現在は ex:g1) に対して評価されます。
ただし、このクエリでは:
PREFIX ex: <https://example.com/> DESCRIBE ?s FROM NAMED ex:g1 WHERE { GRAPH ex:g1 { ?s ?p "a" . } }
Neptune は何も返しません。なぜなら、FROM NAMED 句があり、FROM 句がない場合、デフォルトのグラフは空になるからです。
次のクエリでは、DESCRIBE が使用され、FROM または FROM NAMED 句はありません。
PREFIX ex: <https://example.com/> DESCRIBE ?s WHERE { GRAPH ex:g1 { ?s ?p "a" . } }
この状況では、デフォルトのグラフは、データベース内のすべての名前付きグラフの和集合に含まれるすべてのユニークなトリプルで構成されます(正式にはRDFマージ)。そのため、Neptune は次のように返します。
ex:s ex:p1 "a" . ex:s ex:p2 "c" . ex:s ex:p3 "b" . ex:s ex:p3 "d" .