Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Parser generico in Java: finito!

Ciao a tutti.
Il parser generico in Java è completo e funzionante!
Devo fare i miei migliori complimenti a Kiuhnm, è veramente una
figata...
  "questa è la chiave per un nuovo ordine, 
   questo disco rappresenta la libertà."
                                     (Tron, 1982)
:-)
Domani sistemo un po' la documentazione, impacchetto il tutto e lo
invio per la pubblicazione su IF-Italia.
Oltre a essere stato reingegnerizzato ad oggetti, è stato introdotto
un meccanismo di caricamento a plug-in, con cui sarà possibile
introdurre formati diversi per rappresentare la grammatica.
Inoltre, il risultato del parsing è un albero, da cui è possibile
scorrere ed analizzare la frase a livelli successivi di
riconoscimento.
Le possibili applicazioni non si contano, cazzo! Sono veramente in
fibrillazione! :-)
Saluti a tutti.
  Mad Dog
  (alias Regium Lepidi corp.)
  (alias Gianluca)
  (alias...)

 invio per la pubblicazione su IF-Italia.
MANDA MANDA!
ho gią l'acquolina in bocca :-)
    David

Complimenti per l'impegno e la dedizione!!!
Mi dispiaceva un po' che nessuno avesse preso sul serio Intarsi (che ora si
chiama ....?)


Chiedo troppo se mi si dice cosa è in grado di fare?
Bye


il problema è che un parser, per quanto evoluto, fa... del parsing. Per
scrivere un'AT serve molto di più, come abbiamo detto più volte - da questo
punto di vista un lavoro davvero utile (o comunque utilizzabile) sarebbe un
nuovo parser alternativo per sistemi di authoring esistenti (in questo caso,
un'implementazione di Intarsi in Inform o TADS pronta per essere "pluggata"
nel sistema). Infatti molti usano a sproposito il concetto di "parser
inform" (o TADS o Hugo) come se fosse parte integrante del linguaggio; non è
così, e infatti esistono effettivamente già parser alternativi più o meno
euristici per questi linguaggi. 
Non hanno avuto mai particolare successo perché la maggioranza degli autori
pensa che il problema non sia assolutamente quello (e io sono tra loro), ma
questo è un altro discorso...
ciao
S

 questo è un altro discorso...
Senti, la questione è semplicissima.
TU, OVVIAMENTE, NON HAI ASSOLUTAMENTE LETTO IL CODICE DI INTARSI CHE SI
TROVA SU IF ITALIA (E NEMMENO LA GRAMMATICA D'ESEMPIO)
Il codice è scritto in C e quindi chiunque può portarlo in qualsiasi altro
linguaggio (Inform, per esempio). Ho implementato perfino una versione
pseudo-iterativa per i linguaggi (tipo il Fortran) che non supportano
chiamate ricorsive o per gli interpreti che limitano la profondità della
ricorsione.
Cosa vuoi ancora?
Intarsi E' un parser GENERICO e come tale le sue applicazioni sono INFINITE.
Puoi usarlo per fare un'AT, un DEBUGGER, un COMPILATORE, ecc....
EVITA DI PARLARE DI  CIO' CHE NON CONOSCI, PER FAVORE.
Kiuhnm

 EVITA DI PARLARE DI  CIO' CHE NON CONOSCI, PER FAVORE.
Evita di urlare, per favore.
E comunque dovrebbe essere chi crea un qualcosa a mostrarne potenzialità,
limiti ed applicazioni pratiche; non è certo l'utente finale che deve andare
a prendersi il codice e leggerselo per capire a che cosa potrebbe servirgli.
Sull'esportabilità non posso esprimermi; non conoscendo né Inform nè
l'assembly della z-machine non so dire se il codice sia così semplice da
convertire.
--
Atrus di Myst =^= 
www.atrus.terrediconfine.net
"Gandalf, why are you dressed in white?"
"If you go to Khazad-Dum... you will DYE!"

> Chiedo troppo se mi si dice cosa è in grado di fare?
Interpreta delle frasi basandosi su una grammatica completamente
customizzabile. (praticamente senza limiti).
E' molto flessibile e quindi è possibile utilizzarlo per linguaggi naturali.
Il fatto che Intarsi abbia una grammatica "separata" dal codice,
consentirebbe anche una sorta di autoapprendimento.
Se per esempio un giocatore scrivesse una frase non contemplata dalla
grammatica, Intarsi potrebbe chiedere spiegazioni (chiedendo al giocatore di
esprimersi in un modo equivalente) e aggiornare automaticamente la
grammatica.
Intarsi è uno strumento, non un ambiente di sviluppo!
E' EFFETTIVAMENTE UN PARSER *GENERICO* E NIENTE DI PIU' (MA NIENTE DI MENO)
:-)

 EVITA DI PARLARE DI  CIO' CHE NON CONOSCI, PER FAVORE.
