UIMA (Unstructured Information Management Architecture ) é um padrão OASIS que procura padronizar como construir sistemas que lidam com informação não estruturada, como textos em linguagem natural.
O projeto Apache UIMA é uma instância deste padrão. Fornece diversas bibliotecas e ferramentas para desenvolvimento tanto em Java quanto em C++.
Definições importantes:
- SOFA:
- (Subject of Analysis) é qualquer documento não estruturado, como textos em linguagem natural, imagens ou gravações de áudio
- CAS:
- (Common Analysis Structure) é uma estrutura de dados que é anexada ao SOFA, e contém informações contextuais da análise e ainda as anotações geradas pelos anotadores
- AE:
- (Analysis Engine) processa um SOFA e anexa anotações em seu CAS
- CAS Consumer:
- obtém informações de um CAS e fornece a uma outra aplicação (por exemplo indexador de busca)
- Type System
- fornece informações sobre os tipos de anotações, e ainda a entrada e saída de um AE
