2

假设一个 OWL 本体包含以下 SWRL 规则:

has_part(?x, ?y) ^ participates(?x, ?z) -> participates(?y, ?z)

和以下对象属性断言:

o1 has_part o2
o1 participates p1

当我在 Protege 中运行 Hermit 推理器时,我得到以下推断的对象属性断言:

o2 participates p1

但是,当我使用 owlready2 加载相同的本体并运行其 Hermit 推理器时,我没有得到任何推断的对象属性断言。例如:

from owlready2 import *

onto = get_ontology("test.owl").load()
sync_reasoner()
onto.o2.get_properties()

不返回任何属性。

我确实以 RDFXML 格式保存了本体,并且可以使用 owlready2 检索 SWRL 规则。

owlready2 推理器不支持这种推理吗?

4

1 回答 1

1

解决方案:sync_reasoner(infer_property_values = True)

于 2021-05-04T21:18:52.157 回答