To add new Learning Strategies to JaCaDDM it is necessary to have a good understanding of the Jason/AgentSpeak Agent Oriented programming language, and CArtAgO, the artifact-based environment developing framework.
A learning strategy is a set of agent programs that model a DDM process workflow. Aside from the agent programs, a XML file describing the strategy is also required. In this file it is possible to establish the path files of the different agent programs, and the deployment parameters of the strategy. You can find examples of such files on the sampleProtocols directory.
Any learning strategy should comply a simple contract to adhere to JaCaDDM, this contract establishes the start and output of the processes. First of all an agent program named contactPerson should always exist, this agent program provides the means to start and finish the process, and is a bridge between the JaCaDDM and the strategy. contactPerson has to react to a +begin_process event, which announce the starting of the process. When the process ends, a single learning model should be produced, the model has to be a subclass of experimenter.classifiers.BaseClassifier, this model has to be communicated to JaCaDDM in order to be properly evaluated, this is done by issuing a tell speech act toward a special JaCaDDM agent named experimenter, in this message the name of the artifact where the final model is located is referenced. An example of this message is the following:
.send(experimenter, tell, finish("coordinatorj48"))
Aside from the contract, a contactPerson can do anything, and also any other agent programs can participate.
JaCaDDM provides an API for agent programs that allow them to have a context about their distributed settingthis. The API consists on a set of default believes, a default set of plans that every agent know and may use, and a set of JaCaDDM services.
The default believes are the following:
The default plans are the following:
The JaCaDDM services are the following: