1 Jérôme GENSEL (avec la bénédiction… mais sans le contrôle de Cécile CAPPONI) un résumé de [CAPPONI98] Présentation équipe AROM du 01/04/99 METEO : un système de types pour la représentation des connaissances par objets
2 Ce dont on va parler : types et RPO l Justifications l Tout est objet (et réciproquement) ? l Où sont les types ? l Metéo l Exploitation de Metéo l Conclusion
3 Ce dont on ne parlera pas l Détails techniques de l'implémentation du couplage Metéo/Tropes l Détails techniques de l'implémentation du couplage Metéo2/Java points à discuter avec Cécile les 8 et 9 avril prochains
4 Objectifs des systèmes de RPO 1) Permettre la représentation structurée et fidèle des connaissances issues d'une modélisation d'un domaine d'application - classes + instances - ordre partiel de spécialisation entre les classes 2) Favoriser l'exploitation homogène des connaissances représentées en vue d'en inférer de nouvelles - mécanismes d'inférences (classification, attachement procédural, filtrage, …)
5 Utilité d'un système de types 1) Vérification de cohérence d'une base de connaissances - classes + instances typées car attributs typés vérifications de types Mais système de type RPO systèmes de types classiques car - ensemble de valeurs évolutif - vérifications ensemblistes sur les domaines - redondances dans l'expression de ces domaines
6 Utilité d'un système de types 2) Ouverture vers la programmation - attributs typés car opérations utiles même en RPO - ouverture vers des composantes procédurales impliquant des types de données simples… et complexes (séquence, date, matrice, arborescence, …)
7 Utilité d'un système de types 2) Ouverture vers la programmation solution 1 : décrire ces types de données par des classes de la RPO - Situe au même niveau d'abstraction la classe gène (structure moléculaire biologique représentée) et la classe séquence (structure de données informatique) - pas de méthode... Cette solution n'en est pas une….
8 Utilité d'un système de types 2) Ouverture vers la programmation solution 2 : décrire et gérer ces types de données à l'aide un système de types - extensible - chargé de la complétude et de la correction des inférences et des vérifications de cohérence activées dans les bases de connaissances et impliquant les types de données associés aux attributs Solution adoptée !
9 Tout est objet (et réciproquement) ? 2 problématiques 1) vérifications de types et redondances 2) besoin de types de données externes
10 Vérifications de types et redondances - les vérifications de types impliquent les sous- ensembles de valeurs construits à l'aide des descripteurs des attributs Mais le langage de modélisation est volontairement expressif 1 domaine = multiples expressions syntaxiques
11 Vérifications de types et redondances Exemple : nombre-de-pattes $un entier $intervalle [0,8] $sauf {1,3,5,7} ou nombre-de-pattes $un entier $domaine {0, 2, 4, 6, 8} Besoin de normaliser pour accélérer les décisions (attachement et spécialisation)
12 Vérifications de types et redondances l La normalisation - combiner les descripteurs et éliminer l'information redondante vers une expression unique d'un sous-ensemble de valeurs d'attribut - permet de conclure à l'égalité de 2 domaines l L'expression normalisée n'est pas stockée au niveau de la RPO (les utilisateurs souhaitent conserver leurs expressions) recalculer ? NON ! Stocker au niveau du système de types - les expressions normalisées des ss-ens. de valeurs - la définition des opérations ensembliste de manipulation de ces expressions normalisées
13 Besoin de types de données externes l Seuls les types de base (du langage de programmation hôte) sont gérés par le SRPO l Pour les autres types de données programmer en externe et référencer ? déclarativité préservée…mais
14 Besoin de types de données externes Exemple Classe Gène-protéique sorte-de Gène attributs : promoteur $un Seq1 $card[2,6] codon-int $un Seq1 $card[3,3] $valeur ('T'.'A'.'C') seq-ARN $un Seq2 sib-exec Traduct(seq-cod) seq-cod... Seq1, Seq2 : types de données développés en externe Traduct : méthode écrite en langage hôte manipulant des valeurs de types Seq1
15 Besoin de types de données externes Le problème… Seq1, Seq2 sont des boîtes noires pour le SRPO pas d'interprétation des descripteurs de la RPO utilisés sur ces types pas d'interprétation des descripteurs : card sur Seq1 ??? pas de vérification possible des résultats des méthodes Il faut permettre l'interprétation des descripteurs même lorsqu'appliqués à des types de données externes
16 Où sont les types ? Attributs - d'abord typés par un descripteur principal ( $un, $ens, $liste ) qui définit un type abstrait pour l'attribut - puis restreints par d'autres descripteurs qui définissent des ss- ens. de valeurs du type abstrait associé ($domaine,$sauf, $int,..),
17 Où sont les types ? Attributs 2 niveaux de types 1) les types de données (réel, entier, …) 2) les sous-ensembles de valeurs spécifiés par l'utilisateur ([6.2, 14.3], {2, 5, 7}, …) Les domaines des attributs sont manipulés par des opérations ensemblistes ( , , , , …) utilisées pour l'attachement et la spécialisation
18 Où sont les types ? Classes - sa description peut être assimilée à un type record [Cardelli84] type record = fonction d'un ensemble non-ordonné d'étiquettes (les attributs) vers un ensembles de types (les domaines) - attachement et spécialisation se basent sur des opérations ensemblistes définies pour les types records Les opérations ensemblistes ont une sémantique commune indépendante de la nature du type de données référencé
19 Où sont les types ? En conclusion 2 niveaux de types 1) types de données (valeurs + opérations) 2) gestion des parties de ces types Structure algébrique des parties d'un type de données T = (où V : ensemble de valeurs et O : ensemble d'opérations) où E contient plusieurs opérations ensemblistes
20 Cahier des charges du système de types Le système de types devra permettre : - l'ajout de types externes (non disponibles dans la RPO) - la gestion des parties de ces nouveaux types - l'expression normalisée d'ensembles de valeurs Rôles du système de types : 1) typer les descripteurs de connaissances 2) normaliser les types obtenus 3) assurer la persistance de ces types parallèlement aux entités auxquelles ils correspondent
21 Architecture du système de types Domaine d'application extensions intensions Système de connaissancesSystème de types Classes attributs Instances valeurs d'attributs Classification inférences relations Types de données Parties (intervalles, types records, …) Valeurs (entiers, valeurs records, …) Langage de Programmation Opérations ensemblistes Opérations sur les valeurs
22 Metéo Module Extensible de Types Elaborés pour les Objets 2 niveaux de types : 1) C-type : implémentation d'un type de données (donnée structurée + opérations) + implémentation des opérations ensemblistes 2) -type : expressions d'un sous-ensemble de valeur d'un C-type
23 Les C-types Un C-type T est défini, de façon minimale par 2 opérations : 1) T : U {0,1} : prédicat d'appartenance d'une valeur quelconque de l'univers U à l'ensemble des valeurs de T 2) = T : T x T {0,1} : prédicat d'égalité entre 2 valeurs de T + d'autres opérations selon les C-types Metéo définit une base minimale de C-type Exemple : le C-type Liste muni de l'opération map Ces opérations sont disponibles au sein du SRPO
24 Base hiérarchique de C-types Univers Types de base EnumérésOrdonnés Symbole DiscretsDenses Construits Collection Record ListeEnsemble caractère Booléen Entier ChaîneRéel
25 EOLE EOLE : un langage interne d'expressions ensemblistes Il correspond au second niveau de types de Metéo Dédié à l'expression sous forme normale de sous-ensembles de valeurs issus des C-types A un ss-ens de valeurs (domaine d'attribut) ou de valeurs records (record de classe) est associé un ss-ens de valeurs de Metéo exprimé en EOLE Ces termes sont appelés des -types
26 Les -types A chaque C-type T = est associé une structure algébrique Metéo définit pour T, la syntaxe d'expression des éléments de 2 V T et implémente : , T : 2 V T x T {0,1} : appartenance , T : 2 V T x 2 V T {0,1} : inclusion , T : 2 V T x 2 V T 2 V T : plus grand minorant (intersection) , T : 2 V T x 2 V T 2 V T : plus petit majorant (union) / , T : 2 V T x 2 V T 2 V T : différence
27 Les -types Les termes de EOLE sont -types t = où T est le C-type de rattachement de t, et E(T) une expression syntaxique normalisée 2 ensembles de valeurs égaux ont même -type les termes de EOLE comporte des champs Exemples de -types -type Discret 1 champ domaine liste ordonnée d'intervalles de valeurs à bornes fermées -type Construits plusieurs champs E( Liste ) =, TOUT, {(4, 5, 6) (4, 5, 7)};[2, + ]>
28 -sous-typage et treillis de -types Les -types d'un même C-type sont partiellement ordonnés par -sous-typage (inclusion ensembliste issu de , T ) Opération implémentée pour chaque C-type par combinaison de conditions sur les champs d'expression des -types -type Discret : - sous-typage = test d'inclusion des listes d'intervalles
29 -sous-typage et treillis de -types -type Construits plus complexe t1= et t2= avec t'1= et t'2=
30 Treillis de -types et -sous-typage Les -types sont organisés en treillis à partir du -sous- typage, de , T et de , T Le -sous-typage permet de comparer des -types issus de C-types mais liés par le C-sous-typage Exemple Pair et Entier si Pair Entier grâce au -sous-typage, le -type réécrit en inclut le -type
31 Interface RPO/Metéo Typage des entités de représentation 3 étapes 1) interprétation des descripteurs d'attributs vers les champs d'un -type typage des classes vers des -types records (étiquettes = noms des attributs ; types associés = liens vers les -types des attributs) 2) Normalisation des champs du -type obtenu à partir de la procédure de normalisation définie pour le C-type 3) insertion du -type dans le treillis issu de son C-type
32 Interface RPO/Metéo Hiérarchie de spécialisation att1 $un chaîne att2 $un C' att3 $un entier att4 $un entier att5 $liste entier att2 $domaine(C'1,C'2) att3 $sauf (1,2,3,8) att3 $sauf(4,5,6,8,9,10) att5 $parmi (11,12,13,14) $card [1,3] att4 $int ]-inf,0],[4,+inf[ $sauf 8 att3 $int [-6,14] $sauf2 [-inf,+inf] Entier [-inf,0]+[4,7]+[9,+inf] [-inf,0]+[7,7]+[11,+inf] [-6,1]+[3,14] [11,14]
33 Extensibilité de Metéo Ajout dynamique d'un C-type - sélection d'un C-super-type - liens vers le code des opérations minimales (appartenance et égalité) et opérations exigées par le C-super-type Exemple (import-data-type Date Date hérite de Ordonné et Discret super-type : Discret (tri, minimum, gestion des parties) equal : dateq Metéo génère Liste(Date) et Ens(Date) member : datep order : ldate succ : +day pred : -day )
34 Extensibilité de Metéo Génération de l'implémentation de la structure algébrique des parties du nouveau type Exemple Date représentée par un triplet d'entiers (jj,mm,aaaa) la description de l'attribut period-exam $un Date $int [(13,05,1999) ; (20,05,1999)[ $sauf (18,05,1999), (19,05,1999) sera traduite par le -type
35 Implémentation de Metéo Implémentation "objet" naturelle - les C-types sont des classes dont les attributs sont les champs de description du C-type. Les méthodes de ces classes sont les opérations ensemblistes de manipulation des -types, les fonctions associées au C-type (appartenance, égalité) - les -types sont les instances de ces classes (infos statiques pour le -sous-typage : sur- -types, sous- -types)
36 Exploitation de Metéo Délégation des opérations sur les descriptions - il existe dans Metéo l'équivalent des deux relations de base de la RPO (attachement et spécialisation) effectuées sur les -types (normalisation + stockage) efficacité dans les processus décisionnels - classification d'instances et de classes classification dans les treillis de -types (amélioration : algorithme de Petko) algos d'aide à la construction ou à la comparaison de bases de connaissances avec phases de vérification ou d'inférences couplage avec Metéo efficacité
37 Exploitation de Metéo L'exemple du couplage Metéo/Tro(e)p(e)s : Metéo est également exploité pas - les notions de concepts, points de vue et passerelles - la révision dans les bases de connaissances (Crampé 97) - la catégorisation symbolique (Valtchev & Euzenat 95) - les outils pour la constructions de bases de connaissances consensuelles (Tayar 95) - les contraintes (Gensel 95) proposition d' une fusion Metéo/Micro (Capponi & Gensel 97)
38 Conclusion Idée : reprendre les principes de Metéo (les étendre ?) et construire un système de types pour AROM Typage similaire pour classes et attributs Typage spécifique des relations ? Ce qui est sûr : le code Talk de Metéo n'est pas réexploitable directement du fait des grandes entre l'approche objet Talk et l'approche objet Java qu'à cela ne tienne : Metéo 2 sera livré fin avril !
39 Poisson d'avril !!!