il Ribaltatore download ilribaltatore.pb SourceCode 360 Kb



- AmHardCore -

In principio fu PGP.
Pretty Good Pornograpy, scritto dall'irreperibile Lamprey Systems, girava solo su Mac e purtroppo non era open source. Generava bizzarri racconti porno in lingua inglese seguendo schemi sintattici predefiniti.
Usando Babelfish, noto "traduttore spiritoso" di Altavista, ne portai alcuni in lingua italiana e dopo un certo lavorio di taglia-incolla-aggiusta ne uscirono due, chiamiamoli, racconti.
Decisi di farne una rubrica dal titolo Sesso In Extremis per cuore.org (1999).
Perchè racconto questo? Ah sì, uscendo dal "trita-parole" Babelfish il protagonista dei testi si chiamava il Ribaltatore. Così è nato, così non me lo chiedete più.



- Architettura di un Text Generator -

Volendo dare per scontata una minima aderenza alle regole grammaticali, la prima decisione che ci si trova ad affrontare riguarda due entità inversamente proporzionali: il verosimile e la quantità combinatoria.
In poche parole, volendo ottenere come risultato del testo sensato, si dovrebbero limitare sia i costrutti sintattici (le frasi), sia le parole che li andranno a riempire.
Ho provato molti Text Generator, tutti in inglese, e tutti limtati a figure retoriche ben precise: porno, annuncio economico, frasi aziendali, sentenze giuridiche, saggio estetico, ecc. Limitare il campo di azione a figure retoriche ben precise, aumenta l'effetto "verosimile". Ne esiste addirittura uno che genera filosofia kantiana!
Certo, ricalcando il comportamento di un genere letterario sia nella sintassi che nei termini usati, del senso, rimane almeno l'odore. Ma è solo "l'odore retorico". E questo è il bello.
Il nostro attuale Presidente del Consiglio parla come uno di questi Text Generator. La terza volta che lo usi il trucco tende a svelarsi. E comincia il brutto.

Decisi quindi di procedere contromano.
Volevo una macchina che non fosse "educata" da un genere predefinito arbitrariamente. Che fosse libera di scrivere per i fatti suoi, che disponesse di tutti i comportamenti grammaticali e di tutte le parole del dizionario.
Massima possibilità di combinazioni casuali tra le sintassi e le parole. «Chi se ne frega se il risultato sarà illeggibile!», pensai, «Bisogna provare.»
Mi ero appena installato l'upgrade di un incubo. Semplicemente si trattava di:
1) ricostruire da zero, e in modo verosimile, una grammatica italiana,
2) doveva comportarsi in maniera logica (un ossimoro),
3) copiare "a tastiera" buona parte dello Zanichelli, visto che non ero riuscito a crackare il cd-rom in modo decente.
Volevo un generatore di testo che "Parla come mangia". Era una questione di stile.
Alla limitazione dei "generi" ci sarei potuto tornare dopo, con calma, per sottrazione.

Una grammatica software che «Parla come mangia!»
Sì, ma cosa mangia una grammatica? Ovvio, se stessa. Da buona macchina celibe.
Non era un problema di programmazione, quindi mi comprai un libro. Di grammatica italiana, ovviamente.



- Tecnologie -

Il Ribaltatore è uno script basato sul linguaggio PB della DadaEngine che lo interpreta.
La DadaEngine è un software in grado di concatenare e nidificare liste di stringhe testuali scegliendo a caso le stringhe all'interno delle liste. Accetta espressioni regolari più altre cosette. Sviluppato in linguaggio C per Unix nel 1995 da Andrew Bulhak con materiali della Berkeley University (una tesi di laurea?), è gratuito e opensource.
L'ho usato da linea di comando su Linux. La versione che vedete on-line (ancora Linux) gira su server Apache. Il resto del sito, compresa la sezione "/custom", è scritto in PHP.
Il mio amico Max F (lui mi indicò la DadaEngine), programmatore di genio e pigrizia insuperabili, lo sta "portando" su Win-Dos. Non abbiate fretta.



- iribaltatore.pb Versione 1.0.1 -

Il codice è piuttosto grezzo e ridondante (io e il PB non siamo un buon esempio di raffinatezza), ma sembra abbastanza maturo per diventare pubblico. Diciamo che funziona. Per "lucidarlo" o traslocarlo su un linguaggio più flessibile c'è sempre tempo.

Note e cose da fare:
1) Il rapporto soggetto/complemento, tra le liste "personaggi", va risolto meglio.
2) I tempi: participio presente, congiuntivo presente e imperativo sono implementati solo parzialmente.
3) L'aggettivo non viene mai utilizzato prima del sostantivo, andrebbe articolato e comunque dovrebbe avere un comportamento a parte.
4) Al momento, nei verbi indicativi, l'imperfetto è statisticamente in vantaggio. Una delle poche scelte arbitrarie. Per il resto non ho voluto dare particolari prevalenze statistiche alle varie "entità" grammaticali.
5) Nelle sintassi (compresi i discorsi diretti) bisognerebbe sviluppare molti altri moduli
6) Tutti i moduli sintattici andrebbero indicizzati. Giusto per sapere cosa c'è e cosa manca.
7) Trovare qualcosa (non so cosa), che possa somigliare a un ritmo.
8) Il dizionario di default è incluso nel sorgente.



- Licenza -

GNU General Public License - GPL




http://ilRibaltatore.net   /c u s t o m   Contatti fisici   Cantina