2017-04-19 46 views
2

我有一个SPARQL构建了一个类似于:SPARQL构造:隐含的主体/客体影响结果吗?

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 
{ 
    ?address 
    schema:addressLocality ?city; 
    schema:addressCountry ?country. 

    ?address schema:streetAddress ?addressLine. 
    ?address schema:postalCode ?zip. 
    ?address schema:addressRegion ?region. 
} 
... 

我是假设这两种形式不能影响结果,但我现在收集,与其隐含的主题语法实际上是指像“我要扎根在这个问题上的所有图表或一无所有“。是这样吗?这种行为是由SPARQL指定的,还是它在某些引擎中实现的方式(我在Virtuoso之上)?

+0

这听起来像一个错误。一些重现此问题的示例数据也会很好。 –

+0

我不确定我了解你的经历。样本数据,包括输入和输出,以及Virtuoso的确切版本,包括开放源代码或商业版,都将有助于分析。如果开源,你可能会[报告对项目的问题(https://github.com/openlink/virtuoso-opensource/issues/)。如果是商业或支持合同,您可以[创建支持案例](http://support.openlinksw.com/support/online-support.vsp)。 (ObDislaimer:我对[OpenLink的软件(http://www.openlinksw.com/)工作,[炫技](http://virtuoso.openlinksw.com/)的制造商) – TallTed

+4

对不起,你们是正确的要求一个用例,但我只在一个保留的端点上看到这个,我不能透露。我已经对Fuseki和DBPedia做过测试,试图重现这个案例,但是他们都按照我最初的假设工作。我开始认为这是一些其他问题,比如Virtuoso将查询超时,并且直到返回时间才静静地返回。这两种图形模式可能会影响速度,因此可以解释不同的结果,但我只是在猜测。 – zakmck

回答

0

并不是最终的答案,但至少是我到目前为止的经验教训。正如上面的评论所说,SPARQL应该从任一形式返回相同的值。

我怀疑问题的事实,Virtuoso doesn't trigger an error when the query execution times out,它,而不是默默地返回它实现到截止时间,结果就出现了。但是我也不确定,因为我没有在响应中看到任何特殊的HTTP头,就像他们在我提到的链接中所建议的那样。