NOME

conjugue - conjugador de verbos da l\['i]ngua portuguesa

SINOPSE

conjugue [-v VARI\['A]VEL=valor] ...

DESCRI\[,C]\[~A]O

conjugue l\[^e] um banco de verbos contendo paradigmas e listas de verbos que se conjugam segundo cada paradigma, e permite conjugar verbos atrav\['e]s de um interface iterativa ou na forma de um comando simples dado no prompt do shell.

Pode\[hy]se passar par\[^a]metros para o conjugue atrav\['e]s da op\[,c]\[~a]o -v do awk, que permite predefinir o valor de uma vari\['a]vel. As vari\['a]veis no caso s\[~a]o:

BANCO

Path completo do banco de verbos (default /usr/lib/brazilian-conjugate/verbos).

NOVOS

Path completo do arquivo onde o conjugue apenda verbos novos, que n\[~a]o constam ainda do banco (default $HOME/.conjugue-novos).

FORMATO

Formato da sa\['i]da. A sa\['i]da \['e] a conjuga\[,c]\[~a]o (as formas) do(s) verbos que se deseja conjugar. As possibilidades para a sa\['i]da s\[~a]o: c (curto, usado para gerar listas de palavras), n (normal, o formato original, um pouco cr\['i]ptico), ci (usado para listar os verbos para o br.ispell), aa (usado para gerar as regras de afixos verbais do br.ispell), l (longo, um pouco menos cr\['i]ptico do que o "n") e ll (muito longo, semelhante ao que as gram\['a]ticas costumam usar). b (usado para gerar a lista dos paradigmas ou dos verbos nos formatos do dicion\['a]rio base). O formato default \['e] l.

CMD

Execute esse comando. Nesse caso, o conjugue executa o comando dado e abandona. De outra forma, o conjugue apresentar\['a] um prompt para a entrada de comandos iterativos. Os comandos dispon\['i]veis s\[~a]o ? para mostrar um sum\['a]rio dos comandos, a para listar as abrevia\[,c]\[~o]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\['a]\[hy]lo na linha de comandos como valor inicial de CMD ).

EXEMPLOS

1. Conjugar o verbo "amar" com a sa\['i]da no formato muito longo:

$ conjugue -v FORMATO=ll -v CMD=amar

2. Entrar no modo iterativo e exibe as conjuga\[,c]\[~o]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\['e]m a conjuga\[,c]\[~a]o dos paradigmas e, para cada um deles, uma lista de verbos que se conjugam segundo aquele paradigma. Cada paradigma pode conter tamb\['e]m informa\[,c]\[~o]es para a heur\['i]stica que deduz o paradigma a ser utilizado nos casos em que o banco n\[~a]o cont\['e]m essa informa\[,c]\[~a]o. Segue uma descri\[,c]\[~a]o do formato do banco de verbos:

S == [a-z\['a]\['e]\['i]\['o]\['u]\[`a]\[`e]\[`i]\[`o]\[`u]\[,c]\[~a]\[~o]\[:u]]+

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\n)*]|[A]]*

O banco pode conter, em qualquer posi\[,c]\[~a]o, linhas come\[,c]adas com o caracter "#" ou linhas em branco, que s\[~a]o desprezadas.

Em termos sem\[^a]nticos, os s\['i]mbolos da gram\['a]tica representam:

S String n\[~a]o nula

V Verbo

L Lista de strings

F Flex\[~a]o num tempo ou modo

T Nome de tempo ou modo

P Paradigma

A Partic\['i]pio abundante

B Banco

O termo <lf> \['e] uma quebra de linha. A lista de verbos que segue um dado paradigma s\[~a]o os verbos que se conjugam conforme aquele paradigma. A string eventualmente dada como \['u]ltimo componente na linha P \['e] a termina\[,c]\[~a]o que heuristicamente ser\['a] utilizada para decidir quando usar aquele paradigma (no caso de verbos que n\[~a]o especificam um paradigma).

REGRAS DE TRANSFORMA\[,C]\[~A]O DE RADICAIS

Alguns verbos irregulares t\[^e]m o radical alterado ao longo da conjuga\[,c]\[~a]o. Por esse motivo, \['e] necess\['a]rio que o programa deduza a partir do paradigma uma regra de altera\[,c]\[~a]o do radical, que ser\['a] aplicada em todos os verbos que seguem aquele paradigma. Por exemplo, no verbo "seguir" a vogal "e" do radical \['e] trocada por "i" em alguns casos ("eu sigo").

O modo com que isso vem sendo tratado \['e] meramente conhecer de antem\[~a]o os tipos de altera\[,c]\[~o]es de radicais, e codific\['a]\[hy]las. At\['e] o momento foi poss\['i]vel codificar todas as regras de modifica\[,c]\[~a]o de radicais atrav\['e]s de varia\[,c]\[~o]es de uma \['u]nica regra, a saber, a substitui\[,c]\[~a]o da \['u]ltima vogal do radical ou da \['u]ltima vogal do radical ap\['o]s o descarte da sua \['u]ltima letra.

O fun\[,c]\[~a]o normaliza do script cont\['e]m uma tabela de transforma\[,c]\[~a]o de vogais que cobre todas as transforma\[,c]\[~o]es conhecidas at\['e] o momento. Na eventualidade do conjugue exibir a mensagem "vogal n\[~a]o normalizada" ao ser iniciado, ser\['a] necess\['a]rio incluir uma nova regra de substitui\[,c]\[~a]o de vogais na fun\[,c]\[~a]o normaliza, e a sua inversa na fun\[,c]\[~a]o desnormaliza. O script documenta como adicionar novas regras.

FORMAS ENCL\['I]TICAS

A \[^e]nclise em alguns casos provoca altera\[,c]\[~a]o ortogr\['a]fica do verbo, como por exemplo "am\['a]\[hy]la" (amar+ela). A partir da vers\[~a]o 1.1 o conjugue possui suporte espec\['i]fico para gerar algumas dessas formas, mas isso s\['o] est\['a] ativo quando o formato de sa\['i]da \['e] "ci". Para maiores detalhes, cheque por favor o fonte do conjugue.

ARQUIVOS

/usr/lib/brazilian-conjugate/verbos - banco de verbos.

$HOME/.conjugue-novos - arquivo para apendar verbos que n\[~a]o constam do banco.

BUGS

O arquivo no qual v\[~a]o sendo apendados verbos novos n\[~a]o \['e] lido pelo conjugue na inicializa\[,c]\[~a]o.

A ocorr\[^e]ncia de um mesmo verbo mais de uma vez no banco provoca malfuncionamento do programa.

Essa man page cont\['e]m caracteres acentuados, que em alguns sistemas talvez n\[~a]o sejam exibidos. Para visualiz\['a]\[hy]la corretamente, utilize um fonte ISO e, se o groff estiver dispon\['i]vel, tente o comando

$ groff -Tlatin1 -man conjugue.1|more

VER TAMB\['E]M

ispell(1),

AUTOR

Ricardo Ueda Karpischek <[email protected]>