【问题标题】:Turn off reasoner from Sparql Query in GraphDb在 GraphDb 中关闭 Sparql Query 的推理器
【发布时间】:2018-06-25 17:05:35
【问题描述】:

在 GraphDb 中查询时,有什么方法可以关闭推理器。 Graphdb Sparql 文本框中有 >> 符号来关闭推理器。我想知道我们是否可以从 Sparql 查询本身关闭推理器。如果是这样,是否推荐因为某些查询在没有推理器的情况下更容易实现?

【问题讨论】:

  • 您可以使用SELECT ... FROM <http://www.ontotext.com/explicit> ...查询explicit上下文
  • 感谢 AKSW。这可能是最方便和最可靠的选择。我假设查询性能不会被牺牲或相差太大,因为我直接点击数据库的显式图。

标签: sparql graphdb


【解决方案1】:

GraphDB 中的所有推理,除了owl:sameAs 节点扩展外,都在向数据库添加/删除语句时实现。根据GraphDB's documentation,您可以关闭推理器:

PREFIX sys: <http://www.ontotext.com/owlim/system#>
INSERT DATA {
  _:b sys:addRuleset "empty" .
  _:b sys:defaultRuleset "empty" .
}

执行此操作后,引擎将不再在数据库中实现任何隐式三元组。

SPARQL 查询视图也使用的另一种替代方法是使用特殊图 onto:implicit 过滤查询时间隐式语句:

PREFIX onto: <http://www.ontotext.com/>
SELECT *
FROM onto:implicit 
WHERE {
    ?s ?p ?o 
}

或将 infer=false HTTP 参数添加到 SPARQL 端点:

curl -G --data-urlencode query='select * where { ?s ?p ?o. }' 'http://localhost:7200/repositories/test' --data-urlencode infer=false

【讨论】:

  • 您的第一个选择只是避免推断新的三元组,对吗?这意味着所有先前物化的三元组仍在数据库中。关于FROM onto:implicit ,这意味着只得到推断的三元组,这正是他不想要的,应该是explicit 上下文
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 1970-01-01
  • 2016-06-03
相关资源
最近更新 更多