我有一个SPARQL CONSTRUCT,如:
CONSTRUCT
{
?address
schema:addressLocality ?city;
schema:addressCountry ?country;
schema:streetAddress ?addressLine;
schema:postalCode ?zip;
schema:addressRegion ?region.
}
WHERE
{
?address
schema:addressLocality ?city;
schema:addressCountry ?country.
OPTIONAL { ?address schema:streetAddress ?addressLine }
OPTIONAL { ?address schema:postalCode ?zip }
OPTIONAL { ?address schema:addressRegion ?region }
}
我这样得到的三元组少于CONSTRUCT明确列出所有三元模式的情况,而没有省略可选的变量主题(即可能是无界的):
CONSTRUCT
{
?address
schema:addressLocality ?city;
schema:addressCountry ?country.
?address schema:streetAddress ?addressLine.
?address schema:postalCode ?zip.
?address schema:addressRegion ?region.
}
...
我假设这两种形式不能影响结果,但现在我正在收集,而隐含的主题语法实际上意味着“我希望所有的图形都植根于这个主题,或者根本不需要它” 。是这样的吗?这种行为是由SPARQL指定的,还是它在某些引擎中实现的方式(我在Virtuoso之上)?
答案 0 :(得分:0)
不是最终答案,但至少到目前为止我学到了什么。正如上面的评论所说,SPARQL应该从任何一种形式返回相同的内容。
我怀疑这个问题是由Virtuoso doesn't trigger an error when the query execution times out这个事实引起的,它会默默地返回它在截止日期之前所取得的结果。但我也不确定,因为我没有在响应中看到任何特殊的HTTP标头,正如他们在我提到的链接中所建议的那样。