1

我有海龟声明:

:Parent rdf:type owl:Class ;

    owl:equivalentClass ;
        rdf:type owl:Class ;
        owl: unionOf (
                [   rdf:type owl:Restriction ;
                    owl:onProperty :fatherOf ;
                    owl:someValuesFrom :Person
                ]
                [   rdf:type owl:Restriction ;
                    owl:onProperty :motherOf ;
                    owl:someValuesFrom :Person
                ]
        }
    ].

有人可以在此声明中向我解释父的概念吗?一个人是否也有可能成为一个人的母亲或父亲而不是父母?

4

1 回答 1

4

有人可以在此声明中向我解释父的概念吗?

请注意,Turtle 只是 RDF 的一种序列化格式。在RDF中,:Parent是一个 IRI(我们需要知道前缀:代表什么才能确切知道它是什么),它是至少一个 RDF 三元组的主题:

:Parent rdf:type owl:Class .

您展示的“Turtle”片段实际上不是合法的 Turtle。如果您查看括号,您会发现它们不匹配,并且其中还有一个},它在 Turtle 文档中没有位置。然后有一部分

:Parent rdf:type owl:Class ;

    owl:equivalentClass ;

这也不对。Turtle 语法允许您缩写两个三元组

:A :p :B .
:A :q :C .

作为

:A :p :B ;
   :q :C .

但是在您的代码段中, owl:equivalentClass之后缺少一个对象。请参阅SPARQL 运算符 ';' 的含义 有关此语法的更多信息。

但是,根据其余内容,我猜您正在尝试查看 OWL 公理:

    父母≡∃fatherOf.Person⊔∃motherOf.Person

这也可以用曼彻斯特语法写成

    父等效类 ((fatherOf some Person) 或 (motherOf some Person))

最后一个表示可能更清楚公理是什么。表达式(fatherOf some Person)是通过属性fatherOf与某个Person相关的所有个体的类,即,作为某个人的父亲的所有个体。类似地,(motherOf some Person)是属于某个人的母亲的个人类别。如果你把这些结合起来,那么你就有了所有个体的类,这些个体是某个人的父亲或某个人的母亲。整个公理说该类等同于类Parent。也就是说,Parent类正是某个人的父亲或母亲的个体类。

一个人是否也有可能成为一个人的母亲或父亲而不是父母?

不。如果一个人是一个人的父亲(母亲),那么他们是(fatherOf some Person) ( (motherOf some Person) ) 的成员,因此是((fatherOf some Person) 或 (motherOf some Person)的成员Person)),并且由于该类等效于Parent,因此该个人是Parent的成员。

于 2016-01-06T20:56:48.823 回答