sparql - SELECT FROM DEFAULT 实际上做了什么?

标签 sparql rdf named-graphs

Sparql 有一个“默认图”的概念,当没有指定图上下文时,它会被查询,并且(取决于三元组存储)可能是存储库中可用的适当图的联合,或者它可能是一个单独的图, "空图";到目前为止一切顺利。

但是sparql也有一个keyword DEFAULT可以指定而不是图形名称,如

SELECT *
FROM DEFAULT
WHERE { ... }

这个命令是做什么的?我只能将其解释为一种明确的方式来请求在根本没有 FROM 子句时会发生的相同事情。但这是正确的吗?我找不到关于它的文档。如何在更新查询中使用它,或者使用 CLEARCOPY 等?任何人都可以指出该关键字的含义和预期用途的文档,或者至少阐明它存在的原因吗?

最佳答案

当您在查询中有一个或多个 FROMFROM NAMED 语句时,查询的数据集仅由这些图组成。每SPARQL 1.1 Query Specification Section 13.2 :

The FROM and FROM NAMED keywords allow a query to specify an RDF dataset by reference; they indicate that the dataset should include graphs that are obtained from representations of the resources identified by the given IRIs (i.e. the absolute form of the given IRI references). The dataset resulting from a number of FROM and FROM NAMED clauses is:

  • a default graph consisting of the RDF merge of the graphs referred to in the FROM clauses, and
  • a set of (IRI, graph) pairs, one from each FROM NAMED clause.

If there is no FROM clause, but there is one or more FROM NAMED clauses, then the dataset includes an empty graph for the default graph.

所以基本上这些子句的存在创建了一个查询数据集,它可能隐藏底层数据集中的一些/所有图形。您的查询操作此查询数据集。

Andy's answer 中所述FROM DEFAULT 是对 SPARQL 语言的拟议 future 扩展,它将允许显式引用数据集默认图(无论可能是什么)。目前还没有标准化的方法来做到这一点,所以只有省略任何 FROM 子句的查询才能访问默认图,除非您的服务提供了一些非标准的方式来引用它,例如用于引用默认图形的自定义 URI。

对于您的特定示例查询:

SELECT *
FROM DEFAULT
WHERE { ... }

这会产生查询数据集的效果,该查询数据集使用服务默认值的默认图并且没有可见的命名图,即任何 GRAPH ?g { } 子句在此查询中都不匹配

关于sparql - SELECT FROM DEFAULT 实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67468456/

相关文章:

python - 三元组组合的递归 SPARQL 查询

sparql - 在 graphdb repo 中为多个数据集使用上下文

graphdb - 设置为仅查询默认图并排除命名图

java - Jena Sparql 错误 java.lang.Integer

sparql - 我如何使用 Dbpedia 和 SPARQL 查找美国的所有州及其首都?

sparql - 语义网 - Jena sparql

sparql - 使用 sparql 生成带有子图的图

java - Jena Java Api 读取 RDF 文件?

rdf - 将一个复杂的句子翻译成一组 SPO 三元组 (RDF)(可能需要具体化)

rdf - 如何将 OWL 导入与相对路径一起使用?