Brevet FR2644608A1 — publié le 19900921

Procédé et aDparell dans le domaine des svstèmes experts. La présente invention concerne les systèmes experts mis en oeuvre au moyen de calculatrices numériques et concerne plus particulièrement les composants constitués par la base de connaissances et le moteur d'inférences des systèmes experts, sur les appareils destinés à créer des systèmes experts et sur les appareils et procédés pour créer une base de connaissances de type définitionnel. Les systèmes experts sont apparus dans le commerce au cours des dernières années. Un système expert est un système qui applique l'information dans un domaine d'expertise particulier de la méme façon que le ferait un expert humain dans ce domaine. De plus, les systèmes experts ressemblent aux experts humains en ce qu'ils sont capables de s'expliquer, jusqu'à un certain point. Suivant sa complexité, un système expert peut expliquer pourquoi il est arrivé à une conclusion donnée, expliquer pourquoi il souhaite un élément d'information donné et il peut permettre à l'utilisateur de changer la valeur d'un élément d'information donné et de voir comment cela affecte le résultat.On a construit des systèmes experts qui assurent des tâches telles que configurer de grands systèmes de calculs, poser un diagnostic en matière d'infection bactérienne et diagnostiquer pourquoi un trépan de forage pétrolier s'est coincé en proposant un remède. Les systèmes experts de l'art antérieur sont généralement basés sur des règles, c'est-à-dire qu'ils fonctionnent en appliquant des règles, obtenues en questionnant un expert au sujet de son expérience, à des faits fournis par l'utilisateur des systèmes experts. Les règles sont généralement de la forme si A, alors B. Dans une telle règle, A est appelé le prédicat pour B qui est la conclusion. Si A est vrai, alors on peut en inférer que la conclusion est vraie. Par exemple, une règle dans un système de diagnostic médical peut être isì le patient a la fièvre et le nez qui coule, il peut avoir un rhume". Suivant cette règle, si les symptômes sont la fièvre et un nez qui coule, une inférence possible est le rhume. La figure 1 est un synoptique d'un système expert 101 de l'art antérieur basé sur des règles. Le système 101 a trois composants, un processeur de commande tCP) 103, un moteur d'inférences de règles (RIE) 105 et une mémoire de règles (RS) 107. RS 107 contient les règles 109 pour le domaine dans lequel le système est expert. RIE 105 reçoit les données du problème de l'utilisateur, applique les règles contenues dans RS 107 aux données et fournit à l'utilisateur le résultat de son application des règles aux données du problème. CP 103 commande RIE 105 au moyen de commandes de moteur d'inférences (IEC). CP 103 fournit les commandes a partir d'une entrée de commande alimentée par l'utilisateur. Pour poursuivre l'exemple ci-dessus du rhume, une personne utilisant un système expert de diagnostic médical peut introduire dans le processeur CP la commande quelle maladie ?". CP 103 va alors fournir une commande de moteur d'inférences à RIE 105 qui déterminera que ses règles pour les maladies exigent des symptômes. RIE 10S demandera alors les données du problème à l'utilisateur, peut-être en demandant "quels symptômes ?". L'utilisateur peut alors introduire les symptômes et RIE 105 pourra trouver#une règle 109 pour laquelle les symptômes sont le prédicat et renverra la conclusion de la règle en tant que donnée de résultat. Si par exemple les symptômes d'entrée sont fièvre et nez qui coule", le système expert 101 pourra conclure de la règle 109 citée cidessus que la maladie peut être le rhume.Naturellement, beaucoup d'autres indispositions ont ces symptômes et il y aura donc plus d'une règle 109 ayant les symptômes en tant que partie de son prédicat. Suivant son degré de raffinement, le système expert 101 pourra simplement envoyer, en tant que résultat, les conclusions de toutes les règles 109 ayant le symptôme en tant que partie du prédicat ou demandera à l'utilisateur d'indiquer davantage de symptômes et utilisera les nouveaux symptômes pour réduire le nombre de règles applicables. Dans tous les cas, le système expert 101 peut, sur demande de l'utilisateur, indiquer quelles règles 109 il a utilisées pour atteindre sa conclusion. Les premiers systèmes experts 101 étaient faits à la demande et exigaient une coopération longue et étroite entre un expert, un ingénieur dans le domaine de la connaissance quelquefois appelé "cogniticien', et des concepteurs de systèmes informatiques. L'expert fournissait son expérience ;l'ingénieur dans le domaine de la connaissance ramenait l'expérience à des règles 109 et concevait RIE 105 et la représentation utilisée pour mémoriser les règles 109 dans RS 107. Les concepteurs de systèmes informatiques, finalement, écrivaient les programmes permettant de matérialiser la conception de l'ingénieur dans le domaine de la connaissance. Du fait du temps important de spécialiste requis pour réaliser à la demande les systèmes experts 101, ces systèmes étaient extrêmement codteux et cela a conduit les fabricants de systèmes experts 101 à réaliser des outils spéciaux, qu'on appelle souvent des coquilles de systèmes experts, pour réaliser les systèmes experts. La figure 1A est un synoptique de coquille de système expert 110 permettant de réaliser des experts basés sur des règles-. La figure 1A montre que la coquille de système expert a les composants de l'expert basé sur des règles de la figure 1 et un composant supplémentaire, le processeur de règles (RP) 111. Le processeur de règles 111 est utilisé pour produire les règles 109 à mémoriser dans un RS 107 qui est spécifique au système expert en cours de construction.On utilise RIE 105 dans la coquille de système expert 110 pour tester le système expert en cours de construction au fur et à mesure de son élaboration. Lorsqu'on a écrit toutes les règles 109 du système expert à réaliser et que le système a été entièrement vérifié, on donne accès à RIE 105 et RS 107 du nouveau système expert aux utilisateurs. L'utilité des coquilles de système expert 110 dépend considérablement du degré d'élaboration de RP 111. Dans certains systèmes, RP 111 exige que l'on introduise les règles 109 sous une forme spéciale. Ces systèmes exigent généralement un ingénieur de la connaissance ou cogniticien et ne peuvent pas être utilisés par l'expert lui-même. Dans d'autres systèmes, RP 111 construit ses règles à partir d'exemples fournis par l'expert et n'exige pas un cogniticien. Bien que les sytèmes experts 101 basés sur des règles deviennent progressivement plus puissants, plus utilisables et moins coûteux, ils ont des désavantages inhérents du fait qu'ils se fondent sur des règles. Pre mièrement, la plupart des experts ne pensent pas dans leur domaine d'expérience en termes de jeux de règles. De ce fait, un cogniticien ou un système qui construit des règles à partir d'exemples doit s'interposer entre l'expert et la coquille de système expert 110. Dans le premier cas, le coût du développement du système expert est accru ; dans le second cas, la coquille de système expert 110 est plus complexe qu'elle ne serait autrement et l'expert n'est toujours pas complètement isolé des règles, puisqu'il doit encore vérifier les règles produites par la coquille 110. Deuxièmement, puisque RS 107'est une collection de règles 109 créées indépendamment les unes des autres, il n'est pas garanti que la collection de règles 109 est complète ou ne contient pas de règles contradictoires. Si le jeu de règles 109 est incomplet, le système expert 101 peut ne fournir aucun résultat ou donner un résultat faux ; si le jeu de règles 109 comporte des règles contradictoires 109, il se peut encore que le système expert 101 ne donne pas de résultats ou donne un résultat qui dépend de l'algorithme de résolution des contradictions internes à RIE 105 plutôt que des règles. La capacité de fonctionner avec des jeux incomplets de règles 109 ou avec des règles contradictoires 109 fait partie de la puissance des systèmes basés sur des règles 101 et est nécessaire dans les situations où l'expert est incapable de ramener son domaine d'expérience à des principes clairs. Mais les systèmes experts sont utilisés dans de nombreuses situations où l'expert peut ramener son expérience à des principes clairs et, en ce cas, la capacité de fonctionner avec des jeux incomplets des règles 109 et des règles contradictoires 109 rend la détection des erreurs plus difficile et, lorsqu'il y a une erreur, rend le comportement du système 101 dépendant des algorithmes internes de RIE 105 plutôt que des règles. Troisièmement, il est difficile de modifier les systèmes experts 101 basés sur des règles. Le comportement d'un système expert basé sur des règles dépend de la totalité des règles et il est souvent difficile de déterminer quelles règles doivent être modifiées si on veut changer le comportement du système parce qu'il comporte des bogues ou parce que l'expert a changé d'avis sur la façon dont il traiterait un cas donné. Quatrièmement, la puissance et la complexité des systèmes experts basés sur des règles 101 n'est pas nécessaire dans beaucoup de situations où les systèmes experts sont utiles. De façon générale, cette puissance et cette complexité ne sont requises que lorsque l'expert ne peut pas entièrement définir son expérience. Mais, dans de nombreux cas où l'individu ordinaire a besoin d'être guidé par un expert, ce dernier peut résumer son expérience facilement et de façon complète. Dans de tels cas, il n'est pas nécessaire que les systèmes experts utiles et les coquilles de systèmes experts aient la complexité inhérente aux systèmes experts et aux coquilles de systèmes experts basés sur des règles. Un exemple d'une situation de ce genre est représenté par des formules complexes telles que les formules d'imposition. Bien souvent, un peu de jugement suffit pour remplir la formule, mais pourtant la formule est si compliquée que la plupart des gens ont besoin de l'aide d'un conseil fiscal. Des feuilles ont rendu facile le traitement des données nécessaires pour remplir une formule d'imposition et permettre à l'utilisateur de voir en quoi un changement apporté à une valeur affecte les autres, mais ces feuilles ne fournissent pas à lu- tilisateur le genre d'assistance raisonnée qui est possible à un système expert.Ce qu'il faut en conséquence --et ce que l'invention procure-- c'est d'une part une coquille de système expert plus facile à utiliser que celles représentatives des systèmes experts à base de règles et d'autre part des systèmes experts qui sont notablement plus simples que les systèmes experts à base de règles, mais n'en fournissent pas moins une assistance raisonnée dans des situations qui n'exigent pas toute la puissance des systèmes à base de règles. La présente invention concerne les systèmes de traitement de données numériques et plus particulièrement les systèmes experts et les coquilles de systèmes experts utilisés dans les systèmes de traitement de données numériques. Les systèmes experts suivant l'invention utilisent des définitions au lieu de règles. Un expert résume son domaine d'expérience sous forme d'un jeu de termes, avec un jeu correspondant de définitions hiérarchisées. La définition pour un terme peut comporter des termes définis à un niveau inférieur de la hiérarchie, des littéraux, des constantes, et des valeurs provenant de sources externes au système expert. Les décisions qu'atteindrait l'expert concernant un terme dans la hiérarchie sont exprimées en tant que valeur du terme. Les termes définis constituent la base de connaissances du système expert de l'invention.Le moteur d'inférences détermine quelle décision l'expert aurait prise en ce qui concerne un terme donné en calculant la valeur du terme à partir de sa définition. Si la définition met en oeuvre d'autres termes, la valeur de ces termes est calculée à partir de leur définition. Et, si la définition et la définition d'autres termes impl.i- quent des valeurs provenant de sources extérieures, ces valeurs sont obtenues au fur et à mesure qu'elles sont nécessaires pour calculer la valeur du terme donné. Si la source externe est un terminal, le système expert demande une valeur à la personne qui gère le terminal et cette personne, qui va introduire la valeur, peut demander pourquoi cette valeur est nécessaire. Le moteur d'inférences détermine, à partir de la définition, pourquoi la valeur est nécessaire et fournit l'information à la personne qui introduit la valeur. Une fois que le moteur d'inférences a déterminé quelle décision aurait prise l'expert, l'utilisateur du système expert peut demander au système expert pourquoi il est arrivé à cette conclusion. Le moteur d'inférences va de nouveau aller à la définition hiérarchique du terme et travaille sur la définition pour montrer comment il est arrivé au résultat. De plus l'utilisateur peut demander au système expert de partir d'une autre valeur pour un des termes utilisés dans la définition du terme au sujet duquel l'utilisateur a posé initialement une question. Le moteur d'inférences substitue alors la nouvelle valeur à l'ancienne et détermine de nouveau ce qu'est le résultat pour le terme que l'utilisateur a demandé à l'origine, montrant ainsi en quoi le changement de valeur de l'un des termes subordonnés a affecté la valeur du terme sur lequel l'interrogation a porté à l'origine. Les techniques utilisées dans le système expert de l'invention pour déterminer pourquoi le système expert a demandé une information d'entrée donnée, comment le système expert est arrivé à une conclusion, et pour changer la valeur d'un terme et voir le résultat sont toutes applicables non seulement dans les systèmes experts de la présente invention, mais aussi dans d'autres systèmes utilisant des jeux de termes définis de façon hiérarchisée. On crée les systèmes experts de la présente invention en utilisant une coquille de système expert également suivant l'invention. La coquille de système expert contient le moteur d'inférences et la base de connaissances de type "définitionnel" qu'on vient de décrire et contient de plus un processeur de définitions pour créer les définitions dans la base de connaissances définitionnelle. Pour utiliser la base de connaissances définitionnelle, l'utilisateur de la coquille (généralement l'expert) introduit une commande "définir" suivie par le terme qu'il souhaite définir. Le processeur de définitions demande alors une description du terme et l'expert décrit le terme. La description indique comment doit être déduite la valeur du terme et peut contenir d'autres termes, des constantes, ou une description de l'endroit où peut être obtenue une valeur externe. Si la description ne contient pas de termes supplémentaires non définis, le processeur de définitions crée la définition du terme à partir de la description. Si la description contient des termes supplémentaires non définis, le processeur de définitions demande une description de chacun des termes non définis et traite la description comme on vient de le décrire. Les itérations continuent jusqu'à ce que ne subsiste aucun terme non défini. Une fois qu'un terme est défini, le terme et sa définition s'incorporent à la base de connaissances définitionnelles. Le processeur de définitions permet de plus à l'expert de redéfinir des termes, d'enlever un terme et sa définition de la base de connaissances et de voir la définition d'un terme et des termes qui ont été introduits dans sa définition.Comme on le voit, la coquille de système expert selon l'invention permet à un expert de fournir l'information sous forme de définitions au lieu de règles, garantit qu'un jeu de définitions est cohérent, et permet de déterminer facilement de quels termes dépend un terme donné. La technique utilisée dans le processeur de définitions de la présente invention pour créer les définitions hiérarchisées peut être employée non seulement dans une coquille de système expert suivant la présente invention, mais également dans tout système qui crée des systèmes de définitions hiérarchisés. L'un des buts de l'invention est donc de fournir des systèmes experts et des coquilles de systèmes experts répondant mieux que ceux antérieurement connus aux exigences de la pratique ; l'invention vise notamment à fournir un système expert ayant une base de connaissances définitionnelle et un moteur d'inférences qui utilise la base de connaissances définitionnelles pour atteindre des conclusions. Un autre résultat également recherché par l'invention est l'obtention d'une coquille de système expert pour produire des systèmes experts ayant une base de connaissances définitionnelle. Un autre but encore est la réalisation d'appareils et de méthodes pour créer des jeux de termes ayant des définitions hiérarchisées. D'autres buts encore sont recherchés, notamment l'obtention d'appareils et de méthodes pour indiquer à l'utilisateur d'une base de connaissances ayant des définitions hiérarchisées comment une conclusion a été atteinte, pourquoi certaines informations ont été demandées et comment changera la conclusion si on affecte une valeur différente à un des termes ; enfin, l'invention vise à fournir des appareils et méthodes garantissant le caractère complet et non contradictoire de la base de connaissances d'un système expert. L'invention sera mieux comprise à la lecture de la description qui suit d'un premier mode de réalisation prototype donné à titre d'exemple non limitatif, en faisant référence aux annexes contenant le code LISP pour le premier mode de réalisation à avoir été réalisé et pour un second mode de réalisation.La description se réfère aux dessins, dans lequels - la figure 1, déjà mentionnée, est un synoptique de principe d'un système expert suivant l'art antérieur, - la figure IA est un synoptique de principe d'une co quille de système expert suivant l'art antérieur - la figure 2 est un synoptique de principe d'une co quille de système expert et d'un système expert sui vant un mode de réalisation de l'invention - la figure 3 est un diagramme de principe montrant une hiérarchie de définitions utilisables dans l'inven tion - la figure 4 est un diagramme des termes et des des criptions utilisés pour définir le mot "FRAUDE" - la figure 5 est un schéma montrant un environnement LISP - la figure 6 est une vue d'ensemble d'un premier mode de réalisation de l'invention, constituant un prototy pe - la figure 7 est un diagramme de la partie TDEF 617 du premier mode de réalisation prototype - la figure 8 est un synoptique détaillé de la fonction DEFINIR du premier mode de réalisation prototype - la figure 9 est un synoptique montrant certains per fectionnements réalisés dans le second mode de réali sation prototype. Pour faciliter la référence aux figures, les nombres de références utilisés dans la description du mode de réalisation avantageux ont trois chiffres. Les deux chiffres de poids faible sont des nombres de références dans un dessin ; le chiffre de poids fort est le numéro de la figure. Par exemple le numéro de référence 901 concerne un élément que l'on trouve sur la figure 9. La description qui va suivre d'un mode de réalisation avantageux donne d'abord une constitution de principe du système expert et de la coquille du système expert de l'invention, avant de donner une description détaillée d'un premier mode de réalisation prototype de l'invention. Puis certains perfectionnements apportés, dans une seconde réalisation prototype, seront discutés. L'annexe A est constituée par le programme du premier prototype. L'annexe B est une copie du programme pour le second prototype. 1/ Constitution d'ensemble de la coquille de système exDert et du système expert de l'invention suivant la figure 2. La figure 2 est un synoptique de principe d'une coquille de système expert 201 et d'un système expert 202 suivant l'invention. La coquille de système expert 201 a quatre composants :le processeur de commande (CP) 203, le processeur de définitions (DP) 207, la mémoire de termes (TS) 215 et le moteur d'inférences de terme (TIE) 219. Les systèmes experts 202 produits en utilisant la coquille de système expert 201 comportent tous ces composants sauf DP 207. Comme on le décrira davantage plus loin, CP 203 reçoit des commandes provenant des utilisateurs de la coquille 201 et du système 202 et les fournit aux autres composants ; DP 207 traite les définitions ; TS 215 mémorise les termes définis et leur définition ; TIE 219 utilise la définition d'un terme provenant de TS 215 pour évaluer le terme et effectuer les opérations supplémentaires sur lui. CP 203 convertit les commandes provenant des utilisateurs de la coquille 201 et du système expert 202 en des commandes (DPCs) 204 destinées au processeur de définitions et des commandes (IECs) 217 destinées au moteur d'inférences. Dans le prototype, DPCs 204 permet à l'utilisateur de la coquille 201 de définir un terme, de - redéfinir un terme, de rendre non défini un terme précédemment défini, de prendre connaissance de la définition d'un terme, de sauvegarder un jeu de définitions et de restaurer un jeu de définitions.IECs 217 permet à l'utilisateur de la coquille 201 ou d'un système expert 202 produit par la coquille 201 de déterminer la valeur actuelle d'un terme, de déterminer comment le système expert 202 a obtenu cette valeur, de faire prendre au système expert 202 une valeur différente pour un terme et de voir en quoi cela affecte la valeur des autres termes, de rétablir la valeur de l'un quelconque ou de tous les termes et (lorsque la détermination de la valeur actuelle d'un terme exige de fournir une valeur qui se trouve en dehors de la définition) de demander au système expert 202 pourquoi cette valeur est nécessaire. Le processeur de définitions 207 définit TERMs 206. Lorsqu'un TERM 206 a été entièrement défini, TS 215 contient un terme défini (DTERM) 211 correspondant au TERM 206 et une définition (DEF) 213 pour DTERM 211. TERM 206 peut être reçu soit dans un DPC 204, soit à partir d'une description (DESC) 205 DP 207 demandée à l'utilisateur de la coquille de système expert 201 en réponse à un TERM 206. DP 207 détermine d'abord s'il y a déjà un DTERM 211 correspondant au TERM 206, c'est-à- dire si TERM 206 est déjà défini. S'il l'est, DP 207 retrouve DTERM 211 qui correspond à TERM 206 dans TS 215 et le prépare pour qu'il soit utilisé dans la définition que DP 207 constitue alors. S'il n'est pas déjà défini, DP 207 émet une demande de description (DESC REQ) vers l'utilisateur de la coquille 201. L'utilisateur fournit une description (DESC) 205 de TERM 206 à DP 207. Il en résulte un DEF 213 pour TERM 206 utilisant l'information dans DESC 205.Comme on le décrira en détail plus loin, DESC 205 est écrit dans un langage de définition qui permet à l'utilisateur de spécifier d'autres TERMs 206, des constantes et de spécifier qu'une valeur doit être obtenue à partir d'un système expert externe 206 pour lequel est prévue la définition. La définition spécifie de plus des opérations à effectuer sur les valeurs représentées par TERM 206, des constantes et des valeurs externes dans la définition. Si DESC 205 contient des TERMs 206, DP 207 traite ces TERMs 206 de la façon qu'on vient de décrire. S'il y a un DTERM 211 correspondant à TERM 206, on utilise DTERM 211 dans DEF 213 en cours d'élaboration. S'il n'y en a pas, DP 207 demande un DESC 205 définissant le TERM 206 et le traite comme on vient de le dire.Le fonctionnement répétitif de DP 207 est représenté en figure 2 par la flèche 208 qui montre comment UDESC 210, qui contient au moins un TERM 206 est de nouveau traité par DP 207. Le traitement continue de cette façon jusqu'à ce qu'aient été définis l'original DESC 205 et tous les TERMs 206 dans tous les DESCs 205 produits pour les TERMs 206 requis pour définir les TERMs 206 dans le DESC 205 d'origine. Autrement dit, il est poursuivi jusqu'à ce que tous les TERMs 206 aient des DTERMs 211 et des DEFs 213 correspondants dans TS 215. Les DTERMs 211 et DEFs 213 provenant du fonctionnement de DP 207 sont placés dans TS 215. DTERM 211 peut être placé dans TS 215 par nom. DEF 213 correspondant à DTERM 211 est associé à DTERM 211 et peut donc être utilisé une fois DTERM 211 localisé. Une version modifiée de DESC 205, dont on déduit DEF 213, est incluse dans DEF 213. Les opérations restantes spécifiées par DPCs 204 sont effectuées comme suit dans DP 207 et TS 215 : lorsqu'un TERM 206 n'est pas défini, DP 207 retire les DTERM 211 et DEF 213 correspondants de TS 215 ; lorsqu'un TERM 206 est redéfini, DP 207 retire le DEF 213 correspondant au TERM 206 et demande un nouveau DESC 205 pour le TERM 206. Ce DESC 205 est alors traité comme on vient de le dire. Lorsqu'un DPC demande qu'une définition d'un TERM 206 soit affichée, DP 207 visualise le DESC 205 qui a été incorporé dans le DEF 213 pour le DTERM 211 correspondant à TERM 206. Finalement, l'opération de sauvegarde préserve les contenus d'un TS 215 donné dans un fichier pour utilisation ultérieure. L'opération de restauration ramène le contenu du fichier à TS 215. Le moteur d'inférences de terme (TIE) 219 effectue les opérations en utilisant les DTERMs 211 et DEFs 213 dans TS 215. La première opération est l'opération "quoi" qui détermine la valeur d'un DTERM 211 à partir de sa définition et de valeurs externes fournies par l'utilisateur du système expert 202 ou de la coquille 201. TIE 219 effectue l'opération "quoi" en réponse à un IEC 217 qui spécifie l'opération et un TERM 206 provenant de CP 203. TIE 219 utilise DTERM 211 qui correspond au TERM 206 pour localiser le DEF 213 de DTERM 211 dans TS 215. Il effectue alors les opérations spécifiées dans DEF 213 en utilisant les DTERMs 211, les constantes et les valeurs externes spécifiées dans la définition puis il renvoie le résultat TRES 227 à l'utilisateur du système 202 ou de la coquille 201. Les constantes dans DEF 213 sont disponibles pour être immédiatement utilisées dans le calcul de la valeur de DTERM 211 ; dans le cas des valeurs externes, DTERM 211 contient une description indiquant comment on doit obtenir la valeur externe. TIE 219 utilise la description pour faire une demande de valeur externe (EXVAL REQ) à la source de valeur externe (EXVAL) 22#5 et reçoit EXVAL 225 de la source. Dans le cas le plus simple, la source est un terminal mis en oeuvre par l'utilisateur du système 202 ou de la coquille 201 et l'information est obtenue en affichant une question sur l'écran du terminal de l'utilisateur et en recueillant l'indication introduite. Dans des cas plus complexes, la source peut être un fichier ou une base de données. Dans le cas d'un DTERM 211 supplémentaire dans DEF 213, il faut pour évaluer le DTERM 211 que TIE 219 obtienne le DEF 213 du DTERM 211 supplémentaire et calcule cette valeur de DTERM 211 à partir de son DEF 213. En le faisant, il évalue tous les DTERMs 211 dans ce DEF 213 et continue ainsi jusqu'à ce qu'aient été évalués tous les DTERMs 211 dont dépend le DTERM 211 dont la valeur est recherchée au cours de l'opération "quoi". Les constantes, les valeurs externes et les DTERMs 211 spécifiés dans chaque DEF 213 sont traités comme on vient de le décrire. Lorsqu'on a évalué tous les DEFs 213, la valeur de DTERM 211 dont on recherche la valeur est calculée et ramenée en tant que TRES 227. Dans un mode avantageux de réalisation, les EXVALs 225 qu'on obtient au cours de l'évaluation d'un DEF 213 donné deviennent parties constitutives de cette définition de DEF 213. Si donc l'opération "quoi" est effectuée une seconde fois sur DTERM 211, TIE 219 ne produira pas de EXVAL REQs mais utilisera simplement les EXVALs 225 mémorisés pour recalculer la valeur de DTERM 211. Un mode de réalisation avantageux a deux IECs 217 pour modifier les EXVALs mémorisés 225. Le premier, lorsqu'il est remis à zéro, retire de DEFs 213 tous les EXVALs 225 mémorisés pour les DTERMs 211 spécifiés dans la commande de remise à zéro. Ainsi, lorsque l'opération est de nouveau effectuée, on obtiendra un nouveau EXVAL 225 comme on l'a expliqué plus haut.Le second, "suppo- se", permet de fournir un nouveau EXVAL 225 à DEF 213 pour le TERM 206 spécifié dans la commande "suppose". Lorsqu'on effectue un squoig nouveau dans ce cas, c'est le EXVAL 225 spécifié qui est utilisé pour déduire la valeur de DTERM 211 pour laquelle l'opération "quoi" est effectuée. Si un utilisateur de la coquille 201 ou du système 202 souhaite savoir pourquoi TIE 219 demande un EXVAL 225 donné, il peut répondre à un EXVAL REQ par la commande pour l'opération '^pourquoi'. En réponse à cet ordre, TIE 219 fournit DESC 205 à partir de DEF 213 pour le DTERM 211 dont la valeur était en cours de calcul lorsqu'il y a eu demande de EXVAL 225. L'utilisateur peut déterminer à partir de DESC 205 pourquoi le EXVAL 225 donné est important. L'utilisateur peut de plus utiliser "pourquoi" pour demander pourquoi est requis l'un quelconque des DTERMs 211 dont les valeurs sont demandées pour obtenir la valeur du DTERM 211 dont l'évaluation s'est traduite par le EXVAL REQ. TIE 219 fournit alors les DESCs 205 pour ces DTERMs 211. 3/ Hiérarchie des définitions : figure 3. En définissant un terme quelconque, DP 207 fournit une hiérarchie de DEFs 213. Si DEF 213 pour le terme en cours de définition ne contient lui-meme pas de terme, la hiérarchie n'a qu'un seul niveau. Si DEF 213 pour le terme contient un terme supplémentaire, ce terme doit être défini avant que le premier terme ne puisse être défini. Le premier terme est le terme de tête d'une hiérarchie à deux niveaux. Si l'un quelconque des DEFs 213 au second niveau contient un terme supplémentaire, ce terme doit être défini et la hiérarchie a trois niveaux. La hiérarchie continue ainsi à s'enfoncer jusqu'à ce qu'aucun des DEFs 213 pour les termes dont dépendent d'autres termes ne contienne un terme supplémentaire. Elle s'arrête donc lorsque le terme est défini uniquement en fonction d'opérations sur des constantes ou des valeurs externes. L'explication ci-dessus montre qu' un DEF 213 est toujours le DEF 213 de tête dans la hiérarchie des DEFs 213 requis pour définir le DTERM 211 que définit DEF 213. Mais il peut en même temps être à un niveau plus bas dans la hiérarchie de DEFs 213 requise pour définir un autre DTERM 211. La figure 3 illustre le concept d'une telle hiérarchie de DEFs 213. La hiérarchie 305 contient les DEFs 213 (A) à 213 (E) correspondant aux DTERMs 211 (A) à 211 (E) appartenant au jeu de DTERMs 311. La définition de tête dans la hiérarchie 305 est DEF 213 (A) correspondant à DTERM 211 (A). La notation OP (B,C) dans DEF 213 (A) indique que DEF 213 (A) spécifie que la valeur de DTERM 211 (A) est obtenue en effectuant une opération sur les valeurs de DTERMs 211 (B) et (C). 'De façon similaire, 213 (B) spécifie que la valeur de DTERM 211 (B) est obtenue en effectuant une opération sur les valeurs de DTERMs 211 (D) et (E).En conséquence la hiérarchie 305 pour DEF 213 (A) a trois niveaux : le niveau 1 ou 307, contenant uniquement DEF 213 (A) ; le niveau 2 ou 309, contenant DEF 213 (B) et (C) ; et le niveau 3 ou 311, contenant DEFs 213 (D) et (E). Les DEFs 213 (C), 213 (D) et 213 (E) ne définissent pas les DTERMs 211 (C), (D) et (E) avec d'autres DTERMs 211 et ne peuvent pas donner naissance à des niveaux plus bas. De tels DEFs 211 sont appelés des définitions terminales 312. Pour construire la hiérarchie 305, DP 207 commence par TERM 206 (A) correspondant à DTERM 211 (A) qu'il reçoit d'un DESC 205 à partir duquel se construit un DEF 213 à un niveau plus haut ou à partir d'un DPC 204 de définition ou redéfinition. DP 207 demande alors un DESC 205 pour DTERM 211 (A). DESC 205 définit DTERM 211 (A) sous forme d'une opération sur deux TERMs 206 (B) et (C). Si DEF 213 (B) et DEF 213 (C) existent déjà, DP 207 peut élaborer DEF 213 (A) et n'a pas besoin d'aller plus loin. Si l'un de DEF 213 (B) et DEF 213 (C) n'existe pas, DP 207 doit élaborer ces DEFs 213 avant qu'il ne puisse constituer DEF 213 (A) DP 207 demande alors un DESC 205 pour TERM 206 (B) et pour TERM 206 (C). Dans le cas de TERM 206 (C), DESC 205 définit TERM 206 (C) uniquement en fonction de EXVAL (C) 225 et on peut immédiatement construire DEF 213 (C).Dans le cas de TERM 206 (B), DESC 205 définit TERM 206 (B) en fonction de deux termes additionnels 206 (D) et (E). En conséquence DP 207 doit descendre d'un niveau encore et produire les DEFs 213 pour ces TERMs 206. DP 207 demande encore les DESC 205 pour ces TERMs. Dans les deux cas, les TERMs 206 sont définis en fonction des EXVALs 225 et en conséquence on peut construire les deux DEFs 213. On a maintenant élaboré les DEFs 213 pour tous les TERMs 206 impliqués dans la définition de TERM 206 (A). Les DTERMs 211 (B) à (E) correspondant aux TERMs 206 (B) à (E) existent, on peut construire DEF 213 (A) et TERM 206 (A) a maintenant un DTERM 211 (A) qui lui correspond. Puisque la hiérarchie 305 est construite de fa çon répétitive en commençant par le DEF 213 de tête dans la hiérarchie 305 et qu'on ne définit que les TERMs 206 qui n'ont pas de DTERM 211 correspondant, aucun DTERM 211 ne peut avoir deux DEFs 213 et aucun DEF 213 dans la hiérarchie 305 ne peut se reporter à un DEF 213 qui est au-dessus de lui dans la hiérarchie 305. En conséquence les DEFs 213 dans la hiérarchie 305 sont nécessairement complets et cohérents par rapport à DEF 213 (A) dans la hiérarchie 305 et au DEF 213 de tête dans toute hiérarchie qui incorpore DEF 213 (A). 4/ Le langage de descriPtion Dour les descrin- tions 205. Comme on l'a indiqué plus haut, DEP 207 élabore les DEFs 213 à partir de descriptions (DESCs) 205. Dans le prototype, les DESCs 205 sont élaborés en utilisant un langage de description. Le langage de description comporte des termes prédéfinis qui spécifient des opérations sur des termes, une présentation de cas et des opérations pour obtenir des valeurs externes. Les opérations comportent des opérations booléennes, des opérations arithmétiques et une concaténation de texte. La présentation de cas est une liste de paires de valeur - expression booléenne de la forme (booléenexp~l) valeur~1 ... (booléen~expg) valeur~n (OTHERWISE) autrement~valeur. Lorsqu'on évalue un DEF 213 qui contient une présentation de cas, les expressions booléennes 1 à n sont évaluées dans cet ordre jusqu à ce que l'une d'elles soit vraie. La valeur correspondant à l'expression booléenne vraie devient la valeur de DTERM 211 défini par DEF 213. Si aucune des expressions booléennes n'est vraie, la valeur correspondant à AUTREMENT (OTHERWISE) devient la valeur de DTERM 211. Le langage de description du prototype permet de spécifier deux classes d'opérations pour obtenir des valeurs externes. La première classe, constituée par les opérations ASK (opérations de demande) permet d'obtenir des valeurs à partir du terminal de l'utilisateur du système expert 202. Cette première classe est utilisée pour obtenir des valeurs externes à partir du terminal. La seconde classe, constituée par les opérations RECORD, est utilisée pour obtenir des valeurs externes à partir d'un système de base de données. Dans les deux cas, les valeurs externes peuvent être des nombres, des chaines de textes, ou des valeurs booléennes ; ou elles peuvent sélectionner un terme d'un jeu de termes littéraux constituant une alternative, c'est-à-dire de termes qui ne représentent qu'eux-mêmes. ASK pour obtenir une valeur numérique a la forme ASK NUMBER "prompt~string" c'est-à-dire DEMANDER NOMBRE "chaine~prompte". Lorsque le DEF 213 contenant une telle opération ASK, c'est-à-dire demander, est évalué, DP 207 envoie la chaîne prompte (prompt string) au terminal et attend que ce dernier lui envoie un nombre introduit à l'aide du terminal. Ce nombre est alors utilisé dans l'évaluation de DEF 213. La chaîne prompte peut elle-même contenir un terme antérieurement défini et en conséquence la réponse de l'utilisateur peut être rendue dépendante de la valeur d'un terme précédemment évalué. Les opérations ASK pour des valeurs booléennes et de chaînes de texte sont spécifiées de la même façon que l'opération ASK pour des valeurs numériques, sauf que NUMBER, c'est-à-dire nombre, dans l'opération ci-dessus est remplacé par OUI-NON lorsqu'on cherche une valeur booléenne et TEXT lorsqu'on cherche une chaîne de texte. ASK, qui sélectionne un terme littéral parmi plusieurs, a la forme ASK CHOICE "promptstring" (literal terml . . literal~term~n) c'est-à-dire DEMANDER CHOIX 'chaine~prompte". Lors de l'évaluation du DEF 213 contenant ASK CHOICE, la chaîne prompte est émise et il est demandé à l'utilisateur de sélectionner un des termes littéraux. Ce terme littéral peut alors être utilisé dans DEF 213 pour calculer la valeur de DTERM 211 défini par DEF 213. Les opérations RECORD sont sensiblement analogues aux opérations ASK, si ce n'est que l'opération RECORD indique comment la valeur externe doit être localisée dans la base de données et la base de données fournit la valeur située à l'emplacement indiqué. 5/ Fonctionnement de la coauille 201 et du système 202 : figure 4. On expliquera maintenant en détail le fonction nement de la coquille 201 en utilisant une-hiérarchie de définitions à partir de laquelle on peut déterminer si quelqu'un a été victime d'une fraude, au sens anglosaxon du terme. La définition légale de la fraude exige qu'une partie ait sciemment fait une présentation de fait erronée à l'autre partie et que cette autre partie ait subi un dommage du fait qu'elle s'est fiée à cette présentation erronée. La figure 4 montre une hiérarchie de DTERMs 211 qui correspond à cette définition légale. La création de la hiérarchie de la figure 4 commence lorsque CP 203 reçoit l'instruction DEFINE FRAUD. c'est-à-dire définir la fraude. CP 203 transmet alors TERM 206 FRAUD à DP 207 qui demande un DESC 206 à l'expert qui donne la définition. L'expert fournit le DESC 206 KNOWINGMISREPRESENTATION AND DETRIMENTAL RELIANCE c'est-à-dire présentation~sciemment~erronée et confiance~préjudiciable. Ce DESC 206 contient deux TERMs 206 supplémentaires et l'opérateur booléen ET. La valeur de FRAUD est donc à calculer en obtenant les valeurs des DTERMs 211 correspondant aux TERMs 206 et en effectuant l'opération ET sur eux. Puisque les TERMs 206 supplémentaires ne sont pas définis, DP 207 demande leurs définitions. L'expert fournit le DESC 205 MISREPRESENTATION AND DEFENDANT~KNEW~MISREPRESENTATION c'est-à-dire affirmation~erronée, et le~défendeur~ savait~erronée pour définir KNOWING~MISREPRESENTATION et le DESC 205 RELIANCE~BY PLAINTIFF AND LOSS~BY~PLAINTIFF c'est-à-dire confiance~du#plaignant et dommage~subi~ parglaignant pour définir DETRIMENTAL~RELIANCE. Ces TERMs 206 supplémentaires sont encore non définis. DP 207 demande leurs définitions et l'expert fournit les définitions, données sur la figure 4 sous forme anglaise et sous forme d'une équivalence en fran çais. Bien que DP 207 puisse demander les définitions dans un ordre quelconque, une mise en oeuvre préférée définit tous les TERMs 206 nécessaires pour définir un TERM 206 donné non défini avant de passer au TERM 206 suivant non défini. Dans l'exemple ci-dessus, les DESCs 205 pour AFFIRMATION ERRONEE, DEFENDEtYRS~SAVAIENT~AFFIRMATION ERRONEE, CONFIANCE DUPLAIGNANT, et DOMMAGE~SUBI~PAR~ PLAIGNANT contiennent tous uniquement les DTERMs 211 définis par le système utilisé dans l'opération ASK YES-NO, c'est-à-dire "demander oui-non". DP 207 est maintenant capable de produire des DEFs 213 pour tous les termes de la hiérarchie. Les valeurs de tous les DTERMs 211 dans la hiérarchie dépendent finalement des valeurs que l'opération ASK YES-NO (demander oui-non) demande à l'utilisateur du système expert 202 qui emploie la définition FRAUD et dépendent donc finalement de ce que dit le plaignant au sujet de ce qui lui est arrivé. L'utilisation de la hiérarchie de définition FRAUD dans le système expert 202 commence avec l'instruction WHAT FRAUD (quelle fraude) que l'utilisateur du système expert 202 introduit dans CP 203. CP 203 fournit WHAT FRAUD IEC 217 pour le TIE 219. TIE 219 détermine alors la valeur de FRAUD en évaluant son DEF 213. Pour le faire, il doit évaluer les DEFs 213 pour d'autres DTERMs 211 dans la hiérarchie, en commençant par KNOWING~MISREPRESENTATION L'évaluation de KNOWING MISREPRESENTATION exige l'évaluation de MISREPRESENTATION. L'évaluation de ce DTERM 211 provoque l'exécution de l'opération WHAT YES-NO (quoi oui-non) dans son DEF 213.TIE 219 fournit alors la chaîne prompte "Vous a-t-il dit quelque chose qui n'était pas vrai ?" Si l'utilisateur répond "non", MISREPRESENTATION est erroné, KNOWING MISREPRESENTATION est erroné, et FRAUD est erroné, de sorte que TIE 219 renvoie TRES 227 à l u- tilisateur pour indiquer qu il n'y a pas fraude. Si l'utilisateur répond 'oui", TIE 219 évalue DEFENDANT~KNEW~MISREPRESENTATION, ce qui provoque de nouveau une question posée à l'utilisateur. Suivant la réponse à cette question, l'évaluation se poursuit ou s'arrête. TIE 219 opère de la façon ci-dessus jusqu à ce qu'il ait calculé une valeur pour FRAUD. Comme on l'a indiqué plus haut, l'utilisateur du système expert 202 peut utiliser l'instruction d'utilisateur HOW (comment) pour déterminer comment le système expert 202 est arrivé à sa valeur pour FRAUD. Si on suppose que l'utilisateur a répondu "non", lorsqu'il lui a été demandé vous a-t-il dit quelque chose qui n'était pas vrai (dans la définition de MISREPRESENTATION), TIE 219 dans le prototype répondra à HOW FRAUD (comment fraude) en émettant en sortie FRAUD est défini comme étant (KNOWINGMISREPRESENTATION AND DETRIMENTAL~RELIANCE) où (KNOWING REPRESENTATION) est égal à FALSE c'est-à-dire FRAUD est défini comme étant (présenta tion sciemment erronée et confiance préjudiciable), où (présentation sciemment erronée) est égal à FAUX. Comme on l'a mentionné plus haut, DP 207 place DESC 205 pour un DTERM 211 dans le DEF 213 du DTERM 211 et TIE 219 mémorise également les valeurs externes qu'il reçoit pour évaluer le DEF 213 d'un DTERM 211 dans DEF 213. Lorsqu il exécute l'opération HOW (comment), tout d'abord TIE 219 retrouve et émet en sortie DESC 205 à partir de DEF 213 pour le DTERM 211 concerné par la demande, puis il évalue les DTERMs 211 dans DEF 213, comme cela est requis pour obtenir la valeur du DTERM 211 sur lequel porte la question. Les DTERMs 211 sont alors émis en sortie avec leur valeur. Si un utilisateur souhaite davantage d'informations, il lui suffit de répéter l'opération HOW sur les autres DTERMs 211 fournis en sortie dans l'opération HOW. Comme on l'a également mentionné plus haut, l'utilisateur peut répondre à une demande de valeur externe par l'instruction WHY (pourquoi) au lieu de donner une valeur. Si un utilisateur répond, dans le cas de l'exem- ple FRAUD, par WHY lorsque TIE 219 demande Kvous a-t-il dit quelque chose qui n'était pas vrai", TIE 219 répond par MISREPRESENTATION est nécessaire pour déterminer la valeur de KNOWINGMISREPRESENTATION, qui est défini comme MISREPRESENTATION ET SUBJECT~KNEW~ MISREPRESENTATION et répète la question. L'information utilisée pour répondre à l'instruction WHY (pourquoi) provient encore des DESCs 205 mémorisés dans les DEFs 213 dans la hiérarchie utilisée pour définir FRAUD. Si l'utilisateur souhaite en connaître davantage à ce point, il peut appliquer HOW aux DTERMs 211 mentionnés 'dans la réponse à l'instruction WHY. 6/ L'environnement LISP des modes de réalisation DrototvDes : figure 5. Après avoir ainsi donné une vue générale de la structure et du fonctionnement de la coquille 201 et du système 202, on donnera une description détaillée de la mise en oeuvre du premier prototype. Les premier et second prototypes sont implémentés en langage de programmation LISP et exécutés dans l'environnement LISP. Le langage de programmation et l'environnement LISP sont fréquemment utilisés pour implémenter les systèmes experts prototypes ou en production et sont bien connus dans le domaine des systèmes experts. Le langage LISP spécifique utilisé pour les prototypes est COMMON LISP, qui est décrit dans Guy L. Steele, Jr., COMMON LISP, the Lanauaae, Digital Press, 1984. On ne décrira ici l'environnement et le langage LISP que dans la mesure nécessaire pour une compréhension claire du mode de fonctionnement des prototypes. Le langage LISP diffère des langages tels que FORTRAN ou PASCAL en ce qu'il est essentiellement concerné par le traitement de symboles, au lieu de traiter des données représentées dans un programme par des symboles. Les composants fondamentaux d'un programme LISP sont des atomes. Un atome peut être un symbole, par exemple ABC, ou une constante. Les composants sont organisés en programmes au moyen de listes qui peuvent n'avoir aucun membre ou avoir des membres incluant des atomes et d'autres listes. Une liste est définie en mettant ses membres entre parenthèses : (ABC) est une liste à un membre, le symbole ABC. Les fonctions apparaissent en LISP en tant que listes dans lesquelles le premier symbole de la liste représente la fonction et les autres atomes représentent les arguments de la fonction.Par exemple, la fonction addition est représentée en LISP par le symbole +, et la liste (+ 2 3) indique que l'opération + doit être appliquée aux atomes 2 et 3. Tout atome ou toute liste qui a une valeur lorsqu'elle est évaluée par un interpréteur LISP est appelée une forme, en anglais form. 5 et (+ 2 3) sont des formes et si le symbole ABC a une valeur, c'est une forme. Les fonctions sont définies en LISP au moyen de la fonction DEFUN, dans laquelle les éléments restants de la liste définissent le nom de la fonction, ses arguments, et la valeur qu'elle renvoie. Par exemple, (defun five () 5) définit une fonction qui ne prend pas d'argument et renvoie toujours la valeur 5. Parmi les choses que peuvent faire les programmes LISP avec des symboles et des listes, il y a leur génération. Puisqu'une définition de fonction n'est qu'un genre de liste, le programme LISP peut fournir un symbole à DEFUN comme nom du nouveau symbole créé par DEFUN et utiliser ensuite le symbole pour exécuter la fonction qui vient d'être créée. Les symboles peuvent se représenter eux-mêmes en tant que symboles ou valeurs. Lorsqu'un symbole se représente en tant que symbole dans une liste LISP, il est précédé par l'indication '. Dans le cas de symboles représentant des fonctions, la valeur du symbole est la fonction. Mais si la fonction est placée dans une liste avec ses arguments et la liste évaluée, le résultat est la valeur de l'exécution de la fonction. Ainsi, 'five, c'est-à-dire cinq1 représente le symbole five, alors que five représente la fonction définie par DEFUN ci-dessus et (five) représente la valeur d'une exécution de la fonction five, c'est-à-dire 5. Les programmes LISP sont écrits et exécutés dans un environnement LISP. Celui qui a été utilisé pour les prototypes a été fabriqué par Gold Hill Computers, Inc. pour l'Ordinateur Professionel réalisé par Wang Laboratories, Inc. La figure 5 est un synoptique de principe d'un environnement LISP typique 501. L'environnement 501 a deux composants principaux, l'interpréteur LISP 503, qui évalue des formes LISP et l'espace symbole LISP 505, qui mémorise les symboles LISP (SYM 501) et leurs définitions (SYMDEF 509). DEFUN et certaines autres fonctions LISP créent et définissent de nouveaux symboles LISP ou redéfinissent des symboles LISP préexistants lorsqu'ils sont évalués. En conséquence, l'in- terpréteur LISP 503 peut être regardé non seulement comme un évaluateur de symboles, mais aussi comme un créateur, un définisseur et un redéfinisseur de symboles. Le fonctionnement de l'environnement LISP 501 est le suivant : lorsqu'un utilisateur de l'environnement LISP 501 frappe une liste contenant une forme comme (five), l'interpréteur LISP 503 évalue la forme en localisant le symbole five dans l'espace symbole 505, en déterminant ce qu'est son SYMDEF 509 et en interprétant alors SYMDEF 509 pour calculer la valeur de five. Dans ce cas, SYMDEF 509 est le code pour la fonction five qui a été créé par évaluation de l'expression DEFUN, et son interprétation produit la valeur 5, que l'interpréteur retourne à l'utilisateur en tant que valeur de (five). Comme l'interpréteur LISP 503 est capable de créer des SYMs 507 et leurs SYMDEFs 509 correspondants, de les mémoriser dans l'espace symbole 505 et de les localiser dans l'espace symbole 505, l'environnement LISP 501 accomplit automatiquement des opérations qui sont difficiles à mettre en oeuvre dans d'autre langages et qui sont essentielles pour le fonctionnement des coquilles de systèmes experts et des systèmes experts. Pour cette raison, les environnements LISP 501 sont avantageux pour la réalisation de systèmes experts prototypes et de coquilles de systèmes experts. Comme le montrera la discussion qui suit, les prototypes de l'invention utilisent pleinement les opérations de création, de définition et de localisation de symboles. 7/ Vue d'ensemble du premier mode de réalisation prototYPe : figure 6. Dans le premier prototype, les composants de la coquille de système expert 201 et du système expert 202 sont implémentés au moyen de fonctions LISP. Le code pour ces fonctions est contenu dans l'appendice 1. La figure 6 donne une vue d'ensemble de ce code et fait correspondre les fonctions LISP du premier prototype aux composants de la figure 2 et aux entrées et sorties de ces composants. Les fonctions LISP constituant CP 203 sont contenues dans le cadre en tirets portant cette légende ; les fonctions constituant DP 207 sont dans le cadre en tirets avec cette légende ; et ceux constituant TIE 219 sont dans le cadre en tirets avec cette légende. TS 215 est réalisé dans le premier prototype par l'espace symbole LISP 505, qui mémorise les symboles LISP et leurs définitions. Il doit être entendu que les composants du premier prototype incluent l'interpréteur LISP 503, qui exécute les fonctions LISP constituant les composants, place les SYMs 507 et SYMDEFs 509 créés par les composants dans l'espace symbole 505 et manipule les SYMs 507 et leurs SYMDEFs 509. Tout d'abord, EXPERT 603 remplit les fonctions de CP 203 dans le prototype. On peut trouver le code pour EXPERT 603 en page 14 de l'appendice 1. Ce code montre que EXPERT 603 reçoit une chaîne d'entrée, met des parenthèses autour pour produire une forme LISP, appelée CFORM 605 sur la figure 6, et exécute l'opération EVAL sur elle. Lorsque l'interpréteur LISP 503 évalue la forme, il traite le premier symbole dans la forme en tant que nom de fonction LISP et les autres éléments dans la forme en tant que liste d'arguments pour la fonction désignée. Les chaînes d'entrée attendues pour EXPERT 603 sont les instructions pour DP 207, à savoir DEFINE, REDEFINE, UNDEFINE (c'est-à-dire définir, redéfinir, indéfinir) et les instructions pour TIE 219, à savoir WHAT, HOW, ASSUME, RESET, DEFINITION, SAVE, WHY, et RESTORE (c'est-à-dire quoi, comment, supposer, remettre à zéro, définir, sauvegarder, pourquoi, et restaurer). DEFINE, REDEFINE et UNDEFINE correspondent au DPCs 204 de la figure 2 et les chaînes restantes correspondent aux IECs 217 de cette figure. Dans le premier prototype, il n'y a pas de détection d'erreurs dans EXPERT 603. Mais, dans une réalisation commerciale, EXPERT 603 comporterait un code de détection et de réponse à une entrée incorrecte. La figure 6 montre que DP 207 est réalisé dans le premier prototype par les fonctions LISP : DEFINE, en page 1 de l'appendice 1, REDEFINE et UNDEFINE, tous-deux en page 3. Lorsque EXPERT 603 reçoit l'instruction DEFINE avec un TERM 206 tel que FRAUD et le présente à l'interpréteur LISP sous la forme (DEFINE FRAUD), l'interpréteur LISP 503 invoque la fonction DEFINE avec l'argument FRAUD. DEFINE demande un DESC 205 à l'utilisateur et utilise DESC 205 pour produire le DEF 213 pour FRAUD.Comme on l'expliquera en détail plus loin, le résultat de l'invocation est une fonction LISP appelée FRAUD pour laquelle le DEFUN apparaîtra comme suit (defun FRAUD () (prog2 (push 'FRAUD arg-stack) (AND (DETRIMENTAL~RELIANCE)) (pop Arg-stack) Au cours de la définition de FRAUD, il y a définition de KNOWING MISREPRESENTATION et DETRIMENTAL~RELIANCE, (c'est-à-dire présentation sciemment erronée et confiance préjudiciable), ainsi que des DTERMs 211 requis pour leur définition, sous forme de symboles LISP représentant des fonctions LISP. AND, correspondant en français à ET, est une fonction LISP prédéfinie qui accomplit l'opération ET sur ses arguments. La valeur renvoyée par la fonction FRAUD est le résultat de l'opération ET. Les DTERMs 211 qui ont été définis en tant que symboles LISP représentant des fonctions LISP sont appelés TSYMs 115 dans l'exposé qui suit et leur définition --qui constitue la mise en oeuvre des DEFs 213 sur le prototype-- sont appelés des TDEFs 617. Lorsque l'interpréteur LISP fournit les TSYMs 615 et TDEFs 617 en réponse à la fonction DEFINE (définir), il les place dans l'espace symbole 505. TDEF 617 dans le premier prototype est montré en figure 7. Cette figure montre que chaque TDEF 617 contient TFUNC 701, la fonction LISP représentée par TSYM 615, TDESC 705, une copie modifiée de DESC 205 qui a été la source de la définition de TSYM 615, et TEXVAL 703 qui contient le dernier EXVAL 703 spécifié par l'utilisateur de l'expert 202 pour TSYM 615. Les fonctions' restantes dans DP 207 sont invoquées de la même 'façon que DEFINE à partir de EXPERT 603. REDEFINE utilise d'abord des-opérations LISP qui retirent TFUNC 701 et TDESC 705 de TDEF 617 pour permettre de redéfinir TSYM 615 puis invoquent DEFINE pour élaborer une nouvelle valeur de TFUNC 701 et TDESC 705 dans TDEF 617. UNDEFINE enlève simplement TFUNC 701 et TDESC 705 sans élaborer une nouvelle définition de TSYM 615. Si on continue à analyser la réalisation de TIE 219 dans le premier prototype 601, lorsque l'interpréteur LISP 603 reçoit un CFORM 605 provenant de EXPERT 603 qui représente un IEC 217, il exécute la fonction dans TIE 219 qui a été spécifié dans CFORM 605. Lorsque les fonctions dans TIE 219 sont exécutées, elles fournissent des formes (TFORMS 639) élaborées à partir de TSYMS 615 à l'interpréteur 505, qui les évalue et renvoie les résultats (TFORM RESULT) à la fonction en cours d'exécution. Les fonctions dans TIE 219 utilisent des structures de données dans TIE 219, ARG-STACK 635 et TERMS-STACK 613, définis en page 1 de l'appendice 1, ainsi que SYM-BOUND-LIST, défini en page 12. Si on commence par ARG-STACK 635, ARG-STACK 635 est utilisé pour mémoriser un TSYM 615 pendant le calcul des valeurs des TSYMs 615 avec lesquelles il est défini. Comme le montre le code pour la procédure FRAUD ci-dessus, le symbole FRAUD est poussé" (push dans le DEFUN cidessus) dans la pile ARG-STACK avant que soit exécutée l'opération ET qui définit FRAUD et est chassé (pop) de ARG-STACK ensuite. TERMS-STACK 613 est une pile de TSYMs 615. La pile est ordonnée lors de la création du TDEF 617 d'un TSYM 615, le premier TSYM 615 dont le TDEF 617 est créé étant au fond et le dernier au sommet de la pile.Comme on l'expliquera en détail plus loin, le dernier TSYM 615 est normalement celui dont le TDEF 617 est au sommet de la hiérarchie de définition. SYM~BOUND~LIST 637 est une liste de TSYMS 615 auxquels sont affectés à ce moment les EXVALs 225. On commencera l'exposé des fonctions LISP dans TIE 219 par la fonction WHAT (quoi) 619. Cette fonction est exécutée en réponse à l'instruction WHAT adressée à EXPERT 603. Cette instruction a la forme WHAT DTERM 611. Pour FRAUD, ce serait WHAT FRAUD, ce que EXPERT 603 change en (WHAT FRAUD). La fonction WHAT 619 en page 5 de l'appendice 1 utilise d'abord une fonction LISP pour déterminer si son argument est un TSYM 615. Si c'est le cas, la fonction utilise une autre fonction LISP qui prend un symbole qui est un nom de fonction en tant qu'argument et invoque la fonction, FRAUD dans ce cas. Le résultat est l'exécution de TFUNC 701 dans TDEF 617 pour FRAUD. Une fois ce TFUNC 701 exécuté, les TFUNCs 701 pour MISREPRESENTATION et pour DETRIMENTAL~RELIANCE sont exécutés jusqu'à ce qu'on ait déterminé la valeur de FRAUD. Lors de l'exécution d'un TFUNC 701 pour un TSYM 615 donné, les TFUNCs 701 pour chacun des TSYMs 615 nécessaires pour trouver la valeur du TSYM 615 donnée sont exécutés. Une fois tous les TFUNCs 701 nécessaires exécutés, la valeur qui en résulte est renvoyée à l'utilisateur du système 202 en tant que TRES 227. Si un TSYM 615 dont le TFUNC 701 exige un EXVAL 225 a déjà une telle valeur, le TSYM 615 est sur SYM-BOUND-LIST 637 et TFUNC 701 utilise TEXVAL 703 dans TDEF 617 pour TSYM 615 sinon, TFUNC 701 génère un EXVAL REQ et obtient EXVAL 225 de l'utilisateur.Donc, la fonction WHAT, avec l'interpréteur LISP 503, fonctionne comme moteur d'inférences pour déterminer la valeur du TSYM 615 dont la définition est au niveau haut de la hiérarchie telle que déterminée par des valeurs externes. De plus, aussi longtemps qu'un TFUNC 701 invoqué comme une conséquence de l'opération WHAT est actif, le TSYM 615 correspondant est sur ARG-STACK 635. La fonction HOW 623, c'est-à-dire comment, en page 4 de l'appendice 1, est exécutée en réponse à l'instruction HOW, qui spécifie un TSYM 615. La fonction HOW 623 prend ce TSYM 615 en tant qu'argument et utilise une autre fonction LISP, SYMBOL-FUNCTION, avec l'argument TSYM 615 pour obtenir la liste utilisée avec DEFUN pour définir TFUNC 701 correspondant à TSYM 615 et d'autres fonctions LISP pour obtenir le troisième élément de la troisième liste dans TFUNC 701. Comme le montre la fonction FRAUD ci-dessus, cet élément est la liste définissant l'opération à l'aide de laquelle la valeur de la fonction est obtenue, c'est-à-dire, pour FRAUD, la liste (AND (KNOWING MISREPRESENTATION) (DETRIMENTAL~RELIANCE)). La fonction HOW retrouve cette liste, utilise la fonction DEFINITION de TIE 219 pour afficher TDESC 705 pour le TSYM 615 utilisé dans la commande HOW puis évalue les TSYMs 615 dans la liste récupérée à partir de TFUNC 701 et elle fournit les résultats en sortie avec un texte d'explication approprié. L'utilisateur de l'expert 202 peut introduire l'instruction WHY, soit pour EXPERT 603, soit pour TIE 219 en réponse à une sortie EXVAL REQ au cours de l'éva- luation d'un TSYM 615. La fonction WHY est en pages 1 à 4 de l'appendice 1. La fonction peut être invoquée avec ou sans un TSYM 615 comme argument. Dans le premier cas, la fonction travaille à l'aide du TSYM 615 à ce moment au sommet de ARG-STACK 635, qui est le TSYM 615 correspondant au TFUNC 70j en cours d'évaluation et dont l'évaluation a produit le EXVAL REQ auquel l'utilisateur peut être en train de fournir une réponse. Dans le second cas, il travaille avec le TSYM 615 fourni par l'utilisateur.Dans tous les cas, l'étape suivante consiste à localiser dans ARG-STACK 635 le TSYM 615 précédent, qui est le TSYM 615 correspondant au TFUNC 701 dont l'évaluation a conduit à l'évaluation de la fonction correspondant à TSYM 615 en cours de traitement par WHY. S'il n'y a pas de TSYM 615 précédent, l'ordre WHY n'a pas de sens et un message correspondant est émis en sortie vers l'utilisateur ; s'il y a un TSYM 615 précédent, alors DEFINITION est utilisé pour émettre en sortie la définition pour le TSYM 615 précédent, avec un texte explicatif approprié. Si on poursuit avec la fonction DEFINITION dont le code est en page 5 de l'appendice 1, l'instruction pour EXPERT 603 qui invoque la fonction peut soit avoir un TSYM 615 comme argument, soit n'avoir pas d'argument. Dans le premier cas, la sortie est TDESC 705 dans TDEF 617. Dans le second cas, il y a émission, en sortie, des TDESCs 705 pour tous les TSYMs 615 dans TERMS-STACK 613. La fonction ASSUME, c'est-à-dire supposer, dont le code est en page 9 de l'appendice 1, est invoquée à l'aide de l'instruction ASSUME, qui spécifie un TSYM 615 et une valeur. Le TSYM 615 doit être un de ceux dont le TFUNC 701 demande un EXVAL 225. ASSUME vide d'abord ARG-STACK 635, de façon que le TSYM 615 soit réévalué avant qu'il n'y ait prise en considération d'une instruction WHY, puis donne à TEXVAL 703 dans TDEF 617 la valeur reçue comme argument, et place TSYM 615 dans SYM-BOUND-LIST 637 pour indiquer qu'il a un TEXVAL 703. La fonction RESET, c'est-à-dire remise à zéro, dont le code est en page 13 de l'appendice 1, est invoquée à l'aide de l'instruction RESET, qui peut spécifier un TSYM 615 ou non. Dans le premier cas, seul TEXVAL 703 dans le TDEF 617 correspondant au TSYM 615 est remis à zéro ; dans le second cas, tous les TEXVALs 703 sont remis à zéro. La fonction RESET vide d'abord ARG-STACK 635 pour les raisons données plus haut. Si un TSYM 615 est spécifié, la fonction RESET découple TEXVAL 703 de TSYM 615, le retirant effectivement'de TDEF 617, et retire TSYM 615 de SYM-BOUND-LIST 637. Si aucun TSYM 615 n'est spécifié, RESET accomplit l'opération ci-dessus pour chaque TSYM 615 dans SYM-BOUND-LIST 637. La fonction SAVE, c'est-à-dire sauvegarder, dont le code est en page 5 de l'appendice 1, crée un fichier qui contient une instructi#on DEFINE pour chaque TSYM 615 suivi par TDESC 705 pour le TSYM 615. Les instructions DEFINE interviennent dans l'ordre dans lesquels les TSYMs 615 interviennent dans TERMS-STACK 613. SAVE opère en envoyant ce qui suit au fichier pour chaque TSYM 615 dans TERMS-STACK 613 : la chaîne DEFINE, une chaîne représentant TSYM 615 et une chaîne représentant TDESC 705 pour TSYM 615. Le fichier résultant contient les TDESCs 705 dans l'ordre dans lequel on a introduit, dans DP 207, les DESCs 205 sur lesquels ils sont basés. La fonction RESTORE, c'est-à-dire restaurer, dont le code est également en page 5 de l'appendice 1, restaure les TSYMs 615 qui ont été antérieurement sauvegardés. Il le fait en effectuant une opération de chargement LISP sur le fichier. Au cours du chargement, les symboles LISP dans le fichier sont évalués. Dans ce cas, le résultat de l'évaluation est la production des TSYMs 615 et de leurs TDEFs 617 spécifiés dans les instructions DEFINE dans le fichier restauré. 10/ Descri#tion détaillée de DEFINE 607 : figure 8. La figure 8 montre comment les fonctions DEFINE et les fonctions invoquées de façon récursive par elles créent de façon récursive la hiérarchie des TDEFs 617 pour un jeu donné de TSYMs 615. Comme on l'a mentionné plus haut, la façon dont DEFINE crée la hiérarchie de TDEFs 617 garantit que chaque TERM 206 est complètement défini et qu'un TERM 206 donné a une seule définition. La figure 8 montre DEFINE, les principales fonctions invoquées par DEFINE et la façon dont les données à partir desquelles sont créés les TSYMs 615 et TDEFs 617 circulent entre les fonctions. DEFINE 607 (page 1 de l'appendice 1) produit les DTERMs 211 à partir des TERMs 206. Lorsque DEFINE renvoie DTERM 211, il y a eu création de TSYM 615 et TDEF 617 correspondant à DTERM 211. DEFINE 607 est invoqué par EXPERT 603 et par RESTORE 633 ; de plus, il est invoqué de façon récursive par lui-même et par PROCESS FUNCTION 811. EXPERT 603 fournit CFORM 605 contenant le symbole DEFINE et un TERM 206 à définir ; RESTORE 633 fournit un CFORM 605 contenant le symbole DEFINE et un TERM 206 qui est une copie d'un DTERM 211 antérieurement sauvegardé et une copie du TDESC 705 pour ce DTERM 211. Lorsqu'il y a invocation récursive de DEFINE 607, son entrée est un TERM 206 qui est utilisé dans le TDESC 205 d'un autre TERM 206 en cours de définition. De façon générale, TERM 206 est un symbole isolé ; mais, si DESC 205 comporte une affirmation de cas, TERM 206 peut être une liste ; dans ce cas, DEFINE invoque CONVERT 809 pour convertir la liste en une forme LISP et s'invoque lui-même de façon récursive pour définir chacun des TERMs 206 non définis dans la forme LISP. Puis, DEFINE 607 détermine si TERM 206 est un symbole si non, DEFINE 607 renvoit simplement TERM 206 inchangé. Si oui, DEFINE 607 détermine si TERM 206 a été fourni par RESTORE 633 ; s'il l'a été, DEFINE 607 fournit TERM 206 et la copie de TDESC 705 à GETDEF 805 et renvoie la valeur retournée par GETDEF 805, c'est-à-dire une liste dont l'élément est TERM 206. Si TERM 206 n'a pas été fourni par RESTORE 603, DEFINE 607 détermine s'il y a déjà un TSYM 615 pour TERM 206 ou si TERM 206 est un littéral (c'est-à-dire s'il n'y avait pas de copie de TDESC 705). Dans l'un ou l'autre cas, DEFINE retourne une liste dont l'élément est TERM 206. Si aucun des autres cas n'était vrai, GETDEF 805 est invoqué par DEFINE 607 sans copie de TDESC 705. GETDEF 805, en page 2 de l'appendice 1, reçoit un terme non défini (UTERM) 803 de DEFINE 607 et peut également recevoir une copie de TDESC 705 pour ce terme. Dans le premier cas, GETDEF obtient DESC 205 de l'utilisateur ; dans le second cas, il utilise simplement TDESC 705. Puis il invoque CONVERT 809 pour le convertir en CDESC 807, qui est une forme LISP. Puis UTERM 803 et CDESC 807 sont fournis à PROCESS-FUNCTION 811, qui renvoie TFUNC 701 pour UTERM 811. Finalement, GETDEF 805 place TSYM 615 sur TERMS-STACK 613, et renvoie une liste, constituée de DTERM 211 correspondant à UTERM 803, à DEFINE 607. CONVERT 809 (page 7 de l'appendice 1) est invoqué par DEFINE 607 ou GETDEF 805. Il reçoit un DESC 205 de l'invocateur et le convertit en une forme LISP, CEDESC 807, qu'il renvoie à l'invocateur. PROCESS-FUNCTION 811 (en page 2 de l'appendice 1) reçoit UTERM 803 et CDESC 807, transfère UTERM 803 à DEFINE-FUNCTION 813, reçoit TFUNC 701 de DEFINE-FUNCTION 813, renvoie TFUNC 701 à GETDEF 805 et produit UTERML 815, qui est une liste des UTERMs 803 provenant de CDESC 807 qui n'ont pas encore été définis. PROCESS-FUNCTION invoque alors- DEFINE 607 pour chaque UTERM 803 sur UTERML 815. DEFINE-FUNCTION 813, en page 2 de l'appendice 1, finalement, créé et évalue un DEFUN pour TFUNC 701, ce qui crée TFUNC 701, qu'il renvoie à PROCESS-FUNCTION 811 qui à son tour le renvoie à GETDEF 805. La description ci-dessus montre que les invocations récursives de DEFINE 607 se poursuivent jusqu'à que tous les TERMs 206 requis pour défi#nir le TERM 206 pour lequel DEFINE a été invoqué aient été définis ; ce n'est qu'alors que DEFINE 606 renvoie DTERM 211 correspondant à TERM 206. Puisque l'utilisateur de la coquille 201 doit définir tous les TERMs 206 requis pour définir un TERM 206 donné et peut donner une seule définition à TERM 206, DEFINE 606 garantit que le jeu de définitions pour un TERM 206 est complet et cohérent. 11/ Prototvoe 2 :figure 9. L'appendice 2 contient le code LISP pour le prototype 2 suivant l'invention. A l'examen de l'appendice 2, tout technicien qualifié en intelligence artificielle constatera que le prototype 2 contient de nombreux perfectionnements au prototype 1, notamment une interface améliorée pour l'utilisateur et une récupération plus efficace en cas d'erreurs de l'utilisateur. Parmi les perfectionnements les plus importants apportés par le prototype 2 figurent les variantes de TDEF 617 et de WHAT dont la conception est montrée en figure 9. TDEF 901 contient TDESC 705 et TEXVAL 703, comme c'était le cas pour TDEF 617 ; il ne contient pas TFUNC 701 et contient deux nouveaux champs, TFORM 903 et TTYPE 905. La modification a été faite pour éliminer une difficulté que présentait le premier prototype, à savoir que le TERM 206 à définir pourrait correspondre à un autre symbole LISP déjà dans l'espace symbole 505. Dans ce cas, la définition produite par DEFINE 607 pour TERM 206 se substituerait à la définition antérieure du symbole. Le prototype 2 résoud le problème en remplaçant TFUNC 701 par TFORM 903, une forme LISP qui n'est pas en ellemême exécutable en tant que fonction mais peut être exécutée par une fonction EVALUATOR 911 dans TIE 219. TTYPE 905 contient une information concernant le genre de valeur renvoyé lorsque TFORM 905 est exécuté par EVALUATOR 911. Le reste de la figure 9 montre la relation entre la fonction WHAT 907 et EVALUATOR 911 dans le prototype 2. WHAT 907 reçoit le WHAT CFORM 605 de EXPERT 603 comme ci-dessus. Mais, au lieu d'effectuer simplement une opération LISP eval sur TSYM 615 fourni en tant qu'argument pour WHAT, il fournit TFORM 903 à partir de TDEF 901 pour TSYM 615 à EVALUATOR 911 qui, à son tour, produit des formes LISP pour effectuer les opérations spécifiées dans TFORM 903 et les fournit à l'interpréteur LISP 503. L'interpréteur LISP 503 renvoie les résultats de l'évaluation des formes LISP à EVALUATOR 911 qui transforme alors ces résultats en TRES 227, qu'il renvoie à WHAT 907, qui à son tour les renvoie à l'utilisateur. 12/ Conclusion. La description qui précède d'un mode avantageux de réalisation et les appendices ci-joints décrivent la meilleure façon actuellement connue des inventeurs de mettre en oeuvre une coquille de système expert et un système expert nouveaux. Les systèmes experts en question, s'ils n'ont pas la même puissance que ceux de l'art antérieur, présentent beaucoup des avantages les plus importants de ces systèmes antérieurs et ils sont particulièrement bien adaptés aux cas où on demande au système expert une connaissance détaillée de procédures compliquées. La coquille de système expert est plus facile à- utiliser que les coquilles de système expert de l'art antérieur et elle garantit que les définitions qui constituent la base de connaissances d'un système expert sont complètes et cohérentes. Les avantages de la coquille de système expert et des systèmes experts décrits ici découlent du fait que la base de connaissances utilisée par le système expert consiste en termes définis par une hiérarchie de définitions, dans laquelle une définition donnée ne dépend que de définitions de niveau plus bas qu'elle-même dans la hiérarchie et de valeurs externes obtenues d'une source externe à la base de connaissances. Le système expert réalise une inférence concernant un terme en demandant à l'utilisateur de fournir une valeur externe ou plusieurs, puis en déterminant quelle valeur est produite pour le terme en utilisant les valeurs externes et la hiérarchie de définitions.La hiérarchie de définitions est produite dans la coquille de système expert en demandant des définitions des termes utilisés pour définir un terme donné jusqu'à ce que tous ces termes soient complètement définis, ce qui garantit que les définitions dont dépend la définition d'un terme donné sont complètes et cohérentes. Bien que les modes de réalisation décrits ici aient été implémentés en LISP, la mise en oeuvre de l'invention n'est en rien limitée à LISP. Il faut également souligner que les modes de réalisation décrits ici sont des prototypes et n'ont pour but que de constituer un exemple. En conséquence, les modes de réalisation décrits doivent être considérés sous tous rapports comme illustratifs et non pas limitatifs. La portée de l'invention est fixée par les revendications jointes. En particulier, l'invention fournit également un procédé pour élaborer un jeu de termes définis destinés à être utilisés dans un système expert, pour mise en oeuvre sur une calculatrice numérique, caractérisé en ce qu'il comprend, pour tout terme non défini, - l'obtention d'une description du terme non défini à partir de l'utilisateur de la calculatrice, - la détermination si la description demandée contient un terme quelconque supplémentaire non défini, - si elle n'en contient pas, la création d'une défini tion du terme non défini à partir de la description obtenue et des définitions des termes définis qui y sont contenus, et - si elle en contient, la répétition des étapes précé dentes pour le terme supplémentaire non défini et la répétition des étapes ci-dessus pour chaque terme supplémentaire non défini contenu dans toute définition obtenue, telle qu'elle a été obtenue au cours de toute répétition des étapes ci-dessus. Par ailleurs il doit être entendu que toutes les variantes restant dans le cadre des équivalences sont couvertes par le présent brevet. REVENDICATIONS 1. Système expert mis en oeuvre sur calculatrice numérique, caractérisé en ce qu'il comprend - une base de connaissances mémorisée comprenant des termes définis hiérarchiquement et leurs définitions, la définition correspondant à chaque terme définissant le terme en fonction de la valeur d'un terme dont la définition est à un niveau inférieur dans la hiérar chie ou en fonction d'une valeur externe à la base de connaissances, et - des moyens d'inférences pour déterminer la valeur d'un terme donné à partir de la définition correspondante en obtenant la valeur de tout terme et de toute valeur externe dans la définition correspondante et en pro duisant à partir de là la valeur du terme donné de la façon prescrite par la définition correspondante. 2. Système de définition pour calculatrice numérique, en vue de créer une hiérarchie de définitions pour des termes, chaque terme étant défini en fonction d'un autre terme dont la définition est à un niveau inférieur dans la hiérarchie ou en fonction de termes qui ne dépendent pas d'un autre terme, caractérisé en ce qu'il comprend - des moyens de mémorisation contenant des définitions correspondant aux termes, et - des moyens d'analyse de définition, capables de rece voir un terme donné, d'obtenir une description du ter me donné, de déterminer si la description demandée contient un terme supplémentaire non défini et : s'il n en contient pas, d'élaborer la définition du terme donné à partir de la description et les définitions des termes définis éventuels qui y sont contenus et de fournir la définition aux moyens de mémorisation s'il en contient, d'obtenir une description du terme supplémentaire non défini et de continuer ainsi l'analyse pour un terme donné jusqu'à ce qu'il ne subsiste aucun terme non défini dans la description du terme donné ou dans toute description obtenue au cours de l'analyse. 3. Coquille de système expert pour calculatrice numérique, caractérisée en ce qu'elle comprend - des moyens d'introduction d'instructions destinés à recevoir des instructions de coquille provenant d'un utilisateur de la calculatrice numérique - des moyens de traitement de définition capables de réagir à un ordre de coquille spécifiant la définition d'un terme en élaborant une définition hiérarchique qui définit la valeur du terme en fonction de la va leur d'un terme à un niveau inférieur de la hiérarchie ou en fonction d'une valeur externe - des moyens de mémorisation de base de connaissances pour mémoriser la définition ; et - des moyens d'inférences réagissant à une instruction de coquille demandant la valeur actuelle d'un terme donné dont la définition est dans les moyens de mémo risation de la base de connaissances pour déterminer la valeur du terme donné en obtenant la valeur de tout terme et de toute valeur externe intervenant dans la définition du terme donné et pour produire, à partir de là, la valeur du terme donné, suivant les prescrip tions de la définition du terme donné. 4. Procédé pour élaborer un jeu de termes définis destinés à être utilisés dans un système expert, pour mise en oeuvre sur une calculatrice numérique, caractérisé en ce qu'il comprend pour tout terme non défini, - l'obtention d'une description du terme non défini à partir de l'utilisateur de la calculatrice, - la détermination si la description demandée contient un terme quelconque supplémentaire non défini, - si elle n'en contient pas, la création d'une dé finition du terme non défini à partir de la des cription obtenue et des définitions des termes définis qui y sont contenus, et - si elle en contient, la répétition des étapes précédentes pour le terme supplémentaire non dé fini et la répétition des étapes ci-dessus pour chaque terme supplémentaire non défini contenu dans toute définition obtenue, telle qu'elle a été obtenue au cours de toute répétition des étapes ci-dessus.