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.
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:
- Ricezione delle informazioni che l’interprete si appresta a paragonare. L’informazione diventa modello.
- Confronto modello-pattern. Ricerca nella base di conoscenza pattern uguali al campione acquisito.
- 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.”