Approches Formelles en Systèmes d'information Gilles Falquet
Contact Gilles Falquet Centre universitaire d'informatique Uni-Dufour, bureau 323 +41 22 379 7772 Gilles.Falquet @ cui.unige.ch Matériel et info sur le cours : http : / / cui.unige.ch / isi / aftsi
Thème général du cours Formalisation des données et des connaissances Formalisation de leur représentation dans des interfaces Objectifs pédagogiques : connaissances de base du domaine comment attaquer formellement un domaine d'étude
Evaluation : 1 ou 2 travaux de modélisation/formalisation de connaissances présentation (courtes) d'articles de recherche
Programme du cours Systèmes formels et SI Représentations des connaissances logique premier ordre, réseaux sémantiques, logique descriptive systèmes et langages de RdC (CyC, OWL, ...) hypertextes Interfaces spécification orientée modèle représentation hypertextuelle des données documents virtuels
1. Formalisation et SI
Plan système et langage formel ==> langages informatiques spécification formelle des applications propriétés dynamiques des systèmes modèles de données données et connaissances interfaces des SI
1. Système formel Axiomes Règles de production ==> chaînes (théorèmes)
SF pour définir un langage axiome S règles S --> ab S --> bSa chaînes (= langage) ab, baba, bbabaa, bbbabaaa, etc.
exemple E --> T E --> T + T E --> T - T T --> (E) 0, 1, 1+1, 1+0, (1+1), 1-(0+(1-1))
SF pour raisonner Règles d'inférence de théorèmes en logique: pour prouver des conséquences logiques
Ex. en logique : modus ponens : A => B, A --> B spécification : "x P(x) --> P(t/x) 36 > 20 " x >20 => x2 > 400 -spec-> 36 >20 => 362 > 400 -mp-> 362 > 400
SF et théorie Fabrication de théories axiomes de la théorie règles d'inférence --> ensemble de théorèmes = théorie
Exemple Théorie des dépendances fonctionnelles Théorie logique axiomes " X ( df(X, X) ) " X " Y " Z ( df(X, Y) => df(XZ, Y) ) " X " Y " Z ( df(X, YZ) => df(X, Y) ) " X " Y " Z ( df(X, YZ) => df(X, Z) ) etc.
SF et sémantique Associer une interprétation aux chaînes Domaine d'interprétation lui même formalisé (!?) Fonction d'interprétation 1 1 2 3 0+(1+0) 0+0
2. Langages informatiques Donner une définition formelle de la syntaxe grammaire formelle :< SF Formaliser la sémantique domaine abstrait : ensemble de fonctions énoncé SQL ---> expr. algébrique == fonction C, Java, etc. .... très complexe
3. Spécifications formelles Fixer formellement ce que doit faire un programme ≠ comment le faire Spécifications algébriques types abstraits algébriques axiomes sur les opérations Spécifications orientées modèles modèle de données pré-post conditions (logiques)
4. Propriétés dynamiques Spéc. formelle des traitement : difficile pas dans UML Plus simple : spécifier l'évolution des états du système spécifier l'interaction entre tâches Outils automates finis, state charts, réseaux de Petri
5. Modèles de données Syntaxe : éléments du modèle Sémantique : interprétation abstraite des types de données, définition des opérations
exemple table T(a1 d1, …, an dn) définit un type T [[T]] = ensemble des fonctions t de {a1, …, an} dans d1 ... dn telles que t(ai) di un n-uplet de (type) T est une fonction (a1 v1, …, an vn)
6. Données et connaissances Données: plutôt représentation des informations (factuel) Connaissances: plutôt orienté traitement Calculs sur les données, dirigés par les connaissances BD: connaissances : schéma données : n-uplets
Faits et connaissances Le savant doit ordonner ; on fait la Science avec des faits comme une maison avec des pierres ; mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison. Henri Poincaré
Niveaux de connaissances générique livre scientifique encyclopédie CD-ROM éduc. TV (arte) taxonomie règles de sys. expert réseau sémantique ontologie journal (news) TV (TF1) site web (météo) données formules "de base" spécifique non formalisé formalisé
7. Interfaces Spécification formelle de la représentation objet de l'application --> objet(s) d'interface Spécification formelle de l'interaction action d'interface --> action de l'application action --> changement d'état de l'interface