L'AIML, acronimo di Artificial Intelligence Markup Language, è un dialetto dell'XML inventato per creare software che devono imitare la lingua naturale.

Storia Il dialetto XML chiamato AIML è stato sviluppato da Richard Wallace e da una comunità mondiale di software libero tra il 1995 e il 2002. È stato la base di quello che fu inizialmente una versione estesa di ELIZA, chiamata A.L.I.C.E. (Artificial Linguistic Internet Computer Entity).

Poiché l'AIML è stato distribuito sotto licenza GNU GPL e dato che molti interpreti dell'AIML sono stati diffusi con licenze libere od open source, molti cloni di A.L.I.C.E. sono stati sviluppati dall'implementazione originale e dal suo funzionamento base. Sono stati sviluppati dei set AIML in diverse lingue e sono stati resi disponibili al pubblico. Esistono interpreti dell'AIML disponibili in Java, Ruby, Python, C++, C#, Pascal ed altri linguaggi.

Elementi di AIML Categorie Le categorie in AIML sono le unità fondamentali. Una categoria è formata da almeno due elementi: il pattern e il template. Ecco un esempio di categoria:

QUAL È IL TUO NOME Il mio nome è John.

Quando viene caricata questa categoria, un bot AIML alla domanda "Qual è il tuo nome?" risponderà "Il mio nome è John.".

Pattern Un pattern è una stringa di caratteri che rappresenta uno o più input dell'utente. Un tipico pattern è

QUAL È IL TUO NOME

che consente però un solo input: "qual è il tuo nome". Ma i pattern possono anche contenere metacaratteri, che possono sostituire una o più parole. Un pattern come

QUAL È IL TUO *

permetterà un infinito numero di input, come ad esempio "qual è il tuo nome", "qual è il tuo colore preferito", "qual è il tuo mestiere" ecc.

La sintassi dei pattern AIML è molto semplice, meno complessa delle espressioni regolari.

Template Un template indica la risposta ad un pattern. Un template può contenere soltanto testo letterale, come

Il mio nome è John.

Un template può anche usare delle variabili, come

Il mio nome è .

che sostituisce il nome del bot nella frase, oppure

Mi hai detto di avere anni.

che sostituisce l'età dell'utente (se è nota) nella frase.

Gli elementi del template comprendono una formattazione di base del testo, risposte condizionali e risposte casuali.

I template possono anche reindirizzare ad altri pattern attraverso un elemento chiamato srai. Questo può essere usato per implementare i sinonimi, come nel seguente esempio:

QUAL È IL TUO NOME <![CDATA[Il mio nome è .]]> COME TI CHIAMI qual è il tuo nome

La prima categoria risponde all'input "qual è il tuo nome" fornendo il nome del bot. La seconda categoria invece stabilisce che l'input "come ti chiami" deve essere reindirizzato alla categoria che riguarda l'input "qual è il tuo nome" perché le due frasi sono equivalenti.

Critiche L'AIML è considerato potente e facile e un buon punto di partenza per i principianti per creare semplici bot; tuttavia è assai più difficoltoso usarlo per costruire bot più complessi.

Voci correlate XML Linguaggio di markup A.L.I.C.E. Intelligenza artificiale Cleverbot

Collegamenti esterni

Categoria:Linguaggi di markup XML