我是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个数据条目。我不认为这是操作系统的问题,但我真的不知道为什么会这样。有人遇到相同的问题吗?
答案 0 :(得分:3)
在SPARQL查询中,您具有以下模式:
?subject ?predicate ?subject
请注意,您重复?subject
。该查询有效地询问:“给我所有与主题具有相同值的RDF三元组”。您未获得结果的原因很可能只是数据库中不存在此类三元组。
至于为什么在Mac上没有发生这种情况,如果没有更多有关您的设置的信息,我们只能推测。您可能在此处对数据库进行了稍有不同的配置(例如,启用推理器,这将导致 do 与查询匹配的其他RDF三元组),或者它可能与您在此处进行稍有不同的查询一样简单。
答案 1 :(得分:1)
我在回答您的问题时有两个假设:
Fuseki,我尚未在TBD上尝试过,它具有一项功能,通常默认情况下会将其设置为仅查询默认图形。如果在配置设置中激活tdb:unionDefaultGraph true ;
,它将查询所有图形。更改设置之前,请检查是否为真。您可以通过执行以下查询进行检查:
SELECT distinct ?g
WHERE {
graph ?g{
?s ?p ?o
}
}
如果获得结果,则意味着您需要更改其设置才能起作用,或者要记住这一事实,并始终使用图形调用查询(如上述查询中一样)。
有关更多说明,请参阅https://jena.apache.org/documentation/serving_data/