2016-08-01 94 views
0

我想更新/删除OWL类中的公理(例如SubclassOf公理)。OWLAPI:处理公理的更新/删除时的性能影响

我有以下两种方法

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

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

注: -由于一些限制,我不得不把更新的情况如删除+创建

问:这是去aheas在为OWLAPI性能方面最好的策略

E.g. 我有以下SubclassOF公理Class X -

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] 

回答

0

公理清除的性能相当于公理化增加。主要操作是通过地图搜索来查找现有元素或添加新元素。所涉及的结构对输入而言是O(常量),因此总体复杂度大部分与本体大小无关(对于非常大的本体可能并不适用,但对大多数本体来说它是准确的)。

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

我不会建议重新创建公理 - 这在内存使用方面可能会很昂贵。公理是不变的,所以新旧对象的行为完全一样。

+0

如果上面的操作更频繁使用哪种方法? – SuhasD