La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Travaux Pratiques Représentation des connaissances

Présentations similaires


Présentation au sujet: "Travaux Pratiques Représentation des connaissances"— Transcription de la présentation:

1 Travaux Pratiques Représentation des connaissances
Intelligence Artificielle Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Préambule 2 : Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS

2 Programmation procédurale avec les fonctions
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Programmation procédurale avec les fonctions 2 types de fonctions - fonctions systèmes - fonctions utilisateurs

3 Affichage du résultat des appels
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Exemple d’appels de fonctions système Appels de fonction ou Expressions Affichage du résultat des appels

4 imbrication des parenthèses
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Exemple d’appels de fonctions système imbrication des parenthèses

5 Programmation procédurale
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Définition de fonctions utilisateurs Le constructeur deffunction Action Définit une fonction Syntaxe (deffunction <nom-fonction> |<commentaire>| |<liste-des-paramètres>| <expression-1> <expression-2> <expression-n> ) Corps de la fonction <nom-fonction> : nom de la fonction |<liste-des-paramètres>| : liste facultative des paramètres <expression-1> … <expression-n> : corps de la fonction

6 Programmation procédurale
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Définition de fonctions utilisateurs Le constructeur deffunction Exemple Constructeur Paramètres de la fonction Nom de la fonction Corps de la fonction

7 Exemple d’appel de fonctions utilisateur Chargement de la fonction
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Exemple d’appel de fonctions utilisateur Résultats des appels Fonction définie Appels de la fonction Chargement de la fonction

8 Le langage objet COOL (CLIPS Oriented Object Language)
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage objet COOL (CLIPS Oriented Object Language) Approche de programmation Connaissances déclaratives + Connaissances procédurales = OBJET

9 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Paradigmes Les connaissances déclaratives : propriétés de l’objet, son état, ses données, ses particularités (attributs) Les connaissances procédurales : capacités d’action de l’objet : savoir faire, réactions au monde extérieur (méthodes) Les données d’un objet ne sont accessibles et modifiables que par les méthodes de l’objet lui même : (encapsulation) Les objets communiquent entre eux par messages Les messages sont évalués par les méthodes de l’objet

10 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Paradigmes Les messages sont envoyés en précisant l’objet destinataire, le nom de la méthode à déclencher et éventuellement les paramètres de cette méthode Un message peut être interprété différemment selon l’objet destinataire. (polymorphisme) Les attributs sont typés et nommés Les attributs sont décrits à travers un ensemble de facettes Il existe plusieurs types de facettes : type, valeur par défaut, intervalle de valeurs, droit d’accès, visibilité

11 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Paradigmes Les objets ayant des propriétés et des capacités communes sont regroupés en classes Les classes sont génératrices d’objets Les objets sont crées à partir d’une classe Un objet est une instance unique de sa classe

12 Les objets héritent des attributs et des méthodes de leur classe
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Paradigmes Les objets héritent des attributs et des méthodes de leur classe Une classe est une spécialisation d’une autre classe existante Une classe 1. hérite des attributs et des méthodes de ses super-classes (ancêtres), 2. ajoute de nouveaux attributs et/ou nouvelles méthodes, 3. peut modifier ou redéfinir les méthodes héritées (surcharge) La partie privée d’une classe (attributs et méthodes) peut être partagée avec les membres de la familles : ancêtres (super-classes) ou descendants (sous-classes)

13 Travaux Pratiques Représentation des connaissances
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Travaux Pratiques Représentation des connaissances Programmation objets Le langage COOL Programmer en COOL revient à : 1. Définir des classes (defclass) en décrivant ses attributs (slot) avec leurs facettes ainsi que ses méthodes (defmessage-handler). Les méthodes doivent être déclarées au préalable (message-handler) 3. Créer des instances des classes définies (make-instance) 4. Envoyer des messages (send) aux instances créées Préambule 2 : Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS

14 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Action Définit une classe à travers les propriétés suivantes : Nom de la classe Nom de la super-classe Rôle Réactivité Les attributs avec leurs facettes Les méthodes

15 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Syntaxe (defclass <nom-classe> |<commentaires>| (is-a <nom-super-classe>) (role <rôle-classe>) |(pattern-match <filtrage-classe>)| slot <nom-slot1> (<facette-1> <valeur-facette-1>) (<facette-2> <valeur-facette-2>) …. slot <nom slot2> (<facette-1> <valeur-facette-1>) message-handler <nom-méthode-1> message-handler <nom-méthode-2> ) Attributs Méthodes Facettes

