#java #namespaces #ontology #prefix #owl-api
#java #пространства имен #онтология #префикс #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
файла)?
Ответ №1:
Префиксы, найденные во время синтаксического анализа, хранятся как часть OWLDocumentFormat
экземпляра, связанного с онтологией:
OWLDocumentFormat format = manager.getOntologyFormat(ontology);
if (format.isPrefixOWLDocumentFormat()) {
// this is the map you need
Map<String, String> map = format.asPrefixOWLDocumentFormat().getPrefixName2PrefixMap();
}