[英]RDFS analogue to owl:equivalentClass?
我有三元組,表示患者P
參加醫療保健遭遇會E
,該醫療會輸出葯物處方M
處方可以mention
葯物本體論或DrOn中的葯物。
在這種情況下,假設M1
提到了降膽固醇葯物阿托伐他汀,該葯物是從ChEBI導入DrOn的, 網址為http://purl.obolibrary.org/obo/CHEBI_39548 :
prefix obo: <http://purl.obolibrary.org/obo/> :M1 obo:IAO_0000142 obo:CHEBI_39548 .
ChEBI有一個公理,obo:CHEBI_39548的角色為http://purl.obolibrary.org/obo/CHEBI_35821 ,“抗膽固醇葯”。 這樣可以很容易地找到接受阿托伐他汀或其他具有相同作用的葯物的患者。
不幸的是,DrOn為某些葯物創建了自己的術語,而不是從ChEBI導入它們。 例如,另一種降低膽固醇的葯物羅舒伐他汀被建模為http://purl.obolibrary.org/obo/DRON_00018679而不是http://purl.obolibrary.org/obo/CHEBI_38545 。 ChEBI的瑞舒伐他汀一詞也帶有obo:CHEBI_39548的角色,但沒有obo:DRON_00018679的角色。 因此,在我的數據集中開了瑞舒伐他汀的患者不會出現在我現有的基於角色的查詢中。
我將這些數據保存在GraphDB RDFS-plus存儲庫中,並且我現在不希望更改推理級別。 如果它是一個OWL存儲庫,我會說
obo:CHEBI_38545 owl:equivalentClass obo:DRON_00018679
我可以使用RDFS或GraphDB自定義規則集執行類似的操作嗎?
如果它是一個OWL存儲庫,我會說
obo:CHEBI_38545 owl:equivalentClass obo:DRON_00018679
我可以使用RDFS或GraphDB自定義規則集執行類似的操作嗎?
第一
您顯然可以用兩個倒數的rdfs:subClassOf
代替owl:equivalentClass
。 至於這些公式的等效性,我認為這是相關的:
第二
owl:equivalentClass
已經在RDFS-Plus中。
從第一版面向工作本體的語義網的第7章中,首次引入RDFS-Plus:
RDFS-Plus使用結構
owl:equivalentClass
提供了更直觀的類等效表達。
在GraphDB中, RDFS-Plus和RDFS-Plus(優化)規則集支持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
當我在RDFS + GraphDB存儲庫中使用@StanislavKralin的對等rdfs:subClassOf
方法時...
: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 { :xa owl:Class . :ya owl:Class . :za :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 | +----+---------------------+-----------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.