Agents -- technologie of metafoor?

Anton Eliëns
Vrije Universiteit, Faculteit Wiskunde en Informatica,
De Boelelaan 1081, 1081 HV Amsterdam
eliens@cs.vu.nl,

Inleiding


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Niet zelden gaat de adoptie van een nieuwe technologie gepaard met een gevoel van euforie. De problemen waar we in het verleden mee geworsteld hebben kunnen we dankzij de nieuwe technologie de baas. De gebruiker wordt eindelijk het gemak geboden waar hij of zij recht op meent te hebben en de software ontwikkelaars zijn verlost van hun eeuwige onderhoudsnachtmerrie. Het jaar 2000 nadert en 'intelligent agents' doen hun intrede. De gebruikers hoeven slechts hun voorkeuren te uiten en de agent technologie doet de rest.

In  [Negro] worden 'intelligent agents' gekarakteriseerd als autonome intelligente processen die de gebruiker hulp bieden bij het uitvoeren van complexe taken, uiteenlopend van het beantwoorden van email, het vergaren van informatie en het plannen van activiteiten  [Agents].

Speciale edities van tijdschriften worden gewijd aan voor en nadelen van specifieke agent technologieen. Congressen worden georganiseerd, onderzoeksvoorstellen worden geschreven. Agent technologie heeft zijn intrede gedaan.

De intrede van nieuwe technologie


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Het jaar 2000 nadert, onbetwistbaar. In de afgelopen decennia hebben we tal van nieuwe technologieen hun intrede zien doen, waaronder, om enkele voorbeelden te noemen, object-orientatie, expert system, neurale netwerken, genetische algoritmen, logisch programmeren en, alweer wat ouder, compiler technologie. Sommige van deze technologieen behoren inmiddels tot de 'state of the art', andere technologieen daarentegen zijn enigszins in de vergetelheid geraakt of hebben nooit de erkenning gekregen die ze leken te verdienen en blazen hun partij hooguit op de achtergrond nog mee. Overigens, om misverstanden te voorkomen, het is mijn stellige overtuiging dat het in alle genoemde gevallen daadwerkelijk om technologieen gaat die een plaats in de praktijk van software ontwikkeling en gebruik verdienen. Zoals de titel van dit stukje doet vermoeden, ben ik daar in het geval van 'agents' nog niet zo zeker van.

Kenmerkend voor alle genoemde technologieen is dat er een nauwe samenhang is tussen technologie en metafoor. Zo zijn expert systemen te zien als een middel om de kennis van menselijke experts uit te drukken en dankzij de technologie effectief te gebruiken voor het oplossen van problemen of het stellen van diagnoses. De metafoor berust hier op de analogie met het menselijk denken en de technologie bestaat uit efficiente procedures voor de selectie en verwerking van regels.

Zelfs is bij compilertechnologie is, met enige goede wil, een metafoor aan te wijzen, namelijk een die verwijst naar het gebruik van (natuurlijk) de taal voor het besturen van de computer, analoog aan de wijze waarop we de wereld om ons heen beheersen, middels taal.

De euforie die zich bij de intrede van een nieuwe technologie voordoet berust in hoge mate op de oorspronkelijk sex-appeal van de begeleidende metafoor. Expert systemen, geintroduceerd in een tijd dat de Kunstmatige Intelligentie nog onbeschroomd ambitieus mocht zijn, materialiseerden het menselijk vermogen tot het oplossen van problemen. Toen er kanttekeningen gezet werden bij het eenzijdig logisch-symbolische karakter van expert systemen, deden de neurale netwerken en genetische algoritmen hun intrede als computationele materialisatie van de inherente intelligentie van de bio-materie.

Keer op keer hebben we geleerd onze euforie te beteugelen en de toepassing van nieuwe technologie te beperken tot de domeinen waarvoor ze op grond van hun computationele aard het meest geschikt zijn. Laat ik, voor alle duidelijkheid, de conclusie van dit betoog reeds uit handen geven: agent-technologie is in de huidige vorm terug te brengen tot object-technologie. Dat geldt voor de Internet agents zoals beschreven in  [Search], en zeker ook voor de mobiele software agents besproken in  [Mobile]. De agent metafoor is echter nieuw, en doet een beroep op technologieen die in de huidige agent technologie, of wat daarvoor doorgaat, niet terug te vinden zijn. Derhalve is er wel een belofte  [Maes].

