【问题标题】:Declaring an empty class in OWL在 OWL 中声明一个空类
【发布时间】:2012-04-15 18:05:27
【问题描述】:

OWL 是否允许本体只包含一个空类?类必须包含一些个体吗?有没有

<owl:Class rdf:ID="Human"/>

意味着“人类”是一个空类?

如果一个本体包含一个空类,是否可以在另一个扩展它的本体中定义个体?

同样,一个人是否可以在不属于本体中任何类的成员的情况下被声明?

谢谢

【问题讨论】:

    标签: semantic-web owl protege


    【解决方案1】:

    是的,你可以声明一个空类。

    是的,您可以在不同的本体中声明此类的个体。

    这两个都是完全正常的。本体的思想是它们可以共享,即一方定义类和属性,然后其他方可以使用它,方法是实际实例化类并使用属性来描述它们。

    每个人都隐含地是owl:Thing 类的成员。因此,最接近声明一个没有类的个人的方法是使其成为owl:Thing 的成员:

    <owl:Thing rdf:ID="MyThing"/>
    

    【讨论】:

    • 谢谢。但是,如果一个类被定义为空,而另一个类被定义为有个体,那么这不是矛盾吗?
    • 没有。 OWL 基于开放世界假设 (OWA)。如果您的本体没有列出某个类的任何实例,那么根本不知道该类是否有任何实例。任何实例的缺失并不与实例的存在相矛盾。
    • 请注意,您在问题中提供的 sn-p 实际上并未声明该班级没有个人。它根本没有列出任何个人,仅此而已。如果你真的想声明一个类没有个体,那么你可以让它成为owl:Nothing 的子类。在那种情况下,如果另一个本体会声明该类的个体,那确实是矛盾的。
    • 嗯,是的,这是一个矛盾,无论 OWA 还是 CWA。如果一个类是空的,它就不能有实例。但是,要得出这个结论,您将需要一个 OWL 推理器来推理本体与实例化它的数据的合并。如果一个本体导入另一个本体,那么推理器必然会将导入的本体与导入的本体合并。
    • 理查德,我想你误解了凯特的评论。不过,你是对的,sn-p 没有定义一个空类。
    猜你喜欢
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2011-01-31
    • 2012-06-18
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多