用owlapi提取本体名称空间/前缀

yc0p9oo0  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(457)

在一个 .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#"
}

如何使用owlapi(即不解析 .owl 我自己归档)?

luaexgnf

luaexgnf1#

解析期间找到的前缀作为 OWLDocumentFormat 与本体关联的示例:

OWLDocumentFormat format = manager.getOntologyFormat(ontology);
if (format.isPrefixOWLDocumentFormat()) {
    // this is the map you need
    Map<String, String> map = format.asPrefixOWLDocumentFormat().getPrefixName2PrefixMap();
}

相关问题