[Squeak-fr] Prolog pour 3.10

Dreyfuss Pierre-André (EDU) pierre-andre.dreyfuss at edu.ge.ch
Sam 14 Juin 00:34:11 UTC 2008


ReBonjou

Un peu de géométrie:

Installez votre prolog comme décrit précédement.
Installez le changeset ci-joint.

Ouvrez un prologWorkSpace.
Ouvrez un transcript.

Dans le prologWorkSpace
exécutez le code ci-dessous

Geom new :? initBase().
Geom new :? enonce(milieu('i',['a' ,'b'])).
Geom new :? enonce(milieu('j',['b' ,'c'])).
Geom new :? enonce(milieu('k',['c' ,'d'])).
Geom new :? enonce(milieu('l',['d' ,'a'])).

Geom new :? faits().
Geom new :? deduis().

et vous aurez dans le transcript:

Base vide
Faits
#milieu('i' ['a' 'b' ] ) : énoncé
#milieu('j' ['b' 'c' ] ) : énoncé
#milieu('k' ['c' 'd' ] ) : énoncé
#milieu('l' ['d' 'a' ] ) : énoncé
Déductions : 
#paral(['b' 'd' ] ['i' 'l' ] ) : thales2
#paral(['a' 'c' ] ['i' 'j' ] ) : thales2
#paral(['b' 'd' ] ['j' 'k' ] ) : thales2
#paral(['i' 'l' ] ['j' 'k' ] ) : paralTrans3
#paral(['i' 'l' ] ['b' 'd' ] ) : paralTrans2
#paral(['j' 'k' ] ['i' 'l' ] ) : paralTrans3
#paral(['j' 'k' ] ['b' 'd' ] ) : paralTrans
#paral(['a' 'c' ] ['k' 'l' ] ) : thales2
#paral(['i' 'j' ] ['k' 'l' ] ) : paralTrans3
#paral(['i' 'j' ] ['a' 'c' ] ) : paralTrans2
#paral(['k' 'l' ] ['i' 'j' ] ) : paralTrans3
#paral(['k' 'l' ] ['a' 'c' ] ) : paralTrans
#trapeze(['b' 'd' 'i' 'l' ] ) : trapeze
#trapeze(['a' 'c' 'i' 'j' ] ) : trapeze
#trapeze(['b' 'd' 'j' 'k' ] ) : trapeze
#trapeze(['i' 'l' 'j' 'k' ] ) : trapeze
#trapeze(['a' 'c' 'k' 'l' ] ) : trapeze
#trapeze(['k' 'l' 'i' 'j' ] ) : trapeze
#parallélogramme(['i' 'j' 'k' 'l' ] ) : parallélo
Fin des déductions

Pour voir les règles, Regardez la classe Geom clauses regle

Pour le moteur d'inférence, Regardez la classe Expert.

Le tout repris de ce que j'avais fait avec Squeak 3.6

Encore un grand Merci  pour avoir sauvé Prolog.

J'ai testé celà dans la future image commune OLPC - SqueakLand de Yoshiki.(dérive d'une 3.8)

PAD

-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Dreyfuss Pierre-André (EDU)
Date: sam. 14/06/2008 02:21
À: Squeak in french / Squeak en français
Objet : RE : [Squeak-fr] Prolog pour 3.10
 
Bonjour.


On utilise un browser normaL pour écrire des clauses Prolog.

Le Lparser détecte au format de la méthode s'il sagit d'une méthode smalltalk ou de la syntaxe prolog.

La syntaxe prolog est très proche d'un prolog standard La principale différence est l'usage de minuscules pour les variables alors qu'un prolog standard utilise ds majuscules, ceci pour respecter les règles de smalltalk.

Le code "pseudo smalltalk" est en fait réellement du code  smalltalk car le parseur convertit la méthode écrite en prolog en la méthode smalltalk qui fait le travail dans l'environnement smalltalk. Mais l'utilisateur n'a à voir que le code prolog dans le browser, le but étant d'utiliser et de penser en prolog tout en communiquant et échangeant avec smalltalk.


C'est ce qui ne marchait plus depuis 3.7. On avait dans le browser le code smalltalk et non le code prolog.
Cela semble réparé maintenant.

Dans une méthode smalltalk on peut faire exécuter une expression prolog:

Exécute dans un workspace:


LCompiler evaluate: 'Family new :? father(x,y)'


La réponse est le même tableau que si tu avais exécuté la chaîne dans un Prolog WorkSpace:

 #(#('John' 'Mary') #('John' 'David') #('David' 'Jack') #('Arthur' 'Nancy'))

PAD
-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Stéphane Rollandin
Date: dim. 08/06/2008 17:18
À: Squeak in french / Squeak en français
Objet : Re: [Squeak-fr] Prolog pour 3.10
 
cdrick a écrit :
> dans le document, ca parle de LogicBrowser, il n'y en a pas dans
> l'implémentation actuelle ?   J'imagine que LParser et LCompiler sont
> censés permettre d'utiliser une browser classique... ?

à l'origine sans doute mais visiblement ce n'est plus le cas...

Stef

_______________________________________________
Squeak-fr mailing list
Squeak-fr at lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr



-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: application/ms-tnef
Taille: 11223 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20080614/8336ad31/attachment-0001.bin


Plus d'informations sur la liste de diffusion Squeak-fr