no comment... vedi tu di calmarti piuttosto...
ciao
S

 leggere il codice per saperlo, l'hai detto tu.
Rimani pure nella tua ignoranza (in senso buono, s'intende) :-)

 Rimani pure nella tua ignoranza (in senso buono, s'intende) :-)
Sarò chiaro: per lavoro correggo il codice di decine e decine di studenti.
Questo semestre ho un corso di Informatica C in Bovisa-Politecnico e uno di
Ingegneria del Software a Cremona (totale: 250 studenti circa). Nel semestre
precedente, Informatica 1 + Informatica B in Politecnico-Leonardo (totale:
quasi 400 studenti). Perché mi devo leggere anche il tuo, se non ho nessuna
intenzione di usarlo? 
Tra l'altro so già come si scrive un parser, grazie. A suo tempo ho fatto
Linguaggi e Traduttori e poi mi sono sparato tre anni di dottorato nell'area
dell'intelligenza artificiale (anche se non mi sono occupato direttamente di
linguaggio naturale).
Il tuo codice semplicemente non mi interessa. Sono stato chiaro adesso?

 Il tuo codice semplicemente non mi interessa. Sono stato chiaro adesso?
Scusa se mi intrometto, posso? Ma se non ti interessa il suo codice perchè
hai sollevato tutta sta polemica? :-)
In ogni caso, vorrei ricordare che su IF-Italia c'è un ambiente di sviluppo
dimenticato, interamente in Java e nato e cresciuto in seno a questo NG, a
cui qualcuno potrebbe magari voler agganciare Intarsi... forse io stesso,
non so, vedrò...
A quel punto, il "ben altro" di cui tu parli, per costruire una AT, ci
sarebbe o no? O per te il "ben altro" si identifica solo ed esclusivamente
con Inform? Se è così, proporrei di creare un nuovo NG it.comp.lang.inform e
spostare tutte le discussioni lì dentro... a sto punto, tanto vale...
In questo NG si soffre sicuramente del "mischiosso" tra autori e giocatori
di AT, cosa che nei NG americani è stato risolto alla radice, e forse
proprio per questo tante volte mi sembra di vedere una certa chiusura
mentale ad affrontare ambienti di sviluppo diversi, tecnologie diverse e, in
generale, discussioni aperte sull'argomento (compresi anche i parser,
fondamentali nelle AT). Siamo a metà del 2002 e ad uno che chiede che
strumenti usare cosa gli viene risposto? Inform, Inform, Inform... ma se
proprio non ci capisci un cazzo puoi provare con il QBASIC... =8-|
Ma gli altri 10 (DIECI!) che ci sono su IF-Italia li avete guardati almeno
UNA volta? Possibile che si faccia sempre tutto per l'anima del cazzo?
Lungi dal voler iniziare un'altra polemica... vi saluto tutti. :-)
   Mad Dog

 ricorsione.
