Marianne Huchard, LIRMM, CNRS et Université Montpellier 2 Florence Le Ber

Post on 30-Jan-2016

30 views 0 download

Tags:

description

Variations sur … Treillis de Galois pour la classification de connaissances et la modélisation par objets. Marianne Huchard, LIRMM, CNRS et Université Montpellier 2 Florence Le Ber CEVH (ENGEES - ULP) et Orpailleur (LORIA Nancy). Plan. Introduction Treillis de Galois (notions de base) - PowerPoint PPT Presentation

Transcript of Marianne Huchard, LIRMM, CNRS et Université Montpellier 2 Florence Le Ber

Variations sur … Treillis de Galois pour

la classification de connaissances et la modélisation

par objets

Marianne Huchard,LIRMM, CNRS et Université Montpellier 2

Florence Le BerCEVH (ENGEES - ULP) et Orpailleur (LORIA

Nancy)

RIA's 2006 20 & 21 mars 2006

2

Plan

Introduction Treillis de Galois (notions de base) Analyse relationnelle de concepts

Application à l’ingénierie des modèles Généralisation de relations spatiales

Application aux SIG Conclusion et perspectives

RIA's 2006 20 & 21 mars 2006

3

Introduction (du besoin de classer dans les AOO)

Représentation de connaissances Classification courante

une façon naturelle d'organiser les connaissances des mécanismes bien établis dans les systèmes de

représentation (RCO et LD)

Problématiques manipuler les propriétés des objets / concepts pour le

raisonnement et la résolution de problème relier le domaine terminologique et le domaine concret

(concepts/données) analyser les données à partir du modèle du domaine construire des modèles d'un domaine à partir de données

RIA's 2006 20 & 21 mars 2006

4

Introduction (du besoin de classer dans les AOO)

Génie Logiciel Classifications courantes

Frameworks, Packages Relation de spécialisation/généralisation

Problématiques Regroupement d’entités Calcul de vues abstraites sur le logiciel Calcul de nouvelles généralisations

Un modèle théorique utile FCA/treillis de Galois

RIA's 2006 20 & 21 mars 2006

5

Treillis de Galois/treillis de concepts

Barbut/Monjardet 1970

f1 f2 f3 f4 f5

C1 x

C2 x x

C3 x x x

C4 x x x

Concept

({C3,C4},{f1,f3})

Spécialisation

({C3,C4},{f1,f3})

({C2,C3,C4},{f3})

Extraction d’abstractions à partir d’un ensemble d’entités décrites par des caractéristiques

Contexte binaire

RIA's 2006 20 & 21 mars 2006

6

f1 f2 f3 f4 f5

C1 x

C2 x x

C3 x x x

C4 x x x

({C4},{f1,f3,f5})

({C2,C3,C4},{f3})({C1,C3,C4},{f1})

({C2},{f2,f3})

({C3},{f1,f3,f4})

({C1,C2,C3,C4},{})

({C3,C4},{f1,f3})

({},{f1,f2,f3,f4,f5})

Treillis de Galois/treillis de concepts

(notions de base)

Treillis associé au contexte

RIA's 2006 20 & 21 mars 2006

7

Analyse relationnelle de concepts

(RCA)

Extension de FCA pour prendre en compte des entités décrites par des relations avec d’autres entités

Collaboration avec France Télécom R&D : M. Dao UDM : P. Valtchev, M. Rouane Hacène LIRMM/UDM : C. Roume LIRMM : C. Nebut, J.R. Fallery

name ownedAttribute

type

BasicAccount (BA) ‘BasicAccount’

{bba,o}

TeenagerAccount (TA) ‘TeenagerAccount’

{bta,mw}

BasicAccountHolder (BAH)

‘BasicAccountHolder’

{bal}

TeenagerClient (TC) ‘TeenagerClient’

{tal}

balance from BA (bba) ‘balance’

balance from TA (bta) ‘balance’

overdraft (o) ‘overdraft’

maxWithdrawal (mw) ‘maxWithdrawal’

bAccountList (bal) ‘bAccountList’

{BA}

tAccountList (tal) ‘tAccountList’

{TA}

Analyse relationnelle de concepts

Un contexte d’application : modèles conceptuels (UML)

TeenagerAccountbalance

maxWithdrawal

BasicAccountbalance

overdraft

BasicAccountHolder

bAccountList : BasicAccount[1.*]

TeenagerClient

tAccountList : TeenagerAccount[1.*]

7

Classes UML Modélisation naïve en FCA

name

‘BasicAccount’

.

.

.

name

‘balance’

.

.

.

name

‘tAccountList’

ownedAttribute (oa)

bba

oa

bta

oa

o

oa

mw

oa

bal

oa

tal

type

BA

type

TA

BA X X X

TA X X

BAH

X

TC X

bba X

bta X

o

mw

bal X

tal X X

Analyse relationnelle de concepts

(scaling contexte binaire un seul concept)

8

