SPARQL查询中空白节点与变量的结果差异原因咨询
两个SPARQL查询结果不同的原因
这两个查询的核心差异在于**:language属性的绑定对象完全不同**,和空白节点的使用无关:
查询1的逻辑
查询1里,:language ?language绑定在作为翻译作品的实体(第一个空白节点指代的资源)上,也就是获取翻译完成后的作品的语言。
其中:translationOf/a :Work是SPARQL路径表达式,等价于:[] :translationOf ?x . ?x a :Work .整个查询的逻辑是:找到指定作者参与的所有翻译作品(该作品对应某部原作),然后提取这个翻译作品的语言。
查询2的逻辑
查询2里,:language ?language绑定在被翻译的原作?t上,也就是获取原作的语言。
逻辑是:找到指定作者参与的所有翻译作品,定位对应的原作,再提取原作的语言。
正是因为一个取译本语言、一个取原作语言,所以返回的?language和?langName结果必然不同。
内容的提问来源于stack exchange,提问作者SusVej
相关产品推荐
相关产品推荐

