2012-02-22 86 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