FR2644608A1 - Expert system and expert system shell - Google Patents

Expert system and expert system shell Download PDF

Info

Publication number
FR2644608A1
FR2644608A1 FR8611696A FR8611696A FR2644608A1 FR 2644608 A1 FR2644608 A1 FR 2644608A1 FR 8611696 A FR8611696 A FR 8611696A FR 8611696 A FR8611696 A FR 8611696A FR 2644608 A1 FR2644608 A1 FR 2644608A1
Authority
FR
France
Prior art keywords
term
definition
value
given
expert
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8611696A
Other languages
French (fr)
Other versions
FR2644608B1 (en
Inventor
Louis B Tychonievich
Richard W Bolling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wang Laboratories Inc
Original Assignee
Wang Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of FR2644608A1 publication Critical patent/FR2644608A1/en
Application granted granted Critical
Publication of FR2644608B1 publication Critical patent/FR2644608B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The expert system shell creates a knowledge base consisting of terms and their definitions, the definitions making up a hierarchy of definitions in which each definition depends only on definitions at lower levels in the hierarchy or on values obtd. from sources external to the knowledge base. The expert system shell creates the knowledge base by asking the expert to define a given term and then asking him to define all undefined terms which appear in the definition of the given term. The expert systems employ an inferencing engine which determines the value of a given term by evaluating its definition. In the course of the evaluation, the definitions of terms required to define the given term are evaluated and external values required for the evaluation and external values required for the evaluation of the definitions are obtd. Users of the expert system may inquire of the system why it is seeking a given external value and how it obtd. the results it did.

Description

Procédé et aDparell dans le domaine des svstèmes experts.Process and aDparell in the field of expert systems.

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. The present invention relates to expert systems implemented by means of digital calculators and more particularly relates to the components constituted by the knowledge base and the inference engine of expert systems, on the devices intended to create expert systems and on the devices. and methods for creating a definitional-type knowledge base.

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. Expert systems have appeared on the market in recent years. An expert system is a system that applies information in a particular area of expertise in the same way as a human expert in that area. In addition, expert systems resemble human experts in that they are able to explain themselves to a certain extent. Depending on its complexity, an expert system can explain why it has reached a given conclusion, explain why it wants a given piece of information and it can allow the user to change the value of a given piece of information and see how it affects the bottom line. We’ve built expert systems that do things like set up large computational systems, diagnose bacterial infection, and diagnose why an oil drill bit got stuck by offering a remedy.

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. Expert systems of the prior art are generally rule-based, i.e. they work by applying rules, obtained by questioning an expert about his experience, to facts provided by the user expert systems.

Les règles sont généralement de la forme
si A, alors B.
The rules are usually in the form
if A, then 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. In such a rule, A is called the predicate for B which is the conclusion. If A is true, then we can infer that the conclusion is true. For example, a rule in a medical diagnostic system may be if the patient has a fever and a runny nose, he may have a cold ". According to this rule, if the symptoms are fever and a runny nose, an inference possible is the common cold.

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. Figure 1 is a block diagram of an expert system 101 of the prior art based on rules. The system 101 has three components, a control processor tCP) 103, a rule inference engine (RIE) 105 and a rule memory (RS) 107. RS 107 contains the rules 109 for the domain in which the system is expert. RIE 105 receives the problem data from the user, applies the rules contained in RS 107 to the data and provides the user with the result of its application of the rules to the problem data. CP 103 controls RIE 105 by means of inference motor controls (IEC). CP 103 provides commands from a user-supplied command input.

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.To continue the above example of the common cold, a person using an expert medical diagnostic system can enter into the CP processor the command which disease? ". CP 103 will then supply an inference engine command to RIE 105 which will determine that its disease rules require symptoms. RIE 10S will then ask the user for the problem data, perhaps by asking "what symptoms?" The user can then enter the symptoms and RIE 105 will be able to find # a rule 109 for which the symptoms are the predicate and will return the conclusion of the rule as result data. If for example the entry symptoms are fever and runny nose ", the expert system 101 can conclude from the rule 109 cited above that the disease can be the common cold. Naturally, many other ailments have these symptoms and so there will be more than one rule 109 having the symptoms as part of its predicate. Depending on its degree of refinement, the expert system 101 can simply send, as a result, the conclusions of all the rules 109 having the symptom as part of the predicate or ask the user to indicate more symptoms and use the new symptoms to reduce the number of applicable rules. In all cases, the expert system 101 can, at the request of the user, indicate which rules 109 it used to reach its 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. The first 101 expert systems were made to order and required long and close cooperation between an expert, a knowledge engineer sometimes called a "cognitician", and computer system designers. The expert provided his experience; knowledge engineer reduced experience to rules 109 and designed RIE 105 and the representation used to memorize rules 109 in RS 107. Computer system designers, ultimately, wrote the programs to materialize the design of the engineer in the field of knowledge.

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. Due to the significant specialist time required to produce expert systems 101 on demand, these systems were extremely expensive and this led manufacturers of expert systems 101 to produce special tools, often called expert system shells, to build expert systems. FIG. 1A is a block diagram of the expert system shell 110 making it possible to produce experts based on rules. Figure 1A shows that the expert system shell has the rule-based expert components of Figure 1 and an additional component, the rule processor (RP) 111. The rule processor 111 is used to generate the rules 109 to memorize in an RS 107 which is specific to the expert system during construction. We use RIE 105 in the shell of expert system 110 to test the expert system during construction as it is developed. When all the rules 109 of the expert system to be produced have been written and the system has been fully checked, users are given access to RIE 105 and RS 107 of the new expert system.

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. The usefulness of the expert system 110 shells depends considerably on the degree of elaboration of RP 111. In some systems, RP 111 requires that rules 109 be introduced in a special form. These systems generally require a knowledge engineer or cognitician and cannot be used by the expert himself. In other systems, RP 111 builds its rules from examples provided by the expert and does not require a cognitician.

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. Although expert 101 rule-based systems are gradually becoming more powerful, usable and less expensive, they have inherent disadvantages that they are based on rules. First, most experts do not think in their area of experience in terms of rule sets.

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. Therefore, a cognitician or a system that builds rules from examples must intervene between the expert and the shell of the expert system 110. In the first case, the cost of developing the expert system is increased; in the second case, the expert system shell 110 is more complex than it would otherwise be and the expert is still not completely isolated from the rules, since he still has to check the rules produced by shell 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. Second, since RS 107 is a collection of rules 109 created independently of each other, there is no guarantee that the collection of rules 109 is complete or does not contain conflicting rules.

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.If the rule set 109 is incomplete, the expert system 101 may give no result or give a false result; if the rule set 109 contains contradictory rules 109, it is also possible that the expert system 101 does not give results or gives a result which depends on the algorithm for resolving internal contradictions in RIE 105 rather than rules.

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. The ability to function with incomplete sets of rules 109 or with conflicting rules 109 is part of the power of rule-based systems 101 and is necessary in situations where the expert is unable to reduce his area of experience to clear principles. But expert systems are used in many situations where the expert can bring his experience down to clear principles and, in this case, the ability to operate with incomplete sets of rules 109 and contradictory rules 109 makes error detection more difficult and, when there is an error, makes the behavior of the system 101 dependent on the internal algorithms of RIE 105 rather than on the rules.

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é. Third, it is difficult to modify expert systems 101 based on rules. The behavior of a rule-based expert system depends on the totality of the rules, and it is often difficult to determine which rules should be changed if one wants to change the behavior of the system because it contains bugs or because the expert has changed his mind about how he would handle a given case.

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. Fourth, the power and complexity of rule 101 based expert systems is not needed in many situations where expert systems are useful. Generally, this power and complexity is only required when the expert cannot fully define his experience. However, in many cases where the ordinary person needs to be guided by an expert, the latter can summarize his experience easily and completely. In such cases, the useful expert systems and the expert system shells need not have the inherent complexity of expert systems and rule-based expert system shells.

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. An example of such a situation is represented by complex formulas such as tax formulas. Often it takes a little judgment to complete the form, but the form is so complicated that most people need the help of tax advice. Sheets made it easy to process the data needed to fill out a tax form and allow the user to see how a change in one value affects others, but these sheets do not provide the user with the kind of reasoned assistance that is possible for an expert system. What is needed accordingly - and what the invention provides - is on the one hand an expert system shell easier to use than those representative of the systems rule-based experts and secondly expert systems that are significantly simpler than rule-based expert systems, but still provide reasoned assistance in situations that do not require the full power of the systems based on rules.

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. The present invention relates to digital data processing systems and more particularly to expert systems and expert system shells used in digital data processing systems. The expert systems according to the invention use definitions instead of rules. An expert summarizes his field of experience in the form of a set of terms, with a corresponding set of hierarchical definitions. The definition for a term can include terms defined at a lower level of the hierarchy, literals, constants, and values from sources external to the expert system. The decisions that the expert would reach concerning a term in the hierarchy are expressed as the value of the term. The defined terms constitute the knowledge base of the expert system of the invention. The inference engine determines which decision the expert would have taken with regard to a given term by calculating the value of the term from its definition. If the definition implements other terms, the value of these terms is calculated from their definition. And, if the definition and definition of other terms involves values from outside sources, these values are obtained as they are needed to calculate the value of the given term. If the external source is a terminal, the expert system requests a value from the person who manages the terminal and this person, who will enter the value, can ask why this value is necessary. The inference engine determines, from the definition, why the value is needed and provides the information to the person introducing the value.

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. Once the inference engine has determined which decision the expert would have made, the user of the expert system can ask the expert system why it came to this conclusion. The inference engine will again go to the hierarchical definition of the term and work on the definition to show how it got there.

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. In addition, the user can ask the expert system to start from another value for one of the terms used in the definition of the term about which the user initially asked a question. The inference engine then substitutes the new value for the old one and again determines what the result is for the term that the user originally requested, thus showing how the change in value of one subordinate terms affected the value of the term to which the query originally related.

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. The techniques used in the expert system of the invention to determine why the expert system requested a given input information, how the expert system came to a conclusion, and to change the value of a term and see the result are all applicable not only in expert systems of the present invention, but also in other systems using sets of hierarchically defined terms.

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é. The expert systems of the present invention are created using an expert system shell also according to the invention. The expert system shell contains the inference engine and the "definitional" type knowledge base just described and also contains a definition processor for creating the definitions in the definitional knowledge base. To use the definitional knowledge base, the user of the shell (generally the expert) introduces a "define" command followed by the term he wishes to define. The definitions processor then requests a description of the term and the expert describes the term. The description indicates how the value of the term is to be derived and may contain other terms, constants, or a description of where an external value can be obtained. If the description does not contain additional undefined terms, the definition processor creates the definition of the term from the description. If the description contains additional undefined terms, the definition processor requests a description of each of the undefined terms and processes the description as just described. Iterations continue until no undefined term remains. Once a term is defined, the term and its definition are incorporated into the definitional knowledge base. The definition processor also allows the expert to redefine terms, to remove a term and its definition from the knowledge base and to see the definition of a term and the terms that have been introduced into its definition. As we can see, the expert system shell according to the invention allows an expert to provide information in the form of definitions instead of rules, guarantees that a set of definitions is consistent, and makes it easy to determine which terms depend a given term.

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. The technique used in the definitions processor of the present invention to create the hierarchical definitions can be used not only in an expert system shell according to the present invention, but also in any system which creates hierarchical definition systems.

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. One of the aims of the invention is therefore to provide expert systems and shells of expert systems which meet the requirements of practice better than those previously known; the invention aims in particular to provide an expert system having a definitional knowledge base and an inference engine which uses the definitional knowledge base to reach 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. Another result also sought by the invention is the obtaining of an expert system shell to produce expert systems having a definitional knowledge base.

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. Yet another object is the production of apparatuses and methods for creating sets of terms having hierarchical definitions.

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. Still other goals are sought, including obtaining apparatuses and methods to indicate to the user of a knowledge base having hierarchical definitions how a conclusion was reached, why certain information was requested and how will change the conclusion if one assigns a different value to one of the terms; finally, the invention aims to provide apparatuses and methods guaranteeing the complete and not contradictory character of the knowledge base of an expert system.

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.
The invention will be better understood on reading the following description of a first prototype embodiment given by way of non-limiting example, with reference to the appendices containing the LISP code for the first embodiment to have been produced. and for a second embodiment. The description refers to the drawings, in which - Figure 1, already mentioned, is a block diagram of
principle of an expert system according to the prior art, - Figure IA is a block diagram of a co
expert system keel according to the prior art - Figure 2 is a block diagram of a co
expert system keel and an expert system followed
vant an embodiment of the invention - Figure 3 is a block diagram showing a
hierarchy of definitions usable in the invention
tion - Figure 4 is a diagram of the terms and
phrases used to define the word "FRAUD" - Figure 5 is a diagram showing an environment
LISP - Figure 6 is an overview of a first mode
of realization of the invention, constituting a prototy
pe - Figure 7 is a diagram of the TDEF 617 part of the
first prototype embodiment - Figure 8 is a detailed block diagram of the function
DEFINE the first prototype embodiment - Figure 9 is a block diagram showing some per
operations carried out in the second embodiment
prototype station.

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. To facilitate reference to the figures, the reference numbers used in the description of the advantageous embodiment have three digits. The two least significant digits are reference numbers in a drawing; the most significant digit is the figure number. For example, the reference number 901 relates to an element which is found in FIG. 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. The description which follows of an advantageous embodiment first gives a principle constitution of the expert system and of the shell of the expert system of the invention, before giving a detailed description of a first prototype embodiment of the invention. Then some improvements made, in a second prototype realization, will be discussed.

