使用Jena在DBpedia上创建SPARQL查询

我试图使用Jena创建一个SPARQL查询来查询DBpedia。

当我将它与独立工具(Twinkle)一起使用时,查询正在工作,但当我将其插入此Java代码时,它返回一个空集。

String sparqlQueryString1 = "PREFIX dbont:  " + "PREFIX dbp: " + "PREFIX geo: " + " SELECT ?musician ?place" + " FROM" + " WHERE { " + " ?musician dbont:birthPlace ?place ." + " }"; Query query = QueryFactory.create(sparqlQueryString1); QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query); ResultSet results = qexec.execSelect(); ResultSetFormatter.out(System.out, results, query); qexec.close() ; 

我有什么想法我做错了吗?

问题是你的FROM <...>子句。 删除它,一切都很好。 使用该子句我怀疑端点将查询限制为具有该名称的图形,但是不存在这样的图形,因此没有结果。

令人困惑的是,似乎查询在http://dbpedia.org/sparql上的表单上工作。 但是,设置了默认图形URI,因此查询也会覆盖该图形。 清除它,查询不起作用。 作为替代方案,您可以将其设置为检索远程数据。 这引起了提到三个出生地的命名rdf。

如果您正在尝试找到该音乐家使用的出生地:

 {  dbont:birthPlace ?place . }