【发布时间】:2015-05-03 16:14:03
【问题描述】:
我经常遇到以下问题。当我将查询写入 Jena 时,它们不起作用。
以其他网站的这个好查询为例:
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX mo: <http://purl.org/ontology/mo/>
SELECT *
WHERE {dbpedia:The_Beatles mo:member ?member .
?member foaf:name ?name
}
当我把它翻译成 Java 的 Jena 时,它应该是这样的:
public static String beatlesMembers =
"PREFIX dbpedia: <http://dbpedia.org/resource/> "+
"PREFIX foaf: <http://xmlns.com/foaf/0.1/> "+
"PREFIX mo: <http://purl.org/ontology/mo/> "+
"SELECT * " +
"WHERE {dbpedia:The_Beatles mo:member ?member . "+
"?member foaf:name ?name "+
"}";
然后我查询 DBPEDIA
Query query = QueryFactory.create(Requests.beatlesMembers);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
try {
ResultSet results = qexec.execSelect();
for (; results.hasNext();) {
QuerySolution s = results.nextSolution();
System.out.println(s.toString());
}
}
finally {
qexec.close();
}
它什么也没返回...
知道为什么吗?我不知道如何用 Java 正确编写这些查询。希望你能帮忙。
非常感谢您的帮助
【问题讨论】:
-
请注意“有关您编写的代码问题的问题必须描述具体问题 - 并在问题本身中包含重现它的有效代码。请参阅 SSCCE。组织寻求指导。”您可以尝试在DBpedia's SPARQL endpoint 发布的查询,您会看到没有结果。 Jena 只是报告它得到的所有结果:没有。