强制在OWL类上进行封闭的世界假设

时间:2014-03-03 17:12:43

标签: semantic-web owl description-logic

我有一个具有以下等效性的OWL类(在曼彻斯特表示法中):

A and not (hasB some (B and (hasC some C) and (hasD some D) and (hasList some (OWLList and (hasContents some (OWLList and (hasContents some (E and (hasValue some integer[< 200]) and (hasType value "xsd:integer"^^string))) and (hasNext some EmptyList))) and (hasNext some EmptyList)))))

我希望对此类强制执行封闭世界推理,以便在not语句之后不满足条件其余部分的任何个人将成为此类的成员。

为此,我尝试使hasChasDhasList属性起作用,以便OWL知道不可能将这些属性的其他实例附加到此类。

不幸的是,hasB属性可能不止一次出现,所以不能限制。为了尝试“关闭”该课程的这一部分,我在oneOf课程中添加了一个B语句,指定了B班级可能接受的所有可能的个人。

在我看来,这个功能属性和oneOf语句的组合应该成功地“关闭”该类。谁能告诉我我做错了什么?

我使用的是http://owl-workshop.man.ac.uk/acceptedLong/submission_12.pdf提出的OWLList类和相关属性。

非常感谢。

2 个答案:

答案 0 :(得分:4)

Stardog有一个名为Integrity Constraint Validation的功能,它为OWL添加了一个封闭世界的解释,以便能够将其用作验证语言。您可以在detailed breakdown of the semantics中详细了解如何完成此操作。

我不确定验证部分是否适合您,但如果是这样,您可以立即使用Stardog ICV。如果没有,语义可能会指出你如何能够准确地实现你需要的东西。

答案 1 :(得分:3)

OWL建立在open world assumption之上,你无法真正解决这个问题。在某些情况下,您可以提供一些关于类的其他公理,以减少开放世界允许的可能性。例如,如果你有

  

{d}⊑⊑hasValue正好为1 {a,b,c}
  a≠b
  a≠c
  b≠c

然后从 hasValue(d,a),你可以推断出这两个:

  

¬hasValue(d,B)
  ¬hasValue(d,c)

你要求的声音更像是默认推理,你试图说出

  

如果使用标准OWL无法证明X,则推断¬X。

这方面的困难在于您可以在OWL中表示正面和负面的陈述,并且当 X X 时,您都会遇到问题标准OWL,因为在这种情况下,你推断两者¬X和¬¬X。

但是,你可以在这里做一些事情。如果您正在生成数据,则可以添加负属性断言以明确声明某些特定关系不成立。这是编码关于域的某个子集的全部知识的一种方法。因此,如果那里有许多已知的B,那么你可以为每一个断言A是否与每个B相关。

另一种选择是使用SPARQL查询数据并检查A是否与符合条件的B相关,如果不符合,则添加一些额外的数据,OWL推理器将绘制您需要的推理。这不是太难,但是如果推断出需要找到你正在寻找的B的任何其他关系,你仍然可能需要在SPARQL查询之前运行一个OWL推理器。