2016-04-25 110 views
1

我正在使用Apache Jena框架編寫應用程序。有了這個,我可以做所有事情(插入,更新,選擇)。但是我無法圍繞如何使用INSERT查詢來正確插入空白節點。什麼是使用SPARQL插入空白節點的適當通用方式

是否有一種適用於此的方法(適用於每個端點)?我知道SPARQL 1.1引入了一些要完成的功能,但似乎並未使用Virtuoso端點。

+0

它可以有助於將bNodes(空白節點,未命名節點)當作代詞 - 當您不知道存在的實體的名稱以及您需要參考的實體的名稱時,可以使用它們,是描述它還是描述其他耳鼻喉科伊蒂埃斯。對於其他人建議你,它有助於知道你已經嘗試了什麼,你已經得到了什麼結果,以及這些結果如何偏離你的預期/期望。 – TallTed

+0

如果實際上有與Virtuoso相關的特定方面,那麼這些問題通常會通過Virtuoso專注的論壇(如[Virtuoso Users郵件列表])(https://lists.sourceforge.net/lists/listinfo/)更快速準確地回答。 virtuoso用戶),[OpenLink支持論壇](http://boards.openlinksw.com/support/index.php)或[OpenLink支持案例](http://support.openlinksw.com/support/online -support.vsp)。 (ObDisclaimer:我爲OpenLink Software工作,Virtuoso的製作人。) – TallTed

回答

1

有幾種語法可供使用。假設您想要將一個:Person類型的bnode添加到名爲child的對象屬性中。這裏有一種方法:

?s :child [a :Person] . 

而另:

?s :child [] . 
[] a :Person . 

而且_:bn符號是相當普遍的,有用的,當有一個圖多個B節點:

?s :child _:b0 . 
_:b0 a :Person . 
+0

「當圖中有多個bnode時很有用:」我認爲當你需要多次引用一個bnode時,它非常有用。例如,。 ':s1:p _:b0。 :s2:p _:b0'。 –

+0

謝謝你的回答。它使我對bNode的理解更加清晰。而且我也意識到可能無法使用行式INSERT DATA查詢從表中插入bNode。 (並保持表格中b節點之間的連接)。所以我猜想找到一種方法可以直接將本地模型插入遠程端點。 – oole