猫头鹰。如何表达兄弟姐妹有共同的父母?

时间:2015-06-17 17:35:28

标签: rdf semantics semantic-web owl

我用乌龟符号写了一个简单的文件,其中戴夫是玛丽的父亲和杰克的玛丽妹妹。我想要戴夫有两个孩子杰克和玛丽。

Angularjs

我看过http://www.w3.org/TR/owl-ref/#Propertyhttp://www.w3.org/TR/2002/WD-owl-semantics-20021108/syntax.html#2.3.1.3,但仍然不明白如何表达这个简单的事实。

1 个答案:

答案 0 :(得分:2)

  

戴夫是杰克的玛丽和玛丽姐姐的父亲。我想要戴夫有两个孩子杰克和玛丽。

如果忽略兄弟姐妹有不同父母的可能性(例如,父母是共同的父母和不同的父母),那么你可以用子属性链来做到这一点。如果您有以下数据:

Dave→ hasChild 玛丽→ hasSibling 杰克

然后你想要使用以下规则:

hasChild•hasSibling⊑hasChild

这可以让你推断:

戴夫→ hasChild 杰克

在Turtle中可能看起来像这样:

@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 .

以下是Protege中得出的结论:

sibling inference