OWLAPI 4:导入或合并本体?
OWLAPI 4: import or merge ontologies?
我的情况如下:
我有三个核心本体,分别有它们的 TBox 和 ABox 描述。它们在运行时需要 imported/merged。我还需要 import/merge 一次只包含 ABox 描述的其他本体。最后一个必须随着时间的推移动态加载和删除。
我的两难选择是使用 OWLAPI 4 的导入还是合并?
更新:
核心本体 ABox 最终将根据来自 "part-time" 本体动态加载的传入数据进行修改。
导入听起来是最好的策略,因为您没有提到对任何本体的修改,而只是对整个本体的添加和删除。
我会做以下事情:
- 创建一个新的空 ontology
- 导入始终包含的所有本体
- add/remove导入您只想部分时间使用的本体
注意:OWLAPI 不会在创建导入声明时加载本体 - 这是为了避免在编辑导入时加载时间过长。因此,要使其正常工作,您必须预先加载您计划使用的本体:
- 加载ontologyX
- 向 Y 添加进口申报:
Y imports X
OWLOntology 上的大多数查询方法都接受一个参数来告诉您是否希望搜索包括 imports 闭包 - 您可能希望将其设置为 Imports。一直包含在内。
我的情况如下: 我有三个核心本体,分别有它们的 TBox 和 ABox 描述。它们在运行时需要 imported/merged。我还需要 import/merge 一次只包含 ABox 描述的其他本体。最后一个必须随着时间的推移动态加载和删除。 我的两难选择是使用 OWLAPI 4 的导入还是合并?
更新: 核心本体 ABox 最终将根据来自 "part-time" 本体动态加载的传入数据进行修改。
导入听起来是最好的策略,因为您没有提到对任何本体的修改,而只是对整个本体的添加和删除。
我会做以下事情:
- 创建一个新的空 ontology
- 导入始终包含的所有本体
- add/remove导入您只想部分时间使用的本体
注意:OWLAPI 不会在创建导入声明时加载本体 - 这是为了避免在编辑导入时加载时间过长。因此,要使其正常工作,您必须预先加载您计划使用的本体:
- 加载ontologyX
- 向 Y 添加进口申报:
Y imports X
OWLOntology 上的大多数查询方法都接受一个参数来告诉您是否希望搜索包括 imports 闭包 - 您可能希望将其设置为 Imports。一直包含在内。