Java 为任何DBpedia资源选择wiki页面

Java 为任何DBpedia资源选择wiki页面,java,sparql,jena,dbpedia,Java,Sparql,Jena,Dbpedia,我编写了一个简单的java代码来检索任何DBpedia资源的Wikipedia页面 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

我编写了一个简单的java代码来检索任何DBpedia资源的Wikipedia页面

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();
            }
publicstaticvoidmain(字符串[]args)引发异常{
字符串服务=”http://dbpedia.org/sparql";
String query=“选择?x其中{”
+“x foaf:主要主题”;
QueryExecution qe=QueryExecutionFactory.sparqlService(服务,查询);
试一试{
ResultSet results=qe.execSelect();
对于(;results.hasNext();){
QuerySolution sol=(QuerySolution)results.next();
字符串应答=sol.get(“?x”).toString();
System.out.println(应答);
}
}
捕获(例外e){
System.out.println(e.getMessage());
}
最后{
qe.close();
}
但是我没有结果!! 我尝试过sparql查询,它工作正常,所以我不知道出了什么问题
有什么建议吗?

好吧,我忘了把foaf的声明放进去了 当我纠正它时,它工作正常。我只需编辑我的查询并添加foaf声明,如下所示:

String query = "PREFIX foaf: <http://xmlns.com/foaf/0.1/>"
            + "SELECT  ?x WHERE {" 
                + "?x foaf:primaryTopic <http://dbpedia.org/resource/France>}";
String query=“前缀foaf:”
+“选择?x,其中{”
+“?x foaf:primaryTopic}”;

感谢@joshua taylor提供您的观点

您使用什么连接到服务?JENA?还有,您是否错过了关闭}?是的,我使用JENA..衣服}在那里,但仍然没有working@HananMahmoud我也看不到结束语
}
。还有,前缀声明在哪里?我没有看到
foaf:
的声明。当您说您没有得到任何结果时,您的意思是查询成功执行(鉴于已经注意到的语法错误,这将很难理解),还是您得到了一个异常?我的代码中的closing}id,但我忘了在这里编写。。