Drools le moteur de règles métiers open source (BRMS) : Représentation des Connaissances et des Raisonnements (Knowledge Representation and Reasoning KRR)
Représentation des Connaissances et des Raisonnements (Knowledge Representation and Reasoning KRR).
KRR est comment nous représentons notre connaissance sous forme symbolique, c'est-à-dire comment nous décrivons quelque chose.
Le raisonnement est comment nous allons penser en utilisant cette connaissance.
Avec les langages de programmation orientés objet comme le C++, Java, C#, …, on peut définir des modèles de données appelées classes pour modéliser la composition et le comportement d'entités.
Les occurrences des classes (modèles) sont appelées objets ou instances.
Cependant ces systèmes de classification ont été surtout conçus pour des raisons d’efficience informatique.
Au fil des ans les chercheurs ont développé des façons de plus en plus sophistiquées de représenter notre monde, comme le langage OWL (Web Ontology Language, Langage d'Ontologie Web). Il y a toujours un écart entre ce qui peut être théoriquement représenté et ce qui peut être utilisé par informatique, c'est pourquoi OWL possède des sous-langages différents. N'importe quel système de raisonnement ne peut pas supporter OWL complètement, des avancées algorithmiques continuent à réduire les écart et améliorer l'expressivité disponible pour le raisonnement des moteurs.
Il y a aussi beaucoup d'algorithmes pour s’approcher des modes de raisonnement comme le chaînage avant (forward chaining) qui est réactif avec pilotage des données, le chaînage arrière (backward chaining), qui est passif avec pilotage de requêtes. Beaucoup d'autres types de techniques de raisonnement existent, augmentant le périmètre de ce qui peut être abordeé déclarativement.
Pour comprendre le fonctionnement du BRMS open source Drools, il n’est pas nécessaire de maîtriser toutes les dernières recherches en Intelligence Artificielle (IA).
KRR est souvent mentionné comme le cœur de l’Intelligence artificielle. Même en utilisant des approches biologiques comme les réseaux neuronaux, KRR reste un sujet énorme et fascinant qui constitue la plus grande partie de la théorie de Drools.
Un moteur de règles métiers est le programme informatique qui réalise KRR à un haut niveau, il a trois composants :
- Ontologie
- Règles
- Données
L'ontologie est le modèle de représentation que nous utilisons pour nos "entités". On pourrait utiliser des "records" ou des classes Java ou OWL.
Les règles exécutent le raisonnement, c'est-à-dire, elles facilitent "la pensée".
A début Drools a commencé comme un moteur de règles de type spécifique appelé Système de Règle de Production (Production Rule System PRS) et a été basé autour de l'algorithme Rete (du latin rete réseau).
L'algorithme Rete, développé par Charles Forgy en 1974, forme le "cerveau" d'un PRS.
Le système peut exécuter un très grand nombre de règles et de faits.
Une Règle est une structure en deux parties : les faits correspondants à des conditions et les conclusions qui aboutissent aux actions.
<conditions>
then
<actions>;
Le processus de correspondance des faits existants (ou nouveaux) par rapport aux règles est appelé "pattern matching" (schéma de correspondance) et est exécuté par le moteur d'inférence.
Les actions exécutées peuvent modifiées les données, comme un trigger de base de données et c'est pour cela qu'il s'agit d'une approche de raisonnement pilotée par les données.
Les actions elles-mêmes peuvent changer les données, qui pourraient à leur tour correspondre à d'autres règles et ainsi de suite, c'est ce qu'on appelle un algorithme de chaînage avant.
Drools version 5.x implémente et étend l'algorithme Rete. Cette extension est nommée ReteOO, qui signifie que Drools a une mise en œuvre améliorée et optimisée de l'algorithme Rete pour l'Orienté Objet.
Drools version 6.x présente un nouvel algorithme "paresseux" nommé PHREAK.
Les Règles sont stockées dans la mémoire de production (Production Memory) et les faits que le moteur d'inférence va faire correspondre se trouvent dans la mémoire de travail (Working Memory).
Les faits sont affirmés dans la mémoire de travail où ils peuvent alors être modifiés ou rétractés.
Un système avec un grand nombre de règles et des faits peut aboutir à un grand nombre de règles vérifiées pour la même affirmation ; on dit que ces règles sont en conflit.
L'agenda va gérer l'ordre d'exécution de ces règles contradictoires utilisant une stratégie de résolution de conflit.
Nous nous intéresserons dans un prochain article au système de raisonnement hybride (HRS Hybrid Reasoning System).
Rhona Maxwel
@rhona_helena
"Originellement nous ne pensons que pour agir. C'est dans le moule de l'action que notre intelligence a été coulée. La spéculation est un luxe, tandis que l'action est une nécessité."
Henri Bergson
Voir aussi :
https://tutorialsysml.wordpress.com/
http://sysml-tutorial.tumblr.com/
http://urbanisation-si.wix.com/blog
http://urbanisme-si.wix.com/blog
http://urbanisation-si.wix.com/urbanisation-si
http://urbanisation-si.over-blog.com/
http://rhonamaxwel.over-blog.com/
http://urbanisation-des-si.blogspot.fr/
A découvrir aussi
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 766 autres membres