1

在我的本体中,我有一个 Worker 类,它具有一些属性,例如 first name 。名字是一个功能属性,但我想确保它存在于每个工人个体中。

我在 for Worker 中添加了一个与 part 等效的限制, First_Name some string只是为了测试我在 part 的子类中添加了另一个First_Name exactly 1 string

当我添加一个没有名字的新人时,推理器(HermiT)没有任何错误。

有什么错误还是我误解了什么?

4

1 回答 1

2

这是开放世界推理的乐趣。

人一些有名字的名字

意味着每个人都有一个名字。这并不意味着您必须知道该名称是什么。所以,如果你断言一个人而不给他们一个名字,推理者不会抱怨。

如果你说

人一些has_name(不是名字)

例如,你会得到一个错误。

于 2015-01-25T22:44:38.813 回答