Séminaire « Développement logiciel et ontologies » J.M. Vanel - 2009-08-10 Appliquer l'intelligence artificielle au génie logiciel Modélisation, moteurs.

Slides:



Advertisements
Présentations similaires
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Advertisements

Web sémantique : Web de demain
Moteurs de recherche ontologiques
Projet de fin d'étude pour l'obtention du Diplôme Nationale d'Ingénieur en Informatique Conception et développement des modules de GED pour l’ indexation.
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Séminaire « Développement logiciel et ontologies » J.M. Vanel Appliquer l'intelligence artificielle au génie logiciel Modélisation, moteurs.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Nouvelles technologies pour automatiser le développement Déductions J.M. Vanel Appliquer l'intelligence artificielle au génie logiciel Modélisation,
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
Formation web sémantique J.M. Vanel RDF, RDF Schema, SPARQL, OWL, Modélisation, moteurs de règles Licence Creative Commons.
Le projet Déductions Faire tomber les murs du logiciel.
1 Modèles de conception métier J.M. Vanel Architecture en couches – Présentation – Logique applicative – Modèle Métier – Accès aux données – Stockage.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
MDA ( Model Driven Architecture ). Introduction Model Driven Architecture ● Framework ● Développement de logiciels ● Object Management Group (OMG) ●
Présentation du programme
Introduction Bases de Données NoSQL Principe de base Avantages/Inconvénients L’évolution du Web 2.0 et actuellement Web 3.0, a montrée l’insuffisance des.
Un système autonomique basé sur des bases de connaissances pour améliorer les performances d’un entrepôt de données Réalisé par : OUSSAFI MOHAMMED HOURRI.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Template Provided By Genigraphics – Replace This Text With Your Title John Smith, MD 1 ; Jane Doe, PhD 2 ; Frederick Smith, MD, PhD 1,2 1.
Subject: CMS(Content Management System) Université Alioune DIOP de Bambey UFR Sciences Appliquées et Technologies de l’Information et de la Communication.
Interfaçage entre Maple et du code externe
Environnement du développement de BD ORACLE REPORTS 10g
Support uniforme de types de données personnalisés dans RDF et SPARQL
Bases de données multimédia
Ingénierie des besoins - Février 05
Monsieur Jourdain du Web de données
Base de données: Généralité IFT6800 Jian-Yun Nie.
Fleet Management.
OWL-S.
Collecte de données CAPI
Les bases de données et le modèle relationnel
IDL_IDL bridge The IDL_IDLBridge object class allows an IDL session to create and control other IDL sessions, each of which runs as a separate process.
Technologies de l’intelligence d’affaires
Statistics & Econometrics Statistics & Econometrics Statistics & Econometrics Statistics & Econometrics Statistics & Econometrics Statistics & Econometrics.
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Systèmes Intelligents – M2- BD-IA1 Protégé-OWL Tutorial 8 th International Protégé Conférence Madrid, July 2005 Nick Drummond, Matthew Horridge, University.
Programmation système
Déductions: appliquer l'IA au logiciel
1 RDF Schema pour les ontologies légères Présentation de la famille de primitives de formalisation proposées par RDFS.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
IFT 702 – Planification en intelligence artificielle Langage PDDL
Plus de 4000 langages....
Introduction à Internet
Modèles de représentation des systèmes d’information
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Introduction en systèmes d’information et bases de données B.Shishedjiev -Introduction en BD 1.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Auditeur: Léonardo AMODIO Cours: NFE107
Catherine Cyrot - bibliothèques numériques - Cours 5
Présenté par : K.BERRAMLA. Encadreur : M.SENOUCI. EA.DEBA.
Structuration des documents pédagogiques
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
SUJET : E C L A T UNIVERSITE GASTON BERGER DE SAINT LOUIS UFR DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE MASTER PROFESSIONNEL EN DÉVELOPPEMENT DE SYSTÈMES.
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
(Direct Object Pronouns)
بسم الله الرحمن الرحيم.
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
TP1 - DBMAIN BFSH Lausanne - Switzerland - Tel Université de Lausanne.
Roowth 1 Université d'Adrar Faculté des Sciences et de la Technologie Département des Mathématiques et Informatique 1 er Année master : Informatique Option:
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
© Robert Godin. Tous droits réservés.
© Robert Godin. Tous droits réservés.
Le Climat : Un dialogue entre Statistique et Dynamique
Les promesses des plateformes d’échanges de données
Catherine Cyrot - bibliothèques numériques - Cours 5
Soutenance de thèse: Okba Taouali 1 02/08/2019 Fathia AZZOUZI, Adam BOURAS, Nizar JEBLI Conceptual specifications of a cooperative inter- machines dialogue.
Transcription de la présentation:

