Il mondo dell'AIML (Artificial Markup Language)

Cos'è l'AIML?

Il linguaggio AIML, acronimo di Artificial Intelligence Markup Language, è stato ideato nel 1995 dal Dott. Richard S. Wallace e sviluppato, fino ad oggi, in collaborazione con una team di oltre 600 tecnici interessati al software libero Alicebot. L’AIML utilizza la stessa struttura sintattica dell’XML (Extensible Markup Language). È stato scritto allo scopo di abilitare il contenuto di una base di conoscenza, suddivisa in pattern, per agevolare la trasmissione e ricezione di input ed output e per essere processata sia su web che offline, attraverso un interprete AIML.

Avendo dei tag realizzati in lingua naturale è molto chiaro a tutti quelli che si trovano davanti un documento aiml capire cosa si sta leggendo. L’AIML codifica i concetti essenziali così da permettere un sistema di conoscenza stimolo-reazione. Il modello a cui fa riferimento l’aiml è il pattern matching: con questo termine si intende l'operazione che verifica se una certa stringa o una sua sottostringa corrisponde ad un certo pattern, ossia se è costruita secondo un determinato schema.


Pattern Matching

Chiunque abbia mai usato programmi di elaborazione testi ha dovuto affrontare il problema di ricercare una stringa all’interno del testo. Forse senza saperlo, ci si è imbattuti nel problema del pattern matching. Contrariamente a quanto si può pensare, l’applicazione dei metodi di pattern matching non è limitata all’elaborazione dei testi, ma è ampiamente utilizzata nella biologia computazionale, il cui tema centrale è la ricerca di sequenze molecolari all’interno di sequenze più lunghe. Ovviamente nel caso specifico dell’AIML, il pattern matching si concretizza in tre passi:

  1. Ricezione delle informazioni che l’interprete si appresta a paragonare. L’informazione diventa modello.
  2. Confronto modello-pattern. Ricerca nella base di conoscenza pattern uguali al campione acquisito.
  3. Risposta in Output.
  • Se la ricerca avvenisse con successo e quindi esistesse un pattern identico al campione, l’interprete restituirebbe in output il contenuto di template associato al pattern stesso.
  • Se invece non venisse trovato alcun pattern identico al campione in output non verrebbe inviato nulla.

Regole

I file AIML devono rispettare delle semplici regole e devono essere validi e ben formati (well-formed)

  • È presente un tag radice <aiml>. Tutti i documenti aiml devo aprirsi e chiudersi con questo tag. Ha un attributo chiamato version che si riferisce alla versione del linguaggio utilizzato. Es. <aiml version=“1.0.1”>.
  • Elemento <category> contiene a sua volta <pattern> e <template>. Ci sono inoltre altri 25 tag facoltativi.
  • Elemento <pattern>: contiene il testo confrontato con la richiesta dell’utente.
  • Elemento <template>: risposta data dall’ interprete verso l’utente.
  • Ogni elemento aperto ha un tag di chiusura <…> </…>.
  • Gli elementi sono propriamente annidati.
  • Tutti gli elementi sono scritti in minuscolo.
  • Tutti gli attributi sono racchiusi tra virgolette “…”

Questo è un esempio di file AIML:

<aiml version:1.0.1>
 <category>
  <pattern> CHI SEI </pattern>
  <template>
  Sono il bot che cerca di rendere l’apprendimento dell’aiml molto più semplice e veloce.
  </template>
 </category>
</aiml>

Sembra abbastanza intuibile dall’esempio che acquisendo come input la richiesta “chi sei” il sistema darà come risposta “Sono il bot che cerca di rendere l’apprendimento dell’aiml molto più semplice e veloce.”

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList