使用OWL2代表条件

时间:2016-03-21 22:57:43

标签: semantic-web owl linked-data

我正构建一个本体来对数据库中的记录进行分类。它将迭代更新版本的数据库。因此,它需要考虑潜在的变化。

这是我的用例:

一个人服用3剂药物A(每种事件表示为药物A1,剂量1为剂量1,药物A2为剂量2,剂量为2,以此类推)。描述了类和条件:

CompletePerson:如果有人服用了全部3剂 IncompletePerson:如果患者已服用剂量1和/或剂量2

如果我代表不完整的'作为:

((dose1 or dose2) and (not dose3)),即使数据库记录显示我应该,我也没有为该课程推断个人。

这可能是因为Open World Assumption。在本体论中,我说一个人已经接受过这样的剂量,而不是这个人没有得到的剂量。

如果我为班级创建这个公理:

dose1 or dose2

该类成为CompletePerson的超类(后者又是dose1Person,dose2Person和dose3Person的子类)。我应该如何表示IncompletePerson的axoim,以便它不被推断为CompletePerson的超类。

1 个答案:

答案 0 :(得分:1)

  

在本体论中,我说一个人已经接受过这样的剂量,而不是这个人没有得到的剂量。

这就是问题所在。如果你没有说他们没有收到什么,那么你就没有办法知道他们没有收到给定的剂量。例如,如果我告诉你约翰服用剂量1和剂量2,并且不告诉你他是否服用剂量3,你无法知道约翰实际上是完全人还是不完全人。

你需要做出一个断言,说出约翰所拥有和没有采取的行动。例如,

约翰服用剂量1 约翰服用剂量2。

你也断言

约翰:(只服用{dose1 dose2})

然后,只要您知道剂量1≠剂量3且剂量2≠剂量3,您就可以推断约翰是一个不完整的人,因为约翰没有服用剂量3。

现在,你已经把这个想法称为有条件的“如果一个人服用了全部三剂,那么他们是CompletePerson”,但我认为你真的想要这是一个定义,即一个等价:“一个人把所有三个doeses id,只有他们是一个CompletePerson”。你需要这种等价,因为否则一个人可能因其他原因而完整,你想要排除这种可能性。

一旦你完成了,你可以说Person是CompletePerson和IncompletePerson的不相交联盟。

这是一个带有类层次结构的OWL本体:

Person         (disjoint union of Incomplete and Complete)
  Incomplete   
  Complete == (took value dose1) and (took value dose2) and (took value dose3)

和个人:

John : Person, (took only {dose1, dose2}), took dose1, took dose2
Mary : Person, took dose1, dose2, dose3
dose1 : ≠ dose2, ≠ dose3
dose2 : ≠ dose1, ≠ dose3
dose3 : ≠ dose1, ≠ dose2

你将能够推断玛丽是完整的,约翰是不完整的。

这是在Turtle序列化中,您可以下载它并在Protege中打开它。

@prefix :      <http://www.semanticweb.org/user/ontologies/2016/2/untitled-ontology-58#> .
@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 untitled-ontology-58: <http://www.semanticweb.org/taylorj/ontologies/2016/2/untitled-ontology-58#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

_:b0    a               owl:Restriction ;
        owl:hasValue    untitled-ontology-58:dose2 ;
        owl:onProperty  untitled-ontology-58:took .

<http://www.semanticweb.org/taylorj/ontologies/2016/2/untitled-ontology-58>
        a       owl:Ontology .

[ a                    owl:AllDifferent ;
  owl:distinctMembers  ( untitled-ontology-58:dose1 untitled-ontology-58:dose2 untitled-ontology-58:dose3 )
] .

untitled-ontology-58:took
        a       owl:ObjectProperty .

untitled-ontology-58:Incomplete
        a                owl:Class ;
        rdfs:subClassOf  untitled-ontology-58:Person .

_:b1    a               owl:Restriction ;
        owl:hasValue    untitled-ontology-58:dose3 ;
        owl:onProperty  untitled-ontology-58:took .

untitled-ontology-58:dose3
        a       owl:Thing , owl:NamedIndividual .

untitled-ontology-58:Mary
        a                          owl:Thing , untitled-ontology-58:Person , owl:NamedIndividual ;
        untitled-ontology-58:took  untitled-ontology-58:dose1 , untitled-ontology-58:dose2 , untitled-ontology-58:dose3 .

untitled-ontology-58:Complete
        a                    owl:Class ;
        rdfs:subClassOf      untitled-ontology-58:Person ;
        owl:equivalentClass  [ a                   owl:Class ;
                               owl:intersectionOf  ( _:b2 _:b0 _:b1 )
                             ] .

untitled-ontology-58:Person
        a                    owl:Class ;
        owl:disjointUnionOf  ( untitled-ontology-58:Complete untitled-ontology-58:Incomplete ) .

untitled-ontology-58:dose2
        a       owl:Thing , owl:NamedIndividual .

untitled-ontology-58:John
        a                          owl:Thing , untitled-ontology-58:Person , owl:NamedIndividual ;
        a                          [ a                  owl:Restriction ;
                                     owl:allValuesFrom  [ a          owl:Class ;
                                                          owl:oneOf  ( untitled-ontology-58:dose2 untitled-ontology-58:dose1 )
                                                        ] ;
                                     owl:onProperty     untitled-ontology-58:took
                                   ] ;
        untitled-ontology-58:took  untitled-ontology-58:dose1 , untitled-ontology-58:dose2 .

_:b2    a               owl:Restriction ;
        owl:hasValue    untitled-ontology-58:dose1 ;
        owl:onProperty  untitled-ontology-58:took .

untitled-ontology-58:dose1
        a       owl:Thing , owl:NamedIndividual .

另见