在Apache Jena Fuseki上查询时无可用数据

时间:2018-08-22 22:16:53

标签: sparql jena

我是Apache Jena Fuseki和SparQL的新手。我尝试在Fuseki上查询数据时遇到问题。我使用的数据来自DBpedia,名为“ Topical Concepts”(可以在here中找到)。我通过浏览器上的控制面板(通过默认端口3030)上传数据,并使用以下查询:

SELECT ?subject ?predicate ?object
WHERE {
  ?subject ?predicate ?subject
}
LIMIT 25 

我得到了一个空表和一条消息“此表中没有可用数据”。但是,当我安装Fuseki并在Mac上执行相同的操作时(上面的问题发生在使用Ubuntu 16操作系统的桌面上),我成功获得了25个数据条目。我不认为这是操作系统的问题,但我真的不知道为什么会这样。有人遇到相同的问题吗?

2 个答案:

答案 0 :(得分:3)

在SPARQL查询中,您具有以下模式:

?subject ?predicate ?subject

请注意,您重复?subject。该查询有效地询问:“给我所有与主题具有相同值的RDF三元组”。您未获得结果的原因很可能只是数据库中不存在此类三元组。

至于为什么在Mac上没有发生这种情况,如果没有更多有关您的设置的信息,我们只能推测。您可能在此处对数据库进行了稍有不同的配置(例如,启用推理器,这将导致 do 与查询匹配的其他RDF三元组),或者它可能与您在此处进行稍有不同的查询一样简单。

答案 1 :(得分:1)

我在回答您的问题时有两个假设:

  1. 您安装了两个不同的Jena实例。一台在笔记本电脑上,一台在台式机上。
  2. 您确定已上传数据(可能已上传到命名图中),默认为空

Fuseki,我尚未在TBD上尝试过,它具有一项功能,通常默认情况下会将其设置为仅查询默认图形。如果在配置设置中激活tdb:unionDefaultGraph true ;,它将查询所有图形。更改设置之前,请检查是否为真。您可以通过执行以下查询进行检查:

SELECT distinct ?g
WHERE {
   graph ?g{
       ?s ?p ?o 
    }
 }

如果获得结果,则意味着您需要更改其设置才能起作用,或者要记住这一事实,并始终使用图形调用查询(如上述查询中一样)。

有关更多说明,请参阅https://jena.apache.org/documentation/serving_data/