L'annexe A est constituée par le programme du premier prototype. L'annexe B est une copie du programme pour le second prototype.Annex A consists of the program of the first prototype. Appendix B is a copy of the program for the 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. 1 / Overall constitution of the exDert system shell and of the expert system of the invention according to FIG. 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. Figure 2 is a block diagram of an expert system shell 201 and an expert system 202 according to the invention. The expert system shell 201 has four components: the control processor (CP) 203, the definitions processor (DP) 207, the term memory (TS) 215 and the term inference engine (TIE) 219. The expert systems 202 produced using the expert system shell 201 include all of these components except DP 207. As will be described later, CP 203 receives commands from users of shell 201 and system 202 and supplies them to the other components ; DP 207 deals with definitions; TS 215 memorizes the defined terms and their definition; TIE 219 uses the definition of a term from TS 215 to evaluate the term and perform additional operations on it.

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. CP 203 converts commands from users of the shell 201 and from the expert system 202 into commands (DPCs) 204 intended for the definition processor and commands (IECs) 217 intended for the inference engine. In the prototype, DPCs 204 allows the user of the shell 201 to define a term, to - redefine a term, to make a previously defined term undefined, to take note of the definition of a term, to save a game definitions and restore a set of definitions. IECs 217 allows the user of shell 201 or an expert system 202 produced by shell 201 to determine the current value of a term, to determine how the expert system 202 got this value, have expert system 202 take a different value for a term and see how it affects the value of other terms, restore the value of any or all of the terms and (when determining of the current value of a term requires providing a value that is outside the definition) to ask the expert system 202 why this value is necessary.

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.
The definition processor 207 defines TERMs 206. When a TERM 206 has been fully defined, TS 215 contains a defined term (DTERM) 211 corresponding to the
TERM 206 and a definition (DEF) 213 for 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.
TERM 206 can be received either in a DPC 204, or from a description (DESC) 205 DP 207 requested from the user of the expert system shell 201 in response to a TERM 206. DP 207 first determines s 'there is already a DTERM 211 corresponding to TERM 206, that is to say if TERM 206 is already defined. If it is, DP 207 finds DTERM 211 which corresponds to TERM 206 in TS 215 and prepares it for use in the definition that DP 207 then constitutes. If it is not already defined,
DP 207 issues a description request (DESC REQ) to the user of shell 201. The user provides a description (DESC) 205 from TERM 206 to DP 207. This results in a DEF 213 for TERM 206 using the information in DESC 205. As will be described in detail below,
DESC 205 is written in a definition language which allows the user to specify other TERMs 206, constants and to specify that a value must be obtained from an external expert system 206 for which the definition is intended. . The definition also specifies operations to be performed on the values represented by TERM 206, constants and external values in the definition. If DESC 205 contains
TERMs 206, DP 207 treats these TERM 206 in the manner just described. If there is a DTERM 211 corresponding to
TERM 206, we use DTERM 211 in DEF 213 during development. If there is none, DP 207 requests a DESC 205 defining the TERM 206 and processes it as we have just said. The repetitive operation of DP 207 is represented in figure 2 by the arrow 208 which shows how UDESC 210 , which contains at least one TERM 206 is processed again by DP 207. Processing continues in this way until the original has been defined
DESC 205 and all TERM 206 in all DESCs 205 produced for TERM 206 required to define the
TERM 206 in the original DESC 205. In other words, it is continued until all the TERMs 206 have DTERMs 211 and corresponding DEFs 213 in 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. DTERMs 211 and DEFs 213 originating from the operation of DP 207 are placed in TS 215. DTERM 211 can be placed in TS 215 by name. DEF 213 corresponding to DTERM 211 is associated with DTERM 211 and can therefore be used once DTERM 211 is located. A modified version of DESC 205, from which DEF 213 is deduced, is included in 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. The remaining operations specified by DPCs 204 are performed as follows in DP 207 and TS 215: when a TERM 206 is not defined, DP 207 removes the corresponding DTERM 211 and DEF 213 from TS 215; when a TERM 206 is redefined, DP 207 withdraws the DEF 213 corresponding to the TERM 206 and requests a new DESC 205 for the TERM 206. This DESC 205 is then processed as we have just said. When a DPC requests that a definition of a TERM 206 be displayed, DP 207 displays the DESC 205 which has been incorporated in the DEF 213 for the DTERM 211 corresponding to TERM 206. Finally, the backup operation preserves the contents of a TS 215 given in a file for later use. The restore operation brings the contents of the file back to 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.
The term inference engine (TIE) 219 performs the operations using the DTERMs 211 and DEFs 213 in TS 215. The first operation is the "what" operation which determines the value of a DTERM 211 from its definition and external values supplied by the user of the expert system 202 or of the shell 201. TIE 219 performs the "what" operation in response to a
IEC 217 which specifies the operation and a TERM 206 coming from CP 203. TIE 219 uses DTERM 211 which corresponds to TERM 206 to locate the DEF 213 of DTERM 211 in
TS 215. It then performs the operations specified in
DEF 213 using the DTERMs 211, the constants and the external values specified in the definition then it returns the result TRES 227 to the user of the system 202 or of the shell 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.
The constants in DEF 213 are available for immediate use in calculating the value of DTERM 211; in the case of external values,
DTERM 211 contains a description of how to obtain the external value. TIE 219 uses the description to request an external value (EXVAL
REQ) to the external value source (EXVAL) 22 # 5 and receives
EXVAL 225 from the source. In the simplest case, the source is a terminal implemented by the user of the system 202 or of the shell 201 and the information is obtained by displaying a question on the screen of the user's terminal and by collecting the indication entered. In more complex cases, the source can be a file or a database.

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.
In the case of an additional DTERM 211 in
DEF 213, to evaluate the DTERM 211, TIE 219 must obtain the DEF 213 from the additional DTERM 211 and calculate this value of DTERM 211 from its 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.By doing so, it evaluates all the DTERMs 211 in this DEF 213 and continues thus until all the DTERMs 211 on which the DTERM 211 whose value is sought during the "what" operation have been evaluated. The constants, external values and DTERMs 211 specified in each DEF 213 are treated as just described. When all DEFs 213 have been evaluated, the value of DTERM 211 whose value is sought is calculated and brought back as 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".
In an advantageous embodiment, the
EXVALs 225 obtained during the evaluation of a
DEF 213 given become part of this definition of DEF 213. If therefore the operation "what" is performed a second time on DTERM 211, TIE 219 will not produce EXVAL REQs but will simply use the
EXVALs 225 memorized to recalculate the value of DTERM 211. An advantageous embodiment has two IECs 217 to modify the EXVALs memorized 225. The first, when reset, removes DEFs 213 every
EXVALs 225 stored for the DTERMs 211 specified in the reset command. Thus, when the operation is carried out again, we will obtain a new EXVAL 225 as explained above. The second, "assumed", allows to supply a new EXVAL 225 to DEF 213 for the specified TERM 206 in the command "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.When performing a new squoig in this case, the specified EXVAL 225 is used to deduce the value of DTERM 211 for which the "what" operation is performed.

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.
If a user of shell 201 or system 202 wants to know why TIE 219 requests a
EXVAL 225 given, it can respond to an EXVAL REQ with the command for the operation '^ why'. In response to this command, TIE 219 provides DESC 205 from DEF 213 for DTERM 211 whose value was being calculated when there was a request for EXVAL 225. The user can determine from DESC 205 why the EXVAL 225 given is important. The user can also use "why" to ask why any of the DTERMs 211 whose values are requested is required to obtain the value of the DTERM 211 whose evaluation has resulted in the EXVAL REQ. TIE 219 then provides DESCs 205 for these DTERMs 211.

