AIML
L'AIML, acronimo di Artificial Intelligence Markup Language, è un dialetto dell'XML inventato per creare software che devono imitare la lingua naturale. StoriaIl 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 AIMLCategorieLe 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.". PatternUn 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. TemplateUn 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>
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. CriticheL'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 correlateCollegamenti esterni
|