05juin 2011
Copier une annotation d'une vue à une autre dans UIMA
00:59 - Par Fabien Poulard - Geek & Technique - un commentaire
Lorsque l'on travaille avec plusieurs vues au sein d'un même CAS, on se retrouve rapidement confronté au besoin de recopier certaines annotations d'une vue vers une autre.
Il est possible de recréer l'annotation et de repositionner tous ses traits sur les mêmes valeurs que l'annotation d'origine. Cette approche est fastidieuse lorsque l'annotation est complexe, que l'on n'en connaît pas tous les traits ou bien lorsque l'on veut copier plusieurs annotations de types différentes.
Une autre approche, beaucoup plus souple, consiste à faire une copie profonde de l'objet Java du CAS correspondant à ladite annotation à l'aide de la méthode clone. Il faut alors penser à modifier la valeur du SOFA associée la nouvelle annotation sous peine de se voir refuser l'ajout de l'annotation copiée à l'index de la nouvelle vue.
La difficulté réside dans le fait que le trait contenant le SOFA n'est pas directement accessible. Il faut utiliser la méthode setFeatureValue pour mettre à jour la valeur :
Feature sofaFeature = annotation.getType().getFeatureByBaseName("sofa"); annotation.setFeatureValue(sofaFeature, view.getSofa());
Voici la méthode que j'utilise désormais pour copier mes annotations d'une vue à une autre :
public static Annotation copyAnnotationToView(Annotation a, JCas view) { // To copy the annotation we must process in three steps // 1- Clone the annotation from the original view Annotation a2 = (Annotation) a.clone(); // 2- Change the Sofa of the cloned annotation Feature sofaFeature = a2.getType().getFeatureByBaseName("sofa"); a2.setFeatureValue(sofaFeature, view.getSofa()); // 3- Add this annotation to the indexes of the new view a2.addToIndexes(view); return a2; }
un commentaire
Bonjour, votre site a-t-il un flux RSS ?. Votre blog ainsi que ses informations m'intéressent beaucoup.Je ne maitrise pas bien le sujet, je suis opticienne !, mais continuez à écrire !
Léa.
<a href="http://www.evioo.com/solaire.html">prix lunettes de soleil </a>