如何解决使用 OWL API 提取本体命名空间/前缀
在 .owl
文件中,我声明了一些这样的前缀:
Prefix(:=<http://default.ont/my_ont/>)
Prefix(ex:=<http://example.org/ex#>)
Prefix(ex2:=<http://example2.org/ex#>)
...
并在这样的 Java 项目中使用我的本体:
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology ontology = manager.loadOntologyFromOntologyDocument(new File(resourceFullPath(ontologyFilename)));
现在我想用以下内容以编程方式构建一个 Map<String,String>
:
{
"" -> "http://default.ont/my_ont/","ex" -> "http://example.org/ex#","ex2" -> "http://example2.org/ex#"
}
如何使用 OWL API 执行此操作(即不自己解析 .owl
文件)?
解决方法
解析过程中找到的前缀作为与本体关联的 OWLDocumentFormat
实例的一部分保存:
OWLDocumentFormat format = manager.getOntologyFormat(ontology);
if (format.isPrefixOWLDocumentFormat()) {
// this is the map you need
Map<String,String> map = format.asPrefixOWLDocumentFormat().getPrefixName2PrefixMap();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。