2

您好我正在设计一个本体,我需要在其中为名为“Person”的类定义数据属性“SSN”。现在,我正在考虑的一个限制将是唯一性的。也就是说,“Person”类的两个实例不应该具有相同的 SSN。我的问题:如何在 Protege 中定义这种限制?

http://www.co-ode.org/resources/reference/manchester_syntax/

定义了一些限制,但我认为没有什么适合我的情况。

4

1 回答 1

3

您只需要将 SSN 属性定义为inverse-functional。逆函数属性意味着无论您在哪里看到给定的范围值,您都知道主题资源必须相同。所以,如果p是反函数,你有:

R0 p N .
R1 p N .

那么您可以推断出R0并且R1必须表示同一个人。如果您通过其他一些公理知道R0并且R1实际上是不同的,那么推理器将报告您的模型不一致。这与您在开放世界知识库中所需的一致性检查非常接近。

于 2013-04-08T13:13:11.177 回答