我有兴趣找到糖尿病(或任何其他列举的疾病)变种的诊断代码,公理上排除一些更准确的糖尿病相关综合征的疾病。
我使用君主病本体论(MonDO)作为我对疾病建模的权威以及在电子病历中表明它们的代码(如某些国家的ICD或SNOMED)。
我一直用rdfs:subClassOf*
三重奏检索“疾病的所有变种”。 MonDO模型似乎相当不错,但有时似乎有点过分,我想公理性地省略一些subClass关系。
例如,H Syndrome被认为是rdfs:subClassOf*
diabetes,但作为一种综合症,它包括糖尿病的本质以外的许多特征(长时间血糖水平升高。)下面的ask
显示我如何能够使这种特殊疾病发生变化。基于其具有综合征和遗传修饰的事实,对于糖尿病类型的询问。
如何以一般方式寻找具有综合症状修饰的疾病,预期minus
可能不会以一致的方式组成?可能会有更多(或更少)交叉点,可能会使用owl:Restrictions
而不是rds:subClassOf
......
owl:equivalentClass
像往常一样,这是基于慷慨的评论:
下面的属性路径查询从我的存储库中检索4000+综合症。我还没有让它在OntoBee上运行。
关注:
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
prefix H_Synd: <http://purl.obolibrary.org/obo/MONDO_0019589>
prefix hasMod: <http://purl.obolibrary.org/obo/RO_0002573>
prefix syndromePres: <http://purl.obolibrary.org/obo/MONDO_0021127>
prefix genetic: <http://purl.obolibrary.org/obo/MONDO_0021152>
ask where {
H_Synd: owl:equivalentClass ?ec .
?ec owl:intersectionOf ?i1 .
?i1 rdf:first|rdf:rest ?ilpart .
?ilpart rdf:first|rdf:rest ?ilpartf , ?ilpartr .
?ilpartf rdf:type owl:Restriction ;
owl:onProperty hasMod: ;
owl:someValuesFrom syndromePres: .
?ilpartr rdf:first|rdf:rest ?ilpartrpart .
?ilpartrpart rdf:type owl:Restriction ;
owl:onProperty hasMod: ;
owl:someValuesFrom genetic: .
}
,但在我中止之前,它会持续运行几分钟。显然(rdf:first|rdf:rest|rdfs:subClassOf)*
获得了一些有用的类,但?pre rdf:first* ?ilpartf
模式只获得36个空白节点。?pre rdf:first ?ilpartf
查询获得相同的结果。 MonDO包含下面的OWL公理。如果它已被推理,我只是得到直接断言为综合征疾病的疾病类别rdfs:subClassOf*
绑定。除了他们自己以外,其他35个{ ?pre ?sub }
空白节点不受任何?pre
类的约束。?sub
disease or disorder and (has
modifier some
has a syndromic presentation)
query:rdfs:subClassOf*
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
select * where {
?s rdfs:subClassOf* obo:MONDO_0002254 .
}