Last update 12/18/03 -------------------------------------------------------------------- STROBE Experimentations -------------------------------------------------------------------- Clement Jonquet LIRMM - University Montpellier II 161, rue Ada 34392 Montpellier Cedex 5 - France jonquet@lirmm.fr -------------------------------------------------------------------- readme.txt - This file explain how run the STROBE experimentations cited in several papers. Download and unzip the StrobeXP.tar.gz archive file with the following command line: gunzip StrobeXP.tar.gz tar xvf Strobe.tar Then, StrobeXP folder is created. It contains the following Scheme files: simple.scm - The Scheme meta-evaluator ambsimple.scm - The nondeterministic module added to simple.scm simpleobj.scm - The class file corresponding to our agents xpbroadcast.scm - Broadcast learning experimentation main file evalteacher.scm - Teacher agent specialization evalstudent.scm - Student agent specialization xpsncf.scm - Dynamic specification experimentation main file evalsncf.scm - SNCF agent specialization evalcustomer.scm - Customer agent specialization behaviour.scm - Other details about the agents’ behaviour -------------------------------------------------------------------------------- Scheme version -------------------------------------------------------------------------------- This implementation was developed with MIT Scheme 7.7.1 available online on http://www.swiss.ai.mit.edu/projects/scheme/mit/. The implementation doesn’t yet function with DrScheme version but it will be done as soon as possible. -------------------------------------------------------------------------------- The Scheme meta-evaluator: -------------------------------------------------------------------------------- The file simple.scm implements a Scheme meta-evaluator. It comes from Jefferson and Friedman paper “A Simple Reflective Interpreter”. We added it some features and special form process in order to use it in our experimentations. This interpreter is based on the 2 procedures: evaluate and apply-procedure. It evaluates an expression (e) in an environment (r) and with the following expression to evaluate, called the continuation (k). We implement a nondeterministic interpreter module to add to the meta-evaluator. This is the ambsimple.scm file, it’s based on the Abelson and Sussman book “Structure and Interpretation of Computer Programs”. This file redefines the main interpreter procedures to take into account 2 continuations instead of one in the expression evaluation. It also adds the amb special form process use in the nondeterministic evaluation. This interpreter is based on the 2 procedures: ambevaluate and ambapply-procedure. It evaluates an expression (e) in an environment (r) and with the success continuation (ks) and the failure continuation (kf). -------------------------------------------------------------------------------- Agents’ implementation: -------------------------------------------------------------------------------- To develop our agents we used the techniques presented in Normark paper “Simulation of Object-Oriented Concepts and Mechanisms in Scheme”. It allows to built object, or agent with Scheme procedure. The class corresponding to our agents is described in simpleobj.scm. This class illustrates agents’ attributes and agents “method” and especially the REPL procedures characterising agent behaviour. The file also describes the mechanism to make 2 agents communicate. -------------------------------------------------------------------------------- The experimentations -------------------------------------------------------------------------------- We wrote these experimentations to concretely show that our model is viable and can be really used. These are “toy-examples” and the purpose is to show the potentiality of our model ie. meta-level learning for the first one and dynamic specification for the second one. They are currently in progress. The user can show during the experimentations the exchanged messages between the 2 agents. In fact, the detail of each agent REPL loop is printed. In the second experimentation the user is solicited to participate to the experimentation. A previous version used the reifying procedure mechanism but not these experimentations which are more powerful and quick. -------------------------------------------------------------------------------- 1st experimentation – Broadcast performative learning -------------------------------------------------------------------------------- In this experimentation an agent student learn-by-being-told by an agent teacher a new performative. It starts with the Scheme command: (load “xpbroadcast.scm”) At the end of each exchange (that means one REPL loop by agents) the user has to enter “Y” to continue the experimentations, until no more messages are exchanged. -------------------------------------------------------------------------------- 2nd experimentation – Dynamic specification -------------------------------------------------------------------------------- In this experimentation an agent customer, representing the user try to book a train ticket by conversing with an SNCF agent providing this service. It starts with the Scheme command line: (load “xpsncf.scm”) When the customer agent evaluate (ask-user...) it prints to the user some information, an "interface”, and the user interact entering is own ticket constraints. We can imagine this “interface” in the future to be a HTML page or other friendlier for the user. But for the moment he has to express is constraint in Scheme expression such as: (require (eq? departure ’montpellier)) (require (eq? destination ’paris)) (require (< price 20)) (require (= class 2)) etc... To see the possibility for the variables (all the cities, all the price etc...), you can have a look on the evalsncf.scm file where the default find-ticket procedure is coded. When the user wants a proposition he has to write (find-ticket). In the future he will ask for another proposition using (try-again) but this feature doesn’t work yet. --------------------------------------------------------------------------------