16 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : lien dhéritage is-a Action Spécifie le lien d’héritage d’une classe Syntaxe (is-a <nom-super-classe>) Exemple (is-a (USER)) <nom-super-classe> : nom de la super-classe directe : classe système ou classe utilisateur

17 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : rôle de classe role Action Spécifie le rôle d’une classe Syntaxe (role <quel-rôle>) Exemple (role (concrete)) <quel-rôle> : concrete : classe qui va être instanciée ou abstrait sinon

18 Le langage COOL : définition des classes (pattern-match (reactive))
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : réactivité de classe patter-match Action Définit la réactivité d ’une classe Syntaxe (pattern-match <réactivité>) <réactivité> : reactive : instances de classe utilisables dans les règles ou unreactive sinon Exemple (pattern-match (reactive))

19 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Elles servent à décrire un attribut Types de facettes Initialisation ou valeur par défaut (default) Typage (type) Accès (access) Visibilité (visibility) Définition des méthodes d’accès (create-accessor)

20 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette de valeur par défaut default Action Donne une valeur par défaut à l’attribut Syntaxe (slot <attribut> (default <valeur-par-défaut)) <valeur-par-défaut> : valeur par défaut de l’attribut Exemple (slot statut (default cadre))

21 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette de typage type Action Associe à un attribut un type particulier de données Syntaxe (slot <attribut> (type <type-de-données>)) <type de données>: un type de données : string, symbol, instance, float, etc Exemples (slot salaire (type float)) (slot superieur-hierarchique (type instance)) (slot motivations (type symbol))

22 Les types de données et les classes prédéfinies dans Clips
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Les types de données et les classes prédéfinies dans Clips

23 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette d’accès access Action Définit les droits d’accès (lecture et/ou écriture) liés à un attribut Syntaxe (slot <attribut> (access <droits-accès>)) <droits-accès> : droits d’accès : read-only, read-write ou initialize-only Exemple (slot date-embauche (access read-only))

24 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette de visibilité visibility Action Précise si l’attribut est accessible aux ancêtres et aux descendants de la classe où il a été définit Syntaxe (slot <attribut> (visibilty <type-visibilité>)) <type-visibilité> : type de visibilité : private ou public Non Oui Attribut accessible aux super-classes et aux sur-classes de la classe où il a été définit

25 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette de visibilité visibility Exemple (slot date-embauche (visibility private))

26 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Classe A Méthode-A Facette de visibilité visibility Classe B Classe C Méthode-B Méthode-C Attribut-B-1 private Attribut-B-2 public Classe D Méthode-D

27 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette de méthodes d’accès create-accessor Action Définit des méthodes particulières get-nom-de-l’attribut et put-nom-de-l’attribut permettant d’accéder à la valeur de l’attribut en lecture et en écriture Syntaxe (slot <attribut> (create-accessor <méthodes-à-définir>)) <méthodes-à-définir> : read, write ou read-write read : définit le get-nom-de-l’attribut write : définit le put-nom-de-l’attribut read-write : définit le get-nom-de-l’attribut et put-nom-de-l’attribut

28 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass : les facettes Facette de méthodes d’accès create-accessor Exemple (slot statut (create-accessor read-write)) Définition des deux méthodes get-statut et put-statut

29 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Le langage COOL : définition des classes Le constructeur defclass Déclaration des méthodes message-handler Action Déclare une méthode dans une classe Syntaxe (message-handler <nom-méthode>) <nom-méthode>: méthode à déclarer Exemple (message-handler affichage-info)

30 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Définition des méthodes defmessage-handler Action Définit une méthode dans une classe Syntaxe (defmessage-handler <nom-classe> <nom-méthode> |<liste-des-paramètres>| <commentaire>| <expression-1> <expression-2> <expression-n> ) <nom-classe> : nom de la classe <nom-méthode> : nom de la méthode |<liste-des-paramètres>| : liste facultative des paramètres <expression-1> … <expression-n> : corps de la méthode

