从OWL本体获取等价类

时间:2018-05-02 14:45:08

标签: java python rdf owl ontology

更新:

我已经解决了这个问题。在Java中使用OWL API我设法检索本体中的所有公理,其中包括我正在寻找的所有等价类。据我所知,没有直接的方法来获得未命名的等效类。这是我使用的代码:

OWLOntologyManager man = OWLManager.createOWLOntologyManager();
o = man.loadOntologyFromOntologyDocument(hp);
Stream<OWLLogicalAxiom> logicalAxioms = o.logicalAxioms();
logicalAxioms.forEach(log::println);

问题:

我有一个本体论(人类表型本体论,或者只是&#39; hp&#39;)我需要从我的本体论中引用的其他本​​体中提取类,其中包括:owl:equivalentClass&#34;标签。例如: 对于hp类&#34; HP_0001561&#34;,我想要提取:

  • BFO_0000051
  • PATO_0000595
  • RO_0000052
  • UBERON_0000173
  • RO_0002573
  • PATO_0000460
  • HP-逻辑定义-SUBQ期间#
  • GO_0007565

这是班级:

<!-- http://purl.obolibrary.org/obo/HP_0001561 -->

<owl:Class rdf:about="http://purl.obolibrary.org/obo/HP_0001561">
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Polyhydramnios</rdfs:label>
    <owl:equivalentClass>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000051"/>
            <owl:someValuesFrom>
                <owl:Class>
                    <owl:intersectionOf rdf:parseType="Collection">
                        <rdf:Description rdf:about="http://purl.obolibrary.org/obo/PATO_0000595"/>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0000052"/>
                            <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/UBERON_0000173"/>
                        </owl:Restriction>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0002573"/>
                            <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/PATO_0000460"/>
                        </owl:Restriction>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/hp/hp-logical-definitions-subq#during"/>
                            <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/GO_0007565"/>
                        </owl:Restriction>
                    </owl:intersectionOf>
                </owl:Class>
            </owl:someValuesFrom>
        </owl:Restriction>
    </owl:equivalentClass>

我已经尝试了几个库来处理owl本体,但我找不到办法来做到这一点。我已经尝试过Python,而且我目前正在使用Java上的OWL API。

0 个答案:

没有答案