conjugue (1)
Leading comments
Copyright 1995-9 Ricardo Ueda Karpischek (ueda@ime.usp.br)
NOME
conjugue - conjugador de verbos da l['i]ngua portuguesaSINOPSE
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*]|[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