Séance 11 : Initiation à Prolog Flashcards

1
Q

Qu’est-ce que la logique procédurale?

A

La résolution d’un problème avec une suite d’opérations qui permet d’obtenir la solution voulue

ex: Python texte -> procédure -> résultat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Comment est appliquée la logique procédurale? Exemples d’applications?

A

Par la manipulation et la transformation d’unités

ex: trier les mots d’un texte
extraire des contextes
gestion d’une base de donnée

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

V ou F : la procédure en logique procédurale dépend de la nature de l’objet à traiter.

A

Faux, elle en est indépendante. L’ordinateur n’a pas besoin de savoir ce qu’est un mot pour calculer sa fréquence dans un texte. Vs prolog qui a besoin de connaissances, comme nous.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelles sont les limites de la logique procédurale? Comment les traite-on en Prolog?

A
  1. Impossible de traiter des relations (représentation de connaissances)
    ex: Jean est le père de Michel.

=> faits en Prolog

  1. Impossible de faire des inférences (nouvelles connaissances à partir de connaissances actuelles : exploitation de relations)
    ex: Si une personne X et une personne Y – X et Y étant des personnes différentes - ont le même père ou la même mère alors X est le frère ou la sœur de Y et Y est le frère ou la sœur de X.

=> règles en Prolog

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quel langage de programmation utilise Prolog? Que permet-il de faire?

A

Le langage de programmation déclaratif.

Il fait appel aux mécanismes d’inférence de la logique des prédicats :

  • Permet de représenter des relations et de faire des inférences (déduire nouvelles connaissances à partir d’actuelles sans qu’elles soit explicitées)

(D’où son nom «Programmation en logique».)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Prolog est-il efficace? puissant?

A

Très inefficace: les programmes sont lents.

Très puissant: développement rapide de mécanismes très complexes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quand on utilise Prolog? 2 exemples?

A

Pour des problèmes exprimés sous forme d’objets et de relations

= représentation de connaissances

ex: analyse syntaxique (on définit connaissances de base (catégories et syntagmes) et après on peut inférer quels agencements de mots font quels syntagmes
ex: création d’un arbre généalogique (on définit qui est le père, mère de qui et va inférer frère soeur etc)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce qu’un terme dans Prolog?

A

Peut être une variable, un atome, un fait, une règle…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

V ou F : Une variable est un terme.

A

Vrai, terme qui peut contenir un terme (car peut contenir un atome, un fait, une règle, un nombre, une structure)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quels sont les 2 types de termes?

A

Inconditionnels (faits)
femme(marie).
homme(jean).

Conditionnels (règles)
parents(X,Y,Z) :-
mere(X,Z), pere(Y,Z).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

V ou F ; L’ordre est important dans Prolog.

A

Faux, il est arbitraire. L’ordre des atomes doit toujours être le même par exemple (ex: parents(marie,jean,jude) => tj mère, père, enfant))

Différemment à Python, c’est comme si tout se fait en même temps.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

V ou F : La signification d’un terme est pas important dans Prolog.

A

Faux, il est arbitraire (ex: patient peut référer à la patience ou la maladie), mais est important, car on doit toujours garder la même.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce que l’humain fait quand il dit “Jean possède un livre”. Prolog fait-il la même chose?

A
  1. Il identifie deux objets (livre et jean)
  2. Il exprime une relation (appartenance)

=> donc, fait appel aux connaissances du lecteur ou de l’interlocuteur sur la nature des objets et sur les propriétés de la relation (unidirectionnelle (le livre possède pas jean) vs bidirectionnelle (pour frère ex))

Prolog fait la même chose, c’est sa grande force.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

V ou F : Les objets doivent être nommés explicitement dans une relation. Ex?

A

Faux, ‘interlocuteur, l’utilisateur du programme comprend les informations implicites en fonction de ses connaissances et du contexte.

=> c’est l’esprit de Prolog, il fait appel aux connaissances de l’utilisateur

Exemple : La pomme est bonne

On ne dit pas pour qui (ou pour quoi) la pomme est bonne.

Il peut s’agir d’un être vivant mais pas nécessairement. La pomme (au sens du marché de la pomme) pourrait être bonne pour l’économie.

Le sens précis de «bonne» n’est pas explicite.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quelles sont les propriétés des variables?

A

Elles commencent par une majuscule.

Leur portée est uniquement à l’intérieur d’un terme
ex:
est_mere(X) :- mere(X,Y).
est_pere(X) :- pere(X,Y).
*Tout est compartimenté, les X et Y ne sont pas les mêmes d’une ligne à l’autre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

V ou F : Dans Prolog, les variables sont manipulées directement.

A

Faux, sauf dans des cas extrêmement rares. Leur contenu est inféré des faits et des règles.

=> acquierent leur valeur automatiquement

17
Q

Comment appelle-t-on le regroupement des faits et des règles ?

A

Les connaissances

vs Les questions

18
Q

Qu’est-ce que Prolog fait quand on pose la question : Est-ce que Jean possède un livre?

