# Clips (langage)

CLIPS (C Language Integrated Production System) est un environnement et un langage de programmation créés en 1985, faisant partie du paradigme des langages déclaratifs et logiques.
Il s'agit avant tout d'un outil de construction de systèmes experts à base de règles et d'objets.

## Caractéristiques notables

* La gestion de trois paradigmes à la fois: programmation procédurale, programmation à objets, et programmation par règles.
* Une grande flexibilité dans la représentation des connaissances, grâce à ces trois paradigmes.
* Portabilité et rapidité: il est écrit en C
* Intégration: Clips peut être "embarqué" dans des logiciels écrits dans d'autres langages.
* Extensibilité: ces autres langages peuvent servir à étendre ses fonctionnalités, en respectant certains protocoles.
* Interactivité avec l'interpréteur de commandes.
* Fonctionnalités poussées de validation de systèmes experts, de vérification de contraintes.

## Historique

Les origines de CLIPS se situent en 1984 au Johnson Space Center de la NASA. À cette époque, les outils de systèmes expert étaient développés en LISP, ce qui les rendait incompatibles avec les contraintes de la NASA. En effet, LISP n'était pas disponible pour toutes les architectures, ne s'intégrait pas bien avec les autres langages de programmation ; les coûts des outils LISP étaient élevés, et enfin le langage n'offrait pas les performances nécessaires en termes de rapidité d'exécution. Un langage tel que C semblait un bon candidat pour pallier ces problèmes. Malheureusement, le temps et le coût d'adaptation des outils existants annoncés par les fournisseurs étaient bien trop élevés. La section d'intelligence artificielle décida alors de développer son propre outil de système expert en C.
Un prototype de CLIPS apparut au printemps 1985, avec une syntaxe fortement inspirée de l'outil de système expert ART développé par Inference Corporation afin de le rendre compatible avec les autres outils existants. La version 1.0 de CLIPS prouva la faisabilité du projet, et seulement un an plus tard, en 1986, sortit la version 3.0 qui fut rendue disponible en dehors de la NASA.

## Exemple

Prenons tout d'abord les faits suivants :
* Les hommes sont mortels
* Socrate est un homme
* Les chiens sont mortels
Que nous traduisons en CLIPS :
Et la règle suivante :
* si a est b et b est c, alors a est c
Qui se traduit en CLIPS par:
Avant la première exécution la base de faits contient donc ceci :
En lançant la résolution, la règle est appliquée une fois avec les faits 1 et 2 :
* Socrate est un homme, or tout homme est mortel, donc Socrate est mortel.
La base de fait contient maintenant ceci :
La règle ne peut plus être appliquée à aucun fait, l'exécution s'arrête. Nous remarquons qu'un seul nouveau fait a été introduit dans la base de faits (Socrate est mortel). En effet, on ne peut pas en déduire que Socrate est un chien, comme dans le fameux sophisme.

## Licence

CLIPS et sa documentation sont dans le domaine public.
Plus précisément, les sources, les exécutables et la documentation téléchargée à partir de la page de téléchargement de CLIPS sont soumis à la présente licence :
   « La permission est accordée, gratuitement, à tout personne obtenant une copie du logiciel et de sa documentation associée (le "Logiciel"), d'utiliser le Logiciel sans restriction, incluant sans aucune limitation, le droit d'utiliser, copier, modifier, inclure, publier, distribuer et/ou vendre des copies du Logiciel, et de permettre à ceux à qui le Logiciel est fourni d'en faire autant. »