001    package aima.search.map;
002    
003    /**
004     * The AIMA framework uses dynamic attributes to make implementations of agents
005     * and environments completely independent of each other. The disadvantage of
006     * this concept is, that it's error-prone. This set of constants is designed to
007     * make information exchange more reliable for map agents. Two kinds of
008     * attributes are distinguished. Percept attributes are attached to percepts.
009     * They are generated by the environment and read by by the agent. Agent
010     * attributes are attached to agents. They are also in general generated
011     * by the environment but the agents are not allowed to read them.
012     * 
013     * @author R. Lunde
014     */
015    public class DynAttributeNames {
016            /**
017             * Name of a dynamic attribute, which contains the current location of the
018             * agent. Expected value type: String.
019             */
020            public static final String AGENT_LOCATION = "location";
021            /**
022             * Name of a dynamic attribute, which maintains the total traveling distance
023             * of the agent since birth. Expected value type: Integer.
024             */
025            public static final String AGENT_TRAVEL_DISTANCE = "travelDistance";
026            /**
027             * Name of a dynamic attribute, which indicates the current status of the
028             * agent, such as traveling, completed or aborted. Expected value type:
029             * String.
030             */
031            public static final String AGENT_STATUS = "status";
032    
033            /**
034             * Name of a dynamic attribute, which tells the agent where it is. Expected
035             * value type: String.
036             */
037            public static final String PERCEPT_IN = "In";
038            /**
039             * Name of a dynamic attribute, which tells the agent which actions are
040             * possible at the current location of the agent. Expected value type: List
041             * of alternating Strings and Integers.
042             */
043            public static final String PERCEPT_POSSIBLE_ACTIONS = "PossibleActions";
044            /**
045             * Name of a dynamic attribute. It provides access to informations which are
046             * available at the current location of the agent.
047             */
048            public static final String PERCEPT_INFOS = "Infos";
049            /**
050             * Name of a dynamic attribute. It provides access to objects, which are
051             * visible at the current location of the agent.
052             */
053            public static final String PERCEPT_OBJECTS = "Objects";
054    }