首页 文章

RDFS类似于owl:equivalentClass?

提问于
浏览
1

我有三元组说患者 P 参加医疗保健遭遇 E ,其中有药物处方 M . 处方药可以是药物本体论的药物,也可以是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,"anticholesteremic drug" . 这使得很容易找到服用阿托伐他汀的患者,或其他具有相同作用的药物 .

不幸的是,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

Is there something similar I can do with RDFS, or a GraphDB custom ruleset?

2 回答

  • 1

    如果它是一个OWL存储库,我只想说obo:CHEBI_38545 owl:equivalentClass obo:DRON_00018679我可以用RDFS或GraphDB自定义规则集做类似的事吗?

    First

    你显然可以用两个倒数 rdfs:subClassOf 替换 owl:equivalentClass . 至于这些配方的等价性,我认为这是相关的:

    Second

    owl:equivalentClass 已经在RDFS-Plus中 .

    从工作本体论者的第一版语义Web第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
    
  • 3

    当我在RDFS GraphDB回购中使用@StanislavKralin的互惠 rdfs:subClassOf appraoch时......

    • 插入一些关于类 :x:y 的三元组,实例 :z:x

    • 断言 :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 | +----+---------------------+-----------+

相关问题