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.