Séminaire « Développement logiciel et ontologies » J.M. Vanel Appliquer l'intelligence artificielle au génie logiciel Modélisation, moteurs de règles

Sommaire 1.RDF et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.Le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.Moteurs en logique des prédicats 6.Transformations de modèles via des règles 7.Architectures d'application 8.L'environnement EulerGUI centré sur le langage N3 9.Le projet Déductions

Sommaire pour une autre fois ● Représentation des connaissances, notions d'ontologie, de base de faits, de règles ● Protégé, un couteau suisse des ontologies; SWOOP ● les formats d'échange: DAM-OIL, KIF, CLIPS, TPTP, Prolog ● panorama des ontologies disponibles: SUMO, MILO, DOLCE, OpenCYC, BFO,... ● intégrer un système expert dans un programme Java: Drools, JSR94,... ● Les bases de données RDF, CouchDB, etc ● Intégrer une source de données relationnelle ou XML ● Les ressources Langage naturel: WordNet, Tao,...

Partie 1 1.RDF et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

Web Sémantique: la vision ● Le Web lisible par une machine ● Via le format RDF (XML) ● Cas d'utilisation ???

Web Sémantique: RDF ● Adapté au Web; tout est URI et types primitifs ● Un socle pour n'importe quel graphe d'objets (cf XMI) ● Monde ouvert: l'information disponible n'est pas supposée complète – on peut « annoter » tout ce qui a un URI; ● Qu'est ce qu'un URI ? ● Standards annexes: SPARQL, RDFa

Web Sémantique: RDF 2

Partie 2 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

Modélisation: SQL ● DDL: Base de donnée, table, champ, clés primaires et étrangères, vues, index ● Requêtes ● Services offerts: transactions, robustesse, permissions, triggers, procédures embarquées ● Monde fermé: portabilité limitée, inadapté au Web, pas de protocoles réseau standard

Modélisation: langages Orientés Objet ● Comme DDL de SQL, plus: – méthodes, héritage ● Pas de services offerts, mais il existe des bases de données OO ● Multiples dialectes historiquement datés: SmallTalk, C++, Java, Perl, Python, Ruby, C#... ● Chaque langage est lié à des bibliothèques non portables ● Manque de souplesse (pallié par les Design Patterns): instanciation, pas de liaison dynamique sur les arguments,...

Modélisation: UML ● Comme langages OO, plus: ● Méta-modèle de 249 classes: diagrammes de séquence, de cas d'utilisation, d'états,... ● Associations ● Pas de Requêtes, mais un langage de contraintes: OCL ● Pas de services offerts; historiquement langage purement graphique ● Monde fermé: portabilité limitée, inadapté au Web

Problèmes avec UML ● Modélisation par et pour les développeurs ● Cependant le rapport entre un modèle UML et le code source est complexe – Il existe des variantes plus ou moins proches de la programmation – Certaines notations déterminent directement le source, d'autres sont descriptives – Alternative: eCore d'eclipse EMF ● Pas modulaire ● L'OMG a toujours mal promu ses technologies

Modélisation: RDF Schéma ● Version très simplifiée du modèle de classes UML – Pas de cardinalités – Tout est triplets ● RDFS est un vocabulaire RDF comme un autre ● Standards annexes: SPARQL, RDFa

Modélisation: logique des propositions ● Alias logique 1er ordre (FOL) ● ( voir prés. par l'auteur de SUMO, Adam Pease )prés. par l'auteur de SUMO, Adam Pease ) ● On peut exprimer tout type de connaissance non probabiliste

Logique du premier ordre - 1 Ingrédients: ● Atomes et prédicats, fonctions ● Conjonction (et), disjonction (ou), négation ● Variables ● Quantificateurs existentiels et universels Exemple 1 en ?C, ?P. { ?C hasParent ?P } => { ?P hasChild ?C }.

Logique du premier ordre - 2 Exemple 2 en ?PARENT. { ?PERSON a Person } => { ?PARENT hasChild ?PERSON. ?PARENT a Person }. Remarque: en Prolog, et autres moteurs, ceci crée une récursion infinie.

Logique du premier ordre - 3 ● Non décidable en général ● en particulier, tout système qui inclut l'égalité et au moins un autre prédicat à deux arguments n'est pas décidable ● Les logiques qui étendent la logique du premier ordre, comme le deuxième ordre, la théorie des types, sont également indécidables

