Intelligent Agents......

Alain Farmer alain_farmer at yahoo.com
Sun Feb 15 12:46:33 EST 2004


Hello,

> How would you see a very basic agent as being 
> able to accomplish all of what you said, in RunRev?

This is one of those "64,000 dollar questions" of AI,
but let me just allude, for now, to several MC
features that could be useful to us :

* MetaCard multi-platform deployment (serverside as
well as clientside) makes it a very good candidate for
widely distributed agent-based achitectures. As good
as Java for what we need, but a *LOT* less complicated
than Java for most people.

* MC's web-savvy-ness makes it an excellent for
crafting web-based agents. This is *extremely*
relevant given the importance and spread of the
Internet. Every agent based system currently in the
running, and all those that will follow, need to be
web-savvy. There's no get around this constraint.
Without the web, you're out of the game from the very
start.

* In case some of you don't know, MC's web-savvy-ness
is not limited to getting URLs. It goes as deep as
creating your own web protocol with [secure] sockets.
Instead of HTTP or FTP, we could have an agent
protocol; something like this :

    agent://ufp.uqam.ca/dispatcher

The proverbial HTTP protocol was designed to
accomodate the many needs of hypertext. FTP was
optimized for quick file transfers. And so on... Our
AGENT protocol would be optimized for
knowledge-exchange and agent-coordination.

* The "try .. on error.." control structure which
allows a handler to catch its own errors and execute
meta-code that can fix the problem, allowing the agent
to continue with its on-going mission. As a bonus, it
also optimizes performance because it always tries to
do the best thing first & handles exceptional stuff
exceptionally. No un-necessary "if .. then .."
pre-processing.

* MC features GREP, which allows agents to smartly
parse informally-structured information. Locating
links inside web pages with the help of GREP is a
cinch, which means that it s very very easy to create
a hyper-bot, with MC, that traverses the web as easily
as any web-indexing bot can.

* Several people on this list have crafted some
XML-RPC stuff from within MC. I am presently seeking
some help in this regard. Ian Gordon was kind enough
to point me in the right direction, albeit I've not
had enough time to follow up on it yet. My development
team is about to embark on the open-source development
of some XML-RPC capabilities for MetaCard, including
compatibility with the blogger API. With the latter
our agents will be able to inter-operate with blogs,
wikis, and other opensource wares that are very hot
right now. In general, XML-RPC capability will allow
us to send Remote Procedure Calls to any program that
supports XML-RPC, e.g. *LOTS*

> Do you typically need self-modifying code?

Not necessarily. On the one hand, self-modifying code
is so dangerous that most operating systems don't
allow em to do this. On the other hand, life and
intelligence are self-modifying... it's what gives
these 'systems' their strength, you might say. I don't
have any easy answer[s] for this issue [yet] ...
except one, perhaps. We script the agents so that
their 'thinking' is data-driven, and their behavior
determined at runtime. In plain english, we script the
hooks, but all of the [operational] info is stored in
external files, fetched by URL, etc. Only these
external sources change; not the program itself.

> If so, aren't RR's script limits
> somewhat of a problem.

Yes. That's why an open source (LGPL) alternative to
the MC engine, e.g. FreeCard, is still a crucial
project for the xCard community.

> Also, how do IA's differ with Neural Nets?
> Expert Systems? Genetic Algorithms?

Neural Nets, Expert Systems, Genetic Algorithms are
some of the ways that cognitive scientists have
attempted to model intelligence with computers. They
each have their merits and their shortfalls. None are
as effective as we would like them to be. But there is
no need to *choose* one at the expense of the others.
Each agent's internals are irrelevant at the social
level. One agent can be an expert system, another
implemented as a neural net, etc. At the social level,
where the agents interact with each other, a diversity
of implementations is even desirable, because then the
agents could collaborate in such a way that they
complement each other, e.g. the shortfalls of one
agent systemically compensated for by the different
strengths of the other agents.

> I'd be interested in seeing a very simple IA
> implemented to do something (find the best
> price online for a product) using RR. Do you 
> know of such an example?

I have a HyperCard-based example of a forward-chaining
rule-based inference engine. It's very very simple to
understand and to use; so much so that you may not see
how ths is different from traditional scripting. Here
is the URL just in case your interested :

http://pan.uqam.ca/cgi-bin/usemod/wiki.pl?Electronics

Are we having fun yet ?  ;-))
--> I am.

Alain F
The UFP guy

__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html


More information about the metacard mailing list