CONJUGUE(1.1)

NOME
conjugue - conjugador de verbos da língua portuguesa

SINOPSE
conjugue [-v VARIÁVEL=valor] ...

DESCRIÇÃO
conjugue lê um banco de verbos contendo paradigmas e listas de verbos que se conjugam segundo cada paradigma, e permite conjugar verbos através de um interface iterativa ou na forma de um comando simples dado no prompt do shell. Pode-se passar parâmetros para o conjugue através da opção -v do awk, que permite predefinir o valor de uma variável. As variáveis no caso são:

BANCO
    Path completo do banco de verbos (default /usr/pkg/lib/verbos).

NOVOS
    Path completo do arquivo onde o conjugue apenda verbos novos, que não constam ainda do banco (default $HOME/.conjugue-novos).

FORMATO
    Formato da saída. A saída é a conjugação do(s) verbos que se deseja conjugar. As possibilidades para a saída são: c (curto, usado para gerar listas de palavras), n (normal, o formato original, um pouco críptico), ci (usado para gerar o dicionário do br.ispell), l (longo, um pouco menos críptico do que o "n") e ll (muito longo, semelhante ao que as gramáticas costumam usar). O formato default é l.

CMD Execute esse comando. Nesse caso, o conjugue executa o comando dado e abandona. De outra forma, o conjugue apresentará um prompt para a entrada de comandos iterativos. Os comandos disponíveis são ? para mostrar um sumário dos comandos, a para listar as abreviações, n para exibir algumas notas, f para abandonar, e T para conjugar todos os verbos do banco. Para conjugar um verbo determinado, basta entrar com esse verbo no prompt de comandos (ou indicá-lo na linha de comandos como valor inicial de CMD ).

EXEMPLOS
1. Conjugar o verbo "amar" com a saída no formato muito longo: $ conjugue -v FORMATO=ll -v CMD=amar 2. Entrar no modo iterativo e exibe as conjugações no formato muito longo: $ conjugue -v FORMATO=ll 3. Conjugar todos os verbos do banco explicitado, gerando uma lista de radicais para o br.ispell: $ conjugue -v BANCO=verbos -v FORMATO=ci -v CMD=T

BANCO DE VERBOS
O Banco de verbos contém a conjugação dos paradigmas e, para cada um deles, uma lista de verbos que se conjugam segundo aquele paradigma. Cada paradigma pode conter também informações para a heurística que deduz o paradigma a ser utilizado nos casos em que o banco não contém essa informação. Segue uma descrição do formato do banco de verbos:
S == [a-záéíóúàèìòùçãõü]+
V == Sr
L == [S(,S)*]
F == L(:L)*
T == FN|IP|PI|II|EI|MI|TI|FI|PS|IS|FS|IA|IN
P == paradigma:V[:S]<lf>(T:F<lf>)*<lf>
A == abundante:V:L<lf>
B == [[P(V*]|[A]]*
O banco pode conter, em qualquer posição, linhas começadas com o caracter "#" ou linhas em branco, que são desprezadas.
Em termos semânticos, os símbolos da gramática representam:
S String não nula
V Verbo
L Lista de strings
F Flexão num tempo ou modo
T Nome de tempo ou modo
P Paradigma
A Particípio abundante
B Banco O termo <lf> é uma quebra de linha. A lista de verbos que segue um dado paradigma são os verbos que se conjugam conforme aquele paradigma. A string eventualmente dada como último componente na linha P é a terminação que heurísticamente será utilizada para decidir quando usar aquele paradigma (no caso de verbos que não especificam um paradigma).

REGRAS DE TRANSFORMAÇÃO DE RADICAIS
Alguns verbos irregulares têm o radical alterado ao longo da conjugação. Por esse motivo, é necessário que o programa deduza a partir do paradigma uma regra de alteração do radical, que será aplicada em todos os verbos que seguem aquele paradigma. Por exemplo, no verbo "seguir" a vogal "e" do radical é trocada por "i" em alguns casos ("eu sigo").
O modo com que isso vem sendo tratado é meramente conhecer de antemão os tipos de alterações de radicais, e codificá-las. Até o momento foi possível codificar todas as regras de modificação de radicais através de variações de uma única regra, a saber, a substituição da última vogal do radical ou da última vogal do radical após o descarte da sua última letra.
O função normaliza do script contém uma tabela de transformação de vogais que cobre todas as transformações conhecidas até o momento. Na eventualidade do conjugue exibir a mensagem "vogal não normalizada" ao ser iniciado, será necessário incluir uma nova regra de substituição de vogais na função normaliza, e a sua inversa na função desnormaliza. O script documenta como adicionar novas regras.

FORMAS ENCLÍTICAS
A ênclise em alguns casos provoca alteração ortográfica do verbo, como por exemplo "amá-la" (amar+ela). A partir da versão 1.1 o conjugue possui suporte específico para gerar algumas dessas formas, mas isso só está ativo quando o formato de saída é "ci". Para maiores detalhes, cheque por favor o fonte do conjugue.

ARQUIVOS
/usr/pkg/lib/verbos - banco de verbos.
$HOME/.conjugue-novos - arquivo para apendar verbos que não constam do banco.

BUGS
O arquivo no qual vão sendo apendados verbos novos não é lido pelo conjugue na inicialização.
A ocorrência de um mesmo verbo mais de uma vez no banco provoca malfuncionamento do programa.
Essa man page contém caracteres acentuados, que em alguns sistemas talvez não sejam exibidos. Para visualizá-la corretamente, utilize um fonte ISO e, se o groff estiver disponível, tente o comando
$ groff -Tlatin1 -man conjugue.1|more

VER TAMBÉM
ispell(1),

AUTOR
Ricardo Ueda Karpischek <ueda@ime.usp.br>