OWL推理:推断属性的必要条件和充分条件 [英] OWL reasoning: Necessary and sufficient conditions for inferring a property

查看:140
本文介绍了OWL推理:推断属性的必要条件和充分条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正试图找到一个推理器(例如Protege中的HermiT)来推断可以使用更具体的子属性来代替所主张的常规属性.

We are trying to get a reasoner (e.g. HermiT in Protege) to infer that a more specific sub-property can be used instead of the asserted general property.

课程:

- Patient
- Finding
    - Dyspnea
- ObservationStatus
     - Inclusion
     - Exclusion

属性:

- has_finding (domain: Patient, range: Finding) 
    - has_positive_finding (domain: Patient, range: Finding, Inclusion)
    - has_negative_finding (domain: Patient, range: Finding, Exclusion)

如果我们声明以下三元组:

If we assert the following triples:

:Patient1 a :Patient .
:Patient1 :has_negative_finding :Dyspnea1 .

推理者可以推断(其中包括)以下内容:

A reasoner can infer (among other things) that:

:Dyspnea1 a :Finding .
:Dyspnea1 a :Exclusion.

但是,当我们以另一种方式看待它并断言时:

But when we look at it the other way around and assert:

:Patient1 a :Patient .
:Dyspnea1 a :Dyspnea .
:Dyspnea1 a :Exclusion .
:Patient1 :has_finding :Dyspnea1. 

我们希望推理机推断出这一点:

We would like the reasoner to infer that:

:Patient1 :has_negative_finding :Dyspnea1 .

我们似乎无法让Protege和HermiT得出这个结论并推断出三元组.

We cannot seem to get Protege and HermiT to draw that conclusion and infer the triples.

我们缺少什么?条件是否没有必要和足够的条件来推断知识?

What are we missing? Are the conditions not necessary and sufficient for it to infer that knowledge?

推荐答案

:Patient1 a :Patient .
:Dyspnea1 a :Dyspnea .
:Dyspnea1 a :Exclusion .
:Patient1 :has_finding :Dyspnea1. 

我们希望推理机推断出这一点:

We would like the reasoner to infer that:

:Patient1 :has_negative_finding :Dyspnea1 .

…我们缺少什么?条件是否必要和充分? 它可以推断出这些知识吗?

… What are we missing? Are the conditions not necessary and sufficient for it to infer that knowledge?

这里有一些问题.

首先,您没有说每个has_finding实际上都对应于一个子属性.就是说,仅仅因为某事具有发现的意义,所以您不知道它也具有消极或积极的发现.该发现可能只是一般性发现,而不是更具体的发现之一.

First, you haven't said that every has_finding actually corresponds to one of the subproperties. That is, just because something has as finding, you don't know that it also has a negative or a positive finding. The finding could just be a general finding, without being one of the more specific ones.

第二,对象的更具体类型并不意味着您必须使用更具体的属性.

Second, the more specific type of the object doesn't mean that you have to use the more specific property.

第三,即使您声明发现是排除项,如果您不知道排除项与包含项是不相交的,您仍然可以使发现项既是肯定发现又是否定发现.

Third, even if you state that the finding is an exclusion, if you don't know that exclusions are disjoint from inclusions, you could still have the finding be both a positive and negative finding.

现在,真正要做的是声明has_finding是has_negative_finding和has_positive_finding的并集,然后声明包含和排除不相交.然后,发现的每个实例都必须是一个实例,而您可以进行推断.

Now, what it'd be really nice to do would be to state that has_finding is the union of has_negative_finding and has_positive_finding, and then declare inclusion and exclusion disjoint. Then every instance of a finding would have to be one or the other, and you could make your inference.

由于您无法执行此操作,因此需要某种替代方法.如果您使用个人作为每个人的诊断,那么您可以说每个发现都是带有公理的消极发现或积极发现,例如

Since you can't do that, you'll need some sort of alternative. If you're using individuals as per-person diagnoses, then you could say that every finding is either a negative finding or a positive finding with an axiom like

      (inverse(hasFinding)some Patient)子类((inverse(hasNegativeFinding)一些患者)或(inverse(hasPositiveFinding)一些患者)或(inverse(hasPositiveFinding)一些患者))

        (inverse(hasFinding) some Patient) subClass ((inverse(hasNegativeFinding) some Patient) or (inverse(hasPositiveFinding) some Patient))

具有hasFinding逆函数,因此每个发现最多与一名患者相关.然后您将拥有这样的本体:

along with making hasFinding inverse functional, so that each finding is associated with at most one patient. Then you'd have an ontology like this:

@prefix :      <http://stackoverflow.com/a/30903552/1281433/> .
@prefix a:     <http://stackoverflow.com/a/30903552/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:Exclusion  a           owl:Class ;
        rdfs:subClassOf  a:Finding .

a:hasNegativeFinding  a     owl:ObjectProperty ;
        rdfs:range          a:Exclusion ;
        rdfs:subPropertyOf  a:hasFinding .

_:b0    a                   owl:Restriction ;
        owl:onProperty      a:hasPositiveFinding ;
        owl:someValuesFrom  a:Inclusion .

a:      a       owl:Ontology .

[ a                   owl:Restriction ;
  rdfs:subClassOf     [ a            owl:Class ;
                        owl:unionOf  ( _:b1 _:b0 )
                      ] ;
  owl:onProperty      a:hasFinding ;
  owl:someValuesFrom  a:Finding
] .

a:Finding  a                 owl:Class ;
        owl:disjointUnionOf  ( a:Finding a:Inclusion ) .

a:patient1  a         owl:Thing , owl:NamedIndividual ;
        a:hasFinding  a:dyspnea1 .

_:b1    a                   owl:Restriction ;
        owl:onProperty      a:hasNegativeFinding ;
        owl:someValuesFrom  a:Exclusion .

a:hasFinding  a  owl:ObjectProperty .

a:Inclusion  a           owl:Class ;
        rdfs:subClassOf  a:Finding .

a:hasPositiveFinding  a     owl:ObjectProperty ;
        rdfs:range          a:Inclusion ;
        rdfs:subPropertyOf  a:hasFinding .

a:dyspnea1  a   owl:NamedIndividual , a:Exclusion .

您将获得如下结果:

这篇关于OWL推理:推断属性的必要条件和充分条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