在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 }
并且只能查看默认情况下默认图表中的结果。
答案 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协议上的这个特殊图形。