Vous êtes sur la page 1sur 11

Les logiques de description

Les reprsentations objet (suite)

Les Logiques de Description, Brachman et Schmolze [77], offrent un modle michemin entre les rseaux smantiques et les Frames de Minsky. Le premier reprsentant s'appelle KL-ONE.

Les Logiques de Description : KL-ONE Family


Les Logiques de Description : KL-ONE Family


KL-ONE [Brachman 85]


Un langage de reprsentation des connaissances la frontire des rseaux smantiques et des frames :

Langage de reprsentation de concepts proche de la notion de smantique lexicale ; Les concepts de KL-ONE sont munis d'attributs appels rle ; Des contraintes sur le type et la cardinalit de sa valeur sont associes tout rle, la manire des facets d'un langage de frames.

BACK, CANDIDE, CLASSIC, DRL, KANDOR, KLCONC, KL-MAGMA, KL-TWO, KNET, KREME, KREP, KRYPTON, L-LILOG, LOOM, MANTRA, MESON, NIKL, SB-ONE, SPHINX, DAML+OIL

KL-ONE est bas sur la subsumption de termes : c'est un systme hritage structur. Objectif : langage de reprsentation dont la smantique est bien fonde, c'est--dire externe la reprsentation et aux algorithmes qui oprent sur celle-ci. Domaines d'application initiaux : comprhension de la langue naturelle, gnration automatique de langue naturelle,

Les logiques de description


Les Logiques de Description


Reprsentation bipartite

Partie descriptive appele Tbox pour Terminological Box . Partie assertionnelle appele Abox pour Assertional Box . KL-ONE nest pas bipartite, c'est un langage de description de concepts, sous la forme de prdicats, sans assertions sur le monde. Raison dtre de Krypton : composant terminologique et assertionnel fond sur la logique des prdicats

Une logique de description fournit des primitives pistmologiques (primitives de reprsentation) :


Des concepts, Des rles, Des oprations (and, or, not, some, all, atleast, atmost) sur ces lments primitifs du langage, Un mcanisme de classification fond sur la relation de subsumption entre concepts ou rles.

Les oprations sur les connaissance et les faits ne sont pas les mmes. Induit des problmes : liaison entre les deux composants.

Induit gnralement un graphe orient sans circuit entre les concepts et entre les rles.

Les Logiques de Description


Les Logiques de Description


Deux types de concepts


Primitifs : dfinitions incompltes des concepts.


Conditions Ncessaires mais non suffisantes. Exemple : Polygone est un concept primitif, il peut tre dfini comme une figure gomtrique avec trois cts qui sont des segments de droite. Nous avons des CN mais non suffisantes pour dfinir qu'un individu appartient cette classe : toute figure non ferme satisfait ces conditions. Condition Ncessaire et Suffisante (CNS). Exemple : Triangle peut tre un concept dfini, driv de Polygone (un triangle est un polygone exactement trois cts).

Dfinis : dfinitions compltes des concepts.


(Cprim Vhicule (and (atleast 1 Roue) (atleast 1 Moteur))) (Cdef Moto (and (atleast 2 Roue) (atleast 1 Moteur))) Moto est un Vhicule ?

(Cprim Vhicule (and (atleast 1 Roue) (atleast 1 Moteur))) (Cdef Moto (and Vhicule (atleast 2 Roue))) Moto est un Vhicule ?

La classification ne peut oprer que sur des concepts dfinis.

KL-ONE

Notion de rle dans KL-ONE


Les concepts sont organiss sous la forme d'une taxinomie, ventuellement multiple, utilisant le lien de subsomption de faon permettre l'hritage de leurs proprits. KL-ONE distingue :

Permet de mettre en relation des concepts. Permet d'exprimer les conditions de la dfinition d'un concept. Peut tre gnrique ou individuel

Deux types de concepts :


Concept gnrique : extension = plusieurs individus Concept individuel : extension = un individu (exemples : le roi de France, toile du soir, toile du matin)

Les rles gnriques ne relient que des concepts gnriques. Les rles individuels permettent de relier des concepts individuels. Restriction de valeur. Restriction de nombre. Diffrentiation. Description structurelle.

deux liens particuliers permettant d'organiser la taxinomie de concept :


