我的问题超出了这里已经提出的一个问题
我定义了一个像这样的合格基数限制:
Pizza and hasTopping exactly 4 CheeseTopping and hasTopping only CheeseTopping
现在,当拥有少于四个“CheeseTopping”属性断言的断言类型“FourCheesePizza”的个体时,如何强制本体不一致?
换句话说:我如何声明让我们说两个“CheeseTopping”属性断言绝对是唯一的,以便强制不一致?
在 OWL 中做出这样的陈述并不太难,但是由于开放世界假设,这确实意味着您必须确保可以获得更多知识。首先,两个奶酪比萨,我们称之为p,将被不一致地标记为四个奶酪比萨必须以某种方式声明有恰好有两个奶酪浇头。你可以通过给p类型来做到这一点
hasTopping正好2 CheeseTopping 。
这足以引起不一致。如果这看起来有点通用,并且您想指定p可以具有的确切浇头,您可以给p一个类似的类型
hasTopping only {切达干酪,马苏里拉干酪}
这表示p只能以切达干酪和马苏里拉奶酪作为浇头。在这一点上,我们知道p最多可以有两个浇头(如果Cheddar和Mozzarella没有被宣布为不同的个体,它可能只有一个),这与它是FourCheesePizza和有四个奶酪浇头不一致。