31 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Définition des méthodes defmessage-handler Exemple (defmessage-handler INSCRIPTION affichage-info() (printout t crlf) (printout t crlf "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t "Le nom de l'inscrit est : " ?self:Nom crlf) (printout t "Le prénom de l'inscrit est : " ?self:Prenom crlf) (printout t "Le nom de la société de l'inscrit est : " ?self:Organisme crlf) (printout t "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t crlf crlf crlf) )

32 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Un exemple complet Description des attributs et déclaration des méthodes de la classe (defclass INSCRIPTION (is-a USER) (role concrete) (slot Nom (type STRING) (create-accessor read-write)) (slot Prenom (type STRING) (create-accessor read-write)) (slot Organisme (type STRING) (create-accessor read-write)) (message-handler saisie-info) (message-handler affichage-info) )

33 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Un exemple complet (defmessage-handler INSCRIPTION saisie-info() (printout t crlf crlf) (printout t "Tapez votre nom : ") (bind ?Nom (readline)) (send ?self put-Nom ?Nom) (printout t crlf) (printout t "Tapez votre prénom : ") (bind ?Prenom (readline)) (send ?self put-Prenom ?Prenom) (printout t "Tapez le nom de votre organisme : ") (bind ?Organisme (readline)) (send ?self put-Organisme ?Organisme) (return "fin de saisie") ) Définition des méthodes de la classe

34 Le langage COOL : définition des classes
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : définition des classes Le constructeur defclass Un exemple complet Définition des méthodes de la classe (defmessage-handler INSCRIPTION affichage-info() (printout t crlf) (printout t crlf "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t "Le nom de l'inscrit est : " ?self:Nom crlf) (printout t "Le prénom de l'inscrit est : " ?self:Prenom crlf) (printout t "Le nom de la société de l'inscrit est : " ?self:Organisme crlf) (printout t "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t crlf crlf crlf) )

35 Le langage COOL : création d’instances
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : création d’instances La fonction make-instance Action Crée une instance d’une classe déjà définie Syntaxe (make-instance [<nom-instance>] of <nom-classe> (<attribut-1> <valeur-attribut-1>) (<attribut-2> <valeur-attribut-2>) (<attribut-n> <valeur-attribut-n>) ) <nom-instance>: nom de l’instance <nom-classe> : nom de la classe à instancier <attribut-i> <valeur-attribut-i> : paire attribut valeur

36 Le langage COOL : création d’instances
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : création d’instances Le construct definstances Action Définit une collection d’instances d’une classe Syntaxe (definstances <nom-definstances> (<nom-instance1> of <nom-classe> (<attribut-1> <valeur-attribut-1>)… (<attribut-n> <valeur-attribut-n>) ) (<nom-instance2> of <nom-classe> …) <nom-definstances>: nom de la collection d’instances <nom-classe> : nom de la classe à instancier <attribut-i> <valeur-attribut-i> : paire attribut valeur

37 Le langage COOL : création d’instances
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : création d’instances La commande reset Action Rajoute à la liste des instances toutes les instances définies par un definstances

38 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Le langage COOL : création d’instances Exemple de définition d ’une collection d ’instances avec definstances

39 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS
Le langage COOL : création d’instances Rajouter à la liste des instances une collection d ’instances définie par definstances

40 Le langage COOL : envoi des messages
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : envoi des messages La fonction send Action Envoie un message à un objet Syntaxe (send [<objet-destinataire>] <nom-méthode> |<liste-des-paramètres>|) <objet-destinataire>: objet destinataire du message <nom-méthode> : nom de la méthode associé au message et que l’objet destinataire doit déclencher |<liste-des-paramètres>| : liste facultative de paramètres de la méthode

41 Le langage COOL : envoi des messages
Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage COOL : envoi des messages La fonction send Exemples (send [Insc1] saisie-info) (send [Insc1] affichage-info)

42 Représentation des connaissances dans CLIPS
Conclusion Clips est un outil souple et puissant pour la représentation des connaissances Il permet d’utiliser voir combiner différents formalismes (construct) Les Règles (defrule) Les Faits (deffacts) Les fonctions (deffunction) Classes d’objets (defclass) Objets ou instances (definstances) Messages (defmessage-handler) Formalisme règles de production Représentation déclarative Formalisme procédural Représentation procédurale Formalisme objet Représentation hybride


Télécharger ppt "Travaux Pratiques Représentation des connaissances"

Présentations similaires


Annonces Google