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

Rivescript l'ordre de codage.

16 Mai 2013 , Rédigé par crriam Publié dans #Rivescript

Si l'on compare le rivescript a l'aiml, on se rend compte tres vite que le rivescripte n'a pas tout a fait la même logique.

L'aiml va executer les code les uns a la suite des autres et renvoyer imediatement le resultat. Exemple :

 

+ depart prenom
- comment tu t appelles ?

+ *
% comment tu t appelles*
* <bot prenom> == <star> => ho, comme moi ! c'est marrant <env nom=<star>> et tu es donc {@chercher genre prenom}
- <env prenom=<star>> <env prenom> ok et tu es {@chercher genre prenom}


+ chercher genre prenom
* <env prenom> == gennie => <env genre=fille>une <env genre>

comme cela ça fonctionne.

Mais en aiml on aurait pu
demander son nom pui

enregistrer la réponse et renvoyer sur la recherche de genre puis la faire afficher.

<pattern> * <patterne/>
<template> <set name="nom"></star></set> <srai> rechercher genre<srai/> ha donc tu es un <get name="genre">

Pas ici, la fonction est executer en entier directement, donc :
- <env prenom=<star>> <env prenom> ok et tu es {@chercher genre prenom} <env genre>
avec
* <env prenom> == gennie => <env genre=fille>

ne fonctionera pas alors que dans le premier exemple ça marche car c'est la sous fonction de recherche du genre qui fait afficher le genre, pas la fonction premiere d'enregistrement du nom !

Petite nuance qui change beaucoup de chose :) il faudra s'y faire.

 

 

Deuxieme subtilité: l'orde dans le quel vous organisez le codage.

 

Un code peut interferer sur un autre suivant s'il est placé avant ou aprés celui ci.

 

Exemple :

 

 on met les non en premier car il matche sur la 1ere array trouvé


 exemple : bien sur que non (dans les non) va matcher un oui alors que la phrase veut dire non => bien sur (dans les oui )

En mettant les non en premier, il va trouver non et ne cherchera pas le bien sur ensuite.

 

! array non = pas mal mauvais mauvaise bof moyen nul nulle naz bidon rien
^ bien sur que non|aucunement|j ai des doutes|j aime pas



+ [*] (@non) [*]
@nongeneral  // sert a pouvoir repondre non par rapport a un sujet definis en utilisant le array

+ nongeneral
- non ?
- ok
- tres bien
- ha non
- je vois


+ non
@nongeneral
      + * non
      @non
      + * non * 
      @non
      + non * 
      @non

! array oui = oui yes evidament evidement ok absolument super extra terrible top cool heureu
^ genial geniale bonheur impecable impeccable parfait assurement certainement certe parfaitement
^ nikel sympa exact surement accord
^ bien sur|pas mal|oki|j aime|tant mieux|pourquoi pas|pas mauvais|pas mauvaise
^ c est deja ca|pas trop mal


+ [*] (@oui) [*]
@ouigeneral  // sert a pouvoir repondre oui par rapport a un sujet definis en utilisant le array

+ ouigeneral
- oui
- ok
- absoluement
- super
- genial
- parfait
- on est d'accord
- tant mieux
- tres bien

 

   + comme tu dis
   - oui ...
      + * comme tu dis
      @comme tu dis
      + * comme tu dis * 
      @comme tu dis
      + comme tu dis * 
      @comme tu dis

 

 

D'autres interferance de ce type peuvent se produire lorsque vous utiliser les [*]

Soyez donc vigilent et ...tester :)

Partager cet article

Repost 0

Commenter cet article