Frames et Scripts : Différence entre versions
Ligne 29 : | Ligne 29 : | ||
''Joe went to a restaurant. Joe ordered a hamburger. When the hamburger came, it was burnt to a crisp. Joe stormed out without paying.'' | ''Joe went to a restaurant. Joe ordered a hamburger. When the hamburger came, it was burnt to a crisp. Joe stormed out without paying.'' | ||
− | Le système SAM, au vu de cette description, peut déduire que Joe n’a pas mangé le hamburger, même s’il n’y a aucune mention explicite de ce qu’il a fait dans le restaurant. Le système, très avancé pour son époque, pouvait expliquer son raisonnement sur le contraste entre le script standard de restaurant et des informations non trouvées dans ce texte. Par exemple, l’absence d’informations sur la consommation du hamburger, entre autres, permet cette déduction. | + | Le système SAM, au vu de cette description, peut déduire que Joe n’a pas mangé le hamburger, même s’il n’y a aucune mention explicite de ce qu’il a fait dans le restaurant. Le système, très avancé pour son époque, pouvait expliquer son raisonnement sur le contraste entre le script standard de restaurant et des informations non trouvées dans ce texte. |
+ | |||
+ | Par exemple, l’absence d’informations sur la consommation du hamburger, entre autres, permet cette déduction. | ||
Le script du restaurant est donné ci-dessous, il fait appel à 7 frames élémentaires. Ce script est représenté informellement pour en faciliter la lecture : | Le script du restaurant est donné ci-dessous, il fait appel à 7 frames élémentaires. Ce script est représenté informellement pour en faciliter la lecture : | ||
− | Script(restaurant(Client, Restaurant, Aliments)) | + | |
+ | Script(restaurant(Client, Restaurant, Aliments)) : | ||
+ | |||
Entrer(Client, restaurant), | Entrer(Client, restaurant), | ||
+ | |||
Appeler(Client, Serveur), | Appeler(Client, Serveur), | ||
+ | |||
Commander(Client, Aliments), | Commander(Client, Aliments), | ||
+ | |||
Manger(Client, Aliments), | Manger(Client, Aliments), | ||
+ | |||
Apporter(Serveur, Aliments), | Apporter(Serveur, Aliments), | ||
+ | |||
Payer(Client, Gérant, Aliments), | Payer(Client, Gérant, Aliments), | ||
+ | |||
Sortir(Client, restaurant), | Sortir(Client, restaurant), | ||
Si : humain(Client), humain(Serveur), humain(Gérant) , nourriture(Aliments). | Si : humain(Client), humain(Serveur), humain(Gérant) , nourriture(Aliments). | ||
Ligne 43 : | Ligne 53 : | ||
Les frames et les scripts proposent donc une méthode riche et souple pour représenter de façon organisée des fragments de connaissances spécialisées ou de tous les jours. Ils reproduisent une caractéristique essentielle de notre compréhension des processus rencontrés tous les jours : par assimilation à des situations prototypiques que nous avons acquises. Piaget suggère, de surcroît, et dans un cadre élargi, des processus d’adaptation qui permettent de faire évoluer le prototype. Il s’agit là d’une approche très économique, sans le développement systématique de formes inférentielles très complexes pour chaque nouvelle situation. Des travaux plus récents en intelligence artificielle, permettent une révision et une adaptation des frames aux situations nouvelles, par le biais de procédures d’apprentissage. | Les frames et les scripts proposent donc une méthode riche et souple pour représenter de façon organisée des fragments de connaissances spécialisées ou de tous les jours. Ils reproduisent une caractéristique essentielle de notre compréhension des processus rencontrés tous les jours : par assimilation à des situations prototypiques que nous avons acquises. Piaget suggère, de surcroît, et dans un cadre élargi, des processus d’adaptation qui permettent de faire évoluer le prototype. Il s’agit là d’une approche très économique, sans le développement systématique de formes inférentielles très complexes pour chaque nouvelle situation. Des travaux plus récents en intelligence artificielle, permettent une révision et une adaptation des frames aux situations nouvelles, par le biais de procédures d’apprentissage. | ||
+ | |||
+ | == Frames, Scripts et représentation de la connaissance == | ||
Comme on peut le constater à la lecture des autres fiches en sémantique, il y a de nombreuses façons à la fois de représenter la connaissance et de la ‘coder’ (par exemple, par de la logique ou par des procédures). Il est essentiel à ce stade de ne pas confondre contenant et contenu. Les frames, au même titre que les langages à base de primitives (fiche), sont des formalismes de représentation de la connaissance, avec leur pouvoir expressif et leurs limites. Ces formalismes sont nécessairement codés dans une machine ou tout simplement mis en œuvre ‘sur papier’ par le biais de formalismes de codage de l’information. Par exemple, on peut coder les frames par de la logique et les implémenter en Prolog (programmation en logique) ou bien encore coder un langage à base de primitives par une approche fonctionnelle. A chaque étape, il faut alors bien mesurer les restrictions et l’adéquation du langage utilisé pour le codage. | Comme on peut le constater à la lecture des autres fiches en sémantique, il y a de nombreuses façons à la fois de représenter la connaissance et de la ‘coder’ (par exemple, par de la logique ou par des procédures). Il est essentiel à ce stade de ne pas confondre contenant et contenu. Les frames, au même titre que les langages à base de primitives (fiche), sont des formalismes de représentation de la connaissance, avec leur pouvoir expressif et leurs limites. Ces formalismes sont nécessairement codés dans une machine ou tout simplement mis en œuvre ‘sur papier’ par le biais de formalismes de codage de l’information. Par exemple, on peut coder les frames par de la logique et les implémenter en Prolog (programmation en logique) ou bien encore coder un langage à base de primitives par une approche fonctionnelle. A chaque étape, il faut alors bien mesurer les restrictions et l’adéquation du langage utilisé pour le codage. | ||
Ligne 48 : | Ligne 60 : | ||
− | Quelques références bibliographiques | + | '''Quelques références bibliographiques''' |
Minsky, M., A framework for representing Knowledge, in Mind design, MIT Press, 1981. | Minsky, M., A framework for representing Knowledge, in Mind design, MIT Press, 1981. |
Version du 3 novembre 2005 à 16:50
par Patrick Saint-Dizier |
Sommaire
Bref historique
Bien que développés indépendamment au début des années 70, les frames (Schank et Abelson 1977) et les scripts (Minsky 1975) ont beaucoup de points en commun et sont développés dans un même document. L’idée clef des frames et des scripts, empruntée aux travaux en psychologie cognitive, en particulier en ce concerne l’acquisition de connaissances, est que notre connaissance et notre perception des concepts, des événements et des situations que nous utilisons, sont organisées autour de contenus prototypiques et de caractéristiques particulières que nous attendons relativement à ces concepts, événements et situations.
Structure de base
La structure globale
Considérons, à titre d’illustration, une situation stéréotypée telle que celle d’assister à la projection d’un film au cinéma. La frame (ou script) associée est, par exemple, film. Notre connaissance de cette situation inclut différents aspects : le titre du film, son réalisateur et sa distribution, sa durée, son coût de production, d’un côté, le nom et l’adresse du cinéma qui le projette, l’heure de début de la projection, etc d’un autre côté. Ces éléments caractéristiques sont codés dans la frame, par le biais de rubriques (appelées slots en anglais). Les rubriques de cette frame pourront, par exemple, être organisées comme suit : une rubrique localisation du cinéma (avec 2 sous-rubriques : nom et adresse), une rubrique date et heure de la projection, une rubrique identification du film (avec 3 sous-rubriques : titre, réalisateur et distribution). Cette frame peut contenir d’autres informations que nous percevons comme prototypiques, par exemple le coût d’un billet. Une frame reflète donc, de façon assez fidèle et partielle, la façon dont nous percevons et structurons une certaine connaissance, plus ou moins complexe.
Les rubriques
Les rubriques d’une frame sont souvent associées à une description des valeurs qu’elles peuvent recevoir (tout comme les attributs typés des grammaires d’unification) et de valeurs par défaut. Par exemple, la rubrique nom du cinéma est restreinte aux noms déclarés des cinémas du lieu considéré (et reporté dans adresse). De même, l’heure est restreinte à un certain intervalle (par exemple, à partir de 18h00, et en heure ou demie-heures). Une valeur par défaut pour la projection peut-être, par exemple, 20h30. En ce qui concerne le nom du cinéma, on voit qu’il existe un lien avec son adresse (en particulier la ville dans laquelle il est implanté).
Les procédures attachées
Il existe dans une frame des procédures actives qui contrôlent la correction des données et des liens entre elles, comme le font les contraintes d’intégrité dans les bases de données. D’autres procédures sont chargées d’aller chercher de l’information dans d’autres frames, ou de lier une frame à une ou plusieurs autres frames qui vont être utilisées pour caractériser un slot de la première. Par exemple, en ce qui concerne le coût d’une place de cinéma, il est possible d’aller chercher cette information dans une frame dédiée aux cinémas d’une ville. Ces procédures sont appelées en anglais des demons. Les frames ne sont donc pas des structures isolées : elles sont postulées former un réseau complexe d’interactions variées, reflet de l’interdépendance, de la hiérarchisation et autres connexions telles qu’observées dans les connaissances humaines.
La représentation des connaissances par les frames
Dans le cadre des frames, des travaux ont été développés, proches des préoccupations de l’époque en intelligence artificielle, pour tenter de réduire de façon prototypique un foisonnement d’événements ou de situations décrites a priori à l’interaction d’un ensemble réduit de primitives conceptuelles. Les primitives conceptuelles modélisent des actions typiques et souvent élémentaires que des humains peuvent réaliser, par exemple déplacer un objet d’un lieu à une autre, communiquer une idée (d’un ‘mental’ à un autre), déduire une nouvelle information à partir d’informations déjà établies, ingérer de la nourriture, se focaliser sur une information ou sur une image particulière. A partir de ces primitives, l’objectif est de construire la représentation d’énoncés simples ou complexes, par composition de ces primitives, selon certaines contraintes, par exemple d’enchâssement ou par concaténation. Les opérations formelles à ce niveau restent très simples.
Le Script
Un script est alors une structure composée de frames, éventuellement avec enchâssements, qui représente un ensemble d’événements, avec leurs relations temporelles, spatiales, causales, etc. Les descriptions d’événements peuvent n’être que partielles. La combinaison des frames étant en général assez ouverte, il est alors assez facile de décrire des événements peu fréquents ou inattendus, voire d’inférer des comportements ou des événements non décrits explicitement à partir de structures prototypiques. Le programme SAM, développé par Schank et Abelson, pouvait reconnaître et représenter des séquences simples telles que l’exemple très connu suivant :
Joe went to a restaurant. Joe ordered a hamburger. When the hamburger came, it was burnt to a crisp. Joe stormed out without paying.
Le système SAM, au vu de cette description, peut déduire que Joe n’a pas mangé le hamburger, même s’il n’y a aucune mention explicite de ce qu’il a fait dans le restaurant. Le système, très avancé pour son époque, pouvait expliquer son raisonnement sur le contraste entre le script standard de restaurant et des informations non trouvées dans ce texte.
Par exemple, l’absence d’informations sur la consommation du hamburger, entre autres, permet cette déduction. Le script du restaurant est donné ci-dessous, il fait appel à 7 frames élémentaires. Ce script est représenté informellement pour en faciliter la lecture :
Script(restaurant(Client, Restaurant, Aliments)) :
Entrer(Client, restaurant),
Appeler(Client, Serveur),
Commander(Client, Aliments),
Manger(Client, Aliments),
Apporter(Serveur, Aliments),
Payer(Client, Gérant, Aliments),
Sortir(Client, restaurant), Si : humain(Client), humain(Serveur), humain(Gérant) , nourriture(Aliments).
Les frames et les scripts proposent donc une méthode riche et souple pour représenter de façon organisée des fragments de connaissances spécialisées ou de tous les jours. Ils reproduisent une caractéristique essentielle de notre compréhension des processus rencontrés tous les jours : par assimilation à des situations prototypiques que nous avons acquises. Piaget suggère, de surcroît, et dans un cadre élargi, des processus d’adaptation qui permettent de faire évoluer le prototype. Il s’agit là d’une approche très économique, sans le développement systématique de formes inférentielles très complexes pour chaque nouvelle situation. Des travaux plus récents en intelligence artificielle, permettent une révision et une adaptation des frames aux situations nouvelles, par le biais de procédures d’apprentissage.
Frames, Scripts et représentation de la connaissance
Comme on peut le constater à la lecture des autres fiches en sémantique, il y a de nombreuses façons à la fois de représenter la connaissance et de la ‘coder’ (par exemple, par de la logique ou par des procédures). Il est essentiel à ce stade de ne pas confondre contenant et contenu. Les frames, au même titre que les langages à base de primitives (fiche), sont des formalismes de représentation de la connaissance, avec leur pouvoir expressif et leurs limites. Ces formalismes sont nécessairement codés dans une machine ou tout simplement mis en œuvre ‘sur papier’ par le biais de formalismes de codage de l’information. Par exemple, on peut coder les frames par de la logique et les implémenter en Prolog (programmation en logique) ou bien encore coder un langage à base de primitives par une approche fonctionnelle. A chaque étape, il faut alors bien mesurer les restrictions et l’adéquation du langage utilisé pour le codage.
Ceci étant posé, il n’en demeure pas moins que les frames et scripts, comparés à une axiomatisation en logique de la connaissance, soulèvent de nombreuses discussions, entre des sensibilités différentes : psycholinguistes d’une part et logiciens de l’intelligence artificielle de l’autre. Ainsi, concernant un énoncé général de la physique naïve du type ‘Un objet en mouvement sur terre ralenti sa course au fur et à mesure du temps à moins qu’il ne soit mû par une force externe (moteur, gravité terrestre)’, la question se pose de savoir s’il vaut mieux le représenter par un ensemble d’axiomes de la logique ou par le biais de schémas conceptuels (les frames) prédéterminés ? Ce débat est loin d’aboutir. Peut-être peut-on dire que chaque approche présente un intérêt en bonne partie complémentaire et que ce qui est important est de savoir ce que l’on veut faire de ces représentations.
Quelques références bibliographiques
Minsky, M., A framework for representing Knowledge, in Mind design, MIT Press, 1981.
Shank, R., Abelson, R., Scripts, Plans, Goals and Understanding, L. Erlbaum and associates, NJ, 1977.
Shank, R., Riesbek, CK, eds. Inside computer understanding: Five Programmes plus miniatures, Erlbaum, 1981.