A
  1. Il vérifie si les objets existent (a-t-il jean, a til livre dans ses connaissances)
  2. Il vérifie si la relation de possession existe ( a-til la possession, ou connaissances dans une autre comme jean achète un livre)
19
Q

Quels sont les 3 niveaux de la programmation en Prolog?

A
  1. Identifier des objets (ex: pierre(homme). et des relations père(pierre,marie)).
    - En Prolog, on dit «déclarer des faits»

(construire mon dict, lui donner des connaissances)

  1. Inférer de nouvelles relations à partir des «faits» (ex: estpère(X) : père (X, _))
    - En Prolog, on dit «définir des règles»

(créer des nouvelles relations et connaissances a partir des faits de bases donnés en 1)

3.Poser des questions à propos d’objets et de leurs relations (ex: estpère(X)… X = Pierre).

En Prolog, on dit «interroger l’interpréteur» ou «converser»

(poser des questions à prolog sur nos objets et relations)

20
Q

Qu’est-ce que représente la virgule en Prolog?

A

Une conjonction, signifie que les deux conditions sont obligatoires (représente un ET)

ex: s_aime(X,Y) :- aime(X,Y), aime(Y,X).

s’aiment X et Y si ils s’aiment un et l’autre.

21
Q

Que représente le point-virgule en Prolog?

A

Représente une disjonction inclusive
Signifie qu’au moins une des deux conditions doit être vraie (OU non exclusif)

ex: aime(X,vin) :- aime(X, vinrouge) ; aime(X, vinblanc).

X aime le vin s’il aime le vin blanc ou le vin rouge.

22
Q

Créer les règles générales suivantes :
enfant(X,Y) qui exprime que X est l’enfant de Y
fils(X,Y) qui exprime que X est un fils de Y
fille(X,Y) qui exprime que X est une fille de Y
frereousoeur(X,Y) qui exprime que X est le frère ou la soeur de Y (pas demis)
frere(X,Y) qui exprime que X est un frère de Y
soeur(X,Y) qui exprime que X est une soeur de Y

A

enfant(X,Y) :-
pere(Y,X).
enfant(X,Y) :-
mere(Y,X).

fils(X,Y) :-
enfant(X,Y),
homme(X).

fille(X,Y) :-
enfant(X,Y),
femme(X).

frereousoeur(X,Y) :-
	pere(P,X),
	pere(P,Y),
	mere(M,X),
	mere(M,Y),
	X \== Y.

frere(X,Y) :-
frereousoeur(X,Y),
homme(X),
X == Y.

soeur(X,Y) :-
frereousoeur(X,Y),
femme(X),
X == Y.

23
Q

À quoi servent les règles?

A

Servent à inférer des relations entre les faits

24
Q

À quoi sert compilebuffer?

A

Transmettre à l’interpréteur

25
Q

Quels sont les modes reconnaissance et génération?

A

Mode reconnaissance : On lui donne des atomes, il vérifie si c’est vrai ou non.

Mode génération : On lui donne des variables, il nous sort les possibilités

26
Q

Les variables sont… elles se …

A

locales, propagent

27
Q

V ou F : Prolog est déterministe.

A

Vrai. Il peut explorer plusieurs possibilités sans y voir de contradiction.

Un Sn peut être à la fois composé d’un article et d’un nom et être un nom propre.

Dans les règles:
sn(X,Y) :- article(X),nom(Y).
sn(X) :- nomPropre(X).

Dans les faits:
humain(leo).
chat(leo).

28
Q

V ou F : Prolog permet de représenter des structures r….

A

Vrai. récursives. Comme un cycle sans fin.

ex: 
sn		-> article, nom.
sn		-> article, nom, sprep.
sn		-> np.
sprep 	-> prep, sn.

Un sn inclue un sp, un sp un sn, un sn un sp……..

29
Q

Qu’est-ce que veut dire faire des remontées?

A

Prolog fait des remontées quand il revient sur ses décisions.

Il sort une réponse, après il revient sur ses faits, redonne nouvelles valeurs à ses variables et redescend, etc

30
Q

Qui a fondé Prolog, où et quand?

A

Groupe d’Intelligence Artificielle de Luminy (Alain Colmerauer) à Marseille en 1972

31
Q

Comment Prolog est devenu populaire et pourquoi?

A

Devient populaire au début des années 80 avec les projets internationaux de développement de l’intelligence artificielle

On avait besoin d’outils pour les ordinateurs de connaissances, donc lui demande de devl un langage axé sur la connaissance

Même utilisé plus spécifiquement pour la reconnaissance automatique du langage

32
Q

Quelles sont les 2 grandes familles de Prolog et quel logiciel on utilise?

A

Deux grandes familles:
le standard de Marseille
le standard d’Edimbourg

Le standard d’Edimbourg:
SWI-Prolog (Celui que nous utiliserons)
Amzi Prolog
SICStus Prolog
Visual Prolog
33
Q

Comment distinguer les atomes et variables?

A

Atomes : commencent par minuscule
Variables : par majuscule

**si on se trompe, il prendra ex : Pere pour variable