java - 无法读取 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());
}
}
}
解决方案
推荐阅读
- python-3.x - python中的main.py到底是什么,我如何使用它来使用pyinstaller创建一个可执行文件?
- c# - 为什么要使用 ReaderWriterLockSlim.EnterReadLock?
- ruby-on-rails - 使用现有的推文模型实现转推功能
- c++ - 函数 C++ 中的 Auto 变量出错
- python-3.x - 如果失败,如何退出python子进程
- android-security - Android 中的 Playstore 通知 HostnameVerifier 接口的不安全实现
- python - 在python中解析日期到日期时间格式
- if-statement - 在 prolog 中返回布尔值的嵌套 if 语句
- ruby-on-rails - Minitests 在纯函数上很不稳定,没有副作用
- angular - 为什么使用 `fakeAsync` 测试不会使测试代码以异步方式运行?