Modulo per il supporto della lingua italiana, utilizzabile indipendentemente dalla Libreria Standard. Non presente nell’originale ALAN Standard Library v2.1 di Anssi Räisänen. Creato da Tristano Ajmone, © 2018, Artistic License 2.1.
Introduzione
Questo modulo della libreria è il cuore del supporto della lingua italiana in Alan. È stato progettato come un modulo a sé stante, indipendente dal resto della libreria, di modo che possa essere utilizzato anche al di fuori di essa per creare avventure in italiano senza l’infrastruttura della libreria standard, usufruendo solo del codice base per la grammatica italiana.
Per i suddetti motivi, tutti il codice necessario per implementare la lingua italiana è contenuto in questo modulo.
Dato che questo modulo è concepito per essere usato anche al di fuori della libreria, verrà inclusa una documentazione dettagliata su come utilizzarlo.
Guida all’uso
Per poter utilizzare correttamente la lingua italiana in Alan è necessario comprendere come funziona internamente questo modulo.
La documentazione non è ancora completa… |
Attributi grammaticali delle entità
Questo modulo definisce una serie di attributi sulla classe entity
che
serviranno a tracciare il genere ed il numero di ciascuna istanza, ed altre
informazioni grammaticali utili ai fini di una messaggistica dell’avventura
corretta. Essendo questi definiti sulla classe entity
, saranno eridati
automaticamente da ognuna delle classi native di Alan, e quindi presenti su
ogni instanza del gioco (cose, oggetti, attori, luoghi) e finanche sulle
classi letterali literal
, string
, e integer
.
Ai fini pratici di un’avventura, le classi di maggior interesse per un
autore saranno ovviamente gli oggetti e gli attori, le cui instanze dovranno
sempre essere inizializzate correttamente per garantire una messaggistica
consona al loro genere e numero. In casi meno frequenti, ci si troverà
anche a dover impostare gli attributi grammaticali su istanze di entità e/o
luoghi. Le classi letterali (che non ammettono né instanze né sottoclassi)
non hanno rilevanza pratica ai fini della grammatica italiana, sebbene esse
eriditino tali attributi di riflesso in quanto sottoclassi di entity
.
La necessità di definire questi attributi direttamente su |
Valori predefiniti
I valori predefiniti su entità sono quelli di un oggetto maschile singolare
con articolo “il”. Fatta eccezione per alcune classi specializzate della
libreria, che definiscono articoli con numero e/o genere diversi (femmina
= "la"
, maschi
= "i"
, femmine
= "le"
), l’onere di specificare un
corretto articolo
su ogni istanza dell’avventura ricade sull’autore.
ADD TO EVERY ENTITY
IS NOT plurale.
IS NOT femminile.
HAS NOT nome_proprio.
HAS articolo "il".
HAS vocale "o".
HAS prep_DI "del".
HAS prep_A "al".
HAS prep_DA "dal".
HAS prep_IN "nel".
HAS prep_SU "sul".
Fatta eccezione per gli attributi articolo
e nome_proprio
, questi
attributi sono destinati alla sola lettura, poiché i loro valori saranno
settati automaticamente su ciascuna istanza durante l’inizializzazione,
in base ai valori di articolo
e nome_proprio
della medesima.
Ora spiegheremo nel dettaglio la funzione di questi attributi e come debbano essere usati dagli autori di avventure.
Articolo di riferimento
Ogni istanza possiede l’attributo articolo
che ne specifica l’articolo
determinativo ad essa associato. Questo attributo viene utilizzato dalla
libreria per inizializzare le istanze del gioco: in base ad esso il modulo
Italian sarà in grado di dedurre il genere ed il numero dell’istanza, e
imposterà tutte le sue proprietà grammaticali con i valori appropriati.
L’autore deve semplicemente specficare l’articolo determinativo del
sostantivo, e la libreria farà tutto il resto. L’unica eccezione è
l’articolo "l'"
, che può rifererirsi sia a un sostantivo maschile che
femminile; per questo articolo l’autore dovrà specificare IS femminile
nel caso di sostantivi femminili, altrimenti la libreria presumerà che si
tratti di un sostantivo maschile.
Dopo l’inizializzazione, l’attributo La libreria non ricorre mai all’attributo |
Esempi pratici
Supponiamo di voler creare i seguenti oggetti: un palloncino, una mela, un albero e un’arancia.
Per il palloncino non sarà necessario specificare l’articolo, dato che è il medesimo del predefinito (“il”):
The palloncino IsA object
End the.
Per creare la mela:
The mela IsA object
Has articolo "la".
End the.
Quanto all’albero e l’arancia, entrambi hanno il medesimo articolo (“l'”), e in questo caso sarà necessario specificare il genere per l’arancia, altrimenti il modulo Italian presumerà si tratti di un oggetto maschile:
The albero IsA object
Has articolo "l'".
End the.
The arancia IsA object
Has articolo "l'".
Is femminile.
End the.
L’articolo “l'” femminile è l’unico a richiedere di definire manualmente il genere dell’istanza, poiché il modulo non è in grado di distinguere tra maschile e femminile senza tale intervento.
Vocale per accordo aggettivi
Sezione non ancora completata… |
L’attributo vocale
contiene la vocale finale di riferimento per gli
aggettivi che seguono la forma “o/a i/e” nell’accordo di genere e numero.
Anche vocale
sarà inizializzato automaticamente dalla libreria, basandosi
sul valore di articolo
dell’istanza.
Questo attributo semplifica molto la corretta rappresentazione di aggettivi nei vari messaggi della libreria poiché consente di stampare direttamente questo attributo come ultima vocale dell’aggetivo, aniziché dover eseguire controlli sul genere e sul numero dell’istanza in oggetto, riducendo quindi drasticamente la lunghezza del codice all’interno dei verbi. Inoltre, questo attributo potrà essere impiegato anche dagli autori stessi, poiché la sua utilità non è limitata all’uso interno che ne fa la libreria.
Predefined Player Words
Le predefined Player Words sono dei gruppi di vocaboli del giocatore predefiniti in Alan (ossia, integrate nel compilatore stesso). Le loro definizioni variano in ciascuna delle lingue supportate nativamente da Alan. La libreria italiana utilizza la lingua inglese come base di partenza.
Queste sono le Player Words predefinite per la lingua inglese, suddivise in gruppi di appartenenza:
ALL: all everything AND: and then BUT: but except THEM: them NOISE: go the
Le Player Words delle varie lingue sono definite nel file sorgente di Alan
|
CONJUNCTION WORDS
AND: and then
Le conjunction words (parole di congiunzione) consentono al parser di interpretare correttamente i comandi del giocatore che fanno riferimento a più oggetti, o le sequenze di comandi indipendenti combinati in una sola riga di comando. Esempi:
-
"prendi la mela E la pera"
-
"prendi la mela E prendi la pera"
-
"prendi la mela POI prendi la pera"
-
"prendi la mela E POI prendi la pera"
SYNONYMS e, poi = 'and'.
NOISE WORDS
NOISE: go the
Le noise words (parole rumore) vengono ignorate dal parser che le tratta come rumore di sottofondo.
Articoli determinativi
Definiamo tutti gli articoli determinativi come sinonimi della noise word
'the'
affinché vengano ignorati nel parsing dei comandi del giocatore, di
modo che comandi come "prendi LA mela" vengano interpretati come "prendi
mela".
Nel caso di articoli con l’apostrofo, che vanno a formare un singolo lessema
con il sostantivo cui si riferiscono, il parser di Alan prima fallirà nel
riconoscere il lessema (es. l’albero
) ma, appurata la presenza di un
apostrofo nel lessema, prima di generare un errore eseguirà un ulteriore
tentativo spezzando in due il lessema originale nel punto successivo al primo
apostrofo, e ritenterà il parsing dei due nuovi lessemi (l'
+ albero
).
Durante il secondo tentativo, l’articolo l'
verrà soppresso in quanto
noise word, e albero
verrà ora riconosciuto come il nome dell’oggetto
corrispondente.
SYNONYMS il, lo, la, 'l''', i, gli, le = 'the'.
EXCEPT WORDS
BUT: but except
Le except words (parole di eccezione) operano congiuntamente alle ALL words per escludere alcuni oggetti dall’insieme. Esempi:
-
"lascia TUTTO TRANNE la mela"
-
"lascia TUTTO ECCETTO la mela"
-
"lascia TUTTO ESCLUSA la mela"
-
"lascia TUTTO ESCLUSO il mango"
-
"lascia TUTTO ESCLUSI il mango e la mela"
-
"lascia TUTTO ESCLUSE la mela e la pera"
SYNONYMS tranne, eccetto, escluso, esclusa, esclusi, escluse = except.
THEM WORDS
THEM: them
Le them words rappresentano gli oggetti multipli utilizzati in un comando precedente. Esempio:
-
"remove the hat and the scarf then drop THEM"
Questo tipo di riferimento a oggetti multipli è consentito solo nei comandi che supportano parametri multipli. L’interprete restringerà il campo dei parametri idonei all’inclusione nel referente in base alle regole di scoping.
Preposizioni articolate
La libreria definisce dei sinonimi per trasformare le preposizioni articolate nelle corrispettive preposizioni semplici (es. della → di).
Solo alcune preposizioni (di|a|da|in|con|su) hanno un’applicazione practica nelle avventure testuali, e non tutte le forme contratte delle preposizioni articolate sono implementabili. La seguente tabella riporta tra parentesi le forme contratte non supportate, e in corsivo quelle che non subiscono sostituzioni nel parsing:
il | lo | la | l' | i | gli | le | |
---|---|---|---|---|---|---|---|
di |
del |
dello |
della |
dell' |
dei |
degli |
delle |
a |
al |
allo |
alla |
all' |
ai |
agli |
alle |
da |
dal |
dallo |
dalla |
dall' |
(dai) |
dagli |
dalle |
in |
nel |
nello |
nella |
nell' |
nei |
negli |
nelle |
con |
(col) |
(collo) |
(colla) |
con l' |
(coi) |
(cogli) |
(colle) |
su |
sul |
sullo |
sulla |
sull' |
sui |
sugli |
sulle |
per |
(pel) |
(pello) |
(pella) |
(pell') |
(pei) |
(pegli) |
(pelle) |
Il mancato supporto di dai è dovuto a un conflitto con l’imperativo del verbo dare, e si sta cercando una soluzione a questo.
Le forme contratte di con+articolo sono state tralasciate per via dei potenziali conflitti con altri vocaboli: collo (parte del corpo), colla (adesiva), cogli (verbo), colle (collina). L’implementazione di queste forme come sinonimi avrebbe impedito l’uso di quei vocaboli nelle avventure.
Le varie preposizioni con per (pel, pello, ecc.) sono state omesse poiché raramente usate oggi, così come altre forme arcaiche (gl’, e affini).
Nell’implementazione attuale sussistono comunque potenziali conflitti: dei (divinità), dallo/a/e (verbo), Nello/a (nomi propri), nei (cutanei). Ma all’atto pratico questi non costituiscono un problema reale per le AT, e simili occorrenze sono più rare nelle AT di quanto non lo siano nella vita reale, ed eventuali loro conflitti dovrebbero essere comunque gestibili.
Sull’argomento, si veda l’eccellente articolo di Max Bianchi:
Adesso, definiamo i vari sinonimi.
“DA” + Articolo
SYNONYMS
dal, dallo, dalla, 'dall''', dall, dagli, dalle = da.
La preposizione 333 E : The word 'dai' is defined to be both a synonym and another word class. Sto ancora cercando una soluzione ottimale al problema. |