gpt4 book ai didi

properties - OWL推理: Necessary and sufficient conditions for inferring a property

转载 作者:行者123 更新时间:2023-12-04 02:09:02 26 4
gpt4 key购买 nike

我们正在尝试让推理机(例如 Protege 中的 HermiT)推断可以使用更具体的子属性而不是断言的一般属性。

类:

- 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)

如果我们断言以下三元组:

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

推理者可以(除其他外)推断:

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

但是当我们反过来看并断言时:

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

我们希望推理者推断:

:Patient1 :has_negative_finding :Dyspnea1 .

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

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

最佳答案

: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 实际上都对应于其中一个子属性。也就是说,仅仅因为某件事有发现,你不知道它也有消极或积极的发现。该发现可能只是一般性发现,而不是更具体的发现之一。

其次,更具体的对象类型并不意味着您必须使用更具体的属性。

第三,即使您声明该发现是排除项,但如果您不知道排除项与包含项是不相交的,您仍然可以将该发现既是阳性结果又是阴性结果。

现在,真正好的做法是声明 has_finding 是 has_negative_finding 和 has_positive_finding 的并集,然后声明包含和排除不相交。然后发现的每个实例都必须是一个或另一个,您可以做出您的推论。

既然你不能这样做,你就需要某种替代方法。如果您将个体用作针对每个人的诊断,那么您可以说每个发现要么是阴性结果,要么是阳性结果,公理如下

(反向(hasFinding)一些患者)子类((反向(hasNegativeFinding)一些患者)或(反向(hasPositiveFinding)一些患者))

同时使 hasFinding 具有逆函数,以便每个发现最多与一名患者相关联。然后你就会有一个像这样的本体:

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

你可以得到这样的结果:

findings inference

关于properties - OWL推理: Necessary and sufficient conditions for inferring a property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com