Rdf 猫头鹰如何表达兄弟姐妹有共同的父母?
我用海龟符号写了一个简单的文件,其中戴夫是玛丽的父亲,玛丽是杰克的妹妹。我想知道戴夫有两个孩子杰克和玛丽的原因Rdf 猫头鹰如何表达兄弟姐妹有共同的父母?,rdf,semantics,semantic-web,owl,Rdf,Semantics,Semantic Web,Owl,我用海龟符号写了一个简单的文件,其中戴夫是玛丽的父亲,玛丽是杰克的妹妹。我想知道戴夫有两个孩子杰克和玛丽的原因 :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
: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 .
我读过,但仍然不明白如何表达这个简单的事实
戴夫是玛丽的父亲,玛丽是杰克的妹妹。我想知道戴夫有两个孩子杰克和玛丽的原因
: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 .
如果忽略兄弟姐妹具有不同父级的可能性(例如,一个共同的父级和一个不同的父级),则可以使用子角色链执行此操作。如果您有以下数据:
戴夫和右箭头;有孩子的玛丽和右箭头;易怒的杰克
然后您需要使用以下规则:
hasChild•hasSibling&SqSubsetq;孩子
这将允许您推断:
戴夫和右箭头;孩子杰克
在海龟身上,看起来像这样:
@prefix : <http://stackoverflow.com/a/30903421/1281433/> .
@prefix a: <http://stackoverflow.com/a/30903421/1281433/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
a:Jack a owl:NamedIndividual .
a:Dave a owl:NamedIndividual ;
a:hasChild a:Mary .
a:hasChild a owl:ObjectProperty ;
owl:propertyChainAxiom ( a:hasChild a:hasSibling ) .
a:Mary a owl:NamedIndividual ;
a:hasSibling a:Jack .
a:hasSibling a owl:ObjectProperty .
a: a owl:Ontology .
@前缀:。
@前缀a:。
@前缀rdf:。
@前缀owl:。
@前缀xsd:。
@前缀rdfs:。
杰克:猫头鹰:名字是个人。
a:Dave猫头鹰:名字是个人;
a:有孩子a:玛丽。
a:hasChild a owl:ObjectProperty;
猫头鹰:不动产海纳西姆(a:有孩子a:有麻烦)。
a:玛丽是一只猫头鹰:名字是个人;
a:麻烦a:杰克。
a:与owl:ObjectProperty发生冲突。
答:猫头鹰:本体论。
以下是Protege得出的结论:
你可能会发现这很有用,尽管这不是你问题的确切答案。我们知道由于及物性
Mary:hasSibling-Mary
和Mary:hasSibling-Jack
的缘故,Mary:hasSibling-Mary
和Jack:hasSibling-Jack
。我们如何重新定义:hasSibling
属性?@4ell我不太清楚你在问什么。你能举个例子说明你想从什么中推断出什么吗?从一个事实中我只想推断出Mary:hasSibling-Jack
不包括:hasSibling-on-on-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in。