Modélisation: logique de description, OWL ● Certaines choses sont malaisées en FOL – Cardinalité (ex. un vélo a 2 roues ) ● FOL sans restrictions est indécidable et de complexité élevée ● Par contre si on se restreint à une modélisation de type RDFS, on connait des algorithmes efficaces ● Moteur (raisonneur) OWL: il classifie

OWL Lite: RDF Schema ● Class (Thing, Nothing) ● rdfs:subClassOf ● rdf:Property ● rdfs:subPropertyOf ● rdfs:domain ● rdfs:range ● Individual

OWL lite: (In)Egalité ● equivalentClass ● equivalentProperty ● sameAs ● differentFrom ● AllDifferent ● distinctMembers ● Sous-propriétés ● Classes disjointes ● Enumérations (oneOf)

OWL lite: Caractéristiques de propriété ● ObjectProperty ● DatatypeProperty ● inverseOf ● TransitiveProperty ● SymmetricProperty ● FunctionalProperty ● InverseFunctionalProperty

OWL lite: Restrictions de propriété ● Restriction ● onProperty ● allValuesFrom ● someValuesFrom

OWL lite: divers ● Intersection de classe : – intersectionOf ● Types de données XSD ● Propriétés d'annotation : – rdfs:label – rdfs:comment – rdfs:seeAlso – rdfs:isDefinedBy – AnnotationProperty – OntologyProperty

Modélisation: OWL versus UML ● Typage – UML: figé – OWL: par les propriétés ● OWL: Richesse expressive, permettant des raisonnements, pas seulement sur l'héritage

Modélisation: XML Schema ● XML (et XSD) accordent une importance superflue à l'imbrication des balises ● Correspondance naturelle: chaque balise correspond au prédicat RDF d'un triplet ● Hélas plusieurs façons de faire: le namespace XML est différent du préfixe RDF/N3

Panorama: the metamodel stack ● Expressivity is is higher up ● RDF can link anything

Modélisation facilitée – UML textuel Person<|---Customer---Buying<|---ServiceBuying <|---MerchandiseBuying HelpRequest Buying date: Date explanation: String Saisie 5 fois plus rapide qu'un éditeur UML ! Encore plus rapide que N3 !

Modélisation facilitée – Anglais contrôlé Every card is a means of a payment. Le modèle formel est récupéré à partir de la phrase: Card ---|> MeansOfPayment Project ACE ( Attempto Controlled English ) Essayez-le avec l'interface Ajax:

Récapitulation modélisation ● Exemple monétique: Client, Commande, Paiement ● Annotations RDF: incident de paiement, commandes passées ● Modélisation UML: classes figées ● Modélisation OWL: classes dynamiques ● Monde ouvert: RDF; SQL etc: monde fermé ● Règles: encore plus d'expressivité ● Anglais contrôlé → logique formelle ● UML simplifié

Partie 3 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

N3 : données et owl:. :p1 a :Person ; :size :Person a owl:Class. :size a owl:DatatypeProperty ; rdfs:domain :Person ; rdfs:range xsd:double ; rdfs:label "size (m)". Données Modèle

Rule example 1 # add a field in the form for each property of a class: { ?CLASS gui:hasForm ?FORM. ?PROP rdfs:domain ?CLASS. } => { ?FORM gui:hasField ?FIELD. ?FIELD gui:inputWidgetSpecification ?PROP. }. ?CLASS, ?FORM, ?PROP are universally qualified FIELD is existentially qualified

Rule example 2 # The type of the field depends on the type of the # property: ObjectProperty or DatatypeProperty { ?FIELD gui:inputWidgetSpecification ?PROP. ?PROP a owl:DatatypeProperty. } => { ?FIELD a gui:DatatypeInputWidget. }.

OWL implemented with N3 logic ● as part of the Euler project, a library of N3 rules implements the logic of OWL and RDF Schema (transitive property, inheritance, etc), and other goodies, see: ● p/trunk/2003/03swap/rpo-rules.n3 p/trunk/2003/03swap/rpo-rules.n3 { ?P a owl:TransitiveProperty. ?S ?P ?X. ?X ?P ?O. } => { ?S ?P ?O }.

Partie 4 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

Exemples de systèmes à base de règles ● tarification d'appels téléphoniques ● gestion de contenus (CMS): règles d'approbation ● processus métier (workflow): états et transitions ● optimisation de requêtes XQuery ● gestion de stock ● Gestion relation client ● Suggestions de contacts (Facebook)

Moteurs de règles: avantages ● Une règle isolée a un sens ● Le moteur enchaîne les règles, pas le programmeur ● + efficace que la programmation classique ● Capture bien l'expertise métier ● Traduisible depuis et vers le langage naturel ● Les « systèmes experts « ont fait leurs preuves

