【发布时间】:2017-03-12 18:58:43
【问题描述】:
让我们假设 3 种实体:
- 算法:其实例是特定算法; -
- 任务:其实例是特定任务,例如“识别一个 图像中的特定纹理”。
- 参数化:为这些参数定义一组参数和值。
让我们考虑以下基数约束:
- 一个算法可以用于多个任务。
- 一个任务可以使用多种算法
- 一个算法可以有多个参数化。
这在 OWL 中建模并不难。但是,我也有以下限制: - 在给定任务中,算法只有一个参数化。也就是说,应该在具有特定参数化的任务中使用给定的算法。
为了澄清约束,让我们假设以下内容。让我们假设 A 为算法,T 为任务,P 为参数化。所以,我们有:
∀a,y A(a) ∧ T(t) ∧ usedIn(a,t) ⇒ ∃!p P(p) ∧ 配置(p,a,t)
也就是说,对于所有算法 a 和所有任务 t,如果在 t 中使用 a,则它们只有一个参数化 p,它为任务 t 配置算法 a。
但是,我不知道如何在 OWL 中表示此约束。是否可以在 OWL 中对此进行建模?我们该如何解决这个问题?
我还想说公理有点奇怪,但这是客户提供的约束。另外,我认为讨论这个案例会很有趣,只是为了讨论 OWL 的局限性。
【问题讨论】:
-
您在 FOL 中使用的表示形式是什么?这将大大有助于让我们确切地知道您在寻找什么。可以直接翻译 FOL 语句。
-
@JoshuaTaylor 是对的。因为 OWL 基于描述逻辑 (DL),它实际上是 FOL 的一个可判定片段,所以存在从该子集到 DL(分别为 OWL)的转换。
-
感谢您的关注。我已经编辑了原始帖子,包括约束的 FOL 公式。
-
在哪里可以找到一些参考来研究 FOL 公式到 OWL 的转换?
-
我不认为你的 FOL 公式能捕捉到你想要的。 ∀a,y A(a) ∧ T(t) ∧ usedIn(a,t) ⇒ ∃!p P(p) ∧ configures(p,a,t) 表示如果一个算法是在任务中使用,则有 no 参数化来配置 a 和 t。你真的需要捕捉你在前件中所期望的参数化:∀a,y,q P(q) ∧ configures(q,a,t) A(a) ∧ T(t) ∧ usedIn(a,t) ⇒ ∃!p P(p) ∧ p ≠ q ∧ 配置(p,a,t)。否则,该任务的所有算法都不能有任何参数化,你说应该最多有一个(并且可能至少有一个)。
标签: rdf semantic-web owl ontology reasoning