首页 > 解决方案 > 无法读取 OWL 公理

问题描述

我正在使用 owlapi 在 java 中阅读附加的大学平台本体文件(我从 UBA1.7 lubm 生成)。但它没有读取任何像子类等公理。它也没有给我任何错误。谁能告诉我我做错了什么。下面的代码我用来从这个本体中检索子类公理,但它没有返回任何内容/空白输出。我想输出子类、不相交的类、子属性、不相交的属性、匿名超类公理。但目前我无法从本体中得到任何东西。

当我使用我使用 protege 创建的本体时。下面的代码工作正常。但是当我尝试执行从 UBA1.7 生成的本体时,它什么也没给我。

public static void axioms(File ontology) throws OWLOntologyCreationException {
        OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
        OWLOntology ontology = manager.loadOntologyFromOntologyDocument(ontology);
        OWLDataFactory df = manager.getOWLDataFactory();
        
        for (final OWLSubClassOfAxiom subClasse : ontology.getAxioms(AxiomType.SUBCLASS_OF))
        {
            if (subClasse.getSuperClass() instanceof OWLClass && subClasse.getSubClass() instanceof OWLClass)
            {
                System.out.println(subClasse.getSubClass()  + " extends " + subClasse.getSuperClass());
            }
        }
    }

标签: javaontologyowl-api

解决方案


推荐阅读