Een agent-georienteerde programmeertaal?


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Als informatica-onderzoeker dien je een zeker besef te hebben van actuele onderwerpen en trends. Sterker nog, het zal niemand verbazen dat onderzoeksvoorstellen, naar de bewoording in ieder geval, vaak sterk gekleurd zijn door de vigerende trends. Ook voor mij diende zo'n twee jaar geleden de noodzaak aan me in het gebied van de 'agents' te verdiepen, bij het schrijven van een voorstel voor onderzoek dat tot doel heeft agent-technologie voor Web toepassingen te ontwikkelen  [WASP]. Lezend in de overzichtsliteratuur  [Survey], kwam ik er enigszins tot mijn verbazing achter dat ik reeds een agent-georienteerde programmeertaal (avant la lettre) had ontwikkeld, namelijk een gedistribueerde logische programmeertaal waarin objecten, communicatie en logisch programmeren harmonieus met elkaar verenigd zijn  [DLP]. Een taal waarmee autonome (intelligente) processen te creeeren zijn, die op hoog niveau met elkaar kunnen communiceren. Destijds bedoeld als platform voor de realisatie van parallelle expert systemen. Nu, waarom ook niet, te zien als een ideaal platform voor de constructie van 'intelligent agents'.

Objecten en agents


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Ook bij de introductie van object-georienteerde technologie, eerst in 1967 met Simula en later meer succesvol met Smalltalk begin tachtiger jaren, werd een nadrukkelijk beroep gedaan op een metafoor. Objecten zijn te zien als de dingen die we in de werkelijkheid om ons heen zien, dingen waar we dagelijks mee omgaan. Dingen met eigenschappen en gedrag  [OO]. Voor het ontwikkelen van systemen hoefden we slechts de werkelijkheid te bestuderen om de objecten van ons systeem te leren kennen. Ook later, toen de aandacht verschoof van object-georienteerde talen en de implementatie van object-georienteerde systemen naar analyse, ontwerp en object-georienteerde modellering bleef deze metafoor nog lange tijd van kracht. Nu de technologie zelf meer volwassen is, en mede door de introductie van gedistribueerde object-technologie, wordt de oorspronkelijk naieve metafoor met wat meer terughoudendheid gehanteerd en is er ook aandacht voor objecten die hun oorsprong niet vinden in de werkelijkheid maar geintroduceerd worden ten behoeve van de modellering of de software architectuur zelf. De metafoor blijft desalniettemin onverkort van kracht in de mate waarin zij de karakterisering van eigenschappen en gedrag benadrukt, zoals vastgelegd in interfaces. Ten overvloede, het voordeel daarvan is de afscherming van implementatie-details en data-structuren!

Van een object, als representant van een ding uit een al dan niet imaginaire werkelijkheid, met eigenschappen en gedrag, naar een 'agent' als autonome entiteit met eigenschappen en wellicht wat meer intelligent gedrag is het maar een kleine stap. Hooguit zal het gedrag van een agent op een wat meer antropomorfe manier beschreven worden en zullen de eigenschappen wellicht betrekking hebben op geloof, wensen en intenties! (Zie  [Survey])

Autonomie, noch communicatie is daarbij een onderscheidend kenmerk. Deze aspecten behoren wezenlijk tot de moderne object-technologie zoals bijvoorbeeld belichaamd in Java en CORBA.

Van metafoor naar technologie


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Het ligt voor de hand in navolging van  [WebWord] te besluiten met de wat negatieve constatering dat de agent metafoor zeer waardevol is maar dat er qua technologie weinig nieuws onder de zon is. Interessanter echter is na te gaan aan welke voorwaarden voldaan dient te zijn voor een daadwerkelijk realisatie van agent technologie en de ontwikkelingen aan te wijzen die daaraan bijdragen.

De vraag wanneer een technogie een metafoor, trend of stijl van software ontwikkeling ondersteunt is niet nieuw. Zo vroeg Bjarne Stroustrup zich, ter rechtvaardiging van C++, zich bij de introductie van die taal af wanneer een programmeertaal object-orientatie ondersteunt. Het antwoord was duidelijk: acceptatie door de compiler van object-georienteerde constructen, controle op het correcte gebruik daarvan, en runtime support voor de dynamisch aspecten van object-orientatie. Met deze criteria wordt systeem-programmeurs die een en ander menen te kunnen bereiken door slimme hacks (in C, Pascal of Modula) de pas afgesneden.

