Travaux Pratiques Représentation des connaissances

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
Langages objet Définitions Traduction des méthodes en C++
Amélie Cordier – 09 Novembre 2004
Programmation Orientée Objet (POO)
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Chapitre III Héritage (début)
La programmation Orienté Objet
Programmation orientée objet
Javascript les spécificités du langage - Partie 2-
Langage Oriente Objet Cours 4.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
RDF(S)
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Vers la conception objet
POO : Objets et classes (Rappels)
Langage Oriente Objet Cours 2.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Structures de données IFT-2000
Structures de données IFT-10541
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction au paradigme orienté-objet (suite)
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Programmation non procédurale Le projet ECOLE 2000
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
INF1101 Algorithmes et structures de données
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,
Structures de données IFT-2000 Abder Alikacem Concepts orientés objet Édition Septembre 2009 Département dinformatique et de génie logiciel Département.
Patrons de conceptions de créations
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Héritage et composition
Chapitre X Modèles.
Introduction à l’environnement logiciel Clips
BD Relationnelles versus BD Objets Fariza Tahi
JavaScript Nécessaire Web.
La notion de type revisitée en POO
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
ESA Ecole Supérieure des Affaires Ernaelsten Gérard - Frédéric FiléePage 285 Cours de Programmation Web : PHP Chapitre 5 : Orienté objet en PHP.
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
11/04/ L'héritage Cours 7 Cours 7.
Algorithmique et programmation (1)‏
Programmation objet La base.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Créer des packages.
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
12/04/ Le polymorphisme Cours 8 Cours 8.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Tutorat en bio-informatique
Introduction à la programmation objet en C++
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Réaliser par: Sadok Amel Cheboui hassiba
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes Introduction aux Langages Orientés Objets
La programmation par objets Principes et concepts Etude de Smalltalk.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Campus-Booster ID : Copyright © SUPINFO. All rights reserved La programmation objet, un fondement de la programmation évènementielle.
Introduction à la Programmation Orientée Objet
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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é

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

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)

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

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

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

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

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

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))

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)

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))

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))

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

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))

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

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))

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

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

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

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)

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

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) )

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) )

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

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) )

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

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

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

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

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

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

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)

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