OWL:使用ObjectUnionOf的抽象类实现似乎失败了hermiT,protégé

时间:2012-02-09 17:33:07

标签: semantic-web owl

假设地理区域是行星,大陆和地区的联盟:

<EquivalentClasses>
    <Class IRI="#GeographicArea"/>
    <ObjectUnionOf>
        <Class IRI="#Continent"/>
        <Class IRI="#Planet"/>
        <Class IRI="#Region"/>
    </ObjectUnionOf>
</EquivalentClasses>

那么不应该有GeopgraphicArea类的任何个人

<ClassAssertion>
    <Class IRI="#GeographicArea"/>
    <NamedIndividual IRI="#Bad"/>
</ClassAssertion>

坏显然不是一个大陆,行星或地区。

尽管如此,她的推理并没有报告错误。

为什么呢? 我怎么能限制没有人只能被称为“GeographicArea”?

参见示例:http://www.arcdev.hu/test/helloworld.owl

2 个答案:

答案 0 :(得分:2)

OWL使用Open World Assumption,这意味着仅因为Bad尚未被定义为大陆,行星或地区,并不意味着它将来不会。对于报告错误的推理者,您必须将Bad定义为与其他类不相交的类的实例。

答案 1 :(得分:1)

  

我怎么能限制没有人可以说明   “GeographicArea”只是?

你不能,而且在逻辑环境(毕竟是OWL)中这样做是没有意义的。 OWL推理是关于逻辑推理,而不是关于类型检查。

如果您需要这种功能,您将使用自己的一些自定义验证机制(我想您可以使用一些聪明的SPARQL查询或SPIN规则来执行此类操作)。