mercredi 23 novembre 2011

UIMA : Le schéma d’annotation commun (Common Analysis Structure ou CAS)

Le schéma d’annotation commun (Common Analysis Structure ou CAS) est une notion centrale dans UIMA. Le CAS encapsule toutes les annotations concernant le document analysé ainsi que le document lui-même. Un CAS comporte deux types d'éléments :
  1. Le documents, appelé Sofa pour Subject of Analysis dans UIMA.
  2. Des annotations générées par des composants d'annotation.

Le CAS est une structure orientée objets permettant aux différents composants d'une chaîne d'annotation UIMA de représenter et d'échanger leurs annotations respectives. UIMA propose quelques types de base et permet de les étendre grâce au concept de système de types (Type System).

L'interface Java permettant de manipuler le CAS depuis du code Java se nomme JCas.

UIMA : La chaîne de traitement

Une chaîne de traitement UIMA comporte trois types d'éléments :
  1. Le Collection Reader : généralement le premier élément de la chaîne, il permet de créer des CAS autour de chaque ressource.
  2. Les Analysis Engines : raison d'être de la chaîne, ils effectuent les traitements en utilisant les annotations contenues dans le CAS et en produisant de nouvelles annotations dans le CAS.
  3. Le Workflow Controller : c'est lui qui orchestre l'exécution des Analysis Engines.

On peut distinguer deux types de Workflow Controller :
- le CPM (Collection Processing Manager) et les service Vinci (Vinci Services) ;
- et le tout nouveau AS (Asynchronous Scaleout) bien plus flexible.

L'interface graphique Collection Processing Managment, instancie un Workflow Controller du type CPM appelé FixedFlow qui consiste simplement à enchaîner séquentiellement un Collection Reader, puis un certain nombre d'Analysis Engine et enfin un CAS Consumer. Un CAS Consumer n'étant rien d'autre qu'un Analysis Engine particulier qui n'est pas destiné à enrichir un CAS mais qui génère une sortie (généralement un fichier) à partir des annotations contenues dans le CAS.