À retenir
- Il est déclaratif : on décrit le problème, pas la solution technique.
- Il repose sur des faits (ex: Jean est le père de Marc) et des règles (ex: Si A est le père de B, alors A est plus âgé que B).
- Le système utilise un moteur d'inférence pour explorer toutes les solutions possibles.
Un langage logique est une manière de programmer où l'on décrit des faits et des règles plutôt que de donner des instructions détaillées à l'ordinateur. Au lieu de dire à la machine « comment » faire une tâche étape par étape, on lui explique « ce qui est vrai » et on la laisse déduire elle-même les conclusions. C'est un peu comme fournir les indices d'une enquête à un détective (le moteur de recherche) pour qu'il trouve le coupable par déduction.
Étymologie
Le terme provient de la logique mathématique, spécifiquement du calcul des prédicats. Il s'est imposé dans l'informatique vers 1972 avec la naissance du langage Prolog, dont le nom est l'abréviation de « PROgrammation en LOGique ».
Exemples d'usage
- Prolog : le langage emblématique utilisé pour créer des systèmes capables de raisonner.
- Datalog : une variante simplifiée utilisée pour interroger des bases de données de manière très poussée.
- Mercury : un langage plus moderne qui combine logique et performance.
Cas d'usage
Ce concept est massivement utilisé dans l'intelligence artificielle symbolique, la démonstration de théorèmes, la planification complexe (comme les emplois du temps de ministères) et l'analyse de la structure des langues humaines.
Bonnes pratiques
Pour éviter que le programme ne tourne en boucle infinie, il faut faire attention à l'ordre dans lequel on déclare les règles. Une bonne pratique consiste à définir d'abord les cas les plus simples (les faits) avant les règles de déduction complexes.
Synonymes
Antonymes
Conseil
Pour bien comprendre, oubliez les notions de boucles for ou while. Imaginez que vous remplissez une base de données de vérités et que vous interrogez l'ordinateur pour savoir si une nouvelle proposition est vraie ou fausse par rapport à vos données.
Questions fréquentes
Quelle est la différence avec Python ou C++ ?
En Python, vous écrivez l'algorithme. En langage logique, vous écrivez la base de connaissances et l'ordinateur trouve l'algorithme tout seul.
C'est quoi une clause de Horn ?
C'est simplement une forme logique standardisée utilisée par ces langages pour exprimer une règle sous la forme : 'Si ces conditions sont vraies, alors cette conclusion est vraie'.