3/ Hiérarchie des définitions : figure 3. 3 / Hierarchy of definitions: 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. By defining any term, DP 207 provides a hierarchy of DEFs 213. If DEF 213 for the term being defined does not itself contain a term, the hierarchy has only one level. If DEF 213 for the term contains an additional term, this term must be defined before the first term can be defined. The first term is the top term of a two-level hierarchy. If any of the DEFs 213 at the second level contains an additional term, that term must be defined and the hierarchy has three levels.

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. The hierarchy thus continues to sink until none of the DEFs 213 for the terms on which other terms depend contains an additional term.

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.
It therefore stops when the term is defined solely as a function of operations on constants or external values. The above explanation shows that a
DEF 213 is always the top DEF 213 in the hierarchy of DEFs 213 required to define the DTERM 211 that defines DEF 213. But it can at the same time be at a lower level in the hierarchy of DEFs 213 required to define another 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.
FIG. 3 illustrates the concept of such a hierarchy of DEFs 213. The hierarchy 305 contains the DEFs 213 (A) to 213 (E) corresponding to the DTERMs 211 (A) to 211 (E) belonging to the set of DTERMs 311. The definition of head in hierarchy 305 is DEF 213 (A) corresponding to DTERM 211 (A). The notation OP (B, C) in DEF 213 (A) indicates that DEF 213 (A) specifies that the value of
DTERM 211 (A) is obtained by performing an operation on the values of DTERMs 211 (B) and (C). 'Similarly, 213 (B) specifies that the value of DTERM 211 (B) is obtained by performing an operation on the values of DTERMs 211 (D) and (E). Consequently the hierarchy 305 for DEF 213 (A) has three levels: level 1 or 307, containing only DEF 213 (A); level 2 or 309, containing DEF 213 (B) and (C); and level 3 or 311, containing DEFs 213 (D) and (E). DEFs 213 (C), 213 (D) and 213 (E) do not define DTERMs 211 (C), (D) and (E) with other DTERMs 211 and cannot give birth to lower levels . Such
DEFs 211 are called terminal definitions 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.
To build the hierarchy 305, DP 207 begins with TERM 206 (A) corresponding to DTERM 211 (A) which it receives from a DESC 205 from which a DEF 213 is constructed at a higher level or from a DPC 204 for definition or redefinition. DP 207 then requests a DESC 205 for DTERM 211 (A). DESC 205 defines DTERM 211 (A) as an operation on two TERMs 206 (B) and (C). If DEF 213 (B) and DEF 213 (C) already exist,
DP 207 can develop DEF 213 (A) and does not need to go any further. If one of DEF 213 (B) and DEF 213 (C) does not exist, DP 207 must develop these DEFs 213 before it can constitute DEF 213 (A) DP 207 then requests a DESC 205 for TERM 206 (B) and for TERM 206 (C). In the case of TERM 206 (C), DESC 205 defines TERM 206 (C) only as a function of EXVAL (C) 225 and one can immediately construct DEF 213 (C). In the case of TERM 206 (B), DESC 205 defines TERM 206 (B) based on two additional terms 206 (D) and (E). Consequently DP 207 must go down one level again and produce DEFs 213 for these TERMs 206. DP 207 still requests DESC 205 for these TERMs. In both cases, the TERMs 206 are defined according to the EXVALs 225 and consequently one can construct the two DEFs 213. We have now worked out the DEFs 213 for all the TERMs 206 involved in the definition of TERM 206 (A). The
DTERMs 211 (B) to (E) corresponding to TERMs 206 (B) to (E) exist, we can build DEF 213 (A) and TERM 206 (A) now has a DTERM 211 (A) which corresponds to it.

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). Since the hierarchy 305 is constructed repetitively starting with the DEF 213 leading in the hierarchy 305 and that we only define the TERMs 206 which do not have a corresponding DTERM 211, no DTERM 211 can have two DEFs 213 and no DEF 213 in the hierarchy 305 can refer to a DEF 213 which is above it in the hierarchy 305. Consequently the DEFs 213 in the hierarchy 305 are necessarily complete and consistent with respect to DEF 213 (A ) in hierarchy 305 and at the top DEF 213 in any hierarchy that incorporates DEF 213 (A).