Analyse relationnelle de concepts

(Basic FCA : maigre moisson d’abstractions)

TeenagerAccountbalance

maxWithdrawal

BasicAccountbalance

overdraftBasicAccountHolder

bAccountList : BasicAccount[1.*]

TeenagerClient

tAccountList : TeenagerAccount[1.*]

balance

specializes

Une abstraction d’attribut …

9

Analyse relationnelle de concepts

(RCA : recueil de meilleures abstractions)

TeenagerAccount

maxWithdrawal

BasicAccount

overdraft

BasicAccountHolder

bAccountList : BasicAccount[1.*]

TeenagerClient

tAccountList : TeenagerAccount[1.*]

BankAccount

balance

BankClient

accountList:BankAccount

10

Analyse relationnelle de concepts

(Formalisation)

Relational Context Family (RCF)(K,R)

K ensemble de contextesK = {Kclass,Kproperty}

R ensemble de relations entre entités des contextes

R = {type,ownedAttribute}

OwnedAttribute

bba

bta

o mw

bal tal

BA X X

TA X X

BAH X

TC X

Kclass

name‘BasicAccount’

name‘TeenagerAccount’

name‘BasicAccou

ntHolder’

name‘TeenagerClient’

BA X

TA X

BAH X

TC X

KProperty

name‘balance’

… name‘tAccou

ntList’

bba X

bta X

o ..

mw ..

bal ..

tal X

type

BA TA

bba

bta

o

mw

bal X

tal X11

Analyse relationnelle de concepts

(Construction itérative de treillis)

Kclass

name‘BasicAccount’

name‘TeenagerAccount’

name‘BasicAccoun

tHolder’

name‘TeenagerClient’

BA X

TA X

BAH X

TC X

KProperty

name‘balance’

… name‘tAccount

List’

bba X

bta X

o ..

mw ..

bal ..

tal X

type C1 C2

bba

bta

o

mw

bal X

tal X

OwnedAttribute

Ca Cb Cc Cd Ce Cf

BA X X

TA X X

BAH X

TC X

Treillis des classes

Treillis des propriétés

12

Analyse relationnelle de concepts

KProperty

name‘balance’

… name‘tAccou

ntList’

bba X

bta X

o ..

mw ..

bal ..

tal X

type

BA TA

bba

bta

o

mw

bal X

tal X

bba,bta,o,mw,bal,tal

name=…., type=…

bba,btaname=‘balance’

ExtentIntent

oname=‘overdraft’

mwname=‘maxWithdrawal’

balname=‘bAccountList’type=BA

talname=‘tAccountList’type=TA

Cbbabta Co CmwCbal Ctal

13

Analyse relationnelle de concepts

OwnedAttribute

Cbbabta

Co Cmw

Cbal Ctal

BA X X

TA X X

BAH X

TC X

Kclass

name‘BasicAccount’

name‘TeenagerAccount’

name‘BasicAccou

ntHolder’

name‘TeenagerClient’

BA X

TA X

BAH X

TC X

bba,bta,o,mw,bal,tal

name=…., type=…

bba,btaname=‘balance’

ExtentIntent

oname=‘overdraft’

mwname=‘maxWithdrawal’

balname=‘bAccountList’type=BA

talname=‘tAccountList’type=TA

Cbbabta Co CmwCbal Ctal

14

Scaling « relationnel »

(BA,bba) OwnedAttribute1

et bba Extent(Cbbabta)

(BA,Cbbabta) OwnedAttribute2

OwnedAttribute

Cbbabta

Co Cmw

Cbal Ctal

BA X X

TA X X

BAH X

TC X

Kclass

name‘BasicAccount’

name‘TeenagerAccount’

name‘BasicAccou

ntHolder’

name‘TeenagerClient’

BA X

TA X

BAH X

TC X

BA,TA,BAH,TC

name=…., ownedAttribute=…

BAname=‘BasicAccount’

ownedAttribute=Cbbabta,Co

ExtentIntent

TAname=‘TeenagerAccount’

ownedAttribute=Cbbabta,Cmw

BAHname=‘BasicAcHolder’ownedAttribute=Cbal

TCname=‘TeenAccount’ownedAttribute=Ctal

CBA CTA CBAH CTC

BA,TAownedAttribute=Cbbabta

CBATA

15

KProperty

name‘balance’

… name‘tAccou

ntList’

bba X

bta X

o ..

mw ..

bal ..

tal X

type

CBA CTA CBATA

bba

bta

o

mw

bal X X

tal X X

BA,TA,BAH,TC

name=…., ownedAttribute=…

BAname=‘BasicAccount’

ownedAttribute=Cbbabta,Co

ExtentIntent

TAname=‘TeenagerAccount’

ownedAttribute=Cbbabta,Cmw

BAHname=‘BasicAcHolder’ownedAttribute=Cbal

TCname=‘TeenAccount’ownedAttribute=Ctal

CBA CTA CBAH CTC

