gpt4 book ai didi

java - 使用 OWL-API 和 Hermit 打印披萨本体的父类(super class)

转载 作者:行者123 更新时间:2023-12-01 09:25:11 27 4
gpt4 key购买 nike

我尝试打印从here下载的标准披萨本体的父类(super class)。我正在使用 OWL API 3.4.3 和 Hermit 1.3.8.1(reasoner)。

以下代码片段用于打印类“Food”所需的父类(super class)

OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
IRI ontologyIRI =IRI.create("file:/D:/pizza.owl.xml");
//IRI ontologyIRI =IRI.create("http://www.co-ode.org/ontologies/pizza/pizza.owl");

OWLOntology ontology = manager.loadOntology(ontologyIRI);
OWLReasoner reasoner = new Reasoner.ReasonerFactory().createReasoner(ontology);
OWLDataFactory df = manager.getOWLDataFactory();
try{
reasoner.precomputeInferences(InferenceType.CLASS_ASSERTIONS);
//following Lines are to see super classes of Container
OWLClass clsA = df.getOWLClass(IRI.create(ontologyIRI + "#Food"));
Set<OWLClassExpression> superClasses = clsA.getSuperClasses(ontology);
System.out.println("in TRY 1");
//System.out.println("Hello World\n"+superClasses.iterator().toString());
for (OWLClassExpression g : superClasses) {
System.out.println("The superclasses are:"+g);
}
}
catch (Exception e) {
e.printStackTrace();
}

我没有收到任何编译错误。结果是TRY 1for循环内的内容尚未打印

在protege 5.0中,我看到了两个Food类的父类(super class);即DomainConceptowl:Thing。为什么程序没有打印这两个名字?

我哪里做错了?

感谢您的任何帮助。

最佳答案

你的本体IRI是一个本地文件名。当您使用它来获取类 IRI 时,您将获得与本体中实际使用的 IRI 不同的 IRI。检查该类实际具有的 IRI,这应该可以解决您的问题。

关于java - 使用 OWL-API 和 Hermit 打印披萨本体的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com