1

我注意到,在这里的 AllegroGraph Python API 教程中,每当他们想使用 OWL 推理时,他们都会使用该conn.getStatements方法而不是发出 Prolog 或 SPARQL 查询。是否可以通过发出 Prolog 或 SPARQL 查询而不是使用该conn.getStatements方法从 OWL 推理器中推断出三元组?我尝试了一个 Prolog 查询:

(select (?x ?y) (q ?x !ex:owned-by ?y))

我将所有的定义为并且在我的商店中owl:inverseOf ex:owns有三重奏,但我没有得到任何结果。ex:someone ex:owns ex:something我确实从 using 中得到了结果conn.getStatements,所以我是否遗漏了 Prolog 查询中的一些重要内容?

4

1 回答 1

2

在调用评估之前,您是否对从 prepareTupleQuery 返回的查询对象调用了 setIncludeInferred?

http://www.franz.com/agraph/support/documentation/v4/python-tutorial/python-API-40.html#Query%20Class

IncludeInferred 默认为 False。我相信有效值是 false(无推理)、“rdfs++”或 True,以及“restriction”,如 infer http 查询参数的 HTTP REST 文档中所述。Python 实现只是传递值。

http://www.franz.com/agraph/support/documentation/v4/http-protocol.html#header2-364

于 2012-05-08T17:22:36.467 回答