BA,TAownedAttribute=Cbbabta

CBATA

16

bal,taltype= CBATA

KProperty

name‘balance’

… name‘tAccou

ntList’

bba X

bta X

o ..

mw ..

bal ..

tal X

type

CBA CTA CBATA

bba

bta

o

mw

bal X X

tal X X

bba,bta,o,mw,bal,tal

name=…., type=…

bba,btaname=‘balance’

ExtentIntent

oname=‘overdraft’

mwname=‘maxWithdrawal’

balname=‘bAccountList’type=CBA,CBATA

talname=‘tAccountList’

type=CBA,CBATA

Cbbabta Co Cmw Cbal Ctal

Cbaltal

17

OwnedAttribute

Cbbabta

Co Cmw

Cbal Ctal Cbaltal

BA X X

TA X X

BAH X X

TC X X

Kclass

name‘BasicAccount’

name‘TeenagerAccount’

name‘BasicAccou

ntHolder’

name‘TeenagerClient’

BA X

TA X

BAH X

TC X

bba,bta,o,mw,bal,tal

name=…., type=…

bba,btaname=‘balance’

ExtentIntent

oname=‘overdraft’

mwname=‘maxWithdrawal’

balname=‘bAccountList’type=CBA,CBATA

talname=‘tAccountList’

type=CBA,CBATA

Cbbabta Co Cmw Cbal Ctal

bal,taltype=CBATA

Cbaltal

18

OwnedAttribute

Cbbabta

Co Cmw

Cbal Ctal Cbaltal

BA X X

TA X X

BAH X X

TC X X

Kclass

name‘BasicAccount’

name‘TeenagerAccount’

name‘BasicAccou

ntHolder’

name‘TeenagerClient’

BA X

TA X

BAH X

TC X

BA,TA,BAH,TC

name=…., ownedAttribute=…

BAname=‘BasicAccount’

ownedAttribute=Cbbabta,Co

ExtentIntent

TAname=‘TeenagerAccount’

ownedAttribute=Cbbabta,Cmw

BAHname=‘BasicAcHolder’ownedAttribute=Cbal, Cbaltal TC

name=‘TeenAccount’ownedAttribute=Ctal, Cbaltal

CBA CTA CBAH

CTC

BA,TAownedAttribute=Cbbabta

CBATA

BAH,TCownedAttribute=Cbaltal

CBAHTC

19

BA,TA,BAH,TC

BAname=‘BasicAccount’

ownedAttribute=Cbbabta,Co

ExtentIntent

TAname=‘TeenagerAccount’

ownedAttribute=Cbbabta,Cmw

BAHname=‘BasicAcHolder’ownedAttribute=Cbal, Cbaltal TC

name=‘TeenAccount’ownedAttribute=Ctal, Cbaltal

CBA CTA CBAH

CTC

BA,TAownedAttribute=Cbbabta

CBATA

BAH,TCownedAttribute=Cbaltal

CBAHTC

TeenagerAccount

maxWithdrawal

BasicAccount

overdraft

BasicAccountHolder

bAccountList : BasicAccount[1.*]

TeenagerClient

tAccountList : TeenagerAccount[1.*]

BankAccount

balanceBankClient

accountList:BankAccount

bba,bta,o,mw,bal,tal

bba,btaname=‘balance’

ExtentIntent

oname=‘overdraft’

mwname=‘maxWithdrawal’

balname=‘bAccountList’type=CBA,CBATA

talname=‘tAccountList’

type=CBA,CBATA

Cbbabta Co Cmw Cbal Ctal

bal,taltype=CBATA

Cbaltal

TeenagerAccount

maxWithdrawal

BasicAccount

overdraft

BasicAccountHolder

bAccountList : BasicAccount[1.*]

TeenagerClient

tAccountList : TeenagerAccount[1.*]

BankAccount

balanceBankClient

accountList:BankAccount

RIA's 2006 20 & 21 mars 2006

23

Analyse relationnelle de concepts

Méthode générique dans la plateforme Galicia http://www.iro.umontreal.ca/~galicia

Implémentation dans l’atelier Objecteering (pour UML)

Se généralise à toutes les entités UML (associations, opérations, etc.)

RIA's 2006 20 & 21 mars 2006

24

Analyse relationnelle de concepts

Une expérience de généralisation sur des modèles France Télécom R&D Projet RNTL MACAO

http://www.lirmm.fr/~macao 3 modèles ~ 40 à 60 classes ~ millier d’éléments Obtention d’une forme « normale » Génération ~ un peu plus d’un millier d’éléments UML Analyse « artisanale » avec les concepteurs des modèles

d’origine Simplification des modèles Découvertes d’incohérences

RIA's 2006 20 & 21 mars 2006

25

Analyse relationnelle de concepts

Perspectives théoriques définition analytique, efficacité,

nombre d’itérations Perspectives applicatives

paramétrage, traçabilité, visualisation et manipulation des résultats

logique de description, autres langages de représentation …