我已经解决了这个问题。在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;,我想要提取:
这是班级:
<!-- 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。