2012-04-30 8 views
0

私はコンパイルされたRDFモデル用のわずかな汎用クエリインターフェイスを作成します。jenaのRDFモデルを一般的な方法で照会する最良の方法は何ですか? (sparqlまたはコレクションとイテレータを使用)

私は自分のデータにアクセスする方法にあります。

の1-はイエナitertors/statemetns/resrourcesの/ etcに建て使用して....

いくつかのSPARQL

を2作成が、作成するためのSPARQLまたはRDQL私はJava変数に私のSPARQL変数をバインドする必要があり、私のSPARQLでは様々な変数を持つことができるので、それを汎用的にする方法はわかりません。

RDFクエリインターフェイスを一般的にする最良の方法は何ですか?

+1

「少し(一般的な)ジェネリック」という意味を説明する必要があると思います。 –

+0

私のビジネスロジックを頻繁に変更しないためです。私は、RDFからデータを検索するやや一般的な方法を作りたいと思っています。 –

答えて

4

RDQLではなくSPARQLを使用してください。今日のシステムでは、W3C標準であるSPARQLを実装しています。 SQLの場合のように、SPARQLを使用すると、*を使用して、トリプルパターンで発生するすべての変数をバインドできます。例:

SELECT * WHERE { 
    ?s a :Person . 
    ?s :name ?name . 
    ?s :birthdate ?birthdate . 
} 

ほとんどのSPARQLクライアントライブラリでは、すべての変数を取得できます。例えば、Jena ARQではQuerySolutionにはIterator<String> varNames()というメソッドがあります。このメソッドはすべての変数名を返します。これらをトラバースして、同じクラスのメソッドgetを使用して行の値を取得できます。

SPARQLの大きな利点は、標準であるため、仕様に続く異なるトリプルストアを使用できることです。

+0

ありがとう、私はあなたの助言を取りますが、私はjena API(iterator/etc ...)を使ってデータを取得する方法を知りたいのですが(好奇心のような悪夢...)、 ? (jena DOCは、クラスのサブクラスを見つけるために特別に混乱しているようですが、jena DOCはそれほど助けにならないでしょう!) –

+3

jena-usersの電子メールリストに、私たちはそれについて何かしようとすることができます。何かが不十分であるという一般的な苦情をすることは、改善が必要なものを改善することを困難にしています。 jena-usersを購読するには、http://incubator.apache.org/jena/help_and_support/index.htmlを参照してください。 –

関連する問題