On 3/19/07, rooftop8000 <[EMAIL PROTECTED]> wrote:
Hi, I've been thinking for a bit about how a big collaboration AI project
could work. I browsed the archives and i see you guys have similar
ideas....
I'd love to see someone build a system that is capable of adding any
kind of AI algorithm/idea to. It should unite the power of all existing
different flavors: neural nets, logical systems, etc
Wilbur Peng and I developed the MAGIC system for just this purpose.
However, the company that owns it decided to keep it to themselves, so
I can't tell you much about it. Each MAGIC module is a software
agent, with its own thread of control. We follow the COUGAAR
architecture to some extent, but MAGIC is intended for much
finer-grained components.
- An Agent is what you think of as the intelligent agent level. It's
made up of Modules and Protocols.
- A Module is a set of software agents that the framework guarantees
to keep together on the same computer. This lets you group together
processes that have to communicate with each other a lot.
- A Service is like a shared object library, but with some additional
properties that define whether it can save state between calls.
- A Protocol is a set of rules defining how two entities exchange
information. It isn't the knowledge representation; it's more like
the TCP/IP protocol. A set of rules defining how an auction works is
one kind of protocol, which can be used for agoric computing. Any
component that observes a protocol can (usually) be substituted for
any other component that observes the same protocol.
Every component was an XML object, usually with associated code. The
XML is supposed to describe enough of what the component does, that a
running system trying to accomplish a task can automatically assemble
components from a library for that task. It's rather like an
elaborate WSDL (web services description language). In practice, that
never worked, altho I think it could to some extent.
We had a set of provided default components, designed for intelligent
agent applications. They were all in Java. Software agents were
implemented using Cybele (www.opencybele.org). I'd like to enable
people to program components in other languages, but you know that as
soon as you do that, someone's going to write something in C, and then
you'll be inundated with tech-support email caused by other peoples' C
code.
Here are a couple of other nice frameworks:
I. Dickinson, Configuring Nuin agents, 2006,
http://www.nuin.org/userman/config.html .
J. Bigus, D. Schlosnagle, J. Pilgrim, W. Mills, & Y. Diao, ABLE: A
toolkit for building multiagent autonomic systems, IBM Systems Journal
41(3), 2002, 350 – 371. http://www.alphaworks.ibm.com/tech/able
ABLE is beautiful, but you're screwed if you use it, because IBM will
not license it to anybody for any purpose. This isn't because they
don't want to; it's because, after 5 years, they still can't decide
how much to charge. Pathetic.
This is not easy because you'll need to cross-translate between the
different representations and make the system understand which
techniques can do what and when. And still be flexible enough so
any new ideas can be added to it (together with information on
how to use them).
What I proposed doing in MAGIC, but didn't implement, is to provide a
standard implementation of Prolog, lacking some extralogicals. Users
can devise any representation that they wish using that Prolog,
Because the definitions of each logic representation will themselves
be written in a single lower-level logic, it would be easier to
translate between them.
But still not simple.
-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?list_id=303