Ook in relatie tot agents veronderstelt technologie een 'commitment'  [Engineering] die verder gaat dan het louter en alleen aanbieden van de functionaliteit die de metafoor impliceert. Vanuit het oogpunt van 'commitment' was C++ duidelijk een stap vooruit, ondanks de latere correcties en de introductie van andere onvolkomenheden door de ontwerpers van Java. Voor agent-technologie houdt deze commitment in concreto in dat de kloof tussen de theoretische noties van 'strong agents', uitgerust met geloof, wensen en intenties, en de pragmatische oplossing geboden door de keur van 'weak agents', zoals we die tegenkomen in 'search engines'  [Search], 'mobile shopping objects'  [Mobile], en 'virtual reality' entiteiten  [VR], gedicht wordt.

Toegespitst op het idee van een agent-georienteerde programmeertaal, waarvoor ik DLP kandidaat gesteld heb, maar waarvoor ik evengoed April of Phantom als kandidaten had kunnen noemen, in zo'n taal zou ik dynamische en modale operatoren ondersteund willen zien, alsook interactiepatronen willen kunnen uitdrukken zoals we die in sociale organisaties zien.

Conclusies


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Het lijkt erop dat we optimistisch af kunnen sluiten. Samengevat, alhoewel het ogenschijnlijk maar een kleine stap is van objecten naar agents, houdt het samengaan van theoretische noties en praktische oplossingen een belofte in. Een belofte die ons voorgespiegeld wordt door de metafoor. Gezien de 'state of the art' in de Informatica en Kunstmatige Intelligentie, is het een belofte die werkelijkheid zou moeten kunnen worden.

Tot slot, ik kan het niet na laten nog een kritische kanttekening te plaatsen. Afgezien van de moeilijkheid om tot werkbare operationalisaties van door de theorie geinspireerde aspecten van agents te komen, afgezien ook van de problemen verbonden aan de integratie van op zichzelf al ingewikkelde computationele mechanismen, en afgezien van de 'engineering effort', in een tijd waarin het jaar 2000 probleem meer nijpend lijkt te zijn, is het tot stand komen van een dergelijke technologie naar mijn idee vooral een probleem van adoptie. Adoptie door de potentiele gebruiker, die in de meeste gevallen toch al snel tevreden lijkt te zijn met de weinig intelligente maar voorspelbare 'wizards' die standaard worden meegeleverd.

Naschrift


[] inleiding, technologie programmertaal objecten metafoor conclusies naschrift literatuur
Dit stukje is tot stand gekomen naar aanleiding van een verzoek van John-Jules Meyer mijn kritische kanttekeningen bij agents, geuit op een SIKS themadag over dit onderwerp, op te schrijven. Die uitnodiging heb ik in dank aanvaard, wetende hoe plezierig het is tegen heilige huisjes te schoppen. Echter, de lezer moet zich door de ietwat negatieve teneur niet laten misleiden. Zoals Pascal van Eck (AIO Kunstmatige Intelligentie, VU), met Multatuli in de hand opmerkte, "van de maan bezien lijkt alles op elkaar". Hij wees me er op dat kleine stapjes grote gevolgen kunnen hebben, en in het bijzonder agent-technologie een grote sprong vooruit zou kunnen zijn, mede door de rijkdom aan theoretische inspiratiebronnen waarin ze zich kan verheugen. Mijn antwoord op deze kritiek is overigens, zoals uit het stukje blijkt, dat de onderzoeksgemeenschap zich dient te bezinnen op de voorwaarden waaraan voldaan dient te zijn wil er sprake zijn van een technologie. Desalniettemin heeft zijn kritiek, alsook het verzoek van Jacco van Ossenbruggen (AIO Software Engineering, VU) om concreter aan te geven wat agent-technologie zou moeten inhouden, er toe geleid dat de conclusie van dit stukje positiever is geworden dan de bedoeling was. Daarbij gevoegd, de observatie van Bastiaan Schönhage (AIO Software Engineering, VU) dat vanuit de object-technologie gezien 'zwakke agents' sterke objecten zijn, kunnen we tot geen andere conclusie komen dan dat er hoop is voor agents. Terecht of onterecht, dat is aan de lezer.

Literatuur

DLP - A language for distributed logic programming, Principles of Object-Oriented Software Development, Intelligent Agents, Lecture Notes in AI, Vol. 890, pp. 1-39, Springer- Verlag, 1995.