Il fatto e' che questo e' un ng sulle avventure testuali, non sulla
programmazione.  Io non capisco niente di programmazione, ma ho
imparato Inform per scrivere avventure. Se uno, su questo ng, mi
propone versioni pseudoiterative e chiamate ricorsive io (per colpa
mia, ovvio) non ci capisco nulla. Ho chiesto, infatti, lo script
fittizio di un'avventura per capire le potenzialita' di Intarsi, ma
nessuno me l'ha mai inviato: un esempio pratico potrebbe invogliarmi
ad approfondire l'argomento. Ma se un non programmatore (e qui ce ne
sono molti, forse e' la maggioranza) e' costretto a leggersi un codice
per capire, la situazione si complica: lo leggo, non capisco nulla,
chiudo il discorso. Per imparare Inform non sono partito dal codice di
un'avventura (ne' tantomeno dal codice di un parser, sarebbe stato un
incubo), sono partito da un'avventura scritta in Inform: l'ho giocata,
ho cercato di capire come rispondeva ai comandi, poi ho preso il
manuale di Inform, ho letto qualche pagina e, alla fine, mi sono messo
a leggere codici. Lo stesso succede per gli strumenti di Inform (i
file che aiutano a fare certe cose ovvero le estensioni come scenic.h
e flag.h).
f.
ps: ho letto Intarsi appena uscito su IF e, per colpa mia, a causa
della mia ignoranza, c'ho capito ben poco: in realta' non ho colto le
potenzialita', dunque non ho approfondito l'argomento.

 proprio non ci capisci un cazzo puoi provare con il QBASIC...
Penso sia al contrario: per fare una avventura in QBasic senza usare il
modulo base o scopiazzare codice altrui uno deve impegnarsi MOLTO di più che
ad usare inform o qualsiasi altro linguaggio dedicato e munito di diverse
librerie.
Il concetto della "polemica" è però differente: finché Intarsi è in C potrà
essere usato solo da chi fa avventure in C. Per usare intarsi in Java
bisogna portarlo in Java, per usarlo in inform bisogna portarlo in Inform
ecc.
Non si critica certo il codice in sé, ne si critica la sua fruibilità
effettiva: finché non c'è una libreria Intarsi in Inform, il programmatore
Inform se ne farà ben poco.
Sarebbe come dire che un programmatore C è chiuso ai nuovi sistemi e alle
nuove soluzioni perché non usa una nuovissima libreria sviluppata per COBOL!
:)


 :)
Io la polemica l'ho capita molto diversamente. Mi sbaglierò, ma il fatto che
siano stati tirati in ballo parser alternativi per Inform che non hanno
avuto successo mi fa intendere un "chissenefrega del tuo parser" in senso
lato. Vedi anche quanto sopra...
Secondo me, dato per scontanto che in questo gruppo di dovrà sempre
sopportate la coesistenza tra autori e giocatori (cioè programmatori e non),
non è il caso di cassare così un argomento di discussione. Magari a
Gaburri.Net non interessa, ma ad altri sì... altri che non sono off-topic,
sono semplicemente autori di AT fatte con altri strumenti, o autori di
sistemi di authoring per AT, o chiunque altro bazzichi qui dentro per
interesse.
Insomma... ma bisogna sempre far la guerra? :-)
Ciao ciao.
   Mad Dog

 potenzialita', dunque non ho approfondito l'argomento.
Se mi avessi scritto una lettera, ti avrei illustrato l'idea senza scendere
in dettagli tecnici :-)

 UNA volta? Possibile che si faccia sempre tutto per l'anima del cazzo?
Mi è bastato vedere i giochi sviluppati per quei sistemi per vedere che non
mi interessavano. Poi per fare altro, è un discorso diverso: magari uso
IDRA, che non userei mai per un'avventura testuale. In quanto al "fare per
l'anima del cazzo", anche i programmatori potrebbero porsi il problema. Se i
parser nuovi fossero plug-in per sistemi utilizzabili, sarebbero anche loro
utilizzabili. Idem per librerie, moduli di oggetti, quant'altro.
 
ciao
S

 Insomma... ma bisogna sempre far la guerra? :-)
mai, non bisogna farla mai.
ciao
S

 contenuti...
Mi intrometto poco perchč non conosco intarsi ma una buona AT  non dipende
solo dai contenuti.
Se i contenuti sono buoni/ottimi anche se programmata in maniera non eccelsa
risultera' cmq un ottimo gioco... ma se di ottimi contenuti ma programmata
con i piedi... beh io credo che la accontenerei per cose piu' facilmente
giocabili...
Glorfindel

 gli altri ignoranti :)
L'ignorante è colui che ignora. Forse dovevo specificare: "ignoranti che
parlano di ciò che ignorano". (anzichè informarsi).

