600 likes | 790 Views
Agent-based E-commerce System. Maria Ganzha Marcin Paprzycki http://agentlab.swps.edu.pl. Agent-based E-commerce System. 1. Introduction. Assumptions. Modelling a distributed marketplace Internet e-buyers visit e-shops with a desire to purchase products
E N D
Agent-basedE-commerce System Maria Ganzha Marcin Paprzycki http://agentlab.swps.edu.pl
Agent-basedE-commerce System 1. Introduction
Assumptions • Modelling a distributed marketplace Internet • e-buyers visit e-shops with a desire to purchase products • buyers negotiate prices with sellers • clients decide which store to buy from • “wholesalers” provide products for e-shops • Utilizing software agents for all e-commerce functions • develop complete system skeleton all agent functions and agent interactions implemented
What's different (1) • Multiple items of a product placed for sale one after another series of price negotiations • Multiple items sold price negotiations are organized differently “discrete process” • Buyer Agents (BA) “collected” and released in groups to participate in negotiations • while negotiation takes place BA’s communicate only with the Seller Agent (SeA) • meanwhile next group of BA’s is collected (as they arrive) and will participate in the next negotiation
What's different (2) • Multiple subsequent auctions (involving items of the same product) take place price negotiation mechanism can change • Model of a complete e-commerce system • actions that take place before negotiations • actions that take place after negotiations • product logistics • Clients choose shop from which to make a purchase “airline reservation” model
Agent-basedE-commerce System 2. Ontologies and their utilization
Ontology of products (1) • Product taxonomy inspired by the Global Products Classification (GPC) standards • shoes • cameras • Product skeleton • created by sub-classing the base ontology • shoes of the same style and brand • Product variation • instance of a product skeleton • shoes of given style and brand of a particular size and colour
Ontology of products • Instance
Ontology of products (2) :hasBrand a owl:DatatypeProperty ; rdfs:domain :Product ; rdfs:range xsd:string . :hasColor a owl:ObjectProperty ; rdfs:domain :Product ; rdfs:range :Color . :hasSize a owl:ObjectProperty ; rdfs:domain :Product ; rdfs:range :Size . :Product a owl:Class . :Clothing rdfs:subClassOf :Product . :Shoes rdfs:subClassOf :Clothing . :ShoesWithLaces rdfs:subClassOf :Shoes . :AthleticShoes rdfs:subClassOf :Shoes . :hasPrice a owl:ObjectProperty ; rdfs:domain :Product ; rdfs:range :Price .
Ontology of product – instance (1) @prefix cc: <http://www.ibspan.waw.pl/e-cap/product/clothing-catalog.owl#> @prefix prod: <http://www.ibspan.waw.pl/e-cap/product/product.owl#> . @prefix : <http://www.ibspan.waw.pl/e-cap/db/cic/products.owl#> . :Product1165510834375 a cc:ProtectiveLowerBodyWearBrick, a prod:ProductEntity ; cc:hasConsumerLifestage cc:Unclassified ; cc:hasGender cc:Female ; cc:hasIfDisposable cc:Yes ; cc:hasSafetyFeatures cc:ColdResistant ; cc:hasTypeOfMaterial cc:Combination ; cc:hasTypeOfProtectiveLowerBodyWear cc:ProtectiveKneePads
Ontology of product – instance (2) @prefix avc: <http://www.ibspan.waw.pl/e-cap/product/audio-visual-catalog.owl#> . @prefix prod: <http://www.ibspan.waw.pl/e-cap/product/product.owl#> . @prefix : <http://www.ibspan.waw.pl/e-cap/db/cic/products.owl#> . :Product1165506706750 a avc:Televisions_Hand_HeldBrick, prod:ProductEntity ; avc:hasColourFormat avc:Black_White ; avc:hasTypeOfTelevisions avc:Plasma ; avc:hasIfWithRadio avc:Yes ; avc:hasScreenSize avc:_2.5Inch .
Ontology of products • Instance
Product registration (1) • SA registers sold products with the CIC using ACL REQUEST messages • message content specified using FIPA Semantic Language (FIPA SL) • FIPA SL term representing an action has the form: (action Agent Action) • Specifically: • Agent = the agent performing the action • Action = the action which is [to be] performed
Product registration (2) • Agent = CIC (agent-identifier :name cic@ibspan.waw.pl :addresses http://www.ibspan.waw.pl:9999) • Action = register set of products sold by a SA (Add-Product-Shop (Entry :product (set PD1 ... PDn) :shop Shop :gatekeeper Gatekeeper)) • PDi = product descriptions in OWL (Lite) ontology instance (ProductDescription :language "owl" :description OWL-EXPRESSION )
Product registration (3) • Products that are sold have to be registered with the CIC • Product ID • extension of product ontology to specify that a given shop sells a given product • shop identified by its Gatekeeper Agent (GA) :GA-1 a :gatekeeperAgent; :name ga509@ibspan.waw.pl ; :addresses http://www.ibspan.waw.pl:9999 ; :shop 767 ; :sells :Product4094094049.
Usage scenario • System is running for some time • SA’s have registered their products with the CIC • stored in a Jena repository • middleware over a database to manage stored in the system instances of ontologies • CA’s know where the CIC is • CA’s have interacted with some SA’s • SA’s have interacted with some CA’s • Scenario what happens when user wants to buy a pair of athletic shoes • assumption user interacts with its CA through a web-based interface
Processing User Request • A query-string (URL extension) representing user request reaches the CA • Example: ?productClass=AthleticShoes &hasColor=BlackColor&prize:ofCurrency=EUR &prize:value:leftBound=25&prize:value:rightBound=50 &size:value1=36&size:value1=37 • CA translates query-string into a SPARQL query • SPARQL rather than RDQL because • SPARQL is more expressive than RDQL • SPARQL is about to obtain standardization • JENA already includes working SPARQL module • SPARQL query engine is better tested
SPARQL Query example PREFIX my: <http://jacs.ibspan.waw.pl/ontology#> SELECT ?product, ?gateway { ?gateway :sells ?product; } { ?product, rdfs:subClassOf my:AthleticShoe ; my:hasColor my:BlackColor ; my:hasPrize ?prize ; my:hasSize ?size } { ?prize, my:ofCurrency my:EUR ; my:value ?prizeValue } { ?size my:value ?sizeValue }, FILTER ((?sizeValue = “36.0” || ?sizeValue = “37.0”) && (?prizeValue >= “25.0” && ?prizeValue <= “50.0”))
CIC result set and what next? • CA packs the SPARQL query into an ACL QUERY-REF message send to CIC agent • CIC returns a (possibly empty) set of answers packed in an ACL INFORM message containing expressions like this: (set (sequence PD1GA1) ... (sequence PDnGAn)) • CA evaluates this list based on “trust/image” • Based on results of evaluation CA will interact with selected e-shops
Before Price Negotiations • CA asks the GA about admission rules • GA checks CA-trust + product availability and responds • no more product • go away we do not trust you • BA’s have to come • CA creates and sends a BA • BA’s created locally • RESULT BA skeleton is “in” • GA provides BA with negotiation “details” • BA requests strategy (for THAT negotiation) • RESULT BA is ready and informs the GA
Negotiation and After • GA manages a pool of SeAs • when the time comes, it releases the list of BAs to a free and appropriately configured SeA for negotiation • When negotiation is finished • SeA informs winning BA and SA (via GA) • SA (via SDA) determines for how long to reserve the product for the winner BA/CA • depending on BA/CA “image/trust” • SA informs the BA about the reservation conditions • BA informs its CA about results on negotiation
Decision Time • CA receives ACL INFORM messages from its BAs • inform about winning or loosing negotiations • come completely asynchronous • varying time of reservation • CA utilizes multicriterial analysis to decide • to make purchase utilizing an available offer • to try for a better price • to abandon purchase
Agent-basedE-commerce System 3. Trust in the system
Maria.Merchant Trust and Image • trust – standard conceptualization • a peer’s belief in another peer’s capabilities, honesty and reliability based on its own direct experiences • trust – in our system • fulfilment of a contract • product matching our order • delivery time • reliability of the buyer • image– involves „perceptions” • given shop is „cheap” or „expensive” And I could afford to buy at your shop But your prices are too high for me... I also trust you. I believe in your honesty. I trust you. I believe in your responsibility. Costin.Client Paweł.Client
Client Trust • Most processes that can visibly change trust in a given store take place during Sale finalization • involves, among others, payment and delivery of products
Shop Trust • Most of process which can visibly change trust take place during After-negotiation period: • SA create reservation • BA: • confirm purchase • reject purchase (?time?) • no answer/answer after deadline
Trust of the Shop in Client x after n-th interaction event performed by the Client. Trust adjustment of n-th interaction event; impact of an interaction event on trust change. Modelling Trust
Maria.Merchant Effect of α Brave client “I want to buy new shoes and I'm gonna try to negotiate with Maria's and Marcin's shops.” Tn(Maria)=0 Tn(Marcin)=0 T Maciej.Client Careful merchant “You must be really obnoxious to make me angry, but as soon you managed to do it, I won't change my opinion about you so fast.” α=0.1 Tn(Maciej)=0 Radical merchant “I can be really mad, when you make me angry, but I also forget about negative behaviours quickly. α=0.8 Tn(Maciej)=0 Marcin.Merchant
tnop tres -γ TA(e) – How Can It Look Like • Reservation time is tres, no-penalty time is tnop, reservation cancellation time is tcant • BA has finalized purchase at time t [0,tres]TA(e) =1 • BA has cancelled reservation at time tcan[0,tnop] TA(e) = 0 • BA has cancelled reservation at time tcan (tnop, tres]. Let us assume that the maximum penalty for cancellation at time tcan = tres is γ, where 0 ≤ γ ≤ α, and the TA(e) is linear function, then TA(e) = a* tcan + b, where a = γ / (tres – tnop) and b = –γ tnop /(tres – tnop) • if BA has not responded in time t ≤ tres, then TA(e) = –α
Comments Trust value as a part of CA's strategy • it will buy one item, while has multiple reservations • which to reject imediately? • which can expire? • where not to send agent back to negotiations? • etc. • knowing that over time good and bad behaviors are being forgotten and the incoming agent is treated as „unknown”
Agent-basedE-commerce System 4. Price negotiations
Price Negotiation Overview • BJP framework • negotiation “participants” • host negotiation “manager” • buyer(s) • seller(s) • negotiation process has phases: • proposal submission • agreement formation • Our system • admission to negotiations – Gatekeeper agent (GA) – not a part of negotiations • rules for admission to negotiations – outside of the host
Negotiation Rules • Enforce specific negotiation mechanism • for checking the validity of negotiation proposals – ProposalValidator • for protocol enforcement – ProposalEnforcer • for updating the negotiation status and informing participants – InformationUpdater • for agreement formation – AgreementMaker • for controlling the negotiation termination – NegotiationTerminator
English Auction • single-item • first-price • open-cry • ascending auctions • single seller and many buyers • time limit for ending the auction • seller reservation price simple, well-known, !uninteresting!
Posting Rule IF There is a valid proposal Pr submitted by a participant with role ‘Buyer’ on product A AND There is an active proposal submitted by a participant with role ‘Seller’ on product A THEN Proposal Pr is posted
Dutch Auction • Single item Dutch auction • Seller begins with a high asking price which is lowered until buyer is willing to accept the price, or a predetermined minimum price is reached (no sale) • Multiple-item Dutch auction??
Dutch Auction Scenario (1) • Participants: • Negotiation Host (“location” where the negotiations takes place) • Single Seller Agent (SeA) • Multiple Buyer Agents (BA)s • N units of product P are to be sold • Initial bid posted on the Blackboard
Dutch Auction Scenario (2) • SeA subsequently reduces the price • One of BAs (e.g. BA5) responds with an ACL message informing that it is ready to purchase M, M ≤ N, units of P at a price equal to the current bid • then number of available units is reduced by M and BA5 is removed from negotiations (each BA is allowed to submit at most one successful bid) • Process continues until (1) all N units are sold, or (2) minimal price of the SeA is reached, or (3) time of inactivity is over
Seller Rules • Seller is allowed to shout a new price when one of the following conditions holds: • it is the first shout • one of Buyers submitted a bid that was successful • no successful bids were received and at least Tm time units elapsed since the last shout
Improvement-Seller Rule IF participant with role ‘Seller’ has posted proposal Pr and value of last offer posted by ‘Seller’ is B and minimum decrement is H and X(Pr) ≤ B − H THEN proposal Pr is active
Experiments • JADE agent environment • JAVA Expert System Shell (JESS) • up to 20 machines in a single network • homogeneous environment (Windows or Linux) • heterogeneous environment (Windows + Linux) • system is being re-implemented, so next slides represent “what was” (IT WORKED)