我有三倍说,病人P参与医疗保健遭遇E,它有输出M,一种药物处方。处方可以从药物本体论( mention Ontology,简称DrOn )中提取药物。
在这个例子中,假设M1提到了降低胆固醇的药物阿托伐他汀,它是从ChEBI进口到DrOn中的39548。
prefix obo: <http://purl.obolibrary.org/obo/> :M1 obo:IAO_0000142 obo:CHEBI_39548 .
ChEBI有一个公理,即obo:CHEBI_39548具有35821的作用,即“抗胆固醇药物”。这使得人们很容易找到那些服用过阿托伐他汀或其他具有同样作用的药物的病人。
不幸的是,DrOn为某些药物制定了自己的条款,而不是从ChEBI进口它们。例如,另一种降低胆固醇的药物,罗舒伐他汀,被建模为00018679而不是38545。ChEBI对罗伐他汀的术语也加上了角色obo:CHEBI_39548,但obo:DRON_00018679没有注释。因此,在我的数据集中,使用罗舒伐他汀处方的患者不会出现在我现有的基于角色的查询中。
我将这些数据放在一个GraphDB RDFS+存储库中,并且我现在不想更改推理级别。如果是猫头鹰仓库,我只想说
obo:CHEBI_38545 owl:equivalentClass obo:DRON_00018679
是否可以使用RDFS或GraphDB自定义规则集做类似的事情?
发布于 2018-04-12 16:56:41
如果是猫头鹰仓库,我只想说
obo:CHEBI_38545 owl:equivalentClass obo:DRON_00018679我是否可以使用RDFS或GraphDB自定义规则集做类似的事情?
First
显然,您可以用两个倒数owl:equivalentClass替换rdfs:subClassOf。至于这些提法的等价性,我认为这是相关的:
第二
owl:equivalentClass已经在RDFS中了.
第一版“工作本体学家语义网”第7章首次介绍了RDFS:
RDFS使用构造
owl:equivalentClass提供了一个更直观的类等价表达式。
在GraphDB中,RDFS和RDFS(优化的)规则集支持owl:equivalentClass。builtin_rdfsPlus-optimized.pie文件中有以下规则:
Id: owl_EquivClassBySubClass
a <rdfs:subClassOf> b [Constraint b != a]
b <rdfs:subClassOf> a [Cut]
------------------------------------
a <owl:equivalentClass> b以及下列公理:
<owl:equivalentClass> <rdf:type> <owl:TransitiveProperty>
<owl:equivalentClass> <rdf:type> <owl:SymmetricProperty>
<owl:equivalentClass> <rdfs:subPropertyOf> <rdfs:subClassOf>在高级配置文件中,使用了两条规则:
Id: scm_eqc1
c1 <owl:equivalentClass> c2 [Constraint c1 != c2 ]
-------------------------------
c1 <rdfs:subClassOf> c2
c2 <rdfs:subClassOf> c1
Id: scm_eqc2
c1 <rdfs:subClassOf> c2 [Constraint c1 != c2 ]
c2 <rdfs:subClassOf> c1
-------------------------------
c1 <owl:equivalentClass> c2发布于 2018-04-12 18:34:50
当我在RDFS+ GraphDB回购中使用@StanislavKralin的对等GraphDB名称时.
:x和:y的三元组,例如类:x的:z:x和:y是彼此的子类PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix : <http://localhost/> insert data { :x a owl:Class . :y a owl:Class . :z a :x . :x rdfs:subClassOf :y . :y rdfs:subClassOf :x . }
然后查询有关:x、:y和:z的所有三元组
select * where { ?s ?p ?o . filter(regex(str(?s), "localhost")) } order by ?s ?p ?o
我免费得到owl:equivalentClass!
+----+---------------------+-----------+ | s | p | o | +----+---------------------+-----------+ | :x | rdf:type | owl:Class | | :x | rdfs:subClassOf | :x | | :x | rdfs:subClassOf | :y | | :x | owl:equivalentClass | :x | | :x | owl:equivalentClass | :y | | :y | rdf:type | owl:Class | | :y | rdfs:subClassOf | :x | | :y | rdfs:subClassOf | :y | | :y | owl:equivalentClass | :x | | :y | owl:equivalentClass | :y | | :z | rdf:type | :x | | :z | rdf:type | :y | +----+---------------------+-----------+
https://stackoverflow.com/questions/49799492
复制相似问题