【问题标题】:SPARQL queries don't work with JenaSPARQL 查询不适用于 Jena
【发布时间】: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 只是报告它得到的所有结果:没有。

标签: sparql jena dbpedia


【解决方案1】:

您是否尝试过 dbpedia.org 上的查询?

当我在那里运行它时,通过网络表单界面,我得到零行。

{ dbpedia:The_Beatles mo:member ?member } 的匹配项为零。没有http://purl.org/ontology/mo/ 三元组。

试试{ dbpedia:The_Beatles ?pred ?obj}看看详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多