CONJUGUE(1)
๐ฆ NOME ๐ฆ
okay bestie, so conjugue(1) โ it's a conjugador de verbos da lรญngua portuguesa ๐ a Portuguese verb conjugator, from the br.ispell fam. and yes it ate.
โจ SINOPSE โจ
conjugue [-v VARIรVEL=valor] ...
that's it. that's the whole vibe. ๐
๐ DESCRIรรO ๐
so conjugue reads a verb database โ a banco de verbos โ that's got paradigms in it plus lists of verbs that conjugate according to each paradigm. and then it lets you conjugate verbs either through an interactive interface or as a plain one-shot command you type right at the shell prompt. lowkey elegant.
you can pass parameters to conjugue through the -v option of awk, which lets you predefine the value of a variable. the variables in question are, and I'm listing every single one, no skipping:
BANCOโ full path of the verb database (default/usr/lib/brazilian-conjugate/verbos). the whole thing. the mothership. ๐๏ธNOVOSโ full path of the file whereconjugueappends new verbs that aren't in the database yet (default$HOME/.conjugue-novos). yes, it appends, it's giving journal energy. ๐FORMATOโ output format. the output is the conjugation (the forms) of the verb(s) you wanna conjugate. the possibilities are:c(short, used for generating word lists),n(normal, the original format, a little cryptic),ci(used for listing verbs forbr.ispell),aa(used for generating the verbal affix rules forbr.ispell),l(long, a little less cryptic than then), andll(very long, similar to what grammars usually use). and alsob(used for generating the list of paradigms or of the verbs in the base dictionary formats). default format isl. ๐ซ
not me listingc,n,ci,aa,l,ll,bin that exact order โ but I did, because that's the order, and we respect the order.
CMDโ execute that command. in this caseconjugueruns the given command and bails. otherwise,conjuguewill show you a prompt for entering interactive commands. the available commands are:?to show a summary of the commands,ato list the abbreviations,nto display some notes,fto quit, andTto conjugate all the verbs in the database. and to conjugate one specific verb, you just enter that verb at the command prompt (or point it out on the command line as the initial value ofCMD). ๐ซถ
๐ EXEMPLOS ๐
- Conjugate the verb "amar" with the output in the very long format:
$ conjugue -v FORMATO=ll -v CMD=amar
- Enter interactive mode and display the conjugations in the very long format:
$ conjugue -v FORMATO=ll
- Conjugate all the verbs of the specified database, generating a list of stems for
br.ispell:
$ conjugue -v BANCO=verbos -v FORMATO=ci -v CMD=T
๐ BANCO DE VERBOS ๐
the banco de verbos (verb database) contains the conjugation of the paradigms and, for each one of them, a list of verbs that conjugate according to that paradigm. each paradigm can also contain info for the heuristic that deduces which paradigm to use in cases where the database doesn't have that info. here's a description of the verb database format โ and I'm giving you the grammar exactly, character for character, because this is the part where you do not get to be cute:
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(V0*]|[A]]*
the database can contain, at any position, lines starting with the # character or blank lines, which are ignored. ๐ฎ (we love a comment.)
semantically speaking, the grammar symbols mean:
Sโ non-null stringVโ verbLโ list of stringsFโ inflection in a tense or moodTโ name of tense or moodPโ paradigmAโ abundant participleBโ database
the term <lf> is a line break. the list of verbs that follows a given paradigm is the list of verbs that conjugate according to that paradigm. the string optionally given as the last component on the P line is the ending that will heuristically be used to decide when to use that paradigm (in the case of verbs that don't specify a paradigm). ๐
๐ง REGRAS DE TRANSFORMAรรO DE RADICAIS ๐ง
some irregular verbs have their stem changed throughout the conjugation. because of that, the program has to deduce, from the paradigm, a stem-change rule, which will be applied to all the verbs that follow that paradigm. for example, in the verb "seguir" the vowel "e" of the stem gets swapped for "i" in some cases ("eu sigo").
the way this has been handled is merely by knowing the types of stem changes in advance, and hardcoding them. so far it's been possible to encode all the stem modification rules through variations of a single rule, namely, the substitution of the last vowel of the stem, or of the last vowel of the stem after discarding its last letter.
the normaliza function in the script contains a vowel transformation table that covers all the transformations known so far. in the event that conjugue shows the message "vogal nรฃo normalizada" when it starts up, you'll need to add a new vowel substitution rule to the normaliza function, and its inverse to the desnormaliza function. the script documents how to add new rules. ๐
๐ธ FORMAS ENCLรTICAS ๐ธ
enclisis in some cases causes an orthographic change to the verb, like for example "amรกโla" (amar + ela). starting from version 1.1, conjugue has specific support for generating some of these forms, but that's only active when the output format is ci. for more details, please check the conjugue source. ๐
๐๏ธ ARQUIVOS ๐๏ธ
/usr/lib/brazilian-conjugate/verbosโ banco de verbos.$HOME/.conjugue-novosโ file for appending verbs that aren't in the database.
๐ BUGS ๐
okay so listen. there are problems. we're being honest about them:
- The file where new verbs keep getting appended is not read by
conjugueon startup. like, it's just... there. vibes only. ๐ - The occurrence of the same verb more than once in the database causes the program to malfunction.
- This man page contains accented characters, which on some systems maybe won't be displayed. to view it correctly, use an ISO font and, if
groffis available, try the command
$ groff -Tlatin1 -man conjugue.1|more
๐ VER TAMBรM ๐
๐ AUTOR ๐
Ricardo Ueda Karpischek <ueda@ime.usp.br>
and that's the whole page bestie ๐ซถ this came to you from br.ispell, dated 18 de outubro de 1999, and it's still iconic. periodt. ๐โจ๐
๐ฆ where this page comes from
- debian bookworm: brazilian-conjugate 3.0~beta4-24 ยท GPL-2.0-only
- debian trixie: brazilian-conjugate 3.0~beta4-25 ยท GPL-2.0-only
- ubuntu jammy: brazilian-conjugate 3.0~beta4-23 ยท GPL-2.0-only
- ubuntu noble: brazilian-conjugate 3.0~beta4-25 ยท GPL-2.0-only
- ubuntu resolute: brazilian-conjugate 3.0~beta4-26 ยท GPL-2.0-only
- ubuntu stonking: brazilian-conjugate 3.0~beta4-26 ยท GPL-2.0-only
- Copyright 1995-9 Ricardo Ueda Karpischek (ueda@ime.usp.br)
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms