Documentation du code

Fonctions utilitaires pour gérer des propositions sans ou avec variables dans un moteur d’inférence.

moteur_avec_variables.proposition_avec_variables.corps(proposition)

Coupe la proposition courante et retourne la portion située après le premier élément.

A noter que dans le cas d’une proposition atomique, la méthode soulève une exception.

Paramètres:proposition – une proposition.
Retourne:le corps de la proposition composée.
moteur_avec_variables.proposition_avec_variables.est_atomique(proposition)

Vérifie si la proposition courante est un atome (c’est le cas s’il s’agit d’un string).

Paramètres:proposition – une proposition.
Retourne:True si la proposition est de type string.
moteur_avec_variables.proposition_avec_variables.est_une_variable(proposition, marqueur='?')

Vérifie si la proposition courante est une variable (c’est le cas s’il s’agit d’un atome dont la description commence par le marqueur de variables).

Paramètres:
  • proposition – une proposition.
  • marqueur – marqueur de variable avec valeur par défaut : '?'.
Retourne:

True si l’argument est un atome et commence par le marqueur de variables.

moteur_avec_variables.proposition_avec_variables.lister_variables(proposition)

Retourne un ensemble (de type set) contenant les variables mentionnées dans la proposition courante.

Paramètres:proposition – une proposition.
Retourne:la liste des variables apparaissant dans la proposition.
moteur_avec_variables.proposition_avec_variables.tete(proposition)

Coupe la proposition courante et retourne son premier élément.

A noter que dans le cas d’une proposition atomique, la méthode soulève une exception.

Paramètres:proposition – une proposition.
Retourne:la tête de la proposition composée.
class moteur_avec_variables.regle_avec_variables.RegleAvecVariables(conditions, conclusion)

Représentation d’une règle d’inférence pour le chaînage avec variables.

__init__(conditions, conclusion)

Construit une règle étant donné une liste de conditions et une conclusion.

Paramètres:
  • conditions (list) – une collection de propositions (pouvant contenir des variables) nécessaires à déclencher la règle.
  • conclusion – la proposition (pouvant contenir des variables) résultant du déclenchement de la règle.
__repr__()

Représentation d’une règle sous forme de string.

depend_de(fait, methode)

Vérifie qu’un fait fait partie, sous réserve de substitution, des conditions de la règle.

Paramètres:
  • fait – un fait qui doit faire partie des conditions de déclenchement.
  • methodeFiltre ou Unificateur, détermine le type de pattern match à appliquer.
Retourne:

un dictionnaire qui attribue un environnement à chaque condition qui peut être satisfaite par le fait pasée en paramètre. False si aucune condition n’est satisfaite par le fait.

satisfaite_par(faits, cond, env, methode)

Vérifie que des faits suffisent, sous réserve de substitution, à déclencher la règle.

Paramètres:
  • faits (list) – une liste de faits.
  • cond – la condition qui a donné lieu à env par le pattern match.
  • env (dict) – un environnement de départ déjà établi par depend_de.
  • methodeFiltre ou Unificateur, détermine le type de pattern match à appliquer.
Retourne:

une liste d’environnements qui correspondent à toutes les substitutions possibles entre les conditions de la règle et les propositions. On retourne une liste vide si au moins une condition ne peut être satisfaite.

class moteur_avec_variables.filtre.Filtre

Classe implémentant les méthodes de filtrage de propositions avec variables.

filtre(datum, pattern)

Effectue le filtrage entre un datum et un pattern.

Paramètres:
  • datum – une proposition sans variables.
  • pattern – une proposition pouvant contenir des variables.
Retourne:

un environnment c’est-à-dire un dictionnaire de substitutions {variable : valeur}, ou 'échec' si le filtrage échoue.

pattern_match(datum, pattern, env=None)

Effectue le filtrage en tenant compte d’un environnement initial.

Paramètres:
  • datum – une proposition sans variables.
  • pattern – une proposition pouvant contenir des variables.
  • env (dict) – l’environnement initial à prendre en compte.
Retourne:

un nouvel environnment ou 'échec'.

substitue(pattern, env)

Effectue des substitutions de variables par leurs valeurs dans un pattern.

Paramètres:
  • pattern – une proposition dont les variables doivent être remplacées par des valeurs. Une proposition est soit un atome, soit une liste contenant des atomes et / ou d’autre listes.
  • env (dict) – un environnment, c’est-à-dire un dictionnaire de substitutions {variable : valeur}.
Retourne:

le pattern dont les variables ont été remplacées par leurs valeurs dans l’environnment.

class moteur_avec_variables.unificateur.Unificateur

Classe implémentant les méthodes de l’unification de propositions avec variables.

pattern_match(prop1, prop2, env=None)

Effectue l’unification en tenant compte d’un environnement initial.

Paramètres:
  • prop1 – une proposition pouvant contenir des variables.
  • prop2 – une proposition pouvant contenir des variables.
  • env (dict) – l’environnement initial à prendre en compte.
Retourne:

un nouvel environnment ou 'échec'.

substitue(pattern, env)

Effectue des substitutions de variables dans un pattern.

Paramètres:
  • pattern – une proposition dont les variables doivent être remplacées par d’autres propositions.
  • env (dict) – un environnment, c’est-à-dire un dictionnaire de substitutions {variable : proposition}.
Retourne:

le pattern dont les variables ont été remplacées les propositions qui leur sont associées dans l’environnement.

unifie(prop1, prop2)

Effectue l’unification entre deux propositions.

Paramètres:
  • prop1 – une proposition pouvant contenir des variables.
  • prop2 – une proposition pouvant contenir des variables.
Retourne:

un environnment, c’est-à-dire un dictionnaire de substitutions {variable : proposition}, ou 'échec' si l’unification a échoué.

class moteur_avec_variables.chainage_avant_avec_variables.ChainageAvantAvecVariables(connaissances, methode=None)

Bases: moteur_sans_variables.chainage.Chainage

Un moteur d’inférence à chaînage avant avec variables.

ChainageAvantAvecVariables.__init__(connaissances, methode=None)
Paramètres:methodeFiltre ou Unificateur, détermine le type de pattern match à appliquer. Filtre par défaut.
ChainageAvantAvecVariables.affiche_solutions(indent=None)

Affiche les solutions d’un chaînage après l’appel à chaine.

Paramètres:indent (str) – l’identation souhaitée au début de chaque ligne (quatre espaces par défaut).
ChainageAvantAvecVariables.affiche_trace(indent=None)

Affiche la trace d’un chaînage après l’appel à chaine.

Paramètres:indent (str) – l’identation souhaitée au début de chaque ligne (quatre espaces par défaut).
ChainageAvantAvecVariables.chaine()

Effectue le chaînage avant sur les faits et les règles contenus dans la base de connaissances.

ChainageAvantAvecVariables.instancie_conclusion(regle, envs)

Instancie la conclusion d’une règle pour tous les environnements.

Paramètres:
  • regle – la règle dont la conclusion doit être instanciée.
  • envs (list) – les environnements servant à instancier la conclusion.
Retourne:

une liste de propositions correspondant aux différentes instanciations de la conclusion.

ChainageAvantAvecVariables.reinitialise()

Réinitialise le moteur.

La trace et les solutions sont à nouveau vides après l’appel à cette méthode.