Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
Le blog du CRRIAM

srai

10 Avril 2011 , Rédigé par crriam

Écrit par Philippe YONNET du tres bon site pnabmique qui n'existe plus   

17-11-2007

Syntaxe

<srai>...</srai>
autre forme (forme atomique): <sr/>
<sr/> = <srai><star/><srai>

Description
La balise <srai> commande à l’interpréteur AIML de passer le résultat du traitement du contenu de l’élément srai à la boucle de correspondance AIML, comme si l’entrée avait été produite sous cette forme par l’utilisateur (en incluant le processus complet de normalisation de l’entrée). La balise srai n’a pas d’attributs, et peut contenir n’importe quelle balise AIML utilisable dans un template.

L’acronyme "srai" signifie "Stimulus-Response Artificial Intelligence" (Intelligence Artificielle par Stimulus-Réponses).

Les balises AIML sont parsées de l’intérieur vers l’extérieur, ce qui signifie que l’on peut imbriquer des balises srai dans d’autres balises srai.

Exemple

L’application la plus fréquente de la balise <srai> est la "réduction symbolique" d’une phrase complexe en éléments plus simples, pour la ramener à une forme correspondant à un gabarit d’entrée existant.


<category>
<pattern>PEUX TU ME DIRE CE QU'EST *</pattern>
<template><srai>KESKE<star/></srai></template>
</category>

Remarque sur le KESKE : si l’auteur d’un fichier AIML sait à l’avance qu’un gabarit d’entrée ne sera utilisé que suite à des réductions symboliques, il peut très bien utiliser une forme atomique originale, qui ne correspond à aucune entrée connue, ce n’est pas grave. Certains auteurs ne s’en privent pas...

La réponse est donnée par une autre catégorie (atomique celle là) :


<category>
<pattern>KESKE LINUX</pattern>
<template><set_it>Linux</set_it> est l'un des meilleurs systèmes d'exploitation.</template>
</category>

En multipliant les catégories de "réduction symbolique" utilisant

<srai><code>, le robot peut donner la même réponse à toutes ces formes de question :

"Peux-tu me dire ce qu'est Linux ?"
"Sais-tu ce qu'est Linux ?"
"Donnes moi la définition de Linux"
"Alice s'il te plait dis moi tout de suite ce que veut dire Linux "

La réponse peut-être aussi la combinaison de deux réductions symboliques accolées (on peut donc placer plusieurs srai dans le même template) :

<code>
<category>
<pattern>OUI *</pattern>
<template><srai>OUI</srai> <sr/></template>
</category>

Avec une catégorie écrite ainsi, le robot répondra à toutes les entrées de type "Oui quelque chose" en combinant la réponse prévue pour "OUI" avec la réponse prévue pour "QUELQUE CHOSE" (attention, ceci peut produire des surprises, bonnes ou mauvaises).

Rappel : <sr/> est la forme abrégée de <srai><star/></srai>.

La balise <srai> est également la solution au problème souvent posé : puis-je avoir plus d’un gabarit d’entrée dans la même catégorie ? La réponse est : NON. Mais <srai> permet de contourner le problème élégamment.

Admettons que je souhaite que deux entrées différentes aboutissent à la même réponse (par exemple, que l’on dise "Ciao" ou "Au revoir", le robot répondra "A bientôt) :

Voila ce que cela donne avec


<category>
<pattern>CIAO</pattern>
<template><srai>AU REVOIR</srai></template>
</category>

<category>
<pattern>AU REVOIR</pattern> <template>A bientôt.</template>
</category>

Compatibilité

Balise utilisable dans :

Modèles de réponse

Conforme AIML 1.0.1 :

Oui

Pandorabot :

Oui

Référence doc :

7.5.1.

Partager cet article

Repost 0

Commenter cet article