SPARQL DESCRIBE 相对于默认图形的行为 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SPARQL DESCRIBE 相对于默认图形的行为

SPARQL DESCRIBE 查询表单允许您在不了解数据结构和不必编写查询的情况下检索有关资源的信息。如何收集这些信息留待 SPARQL 实现来决定。Neptune 提供了几个查询提示,以调用不同的模式和算法供 DESCRIBE 使用。

在 Neptune 的实现中,无论模式如何,DESCRIBE 都只使用 SPARQL 默认图形中存在的数据。这与 SPARQL 处理数据集的方式一致(请参阅 SPARQL 规范中的指定 RDF 数据集)。

在 Neptune 中,除非使用 FROM 和/或 FROM NAMED 子句指定特定的命名图形,否则默认图形包含数据库中所有命名图形的并集中的所有唯一三元组。Neptune 中的所有 RDF 数据都存储在命名图形中。如果在没有命名图形上下文的情况下插入三元组,Neptune 会将其存储在名为 http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph 的命名图形中。

当使用 FROM 子句指定一个或多个命名图形时,默认图形是这些命名图形中所有唯一三元组的并集。如果没有 FROM 子句但有一个或多个 FROM NAMED 子句,则默认图形为空。

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 子句时,默认图形为空。

在以下查询中,在不存在 FROMFROM NAMED 子句的情况下使用 DESCRIBE

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" .