首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误的SPARQL查询-使用Java

错误的SPARQL查询-使用Java
EN

Stack Overflow用户
提问于 2015-06-04 04:09:24
回答 2查看 53关注 0票数 0

我正在尝试进行这个非常有趣的查询,指向我刚接触DBpedia.org的人,这个SPARQL是我朝着这个方向迈出的第一步。

我已经想出了像这样的代码。它是根据我可以在googleing上找到的内容进行修改的;从源代码中,我可以从一个查询中获得摘要。现在,我希望获得您可以在这里的查询字符串中看到的所有属性,以及更多。

有没有人能帮我把这个修好?我被卡住了。谢谢!

代码语言:javascript
运行
复制
String service = "PREFIX rdfs: http://dbpedia.org/page/Texas_Longhorn";
String query = "SELECT * WHERE {"
        + " rdfs:name ?name ;"
        + " rdfs:label ?label ;"
        + " rdfs:abstract ?abstract ."
        + "}";

QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
try {
    ResultSet results = qe.execSelect();

    for (; results.hasNext();) {

        QuerySolution sol = (QuerySolution) results.next();

        System.out.println(sol.get("?name"));
        System.out.println(sol.get("?label"));            
        System.out.println(sol.get("?abstract"));


    }
}catch(Exception e){

    e.printStackTrace();
}
finally {
   qe.close();
}
EN

回答 2

Stack Overflow用户

发布于 2015-06-04 04:27:11

您的SPARQL查询完全错误。当您使用SPARQL时,您将查找三元组,而如果您查看第一行,您将只看到两个元素。那么,dbpedia中就没有rdfs:namerdfs:abstract这样的东西了。rdfs是一个预定义的名称空间,您最好保留它以帮助您处理标签。你有dbpedia-owl:abstractfoaf:name。所以你的查询必须是:

代码语言:javascript
运行
复制
prefix dbpedia-owl: <http://dbpedia.org/ontology/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT * WHERE {
     ?x foaf:name ?name ;
     rdfs:label ?label ;
     dbpedia-owl:abstract ?abstract .
    }

但是,在本例中,?name?label将产生相同的变量。因此,我将您的查询编辑为:

代码语言:javascript
运行
复制
prefix dbpedia-owl: <http://dbpedia.org/ontology/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT * WHERE {
     ?x rdfs:label ?label ;
     dbpedia-owl:abstract ?abstract .
    }
票数 3
EN

Stack Overflow用户

发布于 2015-06-04 05:21:26

除了@Artemis建议的更改之外,您还需要将service字符串更改为dbpedia的端点:

String service = "http://dbpedia.org/sparql";

QueryExecutionFactory.sparqlService接受一个表示SPARQL端点(服务)的字符串参数和一个定义为Jena query或String的查询。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30629701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档