|
Expert3
Version 1.0 beta But du systèmeEXPERT3 est un moteur d'inférence qui permet de développer rapidement des petits systèmes experts, c'est-à-dire un système d'aide à la décision dans des domaines relativement structurés (dépannage, diagnostic médical simple, ...). Il est d'ordre 0+ et utilise principalement la technique du chaînage arrière. Certaines séquences du travail se font par un procédé apparenté au chaînage avant. Ce logiciel possède de nombreuses possibilités de fenêtrage, de chaînage de bases de connaissance, d' utilisation de données diverses, etc. Par rapport à EXPERT2, outre le fait qu'il fonctionne sous windows, EXPERT3 possède les particularités suivantes:
Un exemple simple pour entrer en matièreA titre d'exemple on réalisera pas à pas un système qui permettra "d'identifier" un ustensile de cuisine !! ETAPE 1 Dans l'éditeur de COMPEXP on entrera la spécification du problème de la façon suivante: ACTIONS FIND ustensile DISPLAY "c'est vraisemblablement %" : (ustensile) ; ASK dent : "l' objet a-t-il des dents ?" ; ASK couper: "l'objet coupe-t-il ? " ; CHOICES dent, couper : oui, non ; RULE couteau IF couper = oui THEN ustensile = couteau BECAUSE "un couteau coupe par définition !" ; RULE cuillère IF dent = non THEN ustensile = cuillère ; RULE fourchette IF dent = oui THEN ustensile = fourchette ; ETAPE 2 A l'aide de l'option Compiler du menu Traduire on transformera ce "programme" en une version "compilée" qui sera gardée dans un fichier d'extension .KBS . Les fautes de syntaxes sont signalées. Un fichier .SBL est également créé qui contient l'ensemble des symboles utilisés. ETAPE 3 Il ne reste plus qu'à utiliser cet exemple à l'aide de EXPERT3. L'environnement d'expert3+---------+ ¦TABLE D' ¦ ¦INDUCTION¦ ¦(.TBL) ¦ +---------+ ¦ +--------+ +----------+ +----------------------+ ¦ SOURCE ¦ --> ¦ COMPEXP ¦ ¦ BASE DE CONNAISSANCE ¦ ¦ ¦ ¦ ¦ --> ¦ ¦ ¦ (.TXT) ¦ <-- ¦ ¦ ¦ (.KBS) ¦ +--------+ +----------+ +----------------------+ ¦ +--------+ +----------+ --> +-------------------+ ¦BASE DE ¦ ¦ ¦ ¦ BASE DE FAITS ¦ ¦DONNEES ¦ <---------> ¦ ¦ <-- +-------------------+ ¦(.DBF) ¦ ¦ EXPERT3 ¦ ¦(.WKS) ¦ ¦ ¦ +--------+ ¦ ¦ +--------+ ¦ ¦ ¦FICHIER ¦ <---------> ¦ ¦ +--------+ +----------+ Base de faitsLes faits sont des triplets constitués du nom d'une "variable", d'une valeur et d'un coefficient de certitude. Exemple: problème = batterie CNF 56 Structure d'une base de connaissanceUne base de connaissance est subdivisée en plusieurs parties. Chacune débute par une déclaration et se termine par un point-virgule (;). Les déclarations principales sont les suivantes: ACTIONS contient une suite de clauses chacune impliquant une action
La partie ACTIONS La partie ACTIONS est constituée, du point de vue syntaxique, d'une suite de CLAUSES. Chaque CLAUSE implique une action, c'est-à-dire provoque une modification du système. Les trois principales clauses/actions sont:
La syntaxe adoptée pour l'insertion d'un fait, var = val, n'est pas toujours heureuse (confusion avec les conditions). EXPERT3 admet également la clause suivante qui est équivalente: INSERT var val Les déclarations ASK et CHOICES La déclaration ASK permet de déclarer une variable-question. La question associée sera posée à l'utilisateur dès que le système en aura besoin. Il ne peut y avoir qu'une seule question par variable! CHOICES permet de préciser les réponses possibles à une question. Celles-ci seront proposées à l'utilisateur dans un menu. Les règles (RULE) Les règles satisfont à la forme générale IF prémisse THEN conclusion. La prémisse est constituée d'une suite de conditions séparées par OR ou AND. OR est prioritaire par rapport à AND. Chaque condition est de la forme: <nom d'une variable> <comparateur> <valeur>, par exemple: nombre_d_enfants > 10 La conclusion tout, comme la partie ACTIONS, est constituée d'une suite de clauses. Fonctionnement du moteurLe moteur est enclenché par une clause FIND . Si la variable évoquée est une variable-question, la question est posée à l'utilisateur. Sinon, le système sélectionne les règles qui contiennent la variable dans leur conclusion. Les actions de la première règle sélectionnée dont la prémisse est satisfaite sont déclenchées. Dans le cas des variables multiples (voir plus loin) toutes les règles sélectionnées sont utilisées. Finalement, si aucune valeur ne peut être associée à la variable, celle-ci est considérée comme inconnue (UNKNOWN). En mode "trace", une demande de confirmation est demandée à l'utilisateur. De façon schématique on a: Enclenchement du moteur par:
Cycle:
EXPERT3 est donc un moteur fonctionnant "en arrière", des conclusions vers les prémisses. Le faux et l'inconnuToutes les variables peuvent prendre une valeur particulière: UNKNOWN. Ainsi EXPERT3 permet d'introduire l'"inconnu" entre le "vrai" et le "faux". La valeur UNKNOWN est attribuée à:
Si le fait var = UNKNOWN existe, la clause FIND var n'a aucun effet. Par contre la condition var = UNKNOWN provoque la mise en marche du moteur si la variable n'existait pas préalablement. Exemple! loi d'Ohm ! ACTIONS CLS DISPLAY "répondez par une valeur ou ESC si inconnu !" FIND valeur_ok ; ASK i : "valeur du courant ?" ; ASK u : "valeur de la tension ?" ; ASK r : "valeur de la résistance ?" ; RULE tension IF r >= 0 AND i >= 0 THEN u = (r)*(i) DISPLAY "tension: %" :(u) ; RULE courant IF r > 0 AND u >= 0 THEN i = (u)/(r) DISPLAY "courant: %" :(i) ; RULE résistance IF i >= 0 AND u >= 0 THEN r = (u)/(i) DISPLAY "résistance: %" :(r) ; RULE erreur IF u = UNKNOWN OR r = UNKNOWN OR i = UNKNOWN THEN valeur_ok = nil DISPLAY "erreur ou données insuffisantes" ; Manipulations 1 1) Décrire la façon dont une valeur sera attribuée à chacune des variables v1, v2, v3. ACTIONS FIND v1 FIND v2 FIND v3 ; ASK v1 :"quelle est la valeur de v1'" ; ASK a : "valeur de a ?" ; RULE r1 IF a = oui THEN v2 = non ; 2) Ecrire un système qui demande le nom de l'utilisateur et qui lui dise bonjour ! 3) Ecrire un système qui détermine le type d'un véhicule (auto, camion, vélo,...) à partir de caractéristiques diverses (silencieux/bruyant, ...). 4) Ecrire un système complet (but, questions, règles) qui, pour un problème de démarreur, diagnostique une des cinq causes: problème de batterie, problème de court-circuit, problème de bobine, problème de pignon, autre problème. 5) Voici une règle: IF etat_démarreur = ralenti AND grands_phares = ok AND manip_bobine = ok THEN diagnostic = connu probleme = bobine a) Quelle est la prémisse de la règle. 6) On donne la base de connaisance suivante: ACTIONS FIND volume DISPLAY volume ; ASK largeur : "Quelle est la largeur ?" ; ASK longueur : "Quelle est la longueur ?" ; ASK hauteur : "Quelle est la hauteur ?" ; CHOICES largeur, longueur, hauteur : petite, moyenne, grande ; RULE r1 IF largeur= grande AND longueur = grande THEN surface = grande ; RULE r2 IF largeur = grande AND longueur <> grande THEN surface = moyenne ; RULE r3 IF longueur = moyenne THEN diagonale = moyenne ; RULE r4 IF largeur = petite diagonale = moyenne THEN surface = petite ; RULE r5 IF surface = petite THEN volume = petit ; RULE r6 IF surface <> petite AND hauteur <> petite THEN volume = grand ; a) Quelles sont les règles sélectionnées par la clause
FIND surface ? RULE nouvelle IF surface = petite AND hauteur = grande THEN volume = moyen ; Où la placez-vous ? Justifiez. Les variables multiplesMoyennant la déclaration PLURAL, les variables peuvent admettre plusieurs valeurs. On peut alors les considérer comme des "piles" ou des "listes" ! Voici quelques caractéristiques de ces variables:
En cas de recherche d'une variable multiple, toutes les règles sélectionnées sont filtrées. Il est possible de trier les faits liés à une variable multiple par ordre décroissant des coefficients de certitude. Exemple: SORT couleur ACTIONS FIND x DISPLAY x ; ASK a : "valeur de a?" ; RULE r1 IF a = 1 THEN b=1 x= 2 ; RULE r2 IF b = 1 THEN x = 1 ; Utiliser l'exemple précédent tel quel, en inversant l'ordre des règles, puis en ajoutant la déclaration PLURAL : x ; Quelques exemples techniques1) Retour sur une valeur ACTIONS CLS ! pour effacer les fenêtres de dialogue ! FIND resultat DISPLAY "" DISPLAY resultat ; ASK help : "help (o/n)?" ; RULE non ! si l'aide n'est pas requise ! IF help = n THEN resultat = connu ; RULE oui ! si l'aide est demandée ! IF help = o THEN DISPLAY "voici une petite aide ..." resultat = inconnu RESET resultat ! pour permettre la recherche suivante ! RESET help ! on pourrait aussi mettre INSERT help n ! FIND resultat ; 2) Boucle utilisant la clause WHILEKNOWN ACTIONS nombre = 1 WHILEKNOWN cont RESET cont FIND cont DISPLAY nombre nombre = (nombre)+1 END DISPLAY " Nombre = " DISPLAY nombre ; RULE r1 IF nombre < 16 THEN cont = oui ; Le même exemple peut être traité en incrémentant n dans la règle r1: ACTIONS nombre = 1 WHILEKNOWN cont RESET cont FIND cont END DISPLAY "Nombre = %" : (nombre) ; RULE r1 IF nombre < 16 THEN cont = oui nombre = (nombre)+1 DISPLAY nombre ; 3) Utilisation d'une variable multiple RULE r1 IF plat = agneau AND plat = omelette THEN couleur_vin = rouge ; PLURAL : plat ; 4) Une autre variable multiple ACTIONS DISPLAY "tapez le nom de vos couleurs favorites suivi d'un coefficient (ESC pour finir)" WHILEKNOWN couleur RESET couleur FIND couleur couleurs_favorites = (couleur) END SORT couleurs_favorites CLS DISPLAY "Voici vos couleurs favorites classées par ordre de préférence " DISPLAY couleurs_favorites ; PLURAL : couleurs_favorites ; ASK couleur : "Entrez une couleur (ESC pour finir)" ; Traitement de l'informationPlusieurs méthodes existent qui permettent de transmettre des informations à l'utilisateur. 1) Dans une séquence d'action la clause VISUALIZE "phares.hlp" provoque l'affichage du fichier PHARES.HLP. 2) La déclaration: INFO grands_phares : "phares.hlp" ; associe le fichier PHARES.HLP à la variable grands_phares. Lorsque la valeur de grands_phares est demandée à l'utilisateur, la pression de F2 provoque l'affichage de PHARES.HLP. 3) L'information peut être prise en compte dans les règles. Ainsi une des règles ci-dessus peut être complétée ainsi: RULE bobine IF etat_démarreur = ralenti AND info_gr_phares = ok AND grands_phares = ok AND manip_bobine = ok THEN diagnostic = connu probleme = bobine ; RULE info_gr_phares_oui IF veut_info = oui THEN info_gr_phares = ok VISUALIZE "phares.hlp" ; RULE info_gr_phares_non IF veut_info = non THEN info_gr_phares = ok ; Préparation d'une base de connaissance avec l'inducteur: mode d'emploiE t a p e 1 : Préparation de la table d'induction Préparer un fichier (canton.TBL) contenant le nom des modalités avec les diverses valeurs possibles en colonne. Le trait (-) marque l'indifférence.La dernière colonne contient la variable but. Si d'autres variables figurent systématiquement dans les conclusions des règles elles sont séparées des variables de la prémisse par /. couleur couleur couleur particularité canton vert blanc rouge croix_blanche neuchâtel vert blanc - écriture vaud vert blanc jaune écriture vaud jaune rouge - ours berne jaune rouge noir ours berne noir blanc - - fribourg rouge blanc - - soleure rouge blanc - étoiles valais E t a p e 2: Induction canton.tbl est à charger "dans" COMPEXP. Puis on utilise l'option Induire du menu Traduire. Le fichier canton.src est produit. Si l'option 'contrôle' pour le compilateur a été activée, un fichier canton.msg est produit. Il peut être consulté avec l'éditeur. messages: E t a p e 3 : Correction de la table Deux lignes s'avèrent inutiles, deux autres sont à permuter. couleur couleur couleur particularité canton vert blanc rouge croix_blanche neuchâtel vert blanc - écriture vaud jaune rouge - ours berne noir blanc - - fribourg rouge blanc - - soleure rouge blanc - étoiles valais E t a p e 4 : Retouche de la base de connaissance La variable couleur peut prendre plusieurs valeurs simultanément, elle est de type multiple. Elle sera déclarée automatiquement comme telle à l'aide de PLURAL. Par contre, le cas échéant la déclaration concernant 'canton' est à la charge de l'utilisateur. On peut également améliorer l'énoncé des questions. ACTIONS FIND canton DISPLAY canton ; ASK couleur : "Quelle est la valeur de couleur" ; ASK particularité : "Quelle est la valeur de particularité" ; CHOICES couleur : vert, blanc, rouge, jaune, noir ; CHOICES particularité : croix_blanche, écriture, ours, étoiles ; PLURAL : couleur ; RULE r1 IF couleur = vert AND couleur = blanc AND couleur = rouge AND particularité = croix_blanche THEN canton = neuchâtel ; RULE r2 IF couleur = vert AND couleur = blanc AND particularité = écriture THEN canton = vaud ; RULE r3 IF couleur = jaune AND couleur = rouge AND particularité = ours THEN canton = berne ; RULE r4 IF couleur = noir AND couleur = blanc THEN canton = fribourg ; RULE r5 IF couleur = rouge AND couleur = blanc AND particularité = étoiles THEN canton = valais ; RULE r6 IF couleur = rouge AND couleur = blanc THEN canton = soleure ; E t a p e 5 : La base est prête pour la compilation (rubrique Compiler du menu Traduire). Traitement des tables de décision Le formalisme utilisé dans les tables de décisions (TD) et celui
des systèmes à base de règles de production sont très
voisins. Voici brièvement quelques similitudes et quelques divergences.
On constate que chacune des règles (Ri) se traduit facilement en une règle d'un système de production, par exemple: RULE R5 IF salaire_mensuel >= 2000 AND remboursement = 300 THEN prêt = 4000 frais = 0.011 ; On retrouve les termes condition (Ci) et action (A1). Cette ressemblance appelle quelques remarques.
La table de décision peut se mettre sous la forme d'une table d'induction (extrait):
Sa traduction en code source à l'aide de l'option Induire du menu Traduire donne une fois retouchée la base de connaissance suivante: ACTIONS FIND duree DISPLAY "le durée de remboursement est de % mois" :(duree) ; ASK salaire : "Quel est le salaire mensuel ? " ; ASK remboursement : "Quel remboursement mensuel maximum ?" ; CHOICES remboursement : 100, 200, 300 ; RULE principale IF but = atteint THEN duree = ((prêt) + ((prêt) * (frais))/(remboursement) ! ou tout autre calcul qui permet de calculer la durée ! ; RULE r5 IF salaire >= 2000 AND remboursement = 300 THEN prêt = 4000 frais = 0.011 but = atteint ; RULE r4 IF salaire >= 2000 AND remboursement = 200 THEN prêt = 3000 frais = 0.013 but = atteint ; RULE r4bis IF salaire >= 2000 THEN but = non_atteint DISPLAY "le prêt est impossible, remboursement insuffisant" ; RULE r3 IF salaire >= 1000 AND remboursement = 200 THEN prêt = 3000 frais = 0.013 but = atteint ; RULE r2 IF salaire >= 1000 AND remboursement = 100 THEN prêt = 2000 frais = 0.015 but = atteint ; RULE autre IF salaire < 1000 THEN prêt = 0 DISPLAY "le prêt n'est pas possible, salaire insuffisant" ; Exercices
Le club alpin, pour sa sortie annuelle, prévoit cinq courses. La répartition des participants à cette journée se fera comme suit: - Les hommes, membres du club et possèdant un équipement complet, participeront à la course numéro 3 s'ils sont agés de plus de 25 ans et débutants, ou s'ils n'ont pas plus de 25 ans. - Les hommes agés de plus de 25 ans qui ne sont pas membres du club participeront à la course numéro 5, de même que les hommes qui sont débutants et qui n'ont pas un équipement complet. - Les hommes qui ne sont pas débutants participeront à la course numéro 3 s'ils ont plus de 25 ans, un équipement complet et sont membres du club. Ils participeront à la course numéro 2 s'ils ne sont pas débutants, n'ont pas plus de 25 ans et n'ont pas un équipement complet. - Pour les dames débutantes qui ne possèdent pas un équipement complet, c'est la course numéro 1 qui est prévue. - Les dames possèdant un équipement complet et membre du club iront à la course numéro 3. - Pour les dames non débutantes qui ne sont pas membres du club, c'est la course numéro 4 qui conviendra, tandis que pour celles qui sont débutantes et membres du club, elles pourront s'inscrire à la course numéro 1 si elles n'ont pas plus de 25 ans et n'ont pas un équipement complet. - Finalement, les membres du club ayant plus de 25 ans, s'ils sont expérimentés
et n'ont qu'un équipement sommaire, s'inscriront à la course numéro
2, ainsi que les non membres s'ils n'ont pas plus de 25 ans, sont débutants
et possèdent un équipement complet ! Contrôle de cohérenceUn certain nombre de contrôles peuvent être effectués. En particulier:
A noter toutefois que ces indications sont toujours données sous forme d'avertissement et que des conditions particulières (variables multiples, type de navigation, etc.). En particulier, l'exemple des manipulation 2 pourrait être considéré comme contradictoire. Toutefois, on peut toujours imaginé que les règles sont incomplètes et sous entendent d'autres conditions non exprimées. De plus x pourrait être multiple.En principe, un tel cas ne sera pas signalé lors du contrôle. Par contre l'exemple suivant a de plus fortes chances de faire boucler le système. ACTIONS FIND x DISPLAY x ; ASK b : "Valeur de b?" ; RULE r1 IF c = 1 THEN a = 1 ; RULE r2 IF a = 1 AND b = 1 THEN x = connu c = 1 ; L'évaluation des expressionsIl est possible de connaître et réutiliser la valeur d'une variable. Ainsi, si la valeur "jean" a été attribuée à la variable personne, l'expression: (personne) représentera "jean". De même, les expressions suivantes sont autorisées: (chose), (n)+3 , (n)+(m) ,etc. n et m sont des variables à valeur numérique. Si une variable n'est pas encore connue du système, son évaluation déclenchera le moteur. Ainsi, les deux programmes suivants donnent le même résultat:
L'utilisation de l'évaluation permet de résoudre certains des problèmes de la logique d'ordre 1. D'où la dénomination ordre 0+ pour EXPERT3. Manipulation 3 Utiliser la règle suivante dans un système qui permet de traiter le syllogisme classique: RULE mortalité IF homme = (personne) THEN mortel = (personne) ; Les coefficients de certitudePlutôt que de travailler avec les valeurs extrêmes vrai et faux, EXPERT3 permet d'introduire des coefficients de certitude. Chaque fait aura donc un degré de certitude variant de 0 à 100. Ces coefficients peuvent être combinés selon diverses méthodes [ERCEVILLE]: Si A et B sont deux propositions dont les coefficients de certitude sont respectivement a et b. La certitude commune de "A et B" et la certitude confirmative de "A ou B" sont donnée par les formules suivantes:
Structuration des règlesLe fonctionnement du moteur implique que seules certaines règles sont sélectionnées à chaque recherche. Il peut parfois être utile de préselectionner une partie des règles. Pour cela, on utilise souvent une variable adéquate introduite en prémisse. EXPERT3 offre un dispositif permettant de struturer les règles par domaines. Le nom du domaine dont fait partie la règle est indiqué après le nom de la règle. RULE règle1 Par défaut les règles appartiennent au domaine de nom "base". Les clauses qui permettent d'activer et de désactiver un paquet de règles sont ACTIVE et DESACTIVE. Les règles du dernier domaine "activé" sont prioritaires. De façon générale, la priorité des règles suit l'ordre inverse de l'activation de leur domaine respectif. Attention, les clauses ACTIVE et DESACTIVE ne doivent figurer en principe que dans la partie ACTIONS ou dans la conclusion de règles d'aiguillage. Si en principe, elles peuvent apparaître dans la conclusion de n'importe quelle règle, il faut garder en mémoire le fonctionnement arrière du moteur. Ainsi, sans précaution, une règle pourrait amener à sélectionner une autre règle qui lors de son enclenchement ultérieur désactivera la règle qui a provoqué sa sélection ! Lors du lancement d'une recherche, toutes les règles menant au but devraient faire partie de l'un des domaines activés. A la fin de la règle peut encore figurer le mot-clé BECAUSE suivi d'un texte. Ce texte contient en principe des indications qui permettent d'éclairer l'utilisateur sur le "pourquoi" de la règle. Lorsque la règle est utilisée, la touche F3 permet à l'utilisateur d'avoir accès à ce texte. Les démonsCe sont des procédures "réflexes" mises en oeuvre lors de certaines actions. EXPERT3 compte quatre types de démons, les démons à l'assignation, ceux à la recherche, ceux à l'insertion et ceux au nettoyage. Ils sont associés à une variable au moyen de la déclaration: DEMON mot-clé var : liste de clauses ; Le mot-clé pouvant être ATTRIB, FIND, INSERT ou RESET Exemple: DEMON FIND déduction_enfants : FIND nombres_enfants ; indique au système que la recherche de la valeur de 'déduction_enfants' doit être précédée de celle de 'nombre_enfants'. Méthodes de "sélection"Les règles peuvent être sélectionnées selon diverses méthodes:
HiérarchieIl est possible de déclarer qu'une variable est du même type qu'une autre variable. Ainsi, en cas d'absence de règles permettant de déterminer la variable spécifique, celles où intervient la variable plus globale sont mises en oeuvre. Déclaration: IS_A liste de variables : variable ; Exemple ! hiérarchie ! ! Dans cet exemple si les variables a, b, c, ou d n'arrivent pas à être déduites par le système, leur valeur sera la même que 'variable', c'est à dire 'inconnue' ! ACTIONS vrai = 1 FIND ... ; IS_A a, b, c, d : variable ; ... RULE défaut IF vrai = 1 THEN variable = inconnue ; Commandes du systèmeF2 : aide sur la variable (WHAT?) Lorsqu'une expertise est terminée il est possible de modifier la valeur d'une variable (à l'aide du menu) et de relancer le moteur pour voir d'autres solutions possibles (WHATIF?). Syntaxe de EXPERT3Types d'objetsLes objets suivants sont utilisés:
Clausesvar = exp [cnf] insertion d'un nouveau fait DISPLAY str affichage d'un texte CLS effacement des fenêtres de dialogue FIND var recherche de la valeur d'une variable RESET var supression des faits liés à var WHILEKNOWN var répétition d'une séquence "tant
que" la variable var est connue VISUALIZE [PICTURE] fic affichage d'un fichier texte [image] [n n [n
n]] . LOADFACTS fic chargement d'une base de faits CHAIN fic chaînage d'une base de connaissance CALL appel d'un programme extérieur SORT var tri des valeurs d'une variable multiple par ordre croissant
des coefficients de vraissemblance. TRUTHTRESH cnf modification du seuil de vérité ACTIVE str active un paquet de règles. Par défaut, les
règles font partie du paquet "base". HARAKIRI comme son nom l'indique Une variable est prédéfinie: read_ok Elle est connue dès qu'un fichier est ouvert en lecture et tant qu'on n'est pas à la fin de ce fichier. ConditionsUne condition est du type: "var comparateur exp" ou est constituée d'une suite de telles expressions séparées par OR. DéclarationsACTIONS partie des actions liste de clauses ; RULE sym règle [DOMAIN str] IF liste de conditions séparées par AND THEN liste de clauses [BECAUSE str] ; CHOICES var [, var ...] : sym [, sym ...] ; valeurs possibles d'une
variable ASK var : str ; énoncé de la question d'une variable-question
EXECUTE ; execution immédiate PLURAL : var [,var ...] ; variable multiple INFO var : fic ; information liée à une variable (F2)
DEMON INSERT var : liste de clauses ; démon à l'attribution
IS_A var [, var, ...] : var ; déclaration d'une hiérarchie (héritage) REQUIRE fic insertion d'une base de connaissance PICTURE fic img ; association d'un nom de fichier à un nom d'image ASSOC var val img RECT n n n n | CIRCLE n n n ; Symboles, séparateur dans des listes d'éléments = comparateur et marque d'assignation autres comparateurs < plus petit que Autres mots réservésDOMAIN IF THEN AND OR BECAUSE entrent dans la syntaxe d'une règle Version françaiseLes mots-clés peuvent être introduits en français: INSERE MONTRE EE ATTENDS CHERCHE NETTOIE NETTOIETOUT TANTQUECONNU FIN VISUALISE RECOIS ENVOIE SAUVEFAITS CHARGEFAITS CHAINE OUVRELECT OUVREECR CREE FICHIERECR FICHIERLECT FERME CLAVIER ECRAN APPELLE LIS TRI PIQUE SEUIL ACTIVE DESACTIVE ACTIONS CHOIX DEMANDE MULTIPLE EXECUTE REGLE DOMAINE SI ALORS ET OU PARCEQUE REGLE Interface
(c) ABORD, 1989-2013 |