java - 从 OWL 本体获取等价类
问题描述
更新:
我已经解决了这个问题。在 Java 中使用 OWL API,我设法检索了本体中的所有公理,其中包括我正在寻找的所有等价类。据我所知,没有直接的方法可以获得未命名的等效类。这是我使用的代码:
OWLOntologyManager man = OWLManager.createOWLOntologyManager();
o = man.loadOntologyFromOntologyDocument(hp);
Stream<OWLLogicalAxiom> logicalAxioms = o.logicalAxioms();
logicalAxioms.forEach(log::println);
问题:
我有一个本体(人类表型本体,或者只是“hp”),我需要从“owl:equivalentClass”标签内的本体中引用的其他本体中提取类。例如:对于 hp 类“HP_0001561”,我想提取:
- BFO_0000051
- PATO_0000595
- RO_0000052
- UBERON_0000173
- RO_0002573
- PATO_0000460
- hp-逻辑定义-subq#during
- 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>
我已经尝试了几个库来处理猫头鹰本体,但我找不到这样做的方法。我在 Python 上试过,我目前在 Java 上使用 OWL API。
解决方案
推荐阅读
- javascript - 如何在一个 observable 中保持可观察链在 http 错误之后继续运行
- html - 上传后不显示 div 的背景颜色
- asp.net-core - 如何在没有 JsonSerializer 奇怪的斜线字符的情况下生成 JSON?
- html - Codignator 不绑定数组值
- c++ - C++ 中的 TensorFlow Hub
- powershell - 如何使用 PowerShell 获得最大价值?
- movesense - movesense 中的空闲电流
- android - android适配器中的Textview背景颜色没有改变
- ssl - 在 HTTPS 连接中的 SSL 握手期间,客户端如何在加密传输开始之前安全地将 secert 发送到服务器
- sockets - 双向UDP隧道