Le langage nomo | nomoseed
design intelligence

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

doc:langage_nomo [2014/04/13 17:29]
admin [Le corps du programme]
doc:langage_nomo [2014/09/17 17:17] (Version actuelle)
admin
Ligne 115: Ligne 115:
 Les dimensions de la [[doc:base_de_connaissances|base de connaissances]] sont décrites dans l'élément //**knowledge_base**//. L'attribut **//name//** de l'élément correspond au nom de la configuration qui doit être le nom du fichier sans l'extension. L'élément //**knowledge_base**// contient obligatoirement : Les dimensions de la [[doc:base_de_connaissances|base de connaissances]] sont décrites dans l'élément //**knowledge_base**//. L'attribut **//name//** de l'élément correspond au nom de la configuration qui doit être le nom du fichier sans l'extension. L'élément //**knowledge_base**// contient obligatoirement :
  
-  * un élément //**time_span_limit**// correspondant à la valeur positive maximale de l'indice temporel d'un évènement dans la [[doc:base_de_connaissances#la_base_de_faits|mémoire évènementielle]], elle s'exprime en milliseconde ou en nombre de pas précédé d'un caractère étoile '*',+  * un élément //**time_span_limit**// correspondant à la valeur positive maximale de l'indice temporel d'un évènement dans la [[doc:base_de_connaissances#la_base_de_faits|mémoire évènementielle]], elle s'exprime implicitement en nombre de pas ou en milliseconde en ajoutant 'ms',
   * un élément //**maximum_of_maximizations**// indiquant le nombre maximal d'ajustements d'une règle, soit un entier positif,   * un élément //**maximum_of_maximizations**// indiquant le nombre maximal d'ajustements d'une règle, soit un entier positif,
   * un élément //**maximum_of_internal_events**// correspondant au nombre maximum d'évènements par type contenu dans la mémoire évènementielle. Les types appartiennent à toutes les catégories sauf celles relatives aux entrées. Ce nombre doit être supérieur ou égal à un,   * un élément //**maximum_of_internal_events**// correspondant au nombre maximum d'évènements par type contenu dans la mémoire évènementielle. Les types appartiennent à toutes les catégories sauf celles relatives aux entrées. Ce nombre doit être supérieur ou égal à un,