Tous les rles peuvent tre munis de proprits :


Lien "sorte-de" : permet de relier des concepts gnriques. Lien "est-un" : correspond la relation d'instanciation entre un concept gnrique et un concept individuel.

Rle gnrique

Restriction de rles

Un rle gnrique est dcrit ou spcifi par une restriction de valeur et possde une restriction de nombre ou cardinalit [n, m]. Les restrictions de valeurs sont de type ncessaire.
*
THING

Jouent un rle similaire la relation de subsomption, mais se rapportent aux rles gnriques
*
THING

sender (1,nil)

sender (1,nil)

*
sendDate (1,1)

MESSAGE PERSON

sendDate (1,1)

MESSAGE
recipient (1,nil)

*
PERSON

*
DATE

*
DATE
receivedDate (1,1) body (1,1)

recipient (1,nil)

*
receivedDate (1,1) body (1,1)

TEXT

*
TEXT

PRIVATEMESSAGE
(1,1)

Diffrentiation de rles

KL-ONE

Un rle gnrique diffrencie un autre s'il dnote une sous-relation de la relation dnote par l'autre
sender (1,nil)

KL-ONE est un langage de description de concepts sous la forme de prdicats. Il ne comporte que des connaissances terminologiques :

Triangle = polygone trois cts

sendDate (1,1)

*
MESSAGE
recipient (1,nil)

*
PERSON

*
DATE
receivedDate (1,1) body (1,1)

Brachman prconise l'utilisation de connaissances assertionnelles, ce qu'il applique dans le systme KRYPTON :

*
TEXT

CC-MESSAGE

To-recipient (1,nil)

CC-recipient (1,nil)

TBox : logique des prdicats, c'est la terminologie qui dcrit les proprit du monde en intension. ABox : proche de la logique du premier ordre, c'est l'ensemble des connaissances concernant les individus peuplant effectivement le monde.

Les graphes conceptuels


Dfinition formelle

La thorie des Graphes Conceptuels, dveloppe par SOWA (1984), est un formalisme gnral de reprsentation des connaissances fond sur la logique. Langage de reprsentation des connaissances bas sur :

Les Graphes Conceptuels d'aprs SOWA (1984), sont des graphes finis, connexes et bipartites.

la linguistique, la psychologie, la philosophie.

Objectif : dvelopper un systme de logique qui reprsente de faon simple et pratique les structures du langage naturel.

Les deux sortes de nuds d'un graphe bipartite sont les concepts et les relations conceptuelles. Chaque relation conceptuelle possde un arc ou plus, chacun d'entre eux doit tre li un concept. Si une relation a n arcs, elle est dite n-adique. Un unique concept peut former un graphe conceptuel, mais chaque arc de chaque relation conceptuelle doit tre li un concept quelconque.

Deux notations

Exemple

Notation graphique

Concepts : rectangles Relations : ovales Arcs : flches Concepts : entre crochets Relations entre parenthses Arcs : flches

Notation linaire

[ALLER](AGNT) ->[PERSONNE: Pierre] (DEST) ->[VILLE: Montral] (INST) ->[VOITURE]

Les graphes conceptuels et les frames


Les graphes conceptuels


Sous cette dernire forme le G.C. ressemble un Frame :


les relations conceptuelles s'apparentent aux "slots" les tiquettes de type s'apparentent aux contraintes les noms Pierre et Montral s'apparentent aux contenus des "slots".

Les G.C. reposent sur un systme de logique et peuvent ainsi tre reprsents par la logique des prdicats.

L'analyse de l'exemple prcdent rvle :


Prdicats : personne(x), aller(x), ville(x), et voiture(x). Les relations conceptuelles : agnt(x,y), dest(x,y), int(x,y).

Contrairement aux Frames qui ne savent reprsenter qu'une sous section de la logique, les G.C. permettent de reprsenter toute la logique tant plus gnraux.

L'expression de ce graphe en logique des prdicats du premier ordre donne donc l'expression suivante :

Les graphes conceptuels


Les graphes conceptuels


Un concept est un couple (type, rfrent) :


Les relations conceptuelles


