All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jason.asSyntax.directives.Directive Maven / Gradle / Ivy

Go to download

Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language.

There is a newer version: 2.3
Show newest version
package jason.asSyntax.directives;

import jason.asSemantics.Agent;
import jason.asSyntax.Pred;

/** 
 * Interface for all compiler directives (e.g. include and goal patterns).
 * 
 * 

There are two kinds of directives: single directive and begin/end directive. * The single directive does not have inner plans, as, for instance, the * include: *
* ...
* { include("a.asl") }
* ...
*

* *

begin/end directives have inner plans, as used in goal patterns: *
* ...
* { begin ebdg(g) }
* +!g : bel <- action1.
* +!g <- action2.
* { end }
* ...
*

* This pattern will change these two plans to: *
* +!g : g.
* +!g : not (p__1(g)) & bel <- +p__1(g); action1; ?g.
* +!g : not (p__2(g)) <- +p__2(g); action2; ?g.
* -!g <- !g.
* +g <- -p__1(g); -p__2(g); .dropGoal(g,true).
*

* * Goal patterns are proposed in the paper:
*
* Jomi Fred Hubner, Rafael H. Bordini, and Michael Wooldridge.
* Programming declarative goals using plan patterns.
In Matteo * Baldoni and Ulle Endriss, editors, Proceedings of the Fourth * International Workshop on Declarative Agent Languages and * Technologies (DALT 2006), held with AAMAS 2006, 8th May, Hakodate, * Japan, pages 65-81. Springer, 2006.
*
* * @author jomi */ public interface Directive { /** * This method is called to process the directive. * * @param directive the directive as defined in the source (e.g. "include("bla.asl")") * @param outerContent the representation of the agent where the directive is being processed (the method should not change this agent state) * @param innerContent the content (plans, beliefs, ...) inside the begin/end directive (as in goal patterns) * @return the agent (plans, bels, ...) with the result of the directive. */ Agent process(Pred directive, Agent outerContent, Agent innerContent); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy