【发布时间】:2011-02-18 14:15:48
【问题描述】:
我最近遇到了SPARQL 1.1 Federation Extensions 的工作草案,我想知道这是否已经可以使用命名图(不要减损上述草案的实用性)。
我对命名图的理解有点模糊,除了我从阅读规范中得到的唯一一件事包括关于合并的规则,在查询时与其他图相关的非合并。由于这不能完全满足我的理解,我的问题如下:
给定以下查询:
SELECT ?something
FROM NAMED <http://www.vw.co.uk/models/used>
FROM NAMED <http://www.autotrader.co.uk/cars/used>
WHERE {
...
}
假设查询处理器/端点可以或应该在命名图的上下文中执行以下操作是否合理:
检查命名图是否在本地存在
-
如果没有则执行以下操作(在上述查询的情况下,我将使用第二个命名图)
GET /sparql/?query=EncodedQuery HTTP/1.1 主持人:www.autotrader.co.uk 用户代理:my-sparql-client/0.1
其中 EncodedQuery 仅包含 FROM NAMED 子句中的第二个命名图,并且针对 GRAPH 子句对 WHERE 子句进行了相应修改(例如,如果使用了 GRAPH <http://www.vw.co.uk/models/used> {...})。
仅当它不能执行上述操作时,然后执行以下任一操作:
GET /cars/used HTTP/1.1
Host: www.autotrader.co.uk
或
LOAD <http://www.autotrader.co.uk/cars/used>
- 返回适当的搜索结果。
显然,OFFSET's 和 LIMIT's 周围可能还有一些其他注意事项
我还记得很久以前在遥远的银河系的某个地方读到,任何 SPARQL 端点的默认图都应该是根据以下约定的命名图:
对于:http://www.vw.co.uk/sparql/,应该有一个命名图:http://www.vw.co.uk,它表示默认图,因此按照上述逻辑,应该已经可以使用命名图来联合 SPARQL 端点。
我问的原因是我想在上面的例子中开始跨域推广联盟,而不必等待标准,确保我不会做一些不合时宜或不兼容的事情其他的在未来。
【问题讨论】:
-
命名图和联合查询是相当正交的功能。将命名图视为(局部)三元组的特定子集。对于远程端点的查询,使用
SERVICE关键字。 AFAIK,Jena Assembler 允许将命名图映射到本地文件,并且可能其他三元组允许将命名图映射到远程三元组,但这些解决方案是特定于供应商的。至于默认图表的默认名称,this specification 目前不包含此类内容。 -
您所说的功能似乎是特定于 Virtuoso 的,请参阅 e。 G。 stackoverflow.com/questions/22409110/…
标签: sparql semantic-web named-graphs federated-queries