翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SPARQL DESCRIBE のデフォルトグラフに対する動作
SPARQL DESCRIBE
DESCRIBE
が使用できるさまざまなモードやアルゴリズムを呼び出すクエリヒントがいくつか用意されています。
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" .