Partie 5 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.Le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.Moteurs en logique des prédicats 6.Transformations de modèles via des règles 7.Générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

Moteurs d'inférence en logique des prédicats ● Réduction à une forme normale ● Prouveurs de théorème: Prover9, Euler,... ● Assistants: Coq, Isabelle, … ● Tout les ans une compétition entre chercheurs – Un format d'échange existe : TPTP

Comparaison moteurs FOL, moteurs de règles ● Avec FOL on peut travailler sur une connaissance « négative » ● Exemple jeu de damier: on sait que le monstre n'est pas dans les cases B2 et C3

Partie 6: Transformations 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.Le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.Moteurs en logique des prédicats 6.Transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

Transformations via des règles ● 2 architectures: – créer des objets de proche en proche, – annoter les objets existants si on a une correspondance 1 à 1 ● Comparaison avec XSLT – Avec la logique on est indépendant de la structure ● Comparaison avec QVT – On est dans la programmation logique; QVT est déclaratif mais ça reste assez procédural

Partie 7: générateurs 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7. Architectures d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

OO and KB ● Object Oriented for the business data has lived – In OO, data model, bizz rules, infrastructure are mixed ● time for knowledge bases ! ● OO remains fit for the infrastructure code though ● A Copernican revolution !

Développement basé sur des ontologies - 1 Hiérarchie d'ontologies Ontologie haut niveau Ontologie s métier Ontologi e d'entrepr ise Ontologie applicativ e

Développement basé sur des ontologies – 2 – Scénario OO Ontologie applicativ e Classes métier brutes Classes métier + méthodes Présentation (IHM) Sources de données Générateur de code

Développement basé sur ontologies – 3 – Scénario OO+ moteur de règles Classes métier + méthodes Présentation (IHM) Sources de données Moteur de règles règles

Développement basé sur des ontologies – 4 – Scénario IA Ontologie applicativ e Présentation (IHM) Données utilisateur (faits) Moteur d'inférence Règles applicatives Application Base de connaissance

Partie 8 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

EulerGUI EulerGUI est bati autour d'une simple classe: Project Sources: N3Source[] N3Query: N3Source RunDroolsTriples(): List

Le flux d'information (vu par le concepteur) Réutiliser la technologie existante Modèle métier SQ L UML POJ O RDFS, OWL Règl es N3 SWR L Rewers e Prolog Droo ls Déducti ons Applicati on Abstraite Platefor me Concrète Swin g PH P eclips e.Net JDB C Sesa me Web Services C embarqué

Cohérence et réutilisation Réutiliser les modèles existants Modèle métier Règl es Déducti ons Application 1 Java Swing MySQL Expose / appelle Services Web Extraction, particularisatio n Application 2 PHP MySQL Application 3

Partie 9 1.RDF, RDFS et la vision par le W3C du Web Sémantique 2.Modélisations SQL, UML, langages OO, RDFS, logique des propositions, OWL 3.le langage N3, langage de convergence 4.Moteurs à base de règles (RETE) 5.moteurs en logique des prédicats 6.transformations de modèles via des règles 7.générateurs d'applications 8.l'environnement EulerGUI centré sur le langage N3 9.le projet Déductions

The Deductions project ● Application generation – platform independence ● User-friendliness : the Good Servant ● component-based application building: Intelligent modularity ● Comprehension without prior protocol

Advanced GUI features ● GUI rules: building components tree, behavior: cardinalities, inheritance, constraints (solve to infer values), ● Advanced features: propagate edits or not (money Xfer between accounts), has few values, graph view (following user past actions, lens), zip paradigm ● record user actions, and show some simple feed-back, maybe last object creations used for suggesting object link ● show table view (like relational DB table) ● show tree view : 1. follow object properties; 2. follow subclassOf, then rdf:type ● demonstrate UML front-end

GUI: the good servant ● every user action should be recorded ● exploit to infer her/his intentions ● Also draw all consequences from the model and data

Intelligent modularity : letting valences connect ● Re-use the wealth of existing libraries and components ● Tag libraries with their purpose ● Add protocol state machines ● Then we can infer actual call sequence and automate application building ● Also possibility to find libraries and applications by their functionalities

Comprehension without prior protocol ● Between human and computer ● Between computers ● Leverage on linguistics – opencyc.org, WordNet, upper level ontologies: Sumo, Milo,... ● ACE project ( Attempto Controled English )

Conclusion ● Copernic revolution: the infrastructures and OO techniques are at the periphery, Ontologies and rules and at the center ● Reduce the Babel effect effect in computer science by applying AI techniques ● Automatize application building will allow IT projects to concentrate on essential matters: domain model and business rules