Você está aqui

Guia do desenvolvedor

Código Fonte

git bundle

Estrutura de diretórios

Existem dois projetos principais:

  • O cogroo.uima que contém o código da primeira implementação do CoGrOo com o UIMA.
  • O uima.parent que contém a nova estrutura divida por módulos.

cogroo.uima

Imagem:CogrooDirs.png

  • src/main: Código fonte dos anotadores.
  • src/test: Testes de unidade com JUnit.
  • data: Textos de exemplo para testar os módulos.
  • Descriptors: Arquivos XML para configuração dos anotadores compatíveis com UIMA. Contém um XML por anotador mais um anotador por linguagem. As duas linguagens suportadas são: português (Cogroo_pt-Br.xml) e inglês (Cogroo_en.xml).
  • metadata: Contém os arquivos descritores dos pacotes pear para português e inglês (install_XX.xml).
  • resources: Contém os recursos necessários para fazer a análise do texto em cada módulo (dicionários, modelos de linguagem). Estão separados por língua.
  • target: Pasta aonde são construídos os jars e os pacotes pear.
  • test_descriptors: Contém os descritores de anotadores para execução de testes de unidade.

uima.parent

Imagem:UimaParent.png

  • agregators - Responsável por integrar os módulos. Possui três partes:
    • TextAnnotators-ptBR - Integra os pacotes necessários ao UIMA para realizar a análise de texto em língua portuguesa do Brasil.
    • Pears - Lugar aonde todos os pears são disponibilizados para o UIMA.
    • CoGrOo - Integra o CoGrOo com o OpenOffice.org.
  • CommonTypeSystem - Configurações e chaves em formato String necessárias para o funcionamento interno do CoGrOo e integração com o UIMA.
  • ContractionSeparator-ptBR - Responsável por separar contrações da língua portuguesa (ex: "daquela"="de"+"aquela", "nas"="em"+"as").
  • Dictionaries - Define o funcionamento dos dicionários usados pelo CoGroO: dicionário de palavras e dicionários de abreviaturas.
  • Dictionaries-ptBR - Contém arquivos que implementam o dicionário para a língua portuguesa do Brasil.
  • its - Realiza testes de integração entre o UIMA e os módulos do CoGrOo.
  • POSTaggerME - Aplica as anotações aos tokens, de acordo com a sua classe.
  • POSTaggerME-ptBR - Define as regras de anotações para tokens de acordo com a língua portuguesa.
  • Pretagger-ptBr - Com base na saída do ContractionSeparator e do ProperNameFinder, faz pré-processamentos para normalizar o texto e disponibiizá-lo ao tokenizer.
  • ProperNameFinderME - Procura nomes próprios em frases e os classifica como tal.
  • ProperNameFinderME-ptBR - Buscador de nomes próprios específico para a língua portuguesa do Brasil.
  • RulesApplier - Pacote esqueleto do CoGrOo. Responsável por coordenar o processo de análise do texto e de invocar e integrar os demais módulos do CoGrOo.
  • SentenceDetectorME - Responsável por separar frases nos textos.
  • SentenceDetectorME-ptBR - Responsável por separar frases nos textos.
  • TokenizerME - Responsável por separar o texto em uma sequência de tokens (tokenização).
  • TokenizerME-ptBR - Contém modelos que especificam o comportamento da tokenização em texto de língua portuguesa.
  • utils - Responsável pela instalação.

Compilação

O projeto cogroo.uima é desenvolvido em Eclipse e utiliza Maven para a construção de pacotes.

Dado que o projeto está composto de diferentes módulos (anotadores), o projeto (diretório) uima.parent contém estes módulos e é possível construir o corretor gramatical e os pacotes pear independentes com o comando mvn install.

Dependências

O Maven administra automaticamente as dependências de pacotes jar e pear para a aplicação. No entanto, cada módulo depende de recursos para a análise, por exemplo, o sentencedetect requer SentDetectModel e o dicionário de abreviações. Atualmente, tais recursos já estão no diretório resources, e no caso de uma extensão para nova língua recomenda-se seguir a estrutura deste diretório.

Plugin PearPackagingMavenPlugin

Para a criação dos pacotes pear foi utilizado o plugin para Maven PearPackagingMavenPlugin. Este atualmente não encontra-se disponível em nenhum repositório Maven, portanto para instalá-lo, faz-se necessário os seguintes passos:

  1. Baixar o código fonte do plugin (aqui), pacote Source de UIMA Annotator Addons & Simple Server & Pear packaging tools.
  2. Descompactar o arquivo uimaj-annotator-addons-2.2.2-incubating-src.tar.gz.
  3. Entrar na pasta PearPackagingMavenPlugin.
  4. Executar desde consola mvn install.
  5. wiki

Caso ocorra o seguinte erro, substituir o arquivo pom.xml da pasta PearPackagingMavenPlugin pelo arquivo PomPluginMavenPear.xml, e certificar-se que o nome do novo arquivo é pom.xml:

[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The scm url cannot be null.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException: The scm url cannot be null.