我最近遇到SPARQL 1.1 Federation Extensions的工作草案,并想知道这是否已经可以使用命名图(不要减损上述草案的用处)。命名图和联合SPARQL端点
我对命名图的理解有点朦胧,除了我阅读规范时闪现的唯一东西包含了关于合并的规则,与查询时其他图相关的非合并。因为这并不能完全满足我的理解,我的问题如下:
考虑以下查询:
SELECT ?something
FROM NAMED <http://www.vw.co.uk/models/used>
FROM NAMED <http://www.autotrader.co.uk/cars/used>
WHERE {
...
}
是否合理假设查询处理器/端点能够或应该在上下文在命名图做到以下几点:
检查被指定的图形本地存在
如果它不然后执行以下操作(在上面的查询的情况下,我将使用第二个命名图表)
GET/SPARQL /查询= EncodedQuery HTTP/1.1 主机:?www.autotrader.co.uk 用户代理:我的 - SPARQL的客户机/ 0.1
凡EncodedQuery仅包括FROM NAMED
子句中的第二个命名图形和WHERE
子句相对于相应的修正,以GRAPH
条款(例如,如果正在使用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
一些额外的考虑的,并LIMIT
的
我还记得在星系读书的地方在很久以前很远很远,任何SPARQL端点的默认的图形应该是根据以下约定命名的图形:
对于:http://www.vw.co.uk/sparql/应该有一个命名图:http://www.vw.co.uk,它表示默认图,所以通过上述逻辑,应该已可以使用命名图联合SPARQL端点。
我问的原因是我想开始在上面的例子中跨域推广联邦,而不必等待标准,确保我不会做出超出千差万别或与之不兼容的事情未来的其他事情。
命名图和联合查询是相当正交的功能。将命名图想象为(局部)三元组的特定子集。对于查询远程端点,使用“SERVICE”关键字。 AFAIK,Jena Assembler允许将命名图映射到本地文件,其他三重存储允许将命名图映射到远程三元组,但这些解决方案是供应商特定的。至于默认图的默认名称,[本规范](https://www.w3.org/TR/sparql11-service-description/)目前不包含此类内容。 – 2017-10-15 06:56:48