2012-02-22 16 views
3

私は特定のタイトルを持つすべてのレコードを選択するためにjavaでsparqlクエリを書いています。このクエリで試していますjavaのsparqlクエリ

SELECT * WHERE { ?title rdf:type ?specific_title .}  

ただし、動作しません。誰が私の間違いを知っていますか? ありがとう

+5

「動作しない」と思われるものを明確にしてください。エラーメッセージ、スタックトレース、または理由の手がかりとなる可能性のあるビヘイビアがありますか? – duffymo

+0

サーバーからの回答が 根本原因 java.lang.IndexOutOfBoundsException:インデックス:3、サイズ:3 – user1218282

+0

コードまたはサーバーから取得したスタックトレース全体を投稿できますか? – RobV

答えて

0

このクエリを実行しているデータの例を表示できますか?

クエリの先頭にrdf接頭辞(名前空間)を定義しましたか?

また、rdf:typeプロパティの値は、そのURIで表されるrdfs:Classである必要があります。

PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# 
PREFIX ex: http://www.example.com# 
SELECT ?x WHERE { ?x rdf:type ex:ExampleClass } 
+1

'?specific_title'はバインドする必要はありません。 OPのクエリ(正しい名前空間宣言を前提とする)は構文的に正しいです。 – soulcheck

+0

Drat、あなたは正しいです。私は急いで投稿するよう教えてくれるでしょう。私は決してSELECT *クエリを使用しません。修正されます。 – DNA

+0

はい私はrdfプレフィックスを定義しました。私はタイトル、名前、姓などのレコードをいくつか持っており、特定のタイトルのレコードを探したい。 – user1218282

2

java.lang.IndexOutOfBoundsException:インデックス:3、サイズ:3

あなたは結果セットを反復処理しようとしていると、あなたが存在しない行を要求しているようにそれは私に聞こえます。あなたはJenaを使っていますか?もしあなたがそうであるならば、それは単にのケースであるべきです:

if (ResultSet.hasNext()) { 
    ResultSet.next(); 
    QuerySolution nextResult = ResultSet.nextSolution(); 
} 
+0

ありがとうございました。これは非常に役に立ちました。 – user1218282