Représentation des connaissances avec Anglais contrôlé, ontologies et règles

© Jean-Marc Vanel 2011

Déductions SARL - Conseil, services, formation,

Programmation basée sur les règles, Web Sémantique

EulerGUI EDI plaque tournante pour le Web Sémantique (SPARQL, exploration) + règles, XML, UML, eCore

Cette présentation utilise JavaScript, CSS et XHTML via le Slidy 2 du W3C

Préambule : la connaissance et sa gestion

Qu'est ce que la connaissance?

Plusieurs choses:

  1. l'expertise : exemple "un béton contient des granulats et un ciment"
  2. les algorithmes et formules : exemple "formule pour le vieillissement d'un béton"
  3. les données : exemple "base de données sur les ciments disponibles"
  4. des documents bureautiques classés par sujets et multi-critères

Notre sujet sera : 1-2-3.

Plan

Logique métier et Système d'Information

Le fil conducteur à travers les tendances du développement logiciel pourrait être : comment on va (plutôt cahotiquement ) vers plus de sémantique.

Domaines couverts par le logiciel d'entreprise:

Domaine impacté par
logique métier règles, langage Naturel Contrôlé
IHM règles
stockage persistant Web Sémantique
échange de données Web Sémantique

Le point 1 est le parent pauvre, car dans le courant dominant aujourd'hui, on code cela dans un langage procédural, typiquement Java (ou alors on délègue ça à un progiciel comme SAP, ce qui revient au même).

langage procédural ( et non logique ) => non composable, dépendance au language

Le point 4 est aussi un parent pauvre, car on pense en terme d'extraction (ETL), exportation et importation, le plus souvent en XML, parfois en temps réel via des services réseau.

Formaliser, pérenniser, sécuriser l'expertise métier

Rappels sur le Web sémantique - 1 les bases

Rappels sur le Web sémantique - 2

Rappels sur le Web sémantique - 3

cf Comparing Formats - English (Informal)

There is a person, Pat, known as "Pat Smith" and "Patrick Smith". Pat has a pet dog named "Rover".

mysql> select * from person;
+----+-----------+------+
| id | name      | pet  |
+----+-----------+------+
|  6 | Pat Smith |    7 |
+----+-----------+------+

mysql> select * from pet;
+----+-----------+
| id | name      |
+----+-----------+
|  7 | Rover     |
+----+-----------+

Directed Labeled Graph

Web sémantique - 4

Le même graphe sémantique au format de la logique des propositions ( à la Prover9 ) .

Human(pat).
pet(pat,r).
Dog(r).
name(r,"Rover").
name(pat, "Pat Smith").
name(pat, "Patrick Smith").

Le format N3 du Web Sémantique - 1

# brut :
@prefix : <http://my.com/semweb#> .
@prefix bio: <http://biology.org/ontology#> .
@prefix per: <http://ontology.org/> .

:pat a bio:Human .
:pat per:pet :r .
:r a bio:Dog .
:r per:name "Rover" .
:pat per:name "Pat Smith" .
:pat per:name "Patrick Smith" .

# avec plus de sucre syntaxique :
@prefix : <http://my.com/semweb#> .
@prefix bio: <http://biology.org/ontology#> .
@prefix per: <http://ontology.org/> .

:pat a bio:Human ;
     per:pet :r ;
     per:name "Pat Smith" ,
              "Patrick Smith" .
:r a bio:Dog ;
   per:name "Rover" .
# Sans sucre syntaxique:

<http://my.com/semweb#pat> <http://www.w3.org/2000/01/rdf-schema#type> <http://biology.org/ontology#Human>.
<http://my.com/semweb#pat> <http://ontology.org/name> "Pat Smith" .
# ... etc ...

http://prefix.cc site collaboratif pour les préfixes.

Le format N3 du Web Sémantique - 2

Notion d'ontologie (Logique de Description == DL )

OWL, le standard W3C d'ontologie

Systèmes en chaînage avant (alias moteurs de règles, "systèmes de production')

Moteurs de règles: avantages

Moteurs de règles: avantages spécifiques du moteur Drools+N3

Impossible avec moteurs SWRL dans Protégé, Pellet, etc

Moteurs de règles Drools+N3 / règles traitant classes et faits

Développement logiciel sémantique

Automatisation du développement logiciel ==> idée de développement logiciel sémantique.

Deux usages:

  1. tirer le meilleur parti de modèles métier pour créer des applications quelconques,
  2. utiliser le format N3 du Web Sémantique pour tous les artefacts logiciels hors programmation: configuration (formats. properties, JSON, .ini, XML, ... ), DSL.

Critiques d'UML

Langages naturels contrôlés (CNL)

A la fois logique formelle et Anglais standard:

Every client is a person.

Everything that a man buys is a good.

Expressivité comparée : règles versus DL

Expressivité comparée : DL, règles, CNL

règles DL (OWL) CNL OWL 2 RL Modal

Expressivité : règles > DL(OWL)

Règles avec nombreuses variables:

If a user U has-as-friend a person X, and has-as-friend a person Y, and X is not Y,

and X has-as-friend Z, and Y has-as-friend Z,

and Z is not U

then Z is-a-proposed-friend-for U.

Expressivité : DL(OWL) > règles

Ou logique (disjonction) :

Every person has a job, or is an unemployed-person.

Réutilisation de modèles, ontologies, vocabulaires

Réutilisation de données (Linked Open Data)

De la connaissance au logiciel: différentes chaînes de traitement, implémentation, déploiement

Scénario système expert

L'Orienté Objet pour les données métier a vécu

Liaison métier-implémentation - 1

Pure règle métier:

{ BloodPressure val ?x.
  ?x math:greaterThan 70
} => {
  Service112 alert "true" } .

Un fait qui déclenche la règle:

BloodPressure val 72 .

Conclusion ajoutée à la base de connaissances:

Service112 alert "true" .

Liaison métier-implémentation - 2

Règle applicative:

{ ?L alert "true"
    ; log:uri ?LL .
} => {
  application displayAlert ?LL . }.

Conclusion ajoutée à la base de connaissances:

application displayAlert "http://eulergui.sourceforge.net/examples#Service112".

Liaison avec plateforme (Java)

{ application displayAlert ?LL .
} => { 
  ?F a java:eulergui-gui-TemporaryFrame  # instanciation
   ; javap:localizedMessage ?LL .        # affectation propriété
}.

Avantages par rapport à un développement classique

Les utilisations possibles du cadriciel

Démo