设置为仅查询默认图表并排除命名图表

时间:2017-08-18 18:37:20

标签: graphdb named-graphs

在GraphDB文档中,我看到“数据集的默认图包含数据库默认图和所有数据库命名图的合并。”这意味着“如果图表ex:x ex:y ex:z中的数据库中存在语句ex:g”,则SELECT * { ?s ?p ?o }之类的查询将返回三元组ex:x ex:y ex:z

我想知道是否存在可以通过Web界面或RDF4J / OpenRDF API触发的设置,这将在指定的GraphDB存储库中禁用此行为。也就是说,出于我的项目的目的,我希望有三元组存储在命名图形中,只出现在专门查询命名图形的结果中。

我没有看到这样的搜索文档或网页界面上的设置,但也许有人知道我不知道的事情。

编辑:我不是在寻找解决此问题的SPARQL解决方案。我知道我可以使用SPARQL查询默认图表,但我希望能够使用查询SELECT * { ?s ?p ?o }并且只能查看默认情况下默认图表中的结果。

1 个答案:

答案 0 :(得分:2)

GraphDB / RDF4J与Jena how to query the default graph的解释不同。查询默认图中仅显式语句的唯一简便方法是使用特殊图sesame:nil。基于SPARQL的解决方案是写:

PREFIX sesame: <http://www.openrdf.org/schema/sesame#>
SELECT ?s ?p ?o
FROM sesame:nil
WHERE {
   ?s ?p ?o .
} LIMIT 100

我认为没有任何简单的非基于SPARQL的解决方案,例如更改配置选项,甚至不使用SPARQL Graph Store协议上的这个特殊图形。