4/ Le langage de descriPtion Dour les descrin- tions 205. 4 / The description language for the descriptions 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. As indicated above, DEP 207 elaborates DEFs 213 from descriptions (DESCs) 205. In the prototype, DESCs 205 are elaborated using a description language. The description language has predefined terms that specify operations on terms, a presentation of cases, and operations to obtain external values.

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.
The operations include Boolean operations, arithmetic operations, and text concatenation. The case presentation is a list of value pairs - boolean expression of the form
(booleanexp ~ l) value ~ 1 ... (boolean ~ expg) value ~ n
(OTHERWISE) otherwise ~ value.

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. When evaluating a DEF 213 which contains a case presentation, the Boolean expressions 1 to n are evaluated in this order until one of them is true. The value corresponding to the boolean expression true becomes the value of DTERM 211 defined by DEF 213. If none of the boolean expressions is true, the value corresponding to OTHER (OTHERWISE) becomes the value of DTERM 211.

Le langage de description du prototype permet de spécifier deux classes d'opérations pour obtenir des valeurs externes. The description language of the prototype makes it possible to specify two classes of operations to obtain external values.

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. The first class, constituted by the ASK operations (request operations) makes it possible to obtain values from the terminal of the user of the expert system 202. This first class is used to obtain external values from the 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.
The second class, made up of operations
RECORD, is used to obtain external values from a database system.

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. In both cases, the external values can be numbers, text strings, or Boolean values; or they can select a term from a set of literal terms constituting an alternative, that is to say terms which represent only themselves.

ASK pour obtenir une valeur numérique a la forme
ASK NUMBER "prompt~string"
c'est-à-dire DEMANDER NOMBRE "chaine~prompte".
ASK to get a numerical value in the form
ASK NUMBER "prompt ~ string"
ie ASK FOR NUMBER "prompt ~ chain".

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.
When DEF 213 containing such an operation
ASK, that is to say, ask, is evaluated, DP 207 sends the prompt string to the terminal and waits for the latter to send it a number entered using the terminal. This number is then used in the evaluation of DEF 213. The prompt chain can itself contain a previously defined term and consequently the user's response can be made dependent on the value of a previously evaluated term. ASK operations for Boolean and text string values are specified in the same way as the ASK operation for numeric values, except that NUMBER, that is, number, in the above operation is replaced by YES-NO when looking for a Boolean value and TEXT when looking for a text string.

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".
ASK, which selects a literal term among several, has the form
ASK CHOICE "promptstring"
(literal terml.. literal ~ term ~ n)
that is, ASK FOR CHOICE 'prompt ~ chain'.

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.
When evaluating DEF 213 containing ASK
CHOICE, the prompt string is issued and the user is asked to select one of the literal terms.

Ce terme littéral peut alors être utilisé dans DEF 213 pour calculer la valeur de DTERM 211 défini par DEF 213.This literal term can then be used in DEF 213 to calculate the value of DTERM 211 defined by 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é.
RECORD operations are substantially similar to ASK operations, except that the operation
RECORD indicates how the external value should be located in the database and the database provides the value located in the specified location.

5/ Fonctionnement de la coauille 201 et du système 202 : figure 4. 5 / Operation of the shell 201 and of the system 202: FIG. 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. We will now explain in detail the operation of the shell 201 using a hierarchy of definitions from which we can determine if someone has been the victim of fraud, in the Anglo-Saxon sense of the term. The legal definition of fraud requires that a party knowingly made a false presentation of fact to the other party and that this other party has suffered damage as a result of relying on this false presentation. Figure 4 shows a hierarchy of DTERMs 211 which corresponds to this legal definition.

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.
Creation of the hierarchy in Figure 4 begins when CP 203 receives the DEFINE instruction
FRAUD. that is to say, to define fraud. CP 203 then transmits TERM 206 FRAUD to DP 207 which requests a DESC 206 from the expert who gives the definition. The expert provides the
DESC 206
KNOWINGMISREPRESENTATION AND DETRIMENTAL RELIANCE
that is to say ~ knowingly ~ wrong presentation and
confidence ~ damaging.

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.
This DESC 206 contains two additional TERMs 206 and the Boolean operator AND. The value of FRAUD is therefore to be calculated by obtaining the values of DTERMs 211 corresponding to TERMs 206 and by performing the operation
AND on them.

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.
Since the additional TERMS 206 are not defined, DP 207 requests their definitions. The expert provides the DESC 205
MISREPRESENTATION AND DEFENDANT ~ KNEW ~ MISREPRESENTATION
that is, statement ~ erroneous, and the ~ defendant ~
knew ~ wrong
to define KNOWING ~ MISREPRESENTATION and DESC 205
RELIANCE ~ BY PLAINTIFF AND LOSS ~ BY ~ PLAINTIFF
that is to say trust of the # complainant and damage ~ suffered ~
parglaignant
to define 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.
These additional TERMS 206 are still undefined. DP 207 requests their definitions and the expert provides the definitions, given in Figure 4 in English form and in the form of an equivalence in French. Although DP 207 may request definitions in any order, a preferred implementation defines all of the 206 TERMs necessary to define a
TERM 206 given undefined before proceeding to the next undefined TERM 206.

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é.
In the example above, DESCs 205 for
MISTAKE, DEFENDEtYRS ~ KNOW ~ AFFIRMATION
MISTAKE, CONFIDENCE OF THE COMPLAINANT, and DAMAGE ~ SUBI ~ BY ~
COMPLAINANT all contain only DTERMs 211 defined by the system used in the ASK operation
YES-NO, that is to say "ask yes-no". DP 207 is now able to generate DEFs 213 for all terms in the hierarchy. The values of all
DTERMs 211 in the hierarchy ultimately depend on the values that the ASK operation YES-NO (ask yes-no) requests from the user of the expert system 202 which uses the FRAUD definition and therefore ultimately depend on what the complainant says about what happened to him.

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.
Using the definition hierarchy
FRAUD in expert system 202 begins with the WHAT FRAUD instruction (which fraud) that the user of expert system 202 introduced in CP 203. CP 203 provides
WHAT FRAUD IEC 217 for TIE 219. TIE 219 then determines the value of FRAUD by evaluating its DEF 213. To do this, it must evaluate DEFs 213 for others
DTERMs 211 in the hierarchy, starting with KNOWING ~ MISREPRESENTATION The evaluation of KNOWING
MISREPRESENTATION requires the evaluation of
MISREPRESENTATION. The evaluation of this DTERM 211 causes the execution of the operation WHAT YES-NO (what yes-no) in its DEF 213.TIE 219 then provides the prompt chain
"Did he tell you something that was not true?"
If the user answers "no", MISREPRESENTATION is wrong, KNOWING MISREPRESENTATION is wrong, and FRAUD is wrong, so that TIE 219 returns TRES 227 to the user to indicate that there is no fraud.

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.
If the user answers "yes", TIE 219 evaluates
DEFENDANT ~ KNEW ~ MISREPRESENTATION, which again raises a question for the user. Depending on the answer to this question, the evaluation continues or stops. TIE 219 operates in the above manner until it has calculated a value for 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.
As noted above, the user of the expert system 202 can use the user instruction HOW (comment) to determine how the expert system 202 arrived at its value for FRAUD. If we assume that the user answered "no", when asked did he tell you something that was not true (in the definition of MISREPRESENTATION), TIE 219 in the prototype will respond to HOW FRAUD (emitting fraud)
FRAUD is defined as
(KNOWINGMISREPRESENTATION AND DETRIMENTAL ~ RELIANCE)
where (KNOWING REPRESENTATION) is equal to FALSE
i.e. FRAUD is defined as being (presented
knowingly wrong and damaging confidence),
where (knowingly incorrect presentation) equals FALSE.

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.
As mentioned above, DP 207 places
DESC 205 for a DTERM 211 in the DEF 213 of the DTERM 211 and TIE 219 also stores the external values it receives to evaluate the DEF 213 of a DTERM 211 in DEF 213. When it executes the HOW operation, firstly TIE 219 finds and emits DESC 205 from DEF 213 for the DTERM 211 concerned by the request, then it evaluates the DTERMs 211 in DEF 213, as is required to obtain the value of DTERM 211 on which carries the question. DTERMs 211 are then output with their value. If a user wants more information, they just have to repeat the HOW operation on the other DTERMs 211 output in the HOW operation.

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.
As also mentioned above, the user can respond to an external value request with the WHY (why) statement instead of giving a value. If a user replies, in the case of the FRAUD example, with WHY when TIE 219 asks K, did he say something that was not true ", TIE 219 replies with
MISREPRESENTATION is required to determine the
KNOWINGMISREPRESENTATION value, which is defined
as MISREPRESENTATION AND SUBJECT ~ KNEW ~
MISREPRESENTATION and repeats the 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.
The information used to respond to the WHY instruction (why) still comes from DESCs 205 stored in DEFs 213 in the hierarchy used to define FRAUD. If the user wants to know more at this point, they can apply HOW to
DTERMs 211 mentioned 'in response to the instruction
WHY.

