owl-api - 如何使用 OWLReasoner 更新本体
问题描述
我是 OWL API 的新手,我想知道是否有办法使用推理器(HermiT)拾取的所有新关系来更新本体。我找不到教程或太多文档,所以我假设调用
reasoner.classifyClasses();
reasoner.classifyDataProperties();
reasoner.classifyObjectProperties();
reasoner.precomputeInferences();
reasoner.flush();
将对新关系进行分类。然后,我不确定如何翻译这些新关系以创建更新的本体。我知道如何手动迭代新关系并在它们不存在于本体中时添加它们,但我正在寻找一种更简单的方法来做到这一点。另外,我不完全确定上述代码是否为我解释了所有新关系,所以请告诉我是否应该进行任何更正。
解决方案
您可以InferredOntologyGenerator
用于此目的。可以使用推理器作为输入创建该类,并使用InferredOntologyGenerator::fillOntology
将所有可以推断的公理添加到新本体的方法来创建该类。
请注意,公理生成可能是一个非常缓慢的操作。首先尝试使用一个小的本体,看看结果是否是你需要的。
推荐阅读
- python - 已安装的软件包在 VSC 中有效,但在 Jupyter Notebook 中无效
- c++ - 如何将 Mediapipe 手部识别(使用 C++)与来自网络摄像头以外的视频源一起使用
- java - 如何在另一个方法中使用一个方法的值?
- android - 更新 Kotlin 的警告:文件扩展名“*.klib”被重新分配给“ARCHIVE”
- python - 如何限制您的问题以允许自定义的“冷静期”?
- splunk - relative_time 表达式含义
- powershell - 如何使更新 Windows 10 PS 脚本在重新启动后恢复并使用结果更新 CSV 文件?
- pyspark - 无法解析带有流源的查询必须使用 writeStream.start() 结构化 Spark Streaming - Pyspark 执行
- reactjs - 在测试期间无法访问组件中的 DOM 元素(在浏览器中工作)
- java - 从 Dataflow 作业创建云 sql 表