Perchè tutte le volte che si propone un nuovo algoritmo la massa risponde
"tanto è il contenuto quello che conta". Ma come ca**o ragionate?
E' come dire che nel tennis non è la racchetta che conta, ma il giocatore.
Vogliamo vedere che cosa succede se a uno dei primi del mondo diamo una
racchetta di legno di 30 anni fa?
P.S. La penso come te, sto soltanto rincarando la dose :-)

 di non pretendere che la gente se li vada a leggere.
Non lo vuoi leggere? Non parlarne: fai solo perdere tempo a chi l'ha letto o
programmato (e questo vale per qualsiasi cosa nella vita).

 Non voglio costringere nessun giocatore a immergersi in strani
studi.....non
Evidentemente non hai letto bene il mio msg. Non ho assolutamente detto che
msgs del genere sono OT, ho detto che siccome la maggioranza dei
frequentatori di icgat non e' composta da programmatori, forse sarebbe
meglio spiegare piu' nel dettaglio certe cose.
f.
ps: a suo tempo ti scrissi un msg privato per avere chiarimenti: non ho mai
ricevuto risposta.

 ricevuto risposta.
A proposito ... anch'io ti ho scritto una mail per avere chiarimenti sulla
One Room Compilation e non ho mai avuto risposta =)
Nero

 L'ignorante è colui che ignora. 
Sì, e il deficiente colui che "deficie" :)
Non è mia, eh...  di Aldo+Giovanni+Giacomo. Non parliamone più, và.
ciao
S

 Sě, e il deficiente colui che "deficie" :)
E in effetti il latino ci dice che č proprio cosě! ;)


 Non è mia, eh...  di Aldo+Giovanni+Giacomo. Non parliamone più, và.
Bello questo metodo di estrapolare una frase dal contesto facendo passare
chi l'ha scritta come un piccolo creto...(se non mi sbaglio lo usano in
politica :-) )

 ricevuto risposta.
Qualcosa deve essere andato storto: rispondo sempre alle lettere (tanto ne
ricevo pochissime!)

 mi interessavano.
E' vero che i giochi sviluppati con un sistema sono il migliore modo di
valutarne le potenzialità.
Però quando io (nel mio piccolo) mi sono interessato a mac  (e non era
ancora segnalato su ifitalia, me ne accorsi solo per curiosità andando a
vedere la firma di paolo) non c'erano avventure fatte con esso (a parte
qualche esempio esplicativo).
E la stessa avventura che ho scritto, ora, non è il migliore parametro per
valutare mac, sia per la mia scarsa esperienza in at, sia perchè nel
frattempo mac si è sviluppato rapidamente arrivando alla ver. 2.32, con
molte nuove interessanti possibilità.
ciao
marco

 Però quando io (nel mio piccolo) mi sono interessato a mac  
<snip>
giusto. Però Mac era utilizzabile, tant'è vero che tu l'hai usato. E ora si
può portare avanti in parallelo lo sviluppo dello strumento e la creazione
di nuove avventure sempre più evolute, perché sfruttano meglio lo strumento
(che intanto si evolve).  
ciao
S

 Nero
Beh, della One Room *Compilation* non so nulla :-)), comunque non ho mai
ricevuto la mail.
f.
--
------------------------------------
Francesco Cordella
fraco...@libero.it
--- In quasi tutte le case ti danno antipasto, tre
primi, quattro secondi, otto contorni, dodici dolci e, al momento del
caffè, la padrona dice timida: "Qualcuno vuole un caffè?". E si sente
rispondere: "Sì, se lo prende anche qualcun altro" --- Alberto Arbasino

 mai, non bisogna farla mai.
Però su un "gruppo di discussione" le discussioni ci devo essere e possono
anche essere accese, perché no?
Bye

 E' come dire che nel tennis non č la racchetta che conta, ma il giocatore.


 f.
Hehehe, lapsus =) Bella pero'.
Anche su internet le poste evidentemente fanno dei casini.
Nero