6/ L'environnement LISP des modes de réalisation DrototvDes : figure 5. 6 / The LISP environment of the DrototvDes embodiments: 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. After having thus given a general view of the structure and operation of the shell 201 and of the system 202, a detailed description will be given of the implementation of the first 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.  The first and second prototypes are implemented in the LISP programming language and executed in the LISP environment. The programming language and the LISP environment are frequently used to implement prototype or production expert systems and are well known in the field of expert systems. The specific LISP language used for prototypes is COMMON LISP, which is described in 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.
Steele, Jr., COMMON LISP, the Lanauaae, Digital Press, 1984. We will not describe here the environment and the language
LISP only to the extent necessary for a clear understanding of how prototypes work.

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.
LISP language differs from languages such as
FORTRAN or PASCAL in that it is essentially concerned with the processing of symbols, instead of processing data represented in a program by symbols. The basic components of a program
LISP are atoms. An atom can be a symbol, for example ABC, or a constant. Components are organized into programs by means of lists which may have no members or have members including atoms and other lists. A list is defined by putting its members in parentheses: (ABC) is a list with one member, the symbol ABC. The functions appear in
LISP as lists in which the first symbol in the list represents the function and the other atoms represent the arguments of the function; for example, the addition function is represented in LISP by the symbol +, and the list (+ 2 3) indicates that the + operation must be applied to atoms 2 and 3. Any atom or list which has a value when evaluated by a LISP interpreter is called a form, in English form. 5 and (+ 2 3) are forms and if the symbol ABC has a value, it is a form.

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. Functions are defined in LISP using the DEFUN function, in which the remaining elements of the list define the name of the function, its arguments, and the value it returns. For example, (defun five () 5) defines a function that takes no arguments and always returns the value 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.
Among the things that LISP programs can do with symbols and lists is generation. Since a function definition is only a kind of list, the LISP program can supply a symbol to DEFUN as the name of the new symbol created by
DEFUN and then use the symbol to execute the function that has just been created. Symbols can represent themselves as symbols or values.

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.When a symbol is represented as a symbol in a LISP list, it is preceded by the indication '. In the case of symbols representing functions, the value of the symbol is the function. But if the function is placed in a list with its arguments and the list evaluated, the result is the value of the execution of the function. Thus, 'five, that is to say five1 represents the symbol five, while five represents the function defined by DEFUN above and (five) represents the value of an execution of the function five, that is i.e. 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. LISP programs are written and executed in a LISP environment. The one used for the prototypes was manufactured by 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.
for the Professional Computer made by Wang
Laboratories, Inc. Figure 5 is a block diagram of a typical LISP environment 501. Environment 501 has two main components, the interpreter
LISP 503, which evaluates LISP shapes and symbol space
LISP 505, which stores the LISP symbols (SYM 501) and their definitions (SYMDEF 509). DEFUN and certain other LISP functions create and define new LISP symbols or redefine pre-existing LISP symbols when evaluated. Consequently, the LISP 503 interpreter can be viewed not only as a symbol evaluator, but also as a creator, a definer and a redefiner of symbols.

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). The operation of the LISP 501 environment is as follows: when a user of the LISP 501 environment hits a list containing a shape like (five), the LISP 503 interpreter evaluates the shape by locating the symbol five in space symbol 505, determining what its SYMDEF 509 is and then interpreting SYMDEF 509 to calculate the value of five. In this case, SYMDEF 509 is the code for function five which was created by evaluating the expression DEFUN, and its interpretation produces the value 5, which the interpreter returns to the user as the value of (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.
As the LISP interpreter 503 is capable of creating SYMs 507 and their corresponding SYMDEFs 509, memorizing them in symbol space 505 and locating them in symbol space 505, the environment
LISP 501 automatically performs operations which are difficult to implement in other languages and which are essential for the operation of expert system shells and expert systems.

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.For this reason, LISP 501 environments are advantageous for the production of prototype expert systems and expert system shells. As the discussion which follows will show, the prototypes of the invention make full use of the operations of creation, definition and localization of symbols.

7/ Vue d'ensemble du premier mode de réalisation prototYPe : figure 6. 7 / Overview of the first prototYPe embodiment: 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.
In the first prototype, the components of the expert system shell 201 and the expert system 202 are implemented by means of LISP functions. The code for these functions is contained in Appendix 1. Figure 6 gives an overview of this code and maps the LISP functions of the first prototype to the components of Figure 2 and the inputs and outputs of these components. The LISP functions constituting CP 203 are contained in the dashed box bearing this legend; the functions constituting DP 207 are in the dashed box with this legend; and those constituting
TIE 219 are in the dashed frame with this legend.

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.
TS 215 is produced in the first prototype by the LISP 505 symbol space, which stores the LISP symbols and their definitions. It should be understood that the components of the first prototype include the LISP interpreter 503, which performs the LISP functions constituting the components, places the SYMs 507 and SYMDEFs 509 created by the components in the symbol space 505 and manipulates the
SYMs 507 and their 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.
First of all, EXPERT 603 fulfills the functions of CP 203 in the prototype. The code for EXPERT 603 can be found on page 14 of Appendix 1. This code shows that EXPERT 603 receives an input string, puts parentheses around it to produce a LISP form, called CFORM 605 in Figure 6, and executes the operation
EVAL on it. When the LISP 503 interpreter evaluates the form, it treats the first symbol in the form as a LISP function name and the other elements in the form as a list of arguments for the designated function.

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).
The input strings expected for EXPERT 603 are the instructions for DP 207, i.e. DEFINE,
REDEFINE, UNDEFINE (i.e. define, redefine, indefinite) and the instructions for TIE 219, namely
WHAT, HOW, ASSUME, RESET, DEFINITION, SAVE, WHY, and
RESTORE (i.e., what, how, assume, reset, define, save, why, and restore).

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.DEFINE, REDEFINE and UNDEFINE correspond to DPCs 204 of figure 2 and the remaining chains correspond to IECs 217 of this figure. In the first prototype, there is no error detection in EXPERT 603.

