SPARQL构造:隐式主语/宾语是否影响结果?
我有一个SPARQL构造,如:SPARQL构造:隐式主语/宾语是否影响结果?,sparql,semantic-web,virtuoso,linked-data,Sparql,Semantic Web,Virtuoso,Linked Data,我有一个SPARQL构造,如: CONSTRUCT { ?address schema:addressLocality ?city; schema:addressCountry ?country; schema:streetAddress ?addressLine; schema:postalCode ?zip; schema:addressRegion ?region. } WHERE { ?address schema:addressL
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 }
}
通过这种方式,我得到的三元组比构造显式列出所有三元组模式时少,并且没有忽略可选变量(即,可能是无界变量)的主题:
我假设这两种形式不会影响结果,但现在我发现隐式主语语法实际上意味着“我希望所有的图形都以这个主语为根,否则就什么都不做”。是这样吗?这是SPARQL指定的行为,还是它在某些引擎中的实现方式(我在Virtuoso之上)?不是最终的答案,但至少是我到目前为止学到的。正如上面的评论所说,SPARQL应该从任何一种形式返回相同的结果
我怀疑问题的根源在于,它会默默地返回截止时间之前所取得的结果。但是我也不确定,因为我在响应中没有看到任何特殊的HTTP头,正如他们在我提到的链接中所建议的那样。这听起来像个bug。一些重现这个问题的样本数据也不错。我不确定我是否理解你的经验。输入和输出的样本数据,以及Virtuoso的确切版本,包括它是开源版本还是商业版,都将对分析有很大帮助。如果是开源的,你可以。如果是商业或支持合同,您可以。(ObDislaimer:我为maker of工作。)对不起,你们要求用例是对的,但我只在保留端点上看到了这一点,我不能透露。我对Fuseki和DBPedia进行了测试,试图重现这个案例,但它们都按照我最初的假设工作。我开始认为这是另一种问题,比如说大师们对查询进行计时,然后返回它所获得的结果,直到时间悄悄地过去。这两种图形模式可能会影响速度,因此可以解释不同的结果,但我只是猜测。。。对话在这里不合适,但是可以通过或获得有关私人端点故障排除的帮助。显然这是一个bug。我建议跟进Virutoso per@TallTed。
CONSTRUCT
{
?address
schema:addressLocality ?city;
schema:addressCountry ?country.
?address schema:streetAddress ?addressLine.
?address schema:postalCode ?zip.
?address schema:addressRegion ?region.
}
...