---
header-includes:
 - \usepackage[T1]{fontenc}
 - \usepackage[french]{babel}
 - \usepackage{datetime}
 - \usepackage{hyperref}
---

# Semaine 4: Les systèmes experts à base de schémas

Questions: 

- Faire de l'inférence sur les propriétés d'une instance d'un objet à l'intérieur de celui-ci?
- Est-ce qu'on peut considérer comme du "Forward chaining" le fait de chercher le bon schéma pour contenir les informations qu'on a acquis?

Remarques:

- Je vous beaucoup d'articles qui traitent de sujets dans l'enseignement de la médecine

## Article: Modelling Hybrid Rule/Frame-Based Expert Systems Using Coloured Petri Nets

Année: 1995
Source: [](https://pdfs.semanticscholar.org/214a/8830b8714de184e4abc18b0dfa8565d40340.pdf)

> The use of this hybrid approach integrates the power of organizing data objects in a class hierarchy and reasoning about the objects through user pre-defined logical associations. This advantage accounts for many popular expert system developing software, such as ADS, ART, [EXSYS EL](http://www.exsys.com/), KAPPA-PC, KBMS, Nexpert Object, Level5 Object, ProKappa, ReMind, which combine some sort of frame-based representation with a rule-based inference engine.


## Artificial Intelligence: A modern Approach Section 10.6 - Russell and Norvig

Source: Livre papier original que je possède.

## A Framework for Representing Knowledge - Marvin Minsky

Source: [A Framework for Representing Knowledge - MIT-AI Laboratory Memo 306, June, 1974.](http://web.media.mit.edu/%7Eminsky/papers/Frames/frames.html)

Ce texte a été écrit lors de recherche sur la vision artificielle.

- Les morceaux (`chunks`) de raisonnement, langage, mémoire et perception que nous utilisont sont plus larges et plus structurés que les théories actuelles de psychologie et d'intelligence artificielle, qui considèrent la connaissance comme des fragments simples et séparés. Selon Minsky, les approches actuelles ne considèrent pas la force et la rapidité des activités mentales.

- Dans une nouvelle situation, on trouve un schéma correspondant dans notre mémoire et on l'adapte. 

- **Commentaire personnel:** Dans le cas des systèmes à base de règles, on effaçait complètement la mémoire de travail lorsqu'on recommençait un nouveau problème.

- Un schéma est une structure pour représenter une situation stéréotypée:
    - Comment utiliser le schéma
    - Qu'est ce qu'on s'attend qui se produise par la suite
    - Que faire si ça n'arrive pas

- Noeuds et relations
    - Niveaux plus élevés: choses toujours vraies à propos de la situation
    - Terminaux (`slots`):  instances spécifiques
    - Conditions: types et relations, sous-schémas

- Systèmes de schémas:
    - Plusieurs schémas. 
    - Transformations entre les schémas
    - Notion d'imagerie, de visualisation mentale
    - Partagent les mêmes terminaux
    - Valeurs par défaut faciles à remplacer.

- Réseau d'extraction d'informations
    - Relient les systèmes de schémas entre eux
    - **Commentaire personnel:** Un peu comme le web sémantique le fait beaucoup plus tard.

- Processus d'appariement: 
    - Information interne et connaîssance des objectifs du système
    - Une fois le bon schéma identifié: complétion des terminaux
    - Actions suivant une transformation

### Vision

- La théorie de Gestalt est trop simpliste
- Traitement en parallèle: surtout au niveau du traitement sensoriel, mais pas dans la construction de concepts complexes.
- Connaissance procédurale
- Comment suivre le mouvement sans tout recalculer à chaque image?
- Un schéma = un point de vue. Ex: Les terminaux sont les faces d'un cube dont on ne voit jamais plus de 3 faces à la fois. Les relations entre les schémas sont les actions de rotation ou de déplacement. 
- ![](images/semaine04/minsky-frames/Image4.gif){width=50%}
- Continuité de la vision: persistence de l'assignement aux terminaux de différents schémas de vision.
- **Commentaire personnel:** Explique les illusions d'optique ?
- Valeurs par défaut: exemple du ballon (taille, couleur, poids)
- Transitivité: $${A} \in {B} \wedge {B} \in {C} \implies {A} \in {C}$$
    - Substitution de sous-schémas
### Langage

- Chomsky: Le traitement du vocabulaire et de la syntaxe sont des processus distincts et indépendants.
- Si les niveaux élevés du schéma sont comblés, mais pas ceux du bas, on a une phrase sans signification. Si les niveaux élevés ne sont pas comblés, mais les terminaux le sont, on a un ensemble de mots avec une signification.
- Situations difficiles à modéliser en logique de premier ordre. Structure qui déplace les descriptions spatiales d'un schéma à un autre. Changement dans le temps est similaire à un changement de position.
- ![](images/semaine04/minsky-frames/Image11.gif){width=50%}. 
- Une paire de schémas peut généraliser une situation. Il manque cependant l'information pour faire le lien entre les deux schémas, le `pourquoi`.
- Le centre du discours est plutôt le thème et non le verbe comme dans Fillmore (1968).
- Exemple: 

    ~~~ {.scheme}
    (histoire 
      (situation_initiale (...))
      (protagonistes (...))
      (evenement_principal (...))
      (morale (...)))
    ~~~

- Un échange pourrait être représenté facilement par un système de deux frames

    ~~~ {.scheme}
    (echange
      (initial
        (possede A X)
        (possede B Y))
      (final
        (possede A Y)
        (possede B X)))
    ~~~

- Il manque cependant le contexte de l'échange: argumentation, négociation, mensonge, arnaque, ...
- Charniak: le système devrait regarder pour certains évènements ou situations et injecter des raisons, motifs et explications.
- Types de schémas:
    - Syntaxique de surface: centré sur le verbe
        - prépositions
        - conventions sur l'ordre des mots
    - Sémantique de surface: centré sur l'action
        - participant
        - instrument
        - trajectoire
        - stratégie, but
        - conséquence
        - effets secondaires
    - Thématique: 
        - Thème, Activité, Portrait, Situation
        - Problèmes
        - Stratégies
    - Narratif: 
        - Récit, explication et argumentaire
        - Aide le lecteur à construire des schémas thématiques
- Un schéma est une collection de questions à poser à propos d'une situation hypothétique. Il spécifie les problèmes soulevés et les méthodes pour les régler.

### Apprentissage, mémoire et paradigmes

- Questions:
    - Comment sélectionner un schéma initial selon certaines conditions?
    - Comment sélectionner et assigner les sous-schémas qui représentent des détails additionnels?
    - Comment trouver un schéma qui remplace un qui ne correspond pas bien à la situation?
    - Si aucun schéma acceptable n'est trouvé, est-ce qu'on en modifie un existant ou en crée un nouveau ?
    - Quels schémas doivent être stockés ou modifiés suite à l'expérience?
- Proposition:
    - Processus de filtrage par motif
    - Théorie du partitionnement de données
    - Réseau de similarité
- Requêtes en mémoire: Quand une condition ne peut être satisfaite
    - filtrage: mécanisme associatif de base, soutien aux autres tactiques
    - excuse: une disparité peut être expliquée ou excusée: par exemple, un objet ayant la description d'un chaise mais étant trop petit peut être considiré comme un jouer.
    - conseil: le schéma contient la connaissance nécessaire pour gérer le problème. On peut intégrer ces connaissances à un réseau de similarité
    - sommaire: si on ne peut compléter ou remplacer le schéma, on doit formuler une plainte détaillée ou un sommaire pour aider la réassignation des sous-schémas **pas certain de comprendre?**

#### Filtrage ou sélection

Un coût à perdre un terminal assigné et un autre coût pour être incapable d'assigner un autre terminal:

- Autant de terminaux en commun que possible avec $\lbrace{a,b,\ldots,z}\rbrace$.
- Trouver ou construire un schéma qui a les propriétés $\lbrace{a,b,\ldots,z}\rbrace$.
- Trouver un schéma qui ressemble à celui précédent sauf pour certaines différences $\lbrace{a,b,\ldots,z}\rbrace$ entre eux.
- Requis fonctionnel, l'auteur réfère à [A model for functional reasoning in design, Freeman and Newell, 1971](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2832&context=compsci)

#### Excuse

Situations où une excuse peut pardonner l'échec du filtrage:

- Occlusion: un détail n'est pas visible par superposition d'un autre objet, concept. Par exemple, une chaise peut empêcher de voir la 4e patte d'une table.
- Variante fonctionnelle: Une propriété d'un objet est remplacée: par exemple, les 4 pattes d'une chaise peuvent être remplacées par un pilier central.
- Bris: L'objet pourrait être brisé. Exemple: une patte de chaise est manquante
- Contexte parasitaire: le contexte propose une autre interprétation. Par exemple, une chaise très petite peut être un jouet.

#### Réseaux de similarité

- Monter d'un niveau de classification. 
- Manque de détails spécifiques: 
- Concept de classes: Abstraction, généralisation. Winston 1970
- ![](images/semaine04/minsky-frames/Image11.gif){width=50%}

Les principales inquiétudes sont liées à la taille d'un tel réseau de similarité ($n^2$ paires de schémas)

#### Groupements, classes et analogie géographique

- Il n'y a pas une route entre chaque maison dans une ville, mais plutôt des pâtés de maisons.
- Hiérarchies de classes similaire à une adresse postale

#### Analogies

Les schémas utilisés dépendent de l'expertise de celui qui résous le problème. Un particulier a une vision plus sommaire du fonctionnement d'une voiture (moteur, direction) alors qu'un mécanicien voit les composantes du système (allumage, lubrification, refroidissement, transmission, compression, mélange d'essence, ...)

#### Sommaire: schéma et recherche heuristique

Le but principal derrière la théorie de la résolution de problemes est de réduire l'étendue de la recherche dans l'`espace` du problème. Les meilleurs systèmes de jeu (à cette date) n'apprennent pas davantage et ne raffinent pas leurs représentations. 

**note personnelle** Ces systèmes ont la même approche et la même performance à chaque fois que le même problème leur sera présenté.

La vision de Minsky: enrichir l'espace du problème pour le rendre plus facile à résoudre. En reformulant le problème par exemple. Le sommaire est un résumé des traces précédentes.

### Contrôle

La période étudiée est courte: un épisode. Découper de larges problèmes en petites tâches, soulever les ennuis habituels avec la programmation heuristique:

- Approche verticale ou horizontale:
    - Faire une passe sur tous les terminaux en premier
    - Instancier en détail certains terminaux
    - Un évènement en particulier déclenche le traitement d'un sous-schéma immédiatement
- Contrôle central:
    - Est-ce que le schéma est autonome dans son instanciation ou est-ce que c'est fait par un processus central.

Contrôle est en réalité différent pour chaque type de terminal et de schéma. Une approche par arbre de décision ou par activation de sous-processus (démons)

### Imagerie spatiale

- Chaque objet a une position (absolue) et une direction (relative)
- Les références entre les objets proviennent de schémas spatiaux globaux (Global Space frame)
- Adresses indirectes:
    - Vision: tout ce qu'on voit est associé à la position et la direction dans notre champ visuel
    - Activation de schémas: Un schéma de scène possède des terminaux qui pointent vers des schémas spatiaux globaux. Les différents schémas de la scène dans un même système sont sélectionnés et transformés selon la direction dans la quelle on regarde.
    - Instantiation: Théorie de la vision de premier ordre.

### Critique de l'approche logique

- Personne n'a pu confronter un système basé sur la logique avec un grand nombre de propositions. Les problèmes sont toujours simplifiés. Le problème de l'élicitation en formules logiques. Construire une base de connaissance est un problème de recherche intellectuel majeur.
- La consistance n'est pas vraiment possible, ni même souhaitable
- La pensée commence avec des réseaux défectueux qui sont lentement (sinon jamais) raffinés et mis à jour.

## Society of Mind - Marvin Minsky - Chapter 24

Source: Livre papier original que je possède.

- **Idée**: Mettre à jour les valeurs par défaut d'un schéma en utilisant l'apprentissage automatique dans un système concurrent.
- Interaction-square arrays: positions immédiates autour de l'objet en pensée, sous forme de grille 3x3.
- L'agent de schéma est responsable de collecter l'information pour alimenter les terminaux.
- Un réseau de reconnaisseurs et de mémorisateurs.
- Rétrospective: théorie suffisamment ouverte pour permettre un nombre important de contributions.

## Luger 8.3.1 Introduction to Model-Based Reasoning

- Une raison pour penser au raisonnement basé sur les schémas est l'absence d'explications en dehors du contenu des règles dans un système expert à base de règles.
- Limité à la connaissance de l'expert humain qui construit les règles.
- Caractéristiques d'un système à base de schémas:
    - Modèle: Analyse en profondeur de la structure et des fonctionnalités sur sujet étudié.
    - Données: lecture de signaux externes, acquis par un processus d'entrée sortie, par des "démons" ou des senseurs.
- Premières utilisations: éducation et diagnostic de problèmes simples (composante défectueuse)
- Un ensemble de comportements prédits est intégré au schéma.
- Plusieurs systèmes à base de connaissances utilisent tout de même des règles pour décrire le modèle et représenter les données. D'autres utilisent un modèle objet avec des classes, des attributs et des méthodes. **commentaire:** le modèle objet est une évolution de la vision de Minsky avec les schémas et les terminaux.
- Principaux exemples dans le domaine du contrôle industriel: moteurs diesel, systèmes de propulsion, schémas électriques et électroniques

### Exemple de l'opérateur arithmétique

Trois étapes de raisonnement:
- Génération de l'hypothèse
- Test de l'hypothèse
- Discrimination de l'hypothèse

**note:** Très près de la méthode scientifique, du raisonnement du scientifique lors d'une expérimentation

### Enjeux

- Nécessite une grande phase d'acquisition de connaîssances.
- Résulte en des programmes lourds, qui seraient moins efficaces et performants que les systèmes experts à base de règles. 
- **note:** Probablement une raison pourquoi cette approche a été moins populaire lors de son développement avec la capacité limitée des systèmes de l'époque

### Exemple de la NASA

- Système Livingstone
- Calcul propositionnel en remplacement du calcul des prédicats utilisés dans les systèmes à base de schémas.
- Système réactif
- Gestionnaire de configurations: configuration la plus optimale selon les entrées de senseurs reçues qui garde le même objectif initial.
- Mode d'opération normal et mode de gestion d'échecs

## Lecture de notes de cours

### Lecture 1

Référence: [Milos Hauskrecht - CS 2740 Knowledge Representation - Lecture 11](https://people.cs.pitt.edu/~milos/courses/cs2740/Lectures/class11.pdf)

Principales utilisations:

- Embellir une description approximative avec des valeurs par défaut et des valeurs implicites.
- Maintenir la consistance
- Utiliser les valeurs calculées pour dériver des propriétés explicites
- Éviter des calculs inutiles

Application: 

- Suivi des modifications d'une base de données

Paradigme: 

- déclaratif et procédural

Inférence: 

- Via des procédures, peuvent être contrôlées avec précision

Différences avec OOP: 

- Contrôle par instantiation, héritage et déclencheurs
- OOP: Les objets envoient des messages.

### Lecture 2

Référence: [John A. Bullinaria, 2003 - AITA : Frame Based Systems](http://www.cs.bham.ac.uk/~jxb/AITA/w6s3.pdf)

### Lecture 3

Référence: [Frame-based expert systems - Negnevitsky](https://staff.informatics.buu.ac.th/~krisana/975352/handout/Lecture06.pdf)

Deux types de méthodes associées à chacun des terminaux:

- Suite à un changement (WHEN CHANGED):
    - Souvent un ensemble de règles (démons)
    - Méthodes peuvent être plus complexes
- Quand un attribut est manquant (WHEN NEEDED):
    - Nécessaire pour la résolution d'un problème

Inférence:

- Le but est établi par les méthode
- La connaissance est dans les schémas
- Les règles jouent un rôle auxiliaire

Comment déveloper un système expert à base de schémas:

1. Spécifier le problème et la portée du système
1. Déterminer les classes et les attributs
1. Définir les instances
1. Définir les affichages
1. Définir les méthodes WHEN CHANGED et WHEN NEEDED et les démons.
1. Définir les règles
1. Évaluer et étendre le système

### Exemple 

Exemple tiré du résumé de Edwards (1987): Expert systems: frames, rules or logic for species identification?

A rule-based system requires the original knowledge (species descriptions) to be structured into rules, whereas a frame-based system can store the generic and specific descriptions in a series of frames. The frames fall into a hierarchy which closely resembles the taxonomic hierarchy, and down which information can be inherited. Two aspects of frame-based systems considered are the use of probabilities in identification, and the optimum structure of the knowledge base.

## Outils 

- KL-ONE
- CLIPS
    - Construction de frames dans CLIPS:
    - [COOL Object System](http://www.cs.oswego.edu/~odendahl/coursework/isc320/notes/jackson/22/schema.html)

- Protégé
    - Référence: [Site web du logiciel Stanford Protégé](http://protege.stanford.edu/)
    - Article: [Frame-based systems: Protege (Bioinformatics)](http://what-when-how.com/bioinformatics/frame-based-systems-protege-bioinformatics/)

- Knowledge.NET
    - Site web: [Knowledge.NET](http://www.knowledge-net.ru/en/documents.htm)

### Exemple de réseau sémantique et raisonnement avec Protégé et les données 