OWLAPI:处理更新/删除公理时的性能影响

时间:2016-08-01 05:37:00

标签: owl-api

我想更新/删除OWL类中的公理(例如SubclassOf公理)。

我遵循两种方法

1)删除所有旧公理,然后创建所有新公理。

2)通过将选择公理与新公理进行比较来删除它们。

注意: - 由于某些限制,我必须将更新案例视为删除+创建

问。在OWLAPI的表现方面,哪些最佳策略

E.g。 我对Class X -

有以下SubclassOF公理
1) A or B
2) name exactly 1 xsd:string
3) P and not Q

我想用 -

更新/删除这些公理
1) A [Update]
2) name min 1 xsd:string [Update]
3) Axiom is deleted [Delete]

1 个答案:

答案 0 :(得分:0)

公理移除的性能相当于公理化的增加。主要操作是通过地图搜索以查找现有元素或添加新元素。

所涉及的结构是输入的O(常数),因此总复杂度主要与本体大小无关(对于非常大的本体而言,这可能不适用,但对于大多数本体而言,它是准确的。)

简而言之,您提出的解决方案(2)没有性能问题。

我不建议重新创建公理 - 这在内存使用方面可能很昂贵。公理是不可变的,因此新旧对象的行为完全相同。