Ligne 767: Ligne 767:
 Si la prémisse vise un type d'événement autre qu'un événement relatif à une entrée, alors la prémisse contient trois éléments représentant l'information (//**information**//), la crédibilité (//**credibility**//) et l'indice temporel (//**timespan**//). Chacun de ces éléments possède deux attributs relatifs à leur valeur (//**value**//) et à leur tolérance (//**tolerance**//). Si la prémisse est inhibitrice, l'attribut //**inhibitor**// à la valeur "true" doit être ajouté à l'élément //**premise**//. Par ailleurs, si la crédibilité et l'indice temporel sont omis alors ils auront respectivement pour les couples (valeur,tolérance) suivant (1,INF) et (0,INF). Si la prémisse vise un type d'événement autre qu'un événement relatif à une entrée, alors la prémisse contient trois éléments représentant l'information (//**information**//), la crédibilité (//**credibility**//) et l'indice temporel (//**timespan**//). Chacun de ces éléments possède deux attributs relatifs à leur valeur (//**value**//) et à leur tolérance (//**tolerance**//). Si la prémisse est inhibitrice, l'attribut //**inhibitor**// à la valeur "true" doit être ajouté à l'élément //**premise**//. Par ailleurs, si la crédibilité et l'indice temporel sont omis alors ils auront respectivement pour les couples (valeur,tolérance) suivant (1,INF) et (0,INF).
  
-Pour l'indice temporel (//**timespan**//) s'exprime en milliseconde mais il peut également être exprimée en un nombre de pas précédé du caractère étoile '*'. De même, la tolérance associée peut être exprimée en fonction du pas temporel soit un nombre précédé du caractère étoile '*'.+Pour l'indice temporel (//**timespan**//) s'exprime soit en milliseconde auquel cas il faut rajouter 'ms' après la valeur, soit en nombre de pas. Deux constantes peuvent être également utilisé 'MINet 'MAX' représentant réciproquement les bornes inférieur et supérieur de la mémoire'MIN' représente le nombre maximum de pas de retard pour une intention et 'MAX' représente le nombre maximum de pas inférieur à //**time_span_limit**//. Il est possible d'ajouter des pas ou des millisecondes à 'MIN', de même il est possible de retrancher à 'MAX' des pas ou des millisecondes tant que le résultat est supérieur à zéro. 
 + 
 +Plus précisément,dans la version 2013 du moteur nomoInterpreter, le 'MIN' en terme de pas se calcule en arrondissant à l'inférieur comme suit : 
 + 
 +<html><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mrow><mi>MIN</mi><mo>=</mo><mo>-</mo><mfrac><mrow><msup><mn>2</mn><mrow><mn>31</mn><mo>-</mo><mn>1</mn></mrow></msup><mo>*</mo><mi>frequecy</mi></mrow><mn>1000</mn></mfrac></mrow></math></html> 
 + 
 +Par ailleurs, la tolérance associée à l'indice temporel (//**timespan**//) peut être exprimée en fonction du pas temporel en ajoutant le mot clé 'period' ou 'periods'.
  
 Dans une prémisse, si un élément possède un attribut //**tolerance**// à "INF", il n'est alors pas nécessaire d'avoir l'attribut //**value**//. Sauf pour l'indice temporel où l'attribut doit être renseigné pour indiquer le signe déterminant s’il s'agit d'une intention.  Dans une prémisse, si un élément possède un attribut //**tolerance**// à "INF", il n'est alors pas nécessaire d'avoir l'attribut //**value**//. Sauf pour l'indice temporel où l'attribut doit être renseigné pour indiquer le signe déterminant s’il s'agit d'une intention. 
Ligne 779: Ligne 785:
 L'élément //**conclusion**// contient un élément //**information**// avec un attribut //**value**// donnant la valeur de la conclusion. L'élément //**conclusion**// contient un élément //**information**// avec un attribut //**value**// donnant la valeur de la conclusion.
  
-Si la conclusion est une prédiction ou une conception avec un délai alors un attribut indiquant le délai (//**delay**//) doit être rajouté. +Si la conclusion est une prédiction ou une conception avec un délai alors un attribut indiquant le délai (//**delay**//) doit être rajouté. Ce délai peut correspondre soit un simple nombre naturel représentant un nombre de pas, soit un nombre naturel suivis de 'ms' signifiant qu'il s'agit de millisecondes, soit 'MAX' représentant le nombre de pas maximales pour un délais. Il possible de retrancher à la valeur 'MAX' soit un nombre de pas soit un nombre de milliseconde, par exemple : 'MAX - 10ms'. 
 + 
 +Plus précisément,dans la version 2013 du moteur nomoInterpreter, le 'MAX' en terme de pas se calcule en arrondissant à l'inférieur comme suit : 
 + 
 +<html><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mrow><mi>MAX</mi><mo>=</mo><mfrac><mrow><msup><mn>2</mn><mrow><mn>31</mn><mo>-</mo><mn>1</mn></mrow></msup><mo>*</mo><mi>frequecy</mi></mrow><mn>1000</mn></mfrac></mrow></math></html> 
 + 
 +À noter, la constante 'MAX' pouvant être utilisée pour l'attribut //**delay**// correspond à la constante 'MIN' de pouvant être utilisée pour la valeur de //**timespan**// avec un signe opposé.
  
 Si la conclusion est une commande, alors l'élément contient autant d'éléments //**output**// que de composantes définies par le type associé. L'ordre de ces éléments doit correspondre à l'ordre défini par le type associé. Chaque élément //**output**// possède un attribut //**value**// indiquant la valeur de la composante. Si la conclusion est une commande, alors l'élément contient autant d'éléments //**output**// que de composantes définies par le type associé. L'ordre de ces éléments doit correspondre à l'ordre défini par le type associé. Chaque élément //**output**// possède un attribut //**value**// indiquant la valeur de la composante.
Ligne 792: Ligne 804:
   <rule name="start" relevance="0" fitting_nbr="INF">   <rule name="start" relevance="0" fitting_nbr="INF">
     <conclusion category="conception" model="modele_1" type="interrupteur">     <conclusion category="conception" model="modele_1" type="interrupteur">
-      <information value="start" delay="INF" />+      <information value="start" delay="MAX" />
     </conclusion>     </conclusion>
   </rule>   </rule>