2016-08-01 1 views
0

Je souhaite mettre à jour/supprimer les axiomes d'une classe OWL (par exemple axiomes SubclassOf).OWLAPI: Impact sur les performances lors de la mise à jour/suppression d'axiomes

Je suit deux approches:

1) Effacer tous les anciens axiomes puis créer tous les nouveaux axiomes.

2) Supprimer les axiomes sélectifs en les comparant à de nouveaux axiomes.

Note: - En raison de certaines limitations que je dois traiter les cas de mise à jour que supprimer + créer

Q. Quelle est la meilleure stratégie aller aheas en termes de performance pour OWLAPI?

E.g. J'ai axiomes suivant SubClassOf pour Class X -

1) A or B 
2) name exactly 1 xsd:string 
3) P and not Q 

et je veux mettre à jour/supprimer ces axiomes -

1) A [Update] 
2) name min 1 xsd:string [Update] 
3) Axiom is deleted [Delete] 

Répondre

0

Les performances de transfert de l'axiome équivaut à des additions de axiomatisation. Les actions principales sont des recherches à travers des cartes pour trouver des éléments existants ou en ajouter de nouveaux. Les structures impliquées sont O (Constantes) pour l'entrée, donc la complexité totale est principalement indépendante de la taille de l'ontologie (cela peut ne pas être vrai pour les ontologies très volumineuses, mais c'est vrai pour la plupart des ontologies).

En résumé, il n'y a pas de problème de performance avec la solution que vous proposez (2).

Je ne suggérerais pas de recréer des axiomes - cela risque d'être coûteux en termes d'utilisation de la mémoire. Les axiomes sont immuables, donc les objets nouveaux et anciens se comportent exactement de la même manière.

+0

si l'opération ci-dessus est plus fréquente quelle approche utiliser? – SuhasD