|
From: <tom...@us...> - 2008-04-25 01:42:18
|
Revision: 1255
http://jason.svn.sourceforge.net/jason/?rev=1255&view=rev
Author: tomklapiscak
Date: 2008-04-24 18:42:14 -0700 (Thu, 24 Apr 2008)
Log Message:
-----------
Added commerce README
Added Paths:
-----------
trunk/applications/jasdl-owlapi/examples/commerce/README
Added: trunk/applications/jasdl-owlapi/examples/commerce/README
===================================================================
--- trunk/applications/jasdl-owlapi/examples/commerce/README (rev 0)
+++ trunk/applications/jasdl-owlapi/examples/commerce/README 2008-04-25 01:42:14 UTC (rev 1255)
@@ -0,0 +1,53 @@
+JASDL: "Jason AgentSpeak-Description Logic"
+Copyright (C) 2008 Thomas Klapiscak (t.g...@du...)
+JASDL is distributed under the LGPL license (see COPYING and COPYING.LESSER)
+
+********************************************************
+--- Scenario Description ---
+
+This example demonstrates a MAS developed using JASDL that simulates a simplified "e-commerce" scenario. The agent society consists of customers, PAs (personal agents), shops and delivery vans. The agents in this society make use of two ontologies, commerce and society to facilitate enhanced reasoning services and a shared vocabulary (and in some cases, data store).
+
+Commerce.owl describes hierarchy of product classes, where instances of these are particular brands. Such individuals are associated with a stock level, price and weight. Additionally, this ontology describes orders and purchases. An order has associated with it many purchases and a customer. Purchases have assocaited with them a brand (i.e. an instance of Product), a quantity and a shop identifying where the purchase is available.
+
+Society.owl describes a hierarchy of agent types that the agents use to reason about their peers. In addition to providing a shared vocabulary, this ontology also acts as a shared data source, since agent individuals are defined in the ontology schema itself (rather than just the agent's own local in memory instantiation - as products are). Within this ontology we can express agent subservience; agents can employ many other agents but each can be employed only by one other agent. Additionally, we define the Company concept, which is used to organise agents into groups for which each is assumed to share profit (or example, agents are willing to refer purchase requests only to agents from the same company). A company can own many agents, but each agent can only be owned by a single company.
+
+User interaction with the system is facilitated through the use of a swing application (that will automatically appear upon instantiation of the MAS). Here, the user should supply descriptions of a desired product, a quantity and a shop to (initially ask).
+
+Product and shop descriptions should be given in a variant of the Manchester OWL Syntax (Used by Protege 4, see http://www.w3.org/2007/OWL/wiki/ManchesterSyntax for more details). JASDL's variant is known as "Namespace prefix form". It is essentially the same except all references to classes, properties and individuals are given by strings of the form "<label>:<alias>" where label is a JASDL ontology label and <alias> is a JASDL entity alias. Hence, this conveniently short string can be used to unambiguously reference an ontological entity within some ontology, while allowing our definition to include entities from any number of different ontologies. You can view some example product / shop descriptions and associated meaning in english by selecting an item from the "Example Requests" drop-down.
+
+Upon hitting the "Submit Request" button the descriptions are defined as classes (using jasdl.ia.define_class) and passed on to the PA. The PA then ammends the product description with a constraint that the shop has sufficient stock. A side note: this parsing/rendering/parsing process is performed (as opposed to simply sending class descriptions as strings) so that JASDL's syntactic translation mechanism is invoked, ensuring that ontological entities are referred to unambiguously - this would be necessary if the customer agent and its PA made use of disparate label/alias mappings.
+
+The PA then asks the shop (described by the shop description given by the customer) whether it has an available product that matches the given description. If so, the PA then asks the customer (a dialog box will appear on the UI) whether they approve of the brand found by the shop. If so, the product is added to the customer's order. If not, however, the PA ammends the product description with the additional requirement that the product not be this brand. It then resubmits this ammended request and the process repeats.
+
+An additional feature of the system is employed when a shop is unable to find a matching product. Under this circumstance, the shop will attempt to refer the purchase request to another agent within its company. To whom this referral is directed is dependent upon the type of the product. For example, if the product is known to be a type of MeatProduct, it will be referred to butchers. This part of the system makes clever use of JASDL's exhanced plan search flexibility (i.e. employing the trigger generalisation mechanism).
+
+Once a user is happy with their order, they can hit the "Confirm Order" button. At this point the PA will inform, for each purchase included in this order, the appropriate shop of the customer's desire for this product. Each shop will then arrange with the delivery vans it employs to have this order delivered to the customer. A current limitation of the system is that a shop can't reply to a request while it is servicing another order. This issue will be addressed soon.
+
+This example makes extensive use of JASDL feature extensions to Jason. The code is richly commented and should be able to give a reasonable view of what's going on, and how you can use these features for your own applications.
+
+This example application is in a very early stage of development and so is a bit rough around the edges and largely untested. As a side note, this application would probably be better off following a similar design to that seen in Case Study II from the Jason book, adopting a web-page for the user interface rather than a swing application. Additionally, the Manchester OWL syntax class expression style interface is not particularily user-friendly. However, this issue could be addressed perhaps by developing a "visual class expression builder" which could, for instance, allow users to drag-and-drop different constraints to compose an expression.
+
+********************************************************
+
+
+********************************************************
+--- Directory Structure ---
+
+ commerce.mas2j - MAS configuration file
+
+ bin/
+ c-build.xml - Custom MAS build file that will (for convenience) build JASDL (if under jasdl/examples)
+ classes/ - Compile target for commerce classes
+
+ src/
+ java/ - Commerce Java code
+ asl/ - Commerce AgentSpeak code
+ /common - AgentSpeak plans common across agents
+
+
+ onts/ - Contains the ontologies used by the agents
+
+ commerce.owl - An ontology describing a simple commerce domain
+ society.owl - An ontology describing a society of agents and how they are related to one another
+
+*******************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|