Concept gnrique [personne] ou [personne : *] Concept individuel [personne : #1] la personne ou cette personne Nom propre [personne : Jean] Ensemble gnrique [personnes : {*}] Ensemble de cardinal spcifi [personne : {*}@3] 3 personnes Mesure associe une unit [hauteur : @3m] Ensemble dfini en extension [personne : {Jean, Marc, Arthur}]

Agent : (agnt) relie [action] [anim]


Le concept anim reprsente l'acteur de l'action Le concept anim ressent cet tat (Marie a chaud) Entit est implique de manire causale

Experienceur : (expr) relie [etat] [anim]


Instrument : (inst) relie [entit] [action]


Objet : (obj) relie [action] [entit] sur laquelle porte l'action


Le chien mange un os (os = objet)

Les graphes conceptuels


Les graphes conceptuels


Les graphes canoniques dfinissent des conditions d'emploi des concepts ou des possibilits de combinaisons de concepts. Les autres graphes seront drivs partir des graphes canoniques.

Exemples graphes canoniques

[interne](agnt)<-[pratiquer](obj)->[medecine] (lieu)->[hopital] [juger](agnt) -> [personne] (obj)-> [proposition]

Les graphes conceptuels


Les internes jugent une proposition importante [juger](agnt) -> [interne] (obj) -> [proposition](attr) -> [important]

Les graphes conceptuels


Oprations sur les graphes permettant de manipuler les GC lors d'une analyse smantique ou d'exprimer des phrases plus ou moins concises lors d'une gnration

Copie Restriction Simplification Jointure


Jointure maximale Jointure dirige

Les langages objets


Les langages objets


L'origine de langage objet peut tre trouve dans les rseaux smantiques :

En fixant une relation hirarchique de base (estun) et une relation d'appartenance, on a la structure d'un langage objet. Les autres relations se cachent dans les attributs des entits.

Les entits hirarchises sont les classes (avec au sommet une classe racine souvent appele OBJET). Les autres entits, les objets proprement dits, appartiennent aux diffrentes classes.

L'ide de langage objets connat diffrents types d'implmentations ayant chacune ses caractristiques avec quelques dnominateurs communs. Les premiers objets ont t dfinis comme une structure de donnes en LISP (les flavors). SMALLTALK est un des premiers langages qui a mis en uvre cette mthode et constitue le modle prototypique et le plus complet des langages objets. Des langages classiques ont ajout cette possibilit leur noyau habituel (Turbo Pascal, Cobol, C).

Les langages objets


Les langages objets


Une classe est dfinie par :


Exemple :

des donnes (variables d'instance, champs) des mthodes : procdures lies la classe, identifies par un slecteur. Pour utiliser ces procdures, il est ncessaire d'envoyer des messages aux objets de la classe.

Classe rectangle

Variables

(longueur (valeur : un nombre)) (largeur (valeur : un nombre)) (coin (valeur : un point)) (aire (longueur * largeur)) (display (draw-rect (coin longueur largeur))) (init (a b p) (longueur <- a)(largeur <- b)(coin <- p)

En principe, aucun accs direct aux donnes d'un objet n'est possible (encapsulation des donnes).

Mthodes

Les langages objets


Les langages objets


Classe point

Variables

(cx (valeur : un nombre)) (cy (valeur : un nombre)) (display (plot (cx cy)) (init (a b) (cx <- a)(cy <- b))

Mthode

(new rectangle rec-1) ; dfinit l'objet rec-1, instance de la classe des rectangle (new point pointA) (send pointA init 25 10) (send rec-1 init 25 10 pointA) ; initialise les valeurs de rec-1 (send aire rec-1); ce message permet d'obtenir la valeur de l'aire de rec-1 : 250 Vocabulaire : la mthode init est diffrente selon l'objet auquel elle s'applique => polymorphisme

Les langages objets


Les langages objets


Classe rectangle-plein: (un rectangle)


Rcapitulatif

Variables

(couleur (possibilits : jaune bleu rouge)) (display (super display)(fill couleur)) (init (a b p c)(super init a b p)(couleur <- c))

Mthodes

Cette nouvelle classe possde les proprits et les mthodes de la classe des rectangles

Un objet est dtermin par diffrents attributs dfinis dans sa classe. Chaque attribut peut tre typ. Avec la possibilit de dfinir des classes "embotes", on utilise de faon fondamentale les mcanismes d'hritage. Les procdures associes aux classes spcifient le comportement de ces dernires : ce sont les mthodes. Les objets communiquent par l'envoi de messages qui invoquent les mthodes mettre en uvre.

La programmation oriente objet


La programmation oriente objet


Rappel : programmation classique (procdurale, fonctionnelle, logique, dclarative).


Les programmes sont dcoups en modules ou fonctions qui reoivent des paramtres en entre et retournent des valeurs en sortie. Le programmeur doit choisir quelle fonction doit tre appele en fonction de ce qu'il faut faire et parfois le type des paramtres.

Le problme de la programmation classique provient du fait que le contrle se fait au niveau des appels de fonctions :

On choisit la fonction excuter, Le contrle est pass la routine, Puis les valeurs sont passes en arguments.

Le programmeur doit se rappeler le nom des diffrentes fonctions et slectionner la bonne. Si le type de l'argument change, il faut diter les appels correspondants dans le programme. Si le travail est fait par le compilateur, l'ajout d'un nouveau type ou l'extension d'une fonction un type existant ne peut tre ralise sans une modification du compilateur.

La programmation objet consiste inverser les priorits et privilgier l'argument par rapport la fonction.

Principe : l'argument connat son type et peut donc choisir la bonne squence de code excuter.

CLOS

Dfinition d'une classe


CLOS est une extension de Common Lisp. Il permet de dfinir :


Des classes Une hirarchie de spcialisation. Des mthodes appeles fonctions gnriques.

Une classe est dfinie l'aide de la macro defclass (defclass $person ()


(($name :accessor nom :initarg :nom)) (($nationalite :accessor nationalite :initarg :nationalite :initform "franaise" :type string)))

Le modle est dcrit par un mta-modle

Dfinition d'une classe


Les instances

Deuxime argument : () est utilis pour indique les super-classes Troisime argument est la liste de proprits ou slots : nom, nationalit

L'option :accessor dfinit une fonction la valeur du slot dans une instance L'option :initarg permet d'initialiser un slot au moment de la cration d'une instance L'option :initform permet de donner une valeur par dfaut au slot au moment de la cration d'une instance L'option :type permet de typer le slot (type lisp ou bien un nom de classe)

La cration d'une instance se fait l'aide de la fonction makeinstance. (setq $0 (make-instance '$person :nom "Albert" :nationalite "belge")) Le contenu d'un objet peut tre examin l'aide de la fonction describe (describe $0) La valeur d'un slot peut tre rcupre l'aide de la fonction prcise au moment de la dfinition de la classe par l'option :accessor (nom $0) "Albert" La valeur "Albert" peut tre modifie en utilisant son accesseur et la forme spciale setf (setf (nom $0) "Jacques")

10

Hritage

Mthodes, fonctions gnriques


Une classe peut tre dfinie par rapport une classe dj existante : La classe plus gnrale est prcise dans le deuxime argument de defclass.
(defclass $student ($person)
(($takes :type list :accessor UV :initarg :prend)))

Une mthode est dfinie l'aide de la macro defmethod (defmethod =print-self ((xx $person))

On peut alors crer des tudiants en utilisant les proprits dfinies dans $student mais aussi celles hrites de $person

(setq $1 (make-instance '$student :nom "Jean" :prend (list $3))

(format t "~& ~A ~A" (nom xx) (nationalite xx))) On note la forme particulire de la liste d'arguments qui prcise pour le premier argument xx la classe $person de celui-ci. La classe tant prcise, on peut utiliser les accesseurs correspondants aux slots de celle-ci.

Envoie de message

Hritage multiple

La syntaxe d'un envoi de message en CLOS ressemble un appel de fonction :


Dans CLOS, une sous classe peut hriter de plusieurs classes simultanment.
(defclass actionnaire (personne employe)
)

(=print-self $0)

Si on essaie d'appliquer cette mthode un objet qui n'est pas de la bonne classe, le comportement par dfaut de CLOS est de signaler une erreur. On peut dfinir une mthode =print-self pour une autre classe. Il faut toutefois que la liste d'arguments soit de la mme forme que dans la mthode qui a t dfinie (nombre d'arguments).

11

Vous aimerez peut-être aussi