AIML
Artificial Intelligence Markup Language | |
---|---|
Estensione | .aiml |
Sviluppatore | Richard Wallace |
1ª pubblicazione | 3 agosto 2001 |
Ultima versione | 2.1 (1 novembre 2018) |
Tipo | Intelligenza artificiale |
Estensione di | XML |
Sito web | http://www.aiml.foundation/doc.html |
L'AIML, acronimo di Artificial Intelligence Markup Language, è un dialetto dell'XML inventato per creare software che devono imitare la lingua naturale.
Storia
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]Categorie
[modifica | modifica wikitesto]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:
<category> <pattern>QUAL È IL TUO NOME</pattern> <template>Il mio nome è John.</template> </category>
Quando viene caricata questa categoria, un bot AIML alla domanda "Qual è il tuo nome?" risponderà "Il mio nome è John.".
Pattern
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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 è <bot name="nome"/>.
che sostituisce il nome del bot nella frase, oppure
Mi hai detto di avere <get name="età-utente"/> 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:
<category> <pattern>QUAL È IL TUO NOME</pattern> <template><![CDATA[Il mio nome è <bot name="nome"/>.]]>
</template> </category> <category> <pattern>COME TI CHIAMI</pattern> <template> <srai>qual è il tuo nome</srai> </template> </category>
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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su aiml.foundation.