【问题标题】:Select wiki page for any DBpedia resource为任何 DBpedia 资源选择 wiki 页面
【发布时间】:2015-06-29 16:32:12
【问题描述】:

我编写了一个简单的 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 有什么建议么?

【问题讨论】:

  • 你用什么来连接服务?耶拿?另外,你是不是错过了关闭}
  • 是的,我正在使用 JENA.. 衣服 } 在那里,但仍然无法正常工作
  • @HananMahmoud 我也没有看到结尾的}。另外,前缀声明在哪里?我没有看到foaf: 的声明。当你说你没有得到任何结果时,你的意思是查询成功执行(这很难理解,因为已经提到了语法错误),还是你得到了一个异常?
  • 我的代码中的结束 } id 但我忘了在这里写..

标签: java sparql jena dbpedia


【解决方案1】:

好吧,我忘了为 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 提出的意见

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    相关资源
    最近更新 更多