Representation de connaissances par objets et regles : le systeme neopus

Ce travail concerne l'integration d'un mecanisme d'inference en chainage avant dans un univers objet, d'un triple point de vue de l'implementation, de l'extensibilite et de la methodologie qui en decoule. Notre etude prend comme point de depart le systeme opus (atkinson & laursen, oopsla'87), en le reecrivant et en l'etendant. L'idee principale de ce systeme est de considerer smalltalk-80 comme une premiere couche de representation de connaissances, a laquelle est greffee un mecanisme d'inference du type ops5, a base de compilation rete. Ce mecanisme d'inferences a comme particularite principale de pouvoir manipuler tous les objets de l'environnement smalltalk, sans exception, et de permettre toute expression smalltalk dans les premisses comme la partie action des regles. Une premiere partie de notre travail concerne l'implementation du systeme en smalltalk-80. La compilation rete y est abordee d'un point de vue objet. En particulier la reification astucieuse de la notion de token (les classes dynamiques) permet de proposer une implementation rete a la fois simple, claire et extensible. Une deuxieme partie traite des differentes extensions au systeme de base resultant de la cohabitation des deux mondes objets et regles: integration de l'heritage dans le typage des variables, extension des notions de variable de regle, notion d'heritage de bases de regles, et de controle declaratif. Une troisieme partie concerne la synthese de notre experience du systeme. Nous degageons de celle-ci une direction methodologique en introduisant la notion d'aspect pour mettre en lumiere certaines defaillances des objets a representer les connaissances que le systeme possede sur eux