2012-02-22 54 views
3

我在java中編寫sparql查詢來選擇具有特定標題的所有記錄。我試着用這個查詢java中的sparql查詢

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

但它不起作用。有誰知道我的錯誤是哪一個? 謝謝

+5

請說明「不起作用」的樣子。是否有錯誤消息,堆棧跟蹤或行爲可能是原因的線索? – duffymo 2012-02-22 16:47:11

+0

服務器的回答是 根本原因 java.lang.IndexOutOfBoundsException:索引:3,大小:3 – user1218282 2012-02-22 18:00:40

+0

您可以發佈您在代碼或服務器中獲得的整個堆棧跟蹤嗎? – RobV 2012-02-22 19:18:51

回答

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 2012-02-22 17:08:43

+0

Drat,你是對的。這會教我匆忙發佈信息。我幾乎從不使用SELECT *查詢。將解決。 – DNA 2012-02-22 17:10:08

+0

是的,我定義了rdf前綴。我有一些標題,名字,姓氏等記錄,我想找到具有特定標題的記錄。 – user1218282 2012-02-22 18:06:45

2

java.lang.IndexOutOfBoundsException:指數:3,大小:3

這聽起來像你對我試圖遍歷結果集,你是要求一個不存在的行。你在使用耶拿嗎?如果是,應該只是一個例子:

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

非常感謝你這是非常有幫助的。 – user1218282 2012-03-07 17:18:29