【问题标题】:What does SELECT FROM DEFAULT actually do?SELECT FROM DEFAULT 实际上是做什么的?
【发布时间】:2021-05-10 10:00:50
【问题描述】:

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

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

SELECT *
FROM DEFAULT
WHERE { ... }

这个命令有什么作用?我只能将其解释为一种明确的方式来请求完全没有 FROM 子句时会发生的相同事情。但这是正确的吗?我找不到有关它的文档。在更新查询或CLEARCOPY 等中使用它怎么样?谁能指出这个关键字的含义和预期用途的文档,或者至少阐明它为什么存在?

【问题讨论】:

标签: sparql rdf named-graphs


【解决方案1】:

如果查询中有一个或多个 FROMFROM NAMED 语句,则查询的数据集仅由这些图表组成。每SPARQL 1.1 Query Specification Section 13.2

FROM 和 FROM NAMED 关键字允许查询通过引用指定 RDF 数据集;它们表明数据集应包括从给定 IRI 标识的资源表示中获得的图表(即给定 IRI 引用的绝对形式)。由多个 FROM 和 FROM NAMED 子句产生的数据集是:

  • 由 FROM 子句中引用的图的 RDF 合并组成的默认图,以及
  • 一组(IRI,图形)对,每个 FROM NAMED 子句中的一个。

如果没有 FROM 子句,但有一个或多个 FROM NAMED 子句,则数据集包含一个空图作为默认图。

因此,基本上这些子句的存在会创建一个查询数据集,该数据集可能会隐藏底层数据集中的部分/所有图表。您的查询在此查询数据集上运行。

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

对于您的特定示例查询:

SELECT *
FROM DEFAULT
WHERE { ... }

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

【讨论】:

    【解决方案2】:

    FROM DEFAULT 是为未来工作提出的功能sparql-1.2/issues/43

    语法涵盖了 SPARQL 查询和 SPARQL 更新,因为它们共享相当多的语法。它们有不同的入口点(QueryUnitUpdateUnit)。

    DEFAULT 关键字出现在 GraphOrDefaultGraphRefAll 中。两者都只在 SPARQL 更新中使用。

    ADD, MOVE, CODE 使用GraphOrDefault; CLEARDROP 使用 GraphRefAll

    FROM 后跟iriNAMED iri

    省略FROM 表示隐式默认图。

    【讨论】:

    • 谢谢!这涵盖了语法,但是这些命令有什么作用?根据@stanislav 的信息,似乎 DEFAULT 指的是空图 而不是“隐式默认图”(通常是所有图的并集)。它是否正确?它是否适用于 UPDATE 语法以及 SELECT 提议?
    • 在 SPARQL 更新中,它指的是存储 GraphStore 的未命名图。它已经在 SPARQL 更新 1.1 中。 SPARQLquery 和 update 中的w3.org/TR/sparql11-update 是使用许多相同语法元素的不同语言。 COPY <iri> TO DEFAULT 将名为 的图中的所有三元组复制到图存储的默认图。
    • 谢谢,我研究了 sparql11-update 文档,并没有明确说明我们编写 DEFAULT 时会影响什么图。 (也许可以从其他部分推断出来......)所以你在评论中写的是新信息。
    • Section2:“一个图形存储包含一个(未命名的)插槽,其中包含一个默认图形和零个或多个命名插槽,其中包含命名图形。”它的“图形存储”是因为它是可变的——RDF 图和 RDF 数据集是不可变的。所以执行模型必须是“取旧值,计算新值,替换槽”。
    猜你喜欢
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2011-03-11
    • 2010-11-26
    • 2015-06-23
    • 2017-12-26
    • 2016-10-19
    相关资源
    最近更新 更多