marianne huchard, lirmm, cnrs et université montpellier 2 florence le ber
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 PresentationTRANSCRIPT
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 …