Mais, dans une réalisation commerciale, EXPERT 603 comporterait un code de détection et de réponse à une entrée incorrecte.However, in a commercial implementation, EXPERT 603 would include a detection and response code to an incorrect entry.

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 < XNOWING~MISREPRESENTATION)
(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.
FIG. 6 shows that DP 207 is produced in the first prototype by the LISP functions: DEFINE, on page 1 of appendix 1, REDEFINE and UNDEFINE, both on page 3. When EXPERT 603 receives the instruction
DEFINE with a TERM 206 such as FRAUD and presents it to the LISP interpreter in the form (DEFINE FRAUD), the LISP interpreter 503 invokes the DEFINE function with the argument FRAUD. DEFINE requests a DESC 205 from the user and uses DESC 205 to produce the DEF 213 for
FRAUD. As will be explained in detail below, the result of the invocation is a LISP function called
FRAUD for which DEFUN will appear as follows
(defun FRAUD ()
(prog2
(push 'FRAUD arg-stack)
(AND <XNOWING ~ MISREPRESENTATION)
(DETRIMENTAL ~ RELIANCE))
(pop Arg-stack)
During the definition of FRAUD, there is definition of KNOWING MISREPRESENTATION and
DETRIMENTAL ~ RELIANCE, (ie knowingly erroneous presentation and damaging confidence), as well as DTERMs 211 required for their definition, in the form of LISP symbols representing LISP functions. AND, corresponding in French to ET, is a predefined LISP function which performs the AND operation on its arguments. The value returned by the FRAUD function is the result of the AND operation.

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. The DTERMs 211 which have been defined as LISP symbols representing LISP functions are called TSYMs 115 in the following description and their definition - which constitutes the implementation of DEFs 213 on the prototype - are called TDEFs 617 When the LISP interpreter supplies TSYMs 615 and TDEFs 617 in response to the DEFINE function (define), it places them in symbol space 505. TDEF 617 in the first prototype is shown in Figure 7. This figure shows that each TDEF 617 contains TFUNC 701, the LISP function represented by TSYM 615, TDESC 705, a modified copy of DESC 205 which was the source of the definition of TSYM 615, and TEXVAL 703 which contains the last user specified EXVAL 703. expert 202 for 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.
The functions 'remaining in DP 207 are invoked in the same way' as DEFINE from EXPERT 603. REDEFINE first uses LISP operations which remove TFUNC 701 and TDESC 705 from TDEF 617 to allow redefining TSYM 615 and then invoke DEFINE to develop a new value from TFUNC 701 and TDESC 705 in TDEF 617. UNDEFINE simply removes TFUNC 701 and
TDESC 705 without developing a new definition for 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.
If we continue to analyze the implementation of TIE 219 in the first prototype 601, when the LISP interpreter 603 receives a CFORM 605 from EXPERT 603 which represents an IEC 217, it executes the function in TIE 219 which was specified in CFORM 605 When the functions in TIE 219 are executed, they provide forms (TFORMS 639) developed from
TSYMS 615 to the interpreter 505, which evaluates them and returns the results (TFORM RESULT) to the function being executed.

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.
The functions in TIE 219 use data structures in TIE 219, ARG-STACK 635 and
TERMS-STACK 613, defined on page 1 of Appendix 1, as well as SYM-BOUND-LIST, defined on page 12. If we start with ARG-STACK 635, ARG-STACK 635 is used to store a TSYM 615 during calculation of the values of TSYMs 615 with which it is defined. As shown by the code for the FRAUD procedure above, the FRAUD symbol is pushed "(push in the DEFUN above) in the ARG-STACK stack before the ET operation is executed which defines FRAUD and is chased (pop) from
ARG-STACK then. TERMS-STACK 613 is a stack of TSYMs 615. The stack is ordered when creating the TDEF 617 of a TSYM 615, the first TSYM 615 whose TDEF 617 is created being at the bottom and the last at the top of the stack. As will be explained in detail below, the last TSYM 615 is normally the one whose TDEF 617 is at the top of the definition hierarchy.

SYM~BOUND~LIST 637 est une liste de TSYMS 615 auxquels sont affectés à ce moment les EXVALs 225.SYM ~ BOUND ~ LIST 637 is a list of TSYMS 615 to which the EXVALs 225 are assigned at this time.

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.
We will begin the presentation of the LISP functions in
TIE 219 by the WHAT function (what) 619. This function is executed in response to the WHAT instruction addressed to
EXPERT 603. This instruction has the form 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.For FRAUD, it would be WHAT FRAUD, which EXPERT 603 changes to (WHAT FRAUD). The WHAT 619 function on page 5 of Appendix 1 first uses a LISP function to determine if its argument is a TSYM 615. If it is, the function uses another LISP function which takes a symbol which is a function name as an argument and invokes the function, FRAUD in this case.

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.
The result is the execution of TFUNC 701 in TDEF 617 for FRAUD. Once this TFUNC 701 has been executed, the TFUNCs 701 for MISREPRESENTATION and for DETRIMENTAL ~ RELIANCE are executed until the value of FRAUD has been determined. When running a TFUNC 701 for a
Given TSYM 615, the TFUNCs 701 for each of the TSYMs 615 necessary to find the value of the given TSYM 615 are executed. After all the necessary TFUNCs 701 have been executed, the resulting value is returned to the user of the system 202 as TRES 227. If a TSYM 615 whose TFUNC 701 requires an EXVAL 225 already has such a value, the TSYM 615 is on SYM-BOUND-LIST 637 and
TFUNC 701 uses TEXVAL 703 in TDEF 617 for TSYM 615 otherwise TFUNC 701 generates an EXVAL REQ and obtains EXVAL 225 from the user, so the WHAT function, with the LISP 503 interpreter, functions as an inference engine to determine the TSYM 615 value whose definition is at the high level of the hierarchy as determined by external values. In addition, as long as a TFUNC 701 invoked as a consequence of the WHAT operation is active, the corresponding TSYM 615 is on 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é.
The HOW 623 function, that is, how, on page 4 of Appendix 1, is executed in response to the HOW statement, which specifies a TSYM 615. The function
HOW 623 takes this TSYM 615 as an argument and uses another LISP function, SYMBOL-FUNCTION, with the argument TSYM 615 to obtain the list used with DEFUN to define TFUNC 701 corresponding to TSYM 615 and other LISP functions for get the third element of the third list in TFUNC 701. As the FRAUD function shows above, this element is the list defining the operation using which the value of the function is obtained, that is to say - say, for FRAUD, the list (AND (KNOWING MISREPRESENTATION) (DETRIMENTAL ~ RELIANCE)). The HOW function finds this list, uses the DEFINITION function of TIE 219 to display TDESC 705 for the TSYM 615 used in the HOW command then evaluates the TSYMs 615 in the list retrieved from TFUNC 701 and it provides the output results with a appropriate explanatory text.

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. The user of expert 202 can enter the WHY instruction, either for EXPERT 603 or for TIE 219 in response to an EXVAL REQ output during the evaluation of a TSYM 615. The WHY function is in pages 1 to 4 of appendix 1. The function can be invoked with or without a TSYM 615 as argument. In the first case, the function works using the TSYM 615 at this time at the top of ARG-STACK 635, which is the TSYM 615 corresponding to the TFUNC 70j being evaluated and whose evaluation produced the EXVAL REQ to which the user may be providing a response. In the second case, it works with the TSYM 615 supplied by the user. In all cases, the next step consists in locating in ARG-STACK 635 the previous TSYM 615, which is the TSYM 615 corresponding to TFUNC 701 whose l The evaluation led to the evaluation of the function corresponding to TSYM 615 during treatment with 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é.If there is no previous TSYM 615, the WHY command is meaningless and a corresponding message is output to the user; if there is a previous TSYM 615, then DEFINITION is used to output the definition for the previous TSYM 615, with an appropriate explanatory text.

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. If we continue with the function DEFINITION whose code is on page 5 of appendix 1, the instruction for EXPERT 603 which invokes the function can either have a TSYM 615 as argument, or have no 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.
In the first case, the output is TDESC 705 in TDEF 617. In the second case, there is emission at the output
TDESCs 705 for all TSYMs 615 in 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.
The ASSUME function, that is to say suppose, the code of which is on page 9 of Appendix 1, is invoked using the ASSUME instruction, which specifies a TSYM 615 and a value. The TSYM 615 must be one of those whose
TFUNC 701 requests an EXVAL 225. ASSUME empty first
ARG-STACK 635, so that the TSYM 615 is reevaluated before taking into account a WHY instruction, then gives TEXVAL 703 in TDEF 617 the value received as argument, and places TSYM 615 in
SYM-BOUND-LIST 637 to indicate that it has a 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.
The RESET function, that is to say reset to zero, the code of which is on page 13 of Appendix 1, is invoked using the RESET instruction, which can specify a TSYM 615 or not. In the first case, only TEXVAL 703 in the TDEF 617 corresponding to the TSYM 615 is reset; in the second case, all TEXVALs 703 are reset to zero. The RESET function first empties ARG-STACK 635 for the reasons given above. If a TSYM 615 is specified, the RESET function decouples TEXVAL 703 from TSYM 615, effectively removing it from TDEF 617, and removing
SYM-BOUND-LIST 637 TSYM 615. If no TSYM 615 is specified, RESET performs the above operation for each TSYM 615 in 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.
The SAVE function, that is to say save, the code of which is on page 5 of appendix 1, creates a file which contains an instruction DEFINE for each TSYM 615 followed by TDESC 705 for the TSYM 615. The instructions
DEFINE intervene in the order in which the
TSYMs 615 intervene in TERMS-STACK 613. SAVE operates by sending the following to the file for each TSYM 615 in TERMS-STACK 613: the chain DEFINE, a chain representing TSYM 615 and a chain representing TDESC 705 for TSYM 615. The resulting file contains the TDESCs 705 in the order in which the DESCs 205 on which they are based have been introduced in DP 207.

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é.
The RESTORE function, that is to say restore, the code of which is also on page 5 of appendix 1, restores the TSYMs 615 which were previously saved. It does this by performing a LISP load operation on the file. During loading, the LISP symbols in the file are evaluated. In this case, the result of the evaluation is the production of
TSYMs 615 and their TDEFs 617 specified in the DEFINE statements in the restored file.

10/ Descri#tion détaillée de DEFINE 607 : figure 8. 10 / Detailed description of 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.
Figure 8 shows how the DEFINE functions and the functions recursively invoked by them recursively create the hierarchy of TDEFs 617 for a given set of TSYMs 615. As mentioned above, the way DEFINE creates the hierarchy of
TDEFs 617 guarantees that each TERM 206 is completely defined and that a given TERM 206 has only one definition.

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. Figure 8 shows DEFINE, the main functions invoked by DEFINE and how the data from which the TSYMs 615 and TDEFs 617 are created circulate between the functions.

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.
DEFINE 607 (page 1 of Appendix 1) produces the
DTERMs 211 from TERMs 206. When DEFINE returns DTERM 211, there has been creation of TSYM 615 and TDEF 617 corresponding to DTERM 211. DEFINE 607 is invoked by EXPERT 603 and by RESTORE 633; moreover, it is invoked recursively by itself and by PROCESS
FUNCTION 811. EXPERT 603 provides CFORM 605 containing the DEFINE symbol and a TERM 206 to define; RESTORE 633 provides a CFORM 605 containing the symbol DEFINE and a
TERM 206 which is a copy of a previously saved DTERM 211 and a copy of the TDESC 705 for this 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.When there is a recursive invocation of DEFINE 607, its entry is a TERM 206 which is used in the TDESC 205 of another TERM 206 being defined.

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.
In general, TERM 206 is an isolated symbol; but, if DESC 205 includes a case statement,
TERM 206 can be a list; in this case, DEFINE invokes CONVERT 809 to convert the list to a form
LISP and invokes itself recursively to define each of the TERMs 206 not defined in the LISP form.

Puis, DEFINE 607 détermine si TERM 206 est un symbole si non, DEFINE 607 renvoit simplement TERM 206 inchangé.Then, DEFINE 607 determines if TERM 206 is a symbol if not, DEFINE 607 simply returns TERM 206 unchanged.

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.
If so, DEFINE 607 determines if TERM 206 has been provided by RESTORE 633; if it was, DEFINE 607 provides TERM 206 and a copy of TDESC 705 to GETDEF 805 and returns the value returned by GETDEF 805, that is to say a list whose element is TERM 206. If TERM 206 was not supplied by RESTORE 603, DEFINE 607 determines if there is already a TSYM 615 for TERM 206 or if TERM 206 is a literal (i.e. if there was no copy of
TDESC 705). In either case, DEFINE returns a list whose element is TERM 206. If none of the other cases were true, GETDEF 805 is invoked by
DEFINE 607 without copy of 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. GETDEF 805, on page 2 of Appendix 1, receives an undefined term (UTERM) 803 from DEFINE 607 and can also receive a copy of TDESC 705 for this term.

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.
In the first case, GETDEF obtains DESC 205 from the user; in the second case, it simply uses TDESC 705. Then it invokes CONVERT 809 to convert it to
CDESC 807, which is a LISP form. Then UTERM 803 and
CDESC 807 are supplied to PROCESS-FUNCTION 811, which returns TFUNC 701 for UTERM 811. Finally, GETDEF 805 places TSYM 615 on TERMS-STACK 613, and returns a list, made up of DTERM 211 corresponding to 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.
CONVERT 809 (page 7 of Appendix 1) is invoked by DEFINE 607 or GETDEF 805. It receives a DESC 205 from the invoker and converts it to a LISP form,
CEDESC 807, which he returns to the summoner.

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.
PROCESS-FUNCTION 811 (on page 2 of Appendix 1) receives UTERM 803 and CDESC 807, transfers UTERM 803 to
DEFINE-FUNCTION 813, receives TFUNC 701 from DEFINE-FUNCTION 813, returns TFUNC 701 to GETDEF 805 and produces UTERML 815, which is a list of UTERMs 803 from CDESC 807 that have not yet been defined. PROCESS-FUNCTION invokes DEFINE 607 for each UTERM 803 on
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. DEFINE-FUNCTION 813, on page 2 of Appendix 1, finally, creates and evaluates a DEFUN for TFUNC 701, which creates TFUNC 701, which it returns to PROCESS-FUNCTION 811 which in turn returns it to 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.
The above description shows that the recursive invocations of DEFINE 607 continue until all the TERMs 206 required to define the TERM 206 for which DEFINE was invoked have been defined; it is only then that DEFINE 606 returns DTERM 211 corresponding to TERM 206. Since the user of the shell 201 must define all the TERMs 206 required to define a given TERM 206 and can give a single definition to
TERM 206, DEFINE 606 guarantees that the definition set for a TERM 206 is complete and consistent.

11/ Prototvoe 2 :figure 9. 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.
Appendix 2 contains the LISP code for prototype 2 according to the invention. On examining Appendix 2, any technician qualified in artificial intelligence will find that prototype 2 contains many improvements to prototype 1, in particular an improved interface for the user and a more efficient recovery in the event of errors of the user. Among the most important improvements brought by the prototype 2 are the variants of TDEF 617 and
WHAT, the design of which is shown in 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. TDEF 901 contains TDESC 705 and TEXVAL 703, as was the case for TDEF 617; it does not contain TFUNC 701 and contains two new fields, TFORM 903 and TTYPE 905. The modification was made to eliminate a difficulty presented by the first prototype, namely that the TERM 206 to define could correspond to another LISP symbol already in the symbol space 505. In this case, the definition produced by DEFINE 607 for TERM 206 would replace the previous definition of the symbol.

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.Prototype 2 solves the problem by replacing TFUNC 701 with TFORM 903, a LISP form which is not itself executable as a function but can be executed by an EVALUATOR 911 function in TIE 219. TTYPE 905 contains information about the genre value returned when TFORM 905 is run by 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. The rest of Figure 9 shows the relationship between the WHAT 907 function and EVALUATOR 911 in prototype 2. WHAT 907 receives the WHAT CFORM 605 from EXPERT 603 as above. But, instead of just performing a LISP eval operation on TSYM 615 provided as an argument for WHAT, it provides TFORM 903 from TDEF 901 for TSYM 615 to EVALUATOR 911 which, in turn, produces LISP forms for perform the operations specified in TFORM 903 and provide them to the LISP 503 interpreter.

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.The LISP interpreter 503 returns the results of the evaluation of the LISP forms to EVALUATOR 911 which then transforms these results into TRES 227, which it returns to WHAT 907, which in turn returns them to the user.

12/ Conclusion. 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. The foregoing description of an advantageous embodiment and the attached appendices describe the best way currently known to the inventors to implement a new expert system shell and a new expert system. The expert systems in question, if they do not have the same power as those of the prior art, have many of the most important advantages of these prior systems and they are particularly well suited to cases where the expert system is asked for a detailed knowledge of complicated procedures. The expert system shell is easier to use than the expert system shells of the prior art and it guarantees that the definitions which constitute the knowledge base of an expert system are complete and consistent.

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. The advantages of the expert system shell and of the expert systems described here arise from the fact that the knowledge base used by the expert system consists of terms defined by a hierarchy of definitions, in which a given definition depends only on more level definitions. low itself in the hierarchy and external values obtained from a source external to the knowledge base. The expert system makes an inference concerning a term by asking the user to provide an external value or more, then determining which value is produced for the term using the external values and the definition hierarchy. The definition hierarchy is produced in the expert system shell by asking for definitions of the terms used to define a given term until all of these terms are completely defined, which ensures that the definitions on which the definition of a given term depends are complete and consistent.

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. Although the embodiments described here have been implemented in LISP, the implementation of the invention is in no way limited to LISP. It should also be emphasized that the embodiments described here are prototypes and are intended only to constitute an example. Consequently, the embodiments described must be considered in all respects as illustrative and not limiting. The scope of the invention is fixed by the appended claims.

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.
In particular, the invention also provides a method for developing a set of defined terms intended for use in an expert system, for implementation on a digital calculator, characterized in that it comprises, for any undefined term, - obtaining a description of the undefined term at
from the user of the calculator, - the determination if the requested description contains
any additional undefined term, - if it does not contain one, the creation of a defined
tion of the term not defined from the description
obtained and definitions of defined terms which there
are contained, and - if it contains any, the repetition of the previous steps
teeth for the undefined additional term and the repetition of the above steps for each undefined additional term contained in any definition obtained, as obtained during any repetition of the above steps.

Par ailleurs il doit être entendu que toutes les variantes restant dans le cadre des équivalences sont couvertes par le présent brevet.  Furthermore, it should be understood that all the variants remaining within the framework of equivalences are covered by this patent.

Claims (4)

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 1. Expert system implemented on a digital calculator, characterized in that it comprises - a stored knowledge base comprising termes définis hiérarchiquement et leurs définitions, hierarchically defined terms and their definitions, la définition correspondant à chaque terme définissant the definition corresponding to each term defining le terme en fonction de la valeur d'un terme dont la the term according to the value of a term whose définition est à un niveau inférieur dans la hiérar definition is at a lower level in the hierar chie ou en fonction d'une valeur externe à la base de craps or according to an external value on the basis of connaissances, et - des moyens d'inférences pour déterminer la valeur d'un knowledge, and - means of inference to determine the value of a terme donné à partir de la définition correspondante term given from the corresponding definition en obtenant la valeur de tout terme et de toute valeur by obtaining the value of any term and any value externe dans la définition correspondante et en pro external in the corresponding definition and pro duisant à partir de là la valeur du terme donné de la duizing from there the value of the given term of the façon prescrite par la définition correspondante. as prescribed by the corresponding definition. 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 2. Definition system for digital calculator, with a view to creating a hierarchy of definitions for terms, each term being defined according to another term whose definition is at a lower level in the hierarchy or according to terms which do not not depend on another term, characterized in that it comprises - storage means containing definitions correspondant aux termes, et - des moyens d'analyse de définition, capables de rece corresponding to the terms, and - means of definition analysis, capable of receiving voir un terme donné, d'obtenir une description du ter see a given term, get a description of the ter me donné, de déterminer si la description demandée given me, to determine if the requested description contient un terme supplémentaire non défini et : s'il contains an undefined additional term and: if n en contient pas, d'élaborer la définition du terme does not contain any, to develop the definition of the term donné à partir de la description et les définitions given from description and definitions des termes définis éventuels qui y sont contenus et de any defined terms contained therein and fournir la définition aux moyens de mémorisation provide the definition to the storage means s'il en contient, d'obtenir une description du terme if it does, get a description of the term supplémentaire non défini et de continuer ainsi additional undefined and continue as well l'analyse pour un terme donné jusqu'à ce qu'il ne  analysis for a given term until it does subsiste aucun terme non défini dans la description du remains no term not defined in the description of terme donné ou dans toute description obtenue au cours given term or in any description obtained during de l'analyse. of the analysis. 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 à 3. Expert system shell for digital calculator, characterized in that it comprises - means for introducing instructions intended for recevoir des instructions de coquille provenant d'un receive shell instructions from a utilisateur de la calculatrice numérique - des moyens de traitement de définition capables de user of the digital calculator - definition processing means capable of réagir à un ordre de coquille spécifiant la définition react to a shell order specifying the definition d'un terme en élaborant une définition hiérarchique of a term by developing a hierarchical definition qui définit la valeur du terme en fonction de la va which defines the value of the term according to the va leur d'un terme à un niveau inférieur de la hiérarchie their from a term to a lower level of the hierarchy ou en fonction d'une valeur externe - des moyens de mémorisation de base de connaissances or according to an external value - means of memorizing knowledge base pour mémoriser la définition ; et - des moyens d'inférences réagissant à une instruction to store the definition; and - inference means reacting to an instruction de coquille demandant la valeur actuelle d'un terme shell asking for the current value of a term donné dont la définition est dans les moyens de mémo given whose definition is in the memo means risation de la base de connaissances pour déterminer knowledge base to determine la valeur du terme donné en obtenant la valeur de tout the value of the given term by obtaining the value of everything terme et de toute valeur externe intervenant dans la term and any external value involved in the définition du terme donné et pour produire, à partir definition of the term given and to produce, from de là, la valeur du terme donné, suivant les prescrip from there, the value of the given term, according to the prescriptions tions de la définition du terme donné. tions of the definition of the given term. 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, 4. Method for developing a set of defined terms intended for use in an expert system, for implementation on a digital calculator, characterized in that it comprises for any undefined term, - l'obtention d'une description du terme non défini - obtaining a description of the undefined term à partir de l'utilisateur de la calculatrice, from the user of the calculator, - la détermination si la description demandée - the determination if the description requested contient un terme quelconque supplémentaire non contains any additional term no défini,  defined, - si elle n'en contient pas, la création d'une dé - if it does not contain one, the creation of a die finition du terme non défini à partir de la des finish of the term not defined from the des cription obtenue et des définitions des termes cription obtained and definitions of terms définis qui y sont contenus, et defined therein, and - si elle en contient, la répétition des étapes - if it contains any, the repetition of the stages précédentes pour le terme supplémentaire non dé previous for the additional term not given 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.  finished and repeating the above steps for each additional undefined term contained in any definition obtained, as obtained during any repetition of the above steps.
FR8611696A 1985-08-16 1986-08-13 METHOD AND APPARATUS IN THE FIELD OF EXPERT SYSTEMS Expired - Fee Related FR2644608B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US76686085A 1985-08-16 1985-08-16

Publications (2)

Publication Number Publication Date
FR2644608A1 true FR2644608A1 (en) 1990-09-21
FR2644608B1 FR2644608B1 (en) 1995-05-19

Family

ID=25077737

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8611696A Expired - Fee Related FR2644608B1 (en) 1985-08-16 1986-08-13 METHOD AND APPARATUS IN THE FIELD OF EXPERT SYSTEMS

Country Status (5)

Country Link
AU (1) AU595155B1 (en)
CA (1) CA1278390C (en)
DE (1) DE3627204C2 (en)
FR (1) FR2644608B1 (en)
GB (1) GB8617444D0 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1413958A3 (en) * 2002-10-23 2010-02-10 Siemens Aktiengesellschaft Method and system for computer-based analysis of a technical system
EP1413957A3 (en) * 2002-10-23 2010-03-03 Siemens Aktiengesellschaft Method and system for computer-based analysis of a technical system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4599693A (en) * 1984-01-16 1986-07-08 Itt Corporation Probabilistic learning system
US4599692A (en) * 1984-01-16 1986-07-08 Itt Corporation Probabilistic learning element employing context drive searching
US4620286A (en) * 1984-01-16 1986-10-28 Itt Corporation Probabilistic learning element

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HIROYUKI YAMAUCHI AND SETSUO OHSUGA: "KAUS AS A TOOL FOR MODEL BUILDING AND EVALUATION", PROCEEDINGS OF THE 5TH INTERNATIONAL WORKSHOP, EXPERT SYSTEMS AND THEIR APPLICATIONS, AGENCE DE L'INFORMATIQUE,, 15 May 1985 (1985-05-15), AVIGNON, FRANCE, pages 315 - 330 *
SINHA A. ET AL: "MAKING DECISION SUPPORT SYSTEMS SELF EXPLANATORY", PROCEEDINGS OF THE IEEE COMPUTER SOCIETY'S EIGHTH INTERNATIONAL COMPUTER SOFTWARE & APPLICATIONS CONFERENCE, CAT. NO. 84CH2096-6,, 9 November 1984 (1984-11-09), CHICAGO, ILLINOIS, USA, pages 358 - 362 *
WEBSTER R. ET AL.: "TAKE IT FROM AN EXPERT", PC: THE INDEPENDENT GUIDE TO IBM PERSONAL COMPUTERS,, vol. 2, no. 8, August 1985 (1985-08-01), UK EDITION, pages 99 - 102 *

Also Published As

Publication number Publication date
FR2644608B1 (en) 1995-05-19
AU595155B1 (en) 1990-03-29
CA1278390C (en) 1990-12-27
DE3627204A1 (en) 1990-08-30
GB8617444D0 (en) 1990-08-08
DE3627204C2 (en) 1996-05-09

Similar Documents

Publication Publication Date Title
CN116561278A (en) Knowledge question-answering method, device, equipment and storage medium
FR2607284A1 (en) INTERACTIVE DYNAMIC DISPLAY SYSTEM FOR KNOWLEDGE BASE
US20110106731A1 (en) Questionnaire generation
FR2907933A1 (en) METHOD FOR CREATING A DESCRIPTION OF REQUIREMENTS FOR AN INCORPORATED SYSTEM.
EP1880314A1 (en) Device and method for semantic analysis of documents by construction of n-ary semantic trees
JPH04505518A (en) Expert system apparatus and method
EP0546894A1 (en) Method and tool for the conceptual modelling of an export system on a computer
WO2006040473A2 (en) Device for processing formally defined data
Seitlinger et al. Implicit imitation in social tagging: familiarity and semantic reconstruction
Kramer et al. Tool support for requirements analysis
FR2644608A1 (en) Expert system and expert system shell
Hassanpour et al. Exploration of SWRL rule bases through visualization, paraphrasing, and categorization of rules
Leivada et al. A demonstration of the uncomputability of parametric models of language acquisition and a biologically plausible alternative
WO2011098677A1 (en) System and a method for managing and compiling a software development application framework
Fisher Protocol analyst's workbench: Design and evaluation of computer-aided protocol analysis
CA2318613C (en) Model resolution feature and process and its use to detect attacks on computer systems
FR2864284A1 (en) Rules verifying process for universal markup language model, involves structuring data of model for making data to be usable by model in action tool, and generating verification file by using tool
Bellucci Symbolic approaches for explainable artificial intelligence
Paul et al. Autonomous theory building systems
Seidel Data-Driven Techniques for Type Error Diagnosis
US8521666B2 (en) Case acquisition for incremental Case-Based Reasoning system
WO2020079109A1 (en) Device for automatically processing text by computer
Destercke Uncertainty representation and combination: new results with application to nuclear safety issues
FR3135802A1 (en) Method for supervised generation of a virtual semantic graph of specialized knowledge
WO2007036654A1 (en) Data structure and method for creating a computer software documentation

Legal Events

Date Code Title Description
GC Lien (pledge) constituted
CL Concession to grant licences
TP Transmission of property
ST Notification of lapse