Softwareagents en electronic commerce Frank Dignum Technische Universiteit Eindhoven 1.Electronic commerce Electronic commerce is de laatste jaren hard op weg om de nieuwe modeterm te worden in de informatica. Vrij vertaald betekent het: electronisch zaken doen. Daar kan iedereen zich nog wel iets bij voorstellen. Echter, daarmee hebben we nog niet vastgesteld wat er allemaal bij komt kijken. Om dat te kunnen doen moeten we eerst precies definiëren wat wij onder electronic commerce verstaan. (Zie (Kalakota & Whinston 1996; Choi, Stahl & Whinston 1997) voor een zeer uitgebreid overzicht ). Electronic commerce is het volledig afhandelen van een handelstransactie via electronische weg. Let op, dit betekent nog niet dat er geen mensen aan te pas hoeven te komen! Ik kan bijvoorbeeld een order plaatsen bij een bedrijf met behulp van een e-mail. Het bericht dat bij het bedrijf binnen komt wordt door iemand gelezen en zij stuurt een e-mail terug met een orderbevestiging. Als ik nu vervolgens betaal met behulp van een of ander thuisbankierenpakket dan kunnen we spreken van een electronic commerce transactie. Natuurlijk is deze manier van electronic commerce bedrijven niet echt handig. Het wordt pas voordelig als de verschillende onderdelen van de transactie geïntegreerd worden. Dus als een bestelling die electronisch binnenkomt automatisch door het orderafhandelingssyteem wordt verwerkt, waarna de bestelling wordt voorbereid, de voorraadadministratie automatisch wordt bijgewerkt en door het factureringssysteem een factuur wordt verzonden. Dit soort integratie kon het eerst gerealiseerd worden in electronic commerce tussen bedrijven die een langlopende relatie met elkaar hadden. In deze gevallen kon de electronische gegevensuitwisseling (EDI (Electronic Data Interchange)) gestandaardiseerd worden in zogenaamde EDI contracten. Hierin werd precies het formaat van alle boodschappen vastgelegd en ook wat de betekenis is van de boodschappen. Het opstellen van deze contracten is vaak moeilijk en dus niet rendabel voor eenmalige transacties zoals bijvoorbeeld tussen kleine bedrijven en tussen consumenten en bedrijven. Een consument zal zeker niet bereid zijn om voor iedere aankoop bij een ander bedrijf een nieuwe standaard te leren. In sommige gevallen is dit probleem opgelost door de consumenten een standaardinterface te bieden waarmee de consument heel eenvoudig een product kan bestellen. Dit werkt vooral goed voor allerlei standaardproducten zoals CD’s en boeken. Dit is echter niet zo makkelijk voor producten waar geen standaard omschrijving voor te geven is zoals bijv. meubels, etc. of waarvan de prijs niet van te voren bepaald is zoals bijv. tweedehands apparatuur. In deze gevallen wil je graag wat flexibel met elkaar kunnen communiceren zonder dat je van te voren hele protocollen moet kennen. Deze ontwikkeling naar meer flexibele electronic commerce vormen wordt ook wel Open Electronic Commerce genoemd. Het ligt voor de hand dat softwareagents vooral bij dit soort flexibele electronic commerce kunnen worden ingezet. In de rest van dit artikel zullen we laten zien hoe dit precies gebeurd en wat de belangrijkste onderzoeksvragen zijn. Het gebruik van softwareagents in electronic commerce kan op veel manieren gebeuren. De twee belangrijkste applicaties zijn echter wel de ondersteuning van de gebruiker (consument) in zijn contact met een bedrijf en de ondersteuning van het vinden van potentiële partners op electronische markten. In de volgende sectie zullen we een korte beschrijving geven van twee agent applicaties die de gebruiker direct ondersteunen in het contact met een Web site. Daarna zullen we wat dieper ingaan op het fenomeen van electronische markten en hoe agents hier ingeschakeld kunnen worden.
2. User-interface agents Sommige van de meer bekende toepassingen van agents in electronic commerce zijn ondersteuningen van de gebruikersinterface. De gebruikte agents kunnen dan ook onder de algemene
noemer User-interface agents geschaard worden. Zij onderscheiden zich alleen door het soort toepassing waarvoor de user-interface ondersteund wordt. De reden om de voorbeelden toch in dit artikel te behandelen is dat de agents hier (uiteraard) goed zichtbaar zijn en ook taken hebben die ideeën voor toekomstige toepassingen opleveren. Een applicatie die al lang bestaat is FireFly (http://www.firefly.net/) begonnen als een agent gebaseerd postorder bedrijf voor muziek. Gebaseerd op algemene gebruikersprofielen probeert het systeem de voorkeuren van de specifieke gebruiker te bepalen. Dus als een gebruiker een CD van Whitney Houston bestelt is hij waarschijnlijk ook wel geïnteresseerd in werk van Mariah Carey, hetgeen, volgens de surveys, een zelfde soort muziek is. Of beter gezegd het soort muziek dat de meeste mensen die van Whitney Houston houden ook wel leuk vinden. De agent zorgt ervoor dat iedere gebruiker een gepersonaliseerde lijst van producten te zien krijgt. Deze agent “leert” de voorkeuren van de gebruiker. Recentelijk is de applicatie uitgebreid en worden ook andere sites “FireFly enabled”. Dat betekent dat je nu ook op deze persoonlijke manier boeken kunt kopen bij Barnes&Noble, sportspullen, truien, etc. Firefly zorgt er voor dat gebruikers van FireFly bij ieder van deze sites hun gebruikersagent in kunnen schakelen. FireFly levert zelf geen faciliteiten voor de betaling van gekochte goederen. Dit gedeelte is uitbesteed aan een ander bedrijf. Een applicatie die op de Vrije Universiteit van Brussel is ontwikkeld, is “Ecran Total” (http://arti.vub.ac.be/www/culture/ecran.html). Deze site is ontwikkeld om een persoonlijk advies te geven over het bezoek aan films op het filmfestival “Ecran Total”. Deze site bevat twee soorten agenten. Het ene type komt overeen met de gebruikersagent van FireFly. Deze adviesagent probeert een gebruikersprofiel op te stellen en op grond daarvan advies te geven over welke films voor de gebruiker interessant zijn. De tweede type agent houdt de agenda van de gebruiker bij en waarschuwt wanneer er interessante voorstellingen zijn. Omdat het hier om een demonstratiesysteem gaat is ook in dit systeem geen betalingsfaciliteit aanwezig. De twee genoemde systemen zijn zeer illustratief voor het soort taken waar de agenten in deze context voor worden gebruikt. In het algemeen proberen ze een gebruikersprofiel te “leren” waarmee de gebruiker door de beschikbare informatie geleid word (en waarmee de vloedgolf aan informatie enigszins wordt afgeschermd).
3. Softwareagents en electronische markten De ontwikkeling van Internet heeft al een aantal pogingen opgeleverd om electronische markten te genereren waar agenten (zowel software als mensen) allerlei goederen verhandelen. Ook zijn er al vele online winkels en catalogi (bijv. Wehkamp, ECI, etc.) die door “intelligente” agenten worden ondersteund. De meest bekende voorbeelden van het gebruik van agenten zijn echter de on-line winkel services. Dit zijn services die helpen bij het vinden van producten die op het Internet worden aangeboden en die proberen een keuze voor de gebruiker te bepalen. (Chavez & Maes 1996; Geddis et.al. 1995; Doorenbos et.al.1996). We zullen twee van deze systemen beschrijven. BargainFinder (http://bf.cstar.ac.com) is een software agent die on-line muziekwinkels afzoekt op zoek naar de laagste prijs voor een bepaalde CD of cassette. Het systeem zoekt alleen bij sites die zich bij BargainFinder hebben aangesloten. Verder moet de gebruiker ook precies weten welke CD zij wil hebben, want zowel de naam van de artiest als het album moeten correct(!) worden ingevuld. Een tweede, soortgelijk, systeem was ShopBot dat nu niet meer operationeel is. De maker ervan werkt nu bij een bedrijf dat een opvolger hiervan exploiteert: Jango (http://www.jango.com/). Het idee is dat deze agent het hele Internet af kan zoeken naar de beste koopjes. Het is dus in principe geen gesloten systeem zoals bij BargainFinder het geval is. Een probleem voor dit soort agenten is dat niet alle sites door dit soort agenten bezocht willen worden. Als je kwalitatief goede producten levert, met een goede service, die iets duurder zijn dan de producten van concurrenten dan zal jouw site nooit door de ShopBot worden uitgekozen. Die kijkt namelijk alleen maar naar de prijs van een product. Vele sites proberen dus te detecteren of ze door een softwareagent of een mens benaderd worden en weigeren toegang tot de
softwareagent. Als dit door de meeste sites gedaan wordt verliest de softwareagent weer veel van zijn toegevoegde waarde. Hij vindt nu alleen maar het beste koopje van een zeer beperkt aanbod. Een manier om dit soort problemen te vermijden is door het oprichten van virtuele markten. Hierbij melden zowel aanbieders als vragers van producten zich aan. Een goed voorbeeld hiervan is Kasbah (Chavez & Maes 1996). Dit is een Web-gebaseerd systeem waar gebruikers autonome softwareagenten kunnen creëren die producten kunnen kopen en verkopen namens die gebruiker. De manier waarop ze dit doen is door het plaatsen van een soort advertentie op een gezamenlijk bulletin bord. In de advertentie kunnen ze aangeven wat ze verkopen, hoeveel en voor welke prijs. De agenten die producten willen kopen bekijken alle advertenties en kunnen een transactie beginnen met de agent die een advertentie heeft geplaatst die het dichtst bij de vraag komt. Een nadeel is dat het hele systeem op één machine moet draaien en er maar één type agent gebruikt kan worden. Een gebruiker kan dus niet een eigen (slimme) agent bouwen en deze aan de markt mee laten doen. Een soortgelijke virtuele markt is MAGMA (Tsvetovatyy et.al. 1997). Dit systeem heeft softwareagenten voor de gebruikers en ook een softwareagent om een virtuele bank te representeren. Dit betekent dat ook de betaling in het systeem geïntegreerd is. Dit systeem is in principe open, dus alle agenten die aan de communicatiestandaarden van MAGMA voldoen kunnen aan de markt meedoen. In de volgende secties zullen we aan de hand van dit systeem beschrijven welke infrastructuur een virtuele markt moet hebben, wat dit voor consequenties heeft voor de capabilities van de agenten en welke marktmechanismen gebruikt kunnen worden door de agenten bij hun onderhandelingen.
4. Infrastructuur voor virtuele markten Een eerste vereiste voor de infrastructuur van een virtuele markt is een goede communicatieinfrastructuur. Communicatie moet efficient, robuust en veilig zijn. Met veilig bedoelen we in dit verband dat boodschappen alleen door de ontvanger gelezen kunnen worden (mogelijk door middel van encryptie), dat de inhoud onderweg niet veranderd kan worden (vergelijkbaar met het gebruik van parity bits), dat de boodschap geauthentificeerd kan worden (door electronische handtekeningen) en dat de verzender niet kan ontkennen dat hij de boodschap heeft verzonden. Deze eisen aan de veiligheid van communicatie gelden voor alle electronic commerce toepassingen en zijn onafhankelijk van de inhoud van de boodschappen. In een virtuele markt met agenten kunnen we echter ook nog de volgende twee eisen stellen: 1. Agenten moeten vrij toegang hebben tot het bulletinbord dat de vraag en aanbod van de markt bevat. Dat betekent dat de infrastructuur open moet zijn voor externe agenten. 2. Dientengevolge moeten de agenten een standaardtaal gebruiken om te kunnen communiceren. In deze taal moet de agent minstens offertes aan kunnen brengen en kunnen reageren op offertes. Ook moet de agent erin kunnen onderhandelen en (geld)transacties uit kunnen voeren. De virtuele markt moet ook kunnen communiceren met bestaande banken en financiële diensten. Alleen het aansluiten op bestaande diensten en het hanteren van open standaarden maakt dat alle gebruikers hier van gebruik kunnen maken. Niets is zo vervelend als het afsluiten van een transactie om na afloop tot de ontdekking te komen dat je niet kunt betalen met het beschikbare betaalmiddel. Een ander belangrijk aspect, dat vaak over het hoofd wordt gezien, is dat van de representatie van de producten. Het is belangrijk dat fysieke producten maar één keer tegelijk verhandeld kunnen worden. Dat betekent dat als een fysiek product door een software-object wordt gerepresenteerd het niet copieerbaar mag zijn. Een laatste aspect dat we hier nog willen noemen is de mogelijkheid om een facilitatoragent in te voeren. Dit is een soort Gouden Gids met adressen voor bepaalde producten en diensten. Deze agent kan als een soort filter fungeren voor de handelsagenten en kan ook verantwoordelijk zijn voor het routeren van boodschappen tussen verschillende agenten.
5. Architectuur voor virtuele marktagenten
Uit de voorgaande sectie kunnen we opmaken dat er tenminste twee soorten agenten zijn; de handelsagenten en de bankagenten. De bankagenten kunnen vrij simpel zijn. Ze hoeven alleen betaalorders te kunnen verwerken. Hiertoe moeten ze weten welk betaalmiddel er gebruikt moet worden en welke financiële dienst hiervoor ingeschakeld moet worden. Omdat betaalopdrachten vrij makkelijk gestandaardiseerd kunnen worden (naar voorbeeld van gewone bankoverschrijvingen) hoeft de bankagent geen complexe communicatie te kunnen uitvoeren. Het is natuurlijk mogelijk om de bankagent zo intelligent te maken dat hij een bepaalde betaalwijze adviseert. Bijvoorbeeld betalen met een kredietbrief of een manier van uitgesteld betalen. Misschien moet het geld pas werkelijk worden overgemaakt als er bewijs is dat de goederen verzonden zijn. Voor deze adviesrol heeft de bankagent uiteraard ook een veel rijkere communicatietaal nodig en moet hij ook veel beter “weten” waar de transactie over gaat. De handelsagenten bestaan uit een aantal onderdelen die met elkaar communiceren: de communicatiemanager, de contractmanager, de taakmanager, de situatie-assesment module en de kennisbank. De kennisbank bestaat uit drie verschillende onderdelen: kennis over financiën, over goederen en over de markt. In de onderstaande figuur geven we de relatie tussen de verschillende componenten weer. (Dit is gebaseerd op (Tsvetovatyy et.al. 1997; Verharen 1997; Dignum, Verharen & Bos 1997; Norman et.al. 1997)). De communicatiemanager verzorgt alle communicatie van de agent met de andere agenten. Deze laag ontvangt ook de boodschappen van andere agenten en kijkt wat voor soort boodschap het is en geeft het daarna door aan de juiste module. Boodschappen kunnen bijvoorbeeld een bod zijn om goederen te kopen of te verkopen, maar ook een opdracht om een bepaald bedrag te betalen als gevolg van een transactie. Afhankelijk van het soort implementatie kan deze laag ook de directe observatie van de wereld verzorgen, zoals bijvoorbeeld welke advertenties er geplaatst zijn, wat de huidige prijs is van bepaalde producten, etc. Het is ook mogelijk om dit soort observaties direct naar de situatie-assesment module te laten lopen. De contractmanager verzorgt de onderhandelingen van de agent. Deze bevat dus regels voor onderhandelingsstrategieën. Omdat de onderhandelingen plaats vinden op basis van de huidige situatie moet deze module kennis halen uit de kennisbank over de markt, de financiële toestand van de agent en de goederen die hij beheert. In de volgende sectie zullen we wat verder ingaan op mechanismen die bij het onderhandelen gebruikt kunnen worden. De contractmanager monitort ook het verloop van een transactie vanaf het moment dat de deal gemaakt is. Hij zorgt dat er betaald wordt of kijkt of er geld ontvangen is en kijkt of de goederen die besteld zijn ontvangen zijn of verstuurd zijn.
Handels agent Task manager
Contract manager
Financiele kennis Situatie assesment module
Communicatie component
Agent communicatie taal
Goederen kennis
Markt kennis
De situatie-assesment module is de beslissingsmodule van de agent. In deze module worden de verschillende factoren van de huidige marktsituatie en de financiële situatie van de agent zelf tegen elkaar afgewogen en wordt besloten of de agent goederen te koop aan wil bieden en tegen welke prijs of dat de agent bepaalde goederen wil kopen. In deze manager zijn ook de “autonome” doelen van de agent opgeslagen. Aan de hand van een doel om bijvoorbeeld zoveel mogelijk van een bepaald product te verkopen voor een bepaalde datum kan de agent besluiten om producten aan te gaan bieden voor een bepaalde (lage) prijs. De taakmanager is de module die alle acties van de agent uitvoert. Deze zorgt dus voor de betaling en voor de verzending van goederen, etc. De volgorde waarin de taken uitgevoerd worden hangt af van de contracten die zijn afgesloten en de huidige situatie. Deze module communiceert dus met alle andere modules.
6. Marktmechanismen Er zijn in principe twee soorten mechanismen waarmee de agenten kunnen onderhandelen. Ze kunnen direct één-op-één onderhandelen of ze kunnen indirect via een soort broker onderhandelen. De broker kan hier zowel een grote als een kleine rol vervullen. In veel gevallen speelt de broker de rol van een soort veilingmeester. Als meerdere agenten een bepaald product te koop aanbieden en één agent wil dat product kopen dan wordt de transactie toegewezen aan de agent die de laagste prijs vraagt. Zijn er meerdere kopers en één verkoper dan gaat het precies andersom en krijgt de koper die het meest wil betalen de transactie toegewezen. Wat is nu de beste strategie om te bieden? Dit hangt af van een aantal factoren. Bijvoorbeeld, zijn de biedingen openbaar? Dat wil zeggen kunnen agenten de biedingen van andere agenten zien en op basis daarvan hun eigen bod bepalen? In dit geval is het zaak dat de agent goed weet hoeveel het product echt waard is. Hij kan dan zoveel bieden als hij het waard vindt. Krijgt hij de transactie niet toegewezen dan waren de producten toch te duur voor hem en verliest hij niets. Krijgt hij de transactie wel toegewezen dan heeft hij niet meer betaald dan wat hij de producten waard vond. (Maar misschien wel meer dan nodig was!). Een andere factor die hier van belang is, is of de biedprocedure één of meerdere biedingen per agent toestaat. In het laatste geval kan een agent beginnen met een laag bod en doorgaan met hogere boden tot aan zijn eigen maximum prijs. Dit is het mechanisme van een “gewone” veiling.
Als de bieding gesloten is dan kan het Vickrey mechanisme gebruikt worden (Vickrey 1961). In dit geval worden alle biedingen gesloten verzameld en de agent die het meest heeft geboden krijgt de transactie toegewezen, echter tegen het bod van de agent die het op één na hoogste heeft geboden. Het kan bewezen worden dat deze biedmethode de agenten dwingt om een waarheidsgetrouw bod te doen. Dat betekent dat ze precies zoveel bieden als ze het product waard vinden (Varian 1995; Huberman & Hogg 1995; Rosenschein & Zlotkin 1994). Dit gaat echter alleen maar op in gevallen waarin het bod van de agenten geen invloed heeft op de prijs. Dit is bijvoorbeeld niet het geval op de effectenmarkt. Als er veel vraag is gaat de prijs omhoog. In elk van de bovenstaande gevallen van indirect onderhandelen is het mogelijk om een onderhandelingsstrategie in de agent in te bouwen, gebaseerd op de bestaande theorie. Verder hebben de agenten alleen een beperkte communicatietaal nodig waarin ze het product, de hoeveelheid en de prijs aan kunnen geven. De reden waarom deze onderhandelingsstrategieën redelijk simpel te implementeren zijn is dat ze alleen de prijs van een product in beschouwing nemen. Dit betekent dat het economisch nut volledig in geld wordt uitgedrukt en dat er daardoor een makkelijke lineaire ordening ontstaat tussen de verschillende biedingen. Op het moment dat er een zogenaamde utiliteitsfunctie gemaakt kan worden kunnen er allerlei economische modellen gebruikt worden om het marktmechanisme te beschrijven en daarmee de beste onderhandelingsstrategieën. In de praktijk lukt dit echter maar in een beperkt aantal gevallen. In veel gevallen willen de agenten direct één-op-één onderhandelen, omdat ze ook de kwaliteit van het product mee willen nemen in de onderhandelingen of de service of de mogelijkheid van quantum kortingen of package deals. In deze gevallen ontstaat een dialoog van bod en tegenbod tussen de agenten totdat een bevredigend compromis bereikt is of de agenten de onderhandelingen afbreken. Het is duidelijk dat voor dit soort onderhandelingen veel meer intelligentie nodig is. Zowel op het nivo van de onderhandelingsdialoog als over het bereiken van het beoogde doel van de onderhandelingen. Dit is iets wat in de huidige agenten nog niet voorradig is, maar hetgeen waarschijnlijk wel het focus van toekomstig onderzoek op dit gebied zou moeten zijn.
7. Conclusie In dit artikel hebben we een heel kort en schetsmatig overzicht gegeven van de rol die agenten kunnen spelen in electronic commerce. Er zijn twee typen rollen die agenten in deze context kunnen vervullen. De eerste is als ondersteuning bij het navigeren en filteren van het Web op zoek naar de juiste informatie benodigd voor een transactie. Bijvoorbeeld het zoeken van een aanbieder van een product. De tweede rol die agenten kunnen spelen is als ondersteuning bij het afsluiten en verwerken van een economische transactie. We zien hier de volgende ontwikkeling. Eerst werd er voornamelijk gebruik gemaakt van vaste (afgesproken) standaarden voor het afwikkelen van de transactie met gebruik van EDI, waarbij de onderhandelingen in feite in een keer vooraf hebben plaats gevonden. In deze gevallen heeft het gebruik van agenten niet veel toegevoegde waarde. Wil men zich niet voor langere tijd aan een partner binden dan zullen de onderhandelingen bij iedere transactie weer opnieuw gevoerd moeten worden. Dit kan ook electronisch via een virtuele markt zoals we hierboven hebben beschreven. Binnen zo een markt worden in feite de spelregels volgens welke de onderhandelingen verlopen vastgelegd. Tot nu toe functioneren deze markten als een soort electronische veilingen. In deze context is het goed mogelijk om agenten in te zetten voor het automatisch verhandelen van goederen. Er zijn ook al werkende implementaties te vinden. Wil men echter nog flexibeler zijn in de onderhandelingen en niet alleen op basis van prijs maar ook op andere aspecten kunnen onderhandelen, dan zullen de agenten nog een stuk intelligenter moeten worden dan ze op dit moment zijn. De uitdaging in het onderzoek van agenten in electronic commerce ligt precies in het vinden van onderhandelingsstrategieën voor dit soort situaties. Onderzoek waarin Nederland volop aan mee doet (participatie in het ESPRIT project MEMO (Mediating and Monitoring Electronic Commerce), Dignum & van Linder 1997; Verharen et.al. 1996, Verharen 1996) en wat we graag nog verder uit zouden willen breiden.
Referenties Chavez, A., and Maes, P. 1996.Kasbah: An agent marketplace for buying and selling goods. In First Int. Conf. On the Practical Application of Intelligent Agents and Multi-Agent Technology, London, UK, 1996 Choi, S-Y., Stahl D. and Whinston, A., 1997. The economics of electronic commerce, MacMillan Technical publishing, Indianapolis, USA, 1997. Dignum, F., Verharen, E. and Bos, S. 1997. Implementation of a cooperative agent architecture based on the language-action perspective. In M. Singh et.al. (eds.) - Proc. Of the fourth Int. workshop on Agent Theories, Architectures and Languages (ATAL-97), Providence, USA, 1997. Dignum, F. and Linder, B. van, 1997. Modeling social agents: Communication as action. In J. Müller, M. Wooldridge and N. Jennings (eds.) Intelligent Agents III - Proc. Of the third Int. workshop on Agent Theories, Architectures and Languages (ATAL-96), LNAI-1193, Springer-Verlag, Heidelberg, 1997. Doorenbos, B., Etzioni, O. and Weld, D. 1996. A scalable comparison-shopping agent for the Worl Wide Web. Technical report TR96-01-03, University of Washington, 1996. Geddis, D., Genesereth, M., Keller, A. and Singh, N. 1995. Infomaster: A virtual information system. In Proceedings of the workshop on Intelligent Agents, CIKM’95, 1995. Huberman, B. and Hogg, T. 1995. Distributed computing as an economic system. In Journal of Economic Perspectives 9(1): 141-152, 1995. Kalakota, R. and Whinston, A., 1996. Frontiers of electronic commerce, Addison Wesley, 1996. Norman, T., Jennings, N., Faratin, P. and Mamdani, E. 1997. Designing and implementing a multi-agent architecture for business process management. In J. Müller, M. Wooldridge and N. Jennings (eds.) Intelligent Agents III - Proc. Of the third Int. workshop on Agent Theories, Architectures and Languages (ATAL-96), LNAI-1193, Springer-Verlag, Heidelberg, 1997. Rosenschein, J. and Zlotkin, G. 1994. Designing conventions for automated negotiation. AI Magazine, fall-1994, 29-46. Tsvetovatyy, M., Gini M., Mobasher, B. and Wieckowski Z. 1997. MAGMA: An agent-based virtual market for electronic commerce. In Journal of Applied Artificial Intelligence, 11:501-523, 1997. Varian, H. 1995. Economic mechanism design for computerized agents. In USENIX workshop on Electronic Commerce, New York, 1995. Verharen, E. 1997. A Language-Action perspective on the design of cooperative information agents. Ph.D. thesis, Katholieke Universiteit Brabant, Tilburg, 1997. Verharen, E., Dignum, F. and Weigand, H. 1996. A Language/Action perspective on cooperative information agents. In F. Dignum, J. Dietz, E. Verharen and H. Weigand (eds.) Communication modeling - A Language/Action Perspective, Electronic Workshops in Computing, SpringerVerlag, London, 1996. Vickrey, W. 1961. Counterspeculation, auctions and competitive sealed tenders. In Journal of Finance, 16:8-37, 1961.