当前位置: 首页 > 面试题库 >

使用Jena在DBpedia上创建SPARQL查询

任飞鸣
2023-03-14
问题内容

我正在尝试使用耶拿创建一个SPARQL查询来查询DBpedia。

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

String sparqlQueryString1 = "PREFIX dbont: <http://dbpedia.org/ontology/> " +
        "PREFIX dbp: <http://dbpedia.org/property/>" +
        "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>" +
        "   SELECT ?musician  ?place" +
        "   FROM<http://dbpedia.org/resource/Daphne_Oram>" +
        "   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的地方,其中提到了三个出生地。

如果您要查找该音乐家的出生地,请使用:

{ <http://dbpedia.org/resource/Daphne_Oram> dbont:birthPlace ?place . }


 类似资料:
  • 我使用jena创建了一个用于电子邮件存储的rdf模型。我的thr rdf代码是: 这是我查询rdf模型的代码。在这里,我从命令行获取输入,但是字符串的查询也可以工作... 这显示了查询的工作情况:

  • 问题内容: 我需要对DBpedia执行查询: 我猜测此信息分散在不同的转储(.nt)文件中,并且SPARQL端点以某种方式为我们提供了结果集。我需要在本地下载这些不同的.nt文件(并非所有DBpedia),仅执行一次查询并将结果存储在本地(我不想使用SPARQL端点)。 我应该在耶拿的哪一部分进行此运行? 我对此帖子的阅读有些困惑: 因此,您可以将整个DBPedia数据加载到磁盘上的单个TDB位置

  • 我有一个jena查询,比如,我想在结尾处添加一个限制为,使用jena ARQ向SPARQL查询添加可选子句的方法不起作用,因为没有类的ElementLimit类型,而且我也不想进行字符串操作,因为可能存在现有的limit子句,在这种情况下,我想更改现有子句的界限。

  • 问题内容: 我对使用Java代码的SPARQL端点有问题。 特别是,我有这个Java类: 我想检索谓词为“ RDF:type” 的资源“ http://dbpedia.org/resource/Fred_Guy ” 的对象。但是我有一个我不明白的错误: 为什么会出现此错误? 我正在尝试执行此查询 “ http://dbpedia.org/sparql ” 没有写strstarts,我得到这个错误:

  • 工作SPARQL查询: 如何克服这个问题。

  • 他们说现在com.hp.hpl.jena.sparql.Engine.Binding.BindingMap在这个版本中不是一个简单的类,而是一个接口。 如果是这样,那么如何在当前版本中运行sparql查询。请根据我分享的代码给出一个例子。提前道谢。