【发布时间】:2015-09-03 02:22:11
【问题描述】:
我用海龟符号写了一个简单的文件,其中戴夫是玛丽的父亲,玛丽是杰克的妹妹。我想要 Dave 有两个孩子 Jack 和 Mary 的理由。
:Human a rdfs:Class .
:Man rdfs:subClassOf :Human ;
owl:disjointWith :Woman .
:Woman rdfs:subClassOf :Human ;
owl:disjointWith :Man .
:hasChild a rdf:Property ;
owl:inverseOf :hasParent ;
rdfs:domain :Human ;
rdfs:range :Human.
:fatherOf owl:InverseFunctionalProperty rdf:Property ;
owl:inverseOf :hasFather ;
rdfs:subPropertyOf :hasChild ;
rdfs:domain :Man ;
rdfs:range :Human.
:motherOf owl:InverseFunctionalProperty rdf:Property ;
owl:inverseOf :hasMother ;
rdfs:subPropertyOf :hasChild ;
rdfs:domain :Woman ;
rdfs:range :Human.
:siblingOf a owl:SymmetricProperty, owl:TransitiveProperty ;
owl:inverseOf :hasSibling ;
rdfs:domain :Human ;
rdfs:range :Human.
:brotherOf a rdf:Property ;
owl:inverseOf :hasBrother ;
rdfs:subPropertyOf :siblingOf ;
rdfs:domain :Man ;
rdfs:range :Human.
:sisterOf a rdf:Property ;
owl:inverseOf :hasSister ;
rdfs:subPropertyOf :siblingOf ;
rdfs:domain :Woman ;
rdfs:range :Human.
[] rdf:type owl:Axiom ;
owl:subject :Man ;
owl:predicate rdfs:subClassOf ;
owl:object :Human ;
rdfs:label "States that every man is a human."^^xsd:string .
[] rdf:type owl:Axiom ;
owl:subject :Woman ;
owl:predicate rdfs:subClassOf ;
owl:object :Human ;
rdfs:label "States that every woman is a human."^^xsd:string .
:Dave a :Man .
:Jack a :Man ;
:hasSister :Mary .
:Mary a :Woman ;
:hasFather :Dave .
我读过http://www.w3.org/TR/owl-ref/#Property、http://www.w3.org/TR/2002/WD-owl-semantics-20021108/syntax.html#2.3.1.3,但仍然不明白如何表达这个简单的事实。
【问题讨论】:
-
您可能会发现How to infer isBrotherOf property between two individuals 很有用,尽管它不是您问题的准确答案。
标签: rdf semantics semantic-web owl