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

No Data Available When Query on Apache Jena Fuseki

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

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

我得到一个空 table 和一条消息 "no data available in this table"。然而,当我安装 Fuseki 并在我的 Mac 上做同样的事情时(上面的问题发生在我的 Ubuntu 16 操作系统的桌面上),我成功地获得了 25 个数据条目。我不认为这是操作系统的问题,但我真的不知道为什么会这样。有人遇到同样的问题吗?

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

?subject ?predicate ?subject

请注意您重复了 ?subject。此查询有效地询问:"give me all RDF triples for which the subject is the same value as the object"。您得不到结果的原因很可能只是因为您的数据库中不存在这样的三元组。

至于为什么 Mac 上没有发生这种情况,没有关于您的设置的更多信息,我们只能推测。有可能您在那里配置的数据库略有不同(例如,启用一个推理器,这将导致额外的 RDF 三元组 do 匹配查询),或者它可能就像您所做的一样简单稍微那里有不同的查询。

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

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

Fuseki,我还没有在 TBD 上尝试过,它有一项功能,通常默认设置为仅查询默认图。如果在配置设置中激活 tdb:unionDefaultGraph true ; 那么它将查询所有图表。在更改设置之前,请检查这是否属实。您可以通过执行此查询来检查:

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

如果您得到结果,则意味着您需要更改设置才能正常工作,或者注意这一事实并始终使用图表调用您的查询(如上述查询)。

更多解释请参考https://jena.apache.org/documentation/serving_data/