我有一个UML概念图;我想把它表达为DL本体。 UML类被捕获为DL概念,其中通过角色捕获关联。一个重要的观点是UML类之间的多重性。函数对象属性捕获到一个多重性(0 .. * - 0..1),并使一个(0..1)侧强制,即(0 .. * - 1)引用谈论强制性参与意味着在一对一方面的最大和最小多重性为1。
以下是reference
类C1和C2之间的关联A在DL中通过a形式化 我们强制执行断言的角色A
表示每个参与C2实例的多重性ml..mu 给定C1的实例,我们使用断言
我只是无法理解C2在断言中的强制参与是如何通过对C1的断言来表达的,最后一个断言是如何读取的?
答案 0 :(得分:1)
使用 A a作为属性名称有点不寻常,所以我将改为使用 p 。 UML图也没有表达属性的方向,这使得讨论的其余部分有点混乱。但是,可以从您提供的公理中收集一些信息。
如果UML旨在表达:
- C 1 的实例由 p 与至少n l 和大多数n u 实例相关联C 2 。
- 至少m l 且大多数m u C 1 的实例与 p 相关联C 2 的实例。
醇>
然后你可以使用DL公理:
C 1 ⊑≥n l p.C 2
C 1 ⊑≤n u p.C 2
C 2 ⊑≥m l p -1 .C 1
C 2 ⊑≥m u p -1 .C 1
那些说如果 x是C 1 (C 2 )那么x与适当数量的C 相关2 (C 1 )个实例 p ( p -1 )。现在,由于UML中表达的关系只会关联两个类的实例,即没有其他类型的实例与属性 p 相关,那么你更有可能声明 p 的域和范围分别为C 1 和C 2 :
∃p⊑C 1
∃p -1 ⊑C 2
然后使用更简单的上述公理版本:
C 1 ⊑≥n l p
C 1 ⊑≤n u p
C 2 ⊑≥m l p -1
C 2 ⊑≥m u p -1
回答非常具体的问题:
只是无法理解C2如何强制参与 断言由C1上的断言表示,最后是怎么回事 断言读?
问题中最后一个公理中的符号是不寻常的,我不确定完全应该是什么。我不确定这些小旋风是什么意思。 看起来像:
C 1 ⊑⊑p
虽然。如果它是什么,则将其读作
C 1 是∃p
的子类
表示那个
如果 x 是C 1 的实例,则 x 是∃p
的实例
这意味着
如果 x 是C 1 的实例,那么 x 是至少具有值的事物类的实例> p (即,至少有一个 y ,使 p (x,y))。
在一阶逻辑中,您可以将其表达为:
∀x。(C 1 (x)→∃y.p(x,y))