SPARQL 查询中的 FROM 子句

FROM clause in SPARQL queries

早上好。如果我们考虑这个查询 SPARQL,例如:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?name
WHERE {
  ?x rdf:type foaf:Person .
  ?x foaf:name ?name
}
ORDER BY ?name

查询取自此link

我的问题是:它没有任何FROM CLAUSE。那么它如何查询数据集呢? 最后,当我必须执行 SPARQL 查询时,我必须设置 FROM CLAUSE 吗?

http://librdf.org/query 的示例中,您在 SPARQL 查询上方的文本框中提供源文件的 URI。它上面的文字建议使用两个可能的来源。要查看它是如何使用的,请输入其中之一和 运行 查询。您还可以查看与其他示例关联的 'Run this query' 链接。

更一般地,在 URL 的查询参数中提交到远程 SPARQL 端点的查询将使用端点的默认图形。通常这是被查询的存储中所有或部分命名图的并集。可以在查询中使用 FROM NAMED 或在 URL 中使用 'graph=' 参数指定特定的命名图。

当您向端点发送 SPARQL 查询时,它会针对 "default graph" 执行。默认图形是什么取决于端点;它取决于实现。使用 FROM 和 FROM NAMED 允许您指定要使用的图形。 FROM 和 FROM NAMED 的工作方式在 SPARQL 1.1 规范的 13.2 Specifying RDF Datasets 中有更多描述。相关部分包括:

A SPARQL query may specify the dataset to be used for matching by using the FROM clause and the FROM NAMED clause to describe the RDF dataset. If a query provides such a dataset description, then it is used in place of any dataset that the query service would use if no dataset description is provided in a query.