Marketplace ----------- This is an electronic marketplace application using seven IAgent-based intelligent agents. It also makes use of a new IAgent base class called 'IAgentMessage' which is modeled after a standard KQML message packet. The main points of this application include: * The Marketplace application consists of a single 'FacilitatorAgent', one or more 'BuyerAgents', and one or more 'SellerAgents'. There are three types of Buyer and SellerAgents using increasingly better negotiating strategies. * All communications between the Buyers and Sellers went through the Facilitator using KQML-like objects called 'IAgentMessages'. These messages include KQML-performatives such as 'register', 'advertise', 'unadvertise', 'recommend-one', 'ask', and 'tell'. Application-specific performatives include 'make-offer', 'accept-offer', and 'reject-offer'. * The sales negotiation protocol was defined, giving the 'SellerAgent' more control over the process. The 'BasicNegotiation' class was introduced to encapsulate the details of each translation. An 'Offer' consists of the agent name, the item, a unique item id generated by the SellerAgent at the start of a negotiation, and the offer price. * The 'BestBuyerAgent' and 'BestSellerAgent' used the 'RuleBase', 'Rule', and 'Clause' classes from forward/backward chaining applet developed earlier (see URL refence below), along with enhancements such as 'EffectorClauses' to represent the negotiation strategy in rule form, and directly send the reply messages using action rules. To see the application in action you have to compile the application java file using: javac Marketplace.java and produce 23 class files, apart from the 4 IAgent base classes, resulting with: BuyerAgent.java BestBuyerAgent.java BetterBuyerAgent.java SellerAgent.java BetterSellerAgent.java BestSellerAgent.java Marketplace.class FacilitatorAgent.java IAgent.class BasicNegotiation.java IAgentEvent.java IAgentEventListener.java Effector.java Sensor.java SensorClause.java EffectorClause.java Clause.java RuleBase.java Offer.java FacilitatorAgent.class AboutMarketplaceDialog.java Condition.java Rule.java IAgentEventListener.class IAgent.java IAgentMessage.java Marketplace$SymAction.class RuleVariable.java Marketplace$windowEvents.class BuyerAgent.class BetterBuyerAgent.class BestBuyerAgent.class Effector.class SellerAgent.class Variable.java QuitDialog.java BetterSellerAgent.class BestSellerAgent.class AboutMarketplaceDialog.class AboutMarketplaceDialog$SymAction.class AboutMarketplaceDialog$windowEvents.class QuitDialog.class QuitDialog$SymAction.class Fact.java QuitDialog$windowEvents.class IAgentMessage.class IAgentEvent.class BasicNegotiation.class Offer.class RuleVariable.class Variable.class Condition.class Clause.class Marketplace.java Then run the application by issueing the command: java Marketplace Note: This code was tested using JDK1.1.8 which can be downloaded and installed from the site: http://staff.um.edu.mt/mmon1/lectures/java ----------------------------------------- MM2000