- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试让推理机(例如 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 .
你可以得到这样的结果:
关于properties - OWL推理: Necessary and sufficient conditions for inferring a property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902946/
谁能解释为什么下面的第二个例子不能编译? “测试 2”给出“错误 FS0670:此代码不够通用。类型变量 ^a 无法泛化,因为它会超出其范围。”。我无法理解此错误消息。 // Test 1 type
如果给你一个 RGB 形式的颜色,是否有办法以编程方式确定它是否与其他 RGB 足够不同。 比如说,我想测试颜色之间是否相差至少 30%,我该怎么做?或者,换句话说,我如何生成与另一种颜色充分不同的颜
我是 Prolog 的新手。我写了一个很短的程序如下: plus(X,Y,R):- R is X+Y. 当我运行它时,我遇到以下问题: ?- plus(1,1,2). true ?- plus(1,1
计划是计算两点(角色和光标)之间的斜率,将其转换为与水平面的角度,并根据该角度,切换到特定的角色 Sprite ,使其看起来指向光标(例如:0-30 度,一个 Sprite 。30-60 度,另一个
我无法从 Rails 访问 Google Analytics API。即使我已经设置了服务帐户,我仍然无法获得足够的权限。 我已经创建了一个服务帐户: 转到 console.developers.go
不断出现错误 Arguments are not enoughly instantiated 对于我编写的乘法加法规则,如下所示。 mult(_, 0, 0).
如果我想测试一个对象是否有特定的方法:以下代码可靠吗? const obj = { add(a, b) { return a + b } } if (obj.add) { co
客户端出现以下错误 CRITICAL: Uncaught PHP Exception Exception: "Could not gather sufficient random data" at /
我想安装 openCV 来矢量化图像,但是有一系列关于 Xcode 和 Ruby 的错误消息。 首先,我使用终端安装openCV,brew install opencv。 然后,我收到错误消息,指出系
我正在尝试通过服务帐户使用 Google Analytics API 获取数据。 我一直在 stackoverflow 上搜索如何执行此操作,并一直在使用在多个帖子中找到的完全相同的代码,但在使其工作
我制作了一个Prolog谓词posAt(List1,P,List2),用于测试P和List1的List2位置上的元素是否相等: posAt([X|Z], 1, [Y|W]) :- X = Y.
我们正在尝试让推理机(例如 Protege 中的 HermiT)推断可以使用更具体的子属性而不是断言的一般属性。 类: - Patient - Finding - Dyspnea - Obse
我是 Magento 的新手,我正在尝试通过 magento 连接管理器安装主题,我复制并粘贴扩展 key ,然后单击安装然后继续。我收到错误“警告:您的 Magento 文件夹没有足够的写入权限。”
我在使用 Xcode 8 进行代码签名时遇到此错误: Your account does not have sufficient permissions to modify containers 它要
我正在使用 Prolog 编写 URI 解析器,但目前我遇到的问题要简单得多。我正在探索一个字符串以找到一个特定的字符“:”,当我找到它时,我想要一个只包含它前面的串联字符的字符串。 这个程序: %
我创建了一个程序,list(X,Y)检查列表 Y 中的所有元素是否都小于 X。 代码如下。 list(X,[]). list(X,[Y|Z]):-X>Y,list(X,Z). 当我输入 list(3,
Visual Studio 2015 RCWix v3.10.0.1726 我正在为 Windows 服务创建安装程序。我已经使用 InstallUtil 测试了该服务,它运行良好。不幸的是,我在使用
我有一个在 Google Analytics API 上运行查询的 Nodejs 代码,我使用 googleapis 库进行身份验证和获取数据。 但是,当我尝试发送查询以检索“页面 View ”时,例
我知道这个问题已经被问过好几次了,但我需要一些具体的帮助,因为我一直在听取其他几个线程的建议,但到目前为止没有任何效果。 我正在尝试使用 certbot-auto renew 在 Ubuntu 14.
这个问题在这里已经有了答案: How to understand happens-before consistent (5 个答案) 关闭 4 年前。 在chapter 17 of Java lan
我是一名优秀的程序员,十分优秀!