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/lib/brazilian-conjugate/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 (as formas) 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 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íptico do que o "n") e
ll
(muito longo, semelhante ao que as gramáticas costumam usar).
b
(usado para gerar a lista dos paradigmas ou dos verbos
nos formatos do dicionário base). 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 heuristicamente 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/lib/brazilian-conjugate/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