2017-04-19 41 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頭,就像他們在我提到的鏈接中所建議的那樣。