Como criar ou modificar regras

O CoGrOO suporta regras escritas em formato XML, e para casos mais específicos é possível criar regras em código Java.

Sempre prefira o formato XML, pois o código é bastante otimizado para aplicar essas regras. No entanto, existem casos em que isto não é possível, então siga para regras em código Java.

Regras em XML

Elementos envolvidos

  • source:cogroo3/trunk/CoGrOOBase/src/main/rules/rules.xml
    • É o arquivo fonte onde as regras são descritas.
  • source:cogroo3/trunk/CoGrOOBase/src/main/rules/rules.serialized
    • Ele é a serialização de um objeto do tipo br.usp.pcs.lta.cogroo.tools.checker.rules.applier.RulesTrees construido a partir de rules.xml. A construção dessa classe é lenta, por isso é preferível gerar ela em tempo de desenvolvimento e salvar serializada.
  • source:cogroo3/trunk/CoGrOOBase/src/main/resources/br/usp/pcs/lta/cogroo/tools/checker/rules/rules.properties
    • Arquivo com opções para a aplicação das regras. Configure aqui se deseja regerar o a classe RulesTrees sempre, apesar de lenta, essa opção é bastante útil para testar alterações no arquivo rules.xml
  • source:cogroo3/trunk/CoGrOOBase/src/main/resources/br/usp/pcs/lta/cogroo/tools/checker/rules/template-fromxml-rules.properties
    • Exemplo de rules.properties configurado para usar diretamente o rules.xml, e reler esse arquivo depois de cada requisição do corretor gramatical.
  • source:cogroo3/trunk/CoGrOOBase/src/main/resources/br/usp/pcs/lta/cogroo/tools/checker/rules/template-production.rules.properties
    • Exemplo de rules.properties configurado para melhor desempenho. Usar esse para os builds release.
  • source:cogroo3/trunk/CoGrOOBase/src/main/rules/rules.xsd
    • Descreve como o rules.xml deve ser formatado.

Preparando o ambiente de desenvolvimento

  • Substitua o conteúdo de rules.properties pelo conteúdo de template-fromxml-rules.properties.
  • Refaça o build do base.
  • Faça as suas alterações e no Eclipse teste usando Run >> Debug Configurations >> Java Applications >> CogrooMain.
  • Alternativamente você pode testar usando Linha de Comando. Você também pode alterar direto o arquivo da distribuição rules/rule.xml.
  • Caso prefira, faça as alterações direto no arquivo cogroo arget