OWL 中的复杂概念描述

Complex concept description in OWL

我正在调查OWL,但仍然无法理解以下内容。假设我们有 Family class。它有 BadFamily 和 GoodFamily subclasses(这些也可以只是个人 - 不是 subclasses)。在现实世界中,家庭概念涉及多个对象的存在(例如父亲、母亲、儿子、女儿)。家庭中的某些人可以彼此相爱或彼此讨厌(“爱”和“恨”是我理解的关系)。因此,在 BadFamily 中,几个人互相憎恨。在 GoodFamily 中,几个人彼此相爱。那么如何在 OWL 中表示(Protege 示例或列表中的基本方向建议会很棒!)。

也可以理解为不同案例的描述,所有案例都使用相同的classes和关系,只是组合方式不同。

这是实现它的一种方法。您可以创建以下分类法:

-家庭

--好家庭

--坏家庭

-家庭成员

--爱家人

以及对象属性:

-有家庭成员

-hasRelative

-lovesFamilyMember

-讨厌家庭成员

其中后者应该被宣布为反身性,以排除class当成员只爱自己时将家庭视为好家庭。

那你需要定义class的FamilyMember等同于lovesFamilyMember some FamilyMember,而GoodFamily' as equivalent of的class有一些FamilyMember LovesFamilyMember`.

你还需要注意你所爱的和恨你的人是一家人。为此,您可以首先定义 hasRelative 是一个对象 属性,将家庭成员与同一家庭的成员联系起来: inverse (hasFamilyMember) o hasFamilyMember。然后,您需要添加此关系作为 class LovesFamilyMember 成员资格的另一个条件。现在 class 的完整定义将变成: lovesFamilyMember some FamilyMember and hasRelative some FamilyMember.

这就是这一切在 Turtle 中的样子,包括个人 ABFamily1:

    #################################################################
    #    Object Properties
    #################################################################

    :hasFamilyMember rdf:type owl:ObjectProperty ;
                     rdfs:domain :Family ;
                     rdfs:range :FamilyMember .

    :hates rdf:type owl:ObjectProperty ,
                    owl:IrreflexiveProperty .

    :hatesFamilyMember rdf:type owl:ObjectProperty ;
                       rdfs:subPropertyOf :hates ;
                       rdfs:range :FamilyMember .

    :loves rdf:type owl:ObjectProperty ,
                    owl:IrreflexiveProperty .


    :lovesFamilyMember rdf:type owl:ObjectProperty ;
                       rdfs:subPropertyOf :loves ;
                       rdfs:range :FamilyMember .

    #################################################################
    #    Classes
    #################################################################

    :BadFamily rdf:type owl:Class ;
               rdfs:subClassOf :Family .

    :Family rdf:type owl:Class .

    :FamilyMember rdf:type owl:Class .

    :GoodFamily rdf:type owl:Class ;
                owl:equivalentClass [ rdf:type owl:Restriction ;
                                      owl:onProperty :hasFamilyMember ;
                                      owl:someValuesFrom :LovesFamilyMember
                                    ] ;
                rdfs:subClassOf :Family .

:LovesFamilyMember rdf:type owl:Class ;
                   owl:equivalentClass [ owl:intersectionOf ( [ rdf:type                           owl:Restriction ;
owl:onProperty :hasRelative ;
                                                                owl:someValuesFrom :FamilyMember
                                                              ]
                                                              [ rdf:type owl:Restriction ;
owl:onProperty :lovesFamilyMember ;
                                                                owl:someValuesFrom :FamilyMember
                                                              ]
                                                            ) ;
                                         rdf:type owl:Class
                                       ] ;
                   rdfs:subClassOf :FamilyMember .

    #################################################################
    #    Individuals
    #################################################################

    :A rdf:type owl:NamedIndividual ,
                :FamilyMember ;
       :lovesFamilyMember :B .

    :B rdf:type owl:NamedIndividual ,
                :FamilyMember .

    :Family1 rdf:type owl:NamedIndividual ,
                      :Family ;
             :hasFamilyMember :A ,
                              :B .

    :Family2 rdf:type owl:NamedIndividual ,
                      :Family .

    #################################################################
    #    General axioms
    #################################################################

    [ rdf:type owl:AllDifferent ;
      owl:distinctMembers ( :A
                            :B
                          )
    ] .