dico anche io la mia, giusto per fare numero. Io credo tendenzialmente
che inform, mac, basic, perl, c siano soltanto degli strumenti e che il
programmatore/autore di avventure debba utilizzarli a seconda delle sue
esigenze, sia artistiche che -ahimé- personali. Non dubito che inform sia
un ottimo linguaggio per fare AT, ma onestamente IO fabrizio venerandi
non avrei il tempo per lggermi un manuale in inglese e poi eccetera.
Dovendo leggere un manuale e imparare un linguaggio, onestamente punterei
su qualche linguaggio con il quale potrei fare quello che fa inform,
magari sudando di più, ma che poi potrebbe essermi utile per altre cose
(chessò il perl ad esempio).
Negli anni '80 scrissi la mia prima at, e la scrissi in applesoft basic,
studando una at per apple ii che si chiamava adventure town; negli anni
'90 scrissi i testi ed il plot per una at che doveva essere multiutente
ed in rete e quindi alessando programmò tutto in c; più di un anno fa fa
volli fare una at e iniziai a lavorare alla quarantena, mi legiucchiai il
manuale di inform, poi mi resi conto che nel tempo in cui studiavo inform
avrei potuto scrivere parecchie cose e per me la scrittura è più
importante; quindi cercai un programmatore inform che mettesse in pratica
la mia scrittura; questo mese è venuta fuori l'idea dell'orgc, mi sono
detto interrompo un po' il lavoro della quarantena, così mi distraggo un
poco e ho fatto una piccola at in mac, perché è un linguaggio limitato,
ma semplice e rapido per fare at e sono riuscito a fare cose che non mi
aspettavo si potessero fare in mac. Voglio dire con tutto questo, a
seconda delle proprie esigenze e del proprio tempo si utilizza lo
strumento che è più consono. E' ovvio che uno che si è imparato l'inform
prediliga e vangelizzi per l'inform, così come uno che preferisce farsi
le routine per la separazione delle parole da solo usi il basic, ad
ognuno il suo.
Quello che credo che sia importante è la *funzionalità* dello strumento
che si utilizza. Una at può essere solo verbo e oggetto ed avere una
maggiore giocabilità (o una migliore linea narrativa) di una at che
permette sintassi sofisticate, se queste ultime non sono giustificate a
livello di plot. Dirò un paradosso, ma credo di aver risolto tutto flamel
*pensando* a verbo e oggetto e -di norma- utilizzando verbo ed oggetto.
Non credo che sia una cosa del tutto impossibile ri-programmare da zero
una avventura come flamel in mac (tanto per fare un esempio) ed ottenere
un prodotto ugualmente godibile. Per questo sono sicuro che l'anno
prossimo, una volta finita la quarantena, mi metterò a vedere i codici di
chium e compagni per capire se questi mi possano essere utili per fare
qualcosa di differente (e penso da tempo ad una AT multiutente on-line,
il cui parser autoapprende e migliora con l'andare del tempo). Di contro
comprendo lo scetticismo di alcuni programmatori inform nei confronti di
un parser sofisticato come quello che comprende diversi modi di dire la
stessa frase: semplicemente non credo che possa servire più di tanto in
una avventura classica a modulo narrativo. Credo invece che sia
importante in una at che proceda a relazioni tra giocatore ed oggetti,
tra luoghi ed azioni, tra giocatore e giocatore. Da questo punto di vista
i mud possono insegnare qualcosa (e penso ai moo).
Un saluto.
f.

 ha scritto nel messaggio
news:cyCw8.69683$SR5.1...@twister1.libero.it...


in dettagli tecnici :-)
Mi sembra molto meglio (e decisamente più saggio) che sia tu a
includere, insieme a Intarsi, un piccolo manuale sul suo utilizzo.
Tutto quello che so su Inform l'ho imparato grazie a un manuale e a
qualche listato dimostrativo, non certo andandomi a studiare il codice
(non ne sarei comunque capace).
Ciao da
Vincenzo

 (non ne sarei comunque capace).
Sono due cose del tutto differenti.
Non ho mai visto programmi con manuali che spieghino come funzionano
internamente, ma solo come usarli.
La grammatica contiene commenti che ne spiegano la sintassi e il codice
contiene un piccolissimo test che non ha bisogno di spiegazioni.
Se si vuole anche capire il codice, lo si studia. Se si hanno problemi, si
chiede aiuto all'autore.
(ci fossero sempre sorgenti da poter studiare...)
Bye