owlready2 推理器不生成具有 SWRL 规则的推断对象属性断言

问题描述

假设一个 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 reasoner 不支持这种推断吗?

解决方法

解决方案:sync_reasoner(infer_property_values = True)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...