在OWL中建模复杂约束

时间:2017-03-12 18:58:43

标签: rdf semantic-web owl ontology reasoning

让我们假设3种实体:

  • 算法:其实例是特定的算法; -
  • 任务:其实例是特定任务,例如“识别a 图像中的特定纹理“。
  • 参数化:为这些参数定义一组参数和值。

让我们考虑以下基数约束:

  • 算法可用于多个任务。
  • 任务可以使用多种算法
  • 算法可以有多个参数化。

在OWL中建模并不困难。但是,我还有以下约束: - 在给定任务中,算法只有一个参数化。也就是说,应该在具有特定参数化的任务中使用给定算法。

为了澄清约束,让我们假设如下。我们假设A为算法,T为任务,P为参数化。所以,我们有:

∀a,y A(a)∧T(t)∧usedIn(a,t)⇒∃!p P(p)∧confures(p,a,t)

也就是说,对于所有算法a和所有任务t,如果在t中使用a,则只有一个参数化p为任务t配置算法a。

但是,我不知道如何在OWL中表示这个约束。是否可以在OWL中对此进行建模?我们如何处理这个问题?

我还想说公理有点奇怪,但这是客户提供的约束。另外,我认为讨论这个案子很有意思,仅仅是为了讨论OWL的局限性。

1 个答案:

答案 0 :(得分:1)

如果算法的实例是特定算法,我想你有类似的东西:

  

GraphSearchAlgorithm⊑算法
  depthFirstSearch∈ThaphSearchAlgorithm
  breadthFirstSearch∈TigmaSearchAlgorithm

然后,您提到任务使用算法的参数化。我想这意味着而不是

  

任务 72 使用 breadthFirstSearch

你实际上有类似的东西:

  

任务 72 使用参数化 83
  参数化 83 usesAlgorithm breadthFirstSearch
  参数化 83 usesParameters 参数 24

也就是说,该任务有许多参数化(你可以使用不同的名称),每个参数都指定一个算法和实际参数。如果是这种情况,那么我理解你的约束是算法不使用具有相同算法的多个参数化。在FOL中,你会有类似的东西:

  

∀t,p,a [(使用(t,p)∧使用算法(p,a))→¬∃q(p≠q∧使用(t,q)∧使用算法(q,a))] < / p>

如果这是意图,那么这可能超过了OWL的限制。通常的经验法则之一(根据像属性链这样的东西不完全准确,但仍然是一个有用的经验法则)是你是否可以只使用两个变量来编写公式。在这种情况下,外部量化需要三个(任务,参数化和算法),你无法真正解决这个问题。

相关问题