获取导入本体列表--OWLAPI
Get the list of imported ontologies-- OWL API
我正在使用 OWL API 以便从本体中获取信息。我需要检索加载的 ontology.
中使用的所有导入本体的列表
有没有OWL中的方法API可以完成这个任务?
我加载 ontology 的代码是:
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLAnnotationProperty;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLDataProperty;
import org.semanticweb.owlapi.model.OWLImportsDeclaration;
import org.semanticweb.owlapi.model.OWLObjectProperty;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
public class NSExtractor {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws FileNotFoundException, OWLOntologyCreationException {
@SuppressWarnings("resource")
File testFile= new File("C:\acco.n3");
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLDataFactory f = OWLManager.getOWLDataFactory();
OWLOntology o;
o = m.loadOntologyFromOntologyDocument(testFile);
经过大量搜索,我找到了解决这个任务的方法。我使用了 OWLOntologyXMLNamespaceManager(我使用的是 OWL API 5.1.6)。
之后,使用 getPrefixes 和 getNameSpaces 可以分别为加载的 ontology 提取前缀和名称空间,如下所示:
OWLDocumentFormat format = m.getOntologyFormat(ontology);
OWLOntologyXMLNamespaceManager nsManager = new OWLOntologyXMLNamespaceManager(ontology, format);
for (String prefix : nsManager.getPrefixes()) {
System.out.println(prefix);
}
for (String ns : nsManager.getNamespaces()) {
System.out.println(ns);
}
o.importsDeclarations()
将为您提供此 ontology 的一系列进口申报。这是使用 owl:imports
属性声明的 IRI 列表。
注意:这些是声明的导入,而不是导入闭包 - 不同之处在于导入闭包包括在您的 ontology 中导入的本体以及这些本体导入的本体 - 递归地包括导入的本体。
o.importsClosure()
将提供在解析您的 ontology.
期间加载的所有本体
我正在使用 OWL API 以便从本体中获取信息。我需要检索加载的 ontology.
中使用的所有导入本体的列表有没有OWL中的方法API可以完成这个任务?
我加载 ontology 的代码是:
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLAnnotationProperty;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLDataProperty;
import org.semanticweb.owlapi.model.OWLImportsDeclaration;
import org.semanticweb.owlapi.model.OWLObjectProperty;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
public class NSExtractor {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws FileNotFoundException, OWLOntologyCreationException {
@SuppressWarnings("resource")
File testFile= new File("C:\acco.n3");
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLDataFactory f = OWLManager.getOWLDataFactory();
OWLOntology o;
o = m.loadOntologyFromOntologyDocument(testFile);
经过大量搜索,我找到了解决这个任务的方法。我使用了 OWLOntologyXMLNamespaceManager(我使用的是 OWL API 5.1.6)。 之后,使用 getPrefixes 和 getNameSpaces 可以分别为加载的 ontology 提取前缀和名称空间,如下所示:
OWLDocumentFormat format = m.getOntologyFormat(ontology);
OWLOntologyXMLNamespaceManager nsManager = new OWLOntologyXMLNamespaceManager(ontology, format);
for (String prefix : nsManager.getPrefixes()) {
System.out.println(prefix);
}
for (String ns : nsManager.getNamespaces()) {
System.out.println(ns);
}
o.importsDeclarations()
将为您提供此 ontology 的一系列进口申报。这是使用 owl:imports
属性声明的 IRI 列表。
注意:这些是声明的导入,而不是导入闭包 - 不同之处在于导入闭包包括在您的 ontology 中导入的本体以及这些本体导入的本体 - 递归地包括导入的本体。
o.importsClosure()
将提供在解析您的 ontology.