Select 任何 DBpedia 资源的维基页面
Select wiki page for any DBpedia resource
我编写了一个简单的 java 代码来检索任何 DBpedia 资源的维基百科页面
public static void main(String[] args)throws Exception {
String service = "http://dbpedia.org/sparql";
String query = "SELECT ?x WHERE {"
+ "?x foaf:primaryTopic <http://dbpedia.org/resource/France>";
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
try{
ResultSet results = qe.execSelect();
for (; results.hasNext();){
QuerySolution sol = (QuerySolution) results.next();
String answer = sol.get("?x").toString();
System.out.println(answer);
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
finally{
qe.close();
}
但是我没有结果!!
我试过 sparql 查询,它工作正常,所以我不知道出了什么问题
SPARQL Result
有什么建议么?
嗯,我忘了放 foaf 的声明
当我纠正它时,它工作得很好。我只是编辑我的查询并添加 foaf 声明如下:
String query = "PREFIX foaf: <http://xmlns.com/foaf/0.1/>"
+ "SELECT ?x WHERE {"
+ "?x foaf:primaryTopic <http://dbpedia.org/resource/France>}";
感谢@joshua-taylor 的观点
我编写了一个简单的 java 代码来检索任何 DBpedia 资源的维基百科页面
public static void main(String[] args)throws Exception {
String service = "http://dbpedia.org/sparql";
String query = "SELECT ?x WHERE {"
+ "?x foaf:primaryTopic <http://dbpedia.org/resource/France>";
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
try{
ResultSet results = qe.execSelect();
for (; results.hasNext();){
QuerySolution sol = (QuerySolution) results.next();
String answer = sol.get("?x").toString();
System.out.println(answer);
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
finally{
qe.close();
}
但是我没有结果!! 我试过 sparql 查询,它工作正常,所以我不知道出了什么问题 SPARQL Result 有什么建议么?
嗯,我忘了放 foaf 的声明 当我纠正它时,它工作得很好。我只是编辑我的查询并添加 foaf 声明如下:
String query = "PREFIX foaf: <http://xmlns.com/foaf/0.1/>"
+ "SELECT ?x WHERE {"
+ "?x foaf:primaryTopic <http://dbpedia.org/resource/France>}";
感谢@joshua-taylor 的观点