2016-04-25 8 views
1

私はApache Jenaフレームワークを使用してアプリケーションを作成しています。これで私はすべてを行うことができました(挿入、更新、選択)。しかし、私はINSERTクエリを使って空ノードを適切に挿入する方法を頭で覆すことはできません。SPARQLを使用して空ノードを挿入する適切な普遍的な方法

これはすべてのエンドポイントで動作するようなアプローチですか?私はSPARQL 1.1がこれを達成するためにいくつかの機能を導入したことを知っていますが、Virtuosoエンドポイントを使用しても動作しないようです。

+0

それができます代名詞としてbNodes(空ノード、無名ノード)を考えるのに役立ちます。存在し、参照する必要のあるエンティティの名前がわからない場合、それを記述するか、他のものを記述するかent ities。他の人があなたにアドバイスするためには、あなたが試したこと、あなたが得た結果、そしてあなたが期待した/望むものからどのように出発するのかを知ることが役立ちます。 – TallTed

+0

実際に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:VirtuosoのOpenLink Softwareで働いています) – TallTed

答えて

1

使用する構文がいくつかあります。たとえば、:Personのbノードをchildというオブジェクトプロパティに追加するとします。

?s :child [a :Person] . 

別:ここでは一つの方法です

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

、グラフに複数のBNODEがある場合_:bn表記はかなり普遍的、かつ有用である:

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

"グラフに複数のbノードがある場合に便利です。例えば、。 ':s1:p _:b0。 :s2:p _:b0 '。 –

+0

この回答ありがとうございます。それはbNodesの私のビジョンをより明確にしました。また、私は、行方向のINSERT DATAクエリを持つテーブルからbNodesを挿入することは不可能かもしれないことに気づいています。 (そしてテーブルのbNodes間の接続を維持する)。ですから、ローカルのモデルをリモートのエンドポイントに直接挿入する方法を見つけることは賢明でしょう。 – oole

関連する問題