Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Philip Goetz

On 3/20/07, David Clark [EMAIL PROTECTED] wrote:


Java has static typing and no introspection.  It has no way of making
programs of itself and then executing them.  Multiple running programs
require very expensive multi-threading and the huge mutex overhead for
synchronization.


Java has more complete introspection than any language other than
Prolog or LISP, since about version 1.4.  See the docs for the
reflection package.

Java's native threads are heavy, but Cybele, an open-source
agent-based programming system, solves that problem.

As to synchronization - Why would you synchronize modules?  There are
advantages to synchronizing distributed dynamic representations, but
if we're already committed to a module-based approach, we're already
throwing that out the window anyway.  Any architecture using modules
that must be synchronized is suspect to me.  I've done a lot of
agent-based programming, and synchronization is just asking for
trouble.  Sometimes it's good to have everybody synchronized to the
same clock, but that's as far as I would go.

- Phil

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Philip Goetz

On 3/23/07, Samantha Atknis [EMAIL PROTECTED] wrote:

 8,Fast where most of the processing is done.

 In the language or in things written in the language or both?  Lisp has
been interpreted and compiled simultaneously and nearly seamlessly for 20
years and has efficiency approaching compiled C in many problem domains.


Samantha, you need to provide me with references if you want me to
believe this.  No LISP compiler has ever been optimized to any serious
degree AFAIK.  The nature of the language makes it difficult to write
efficient code in the first place.  And I suspect that these many
problem domains don't include any that involve numeric calculations.

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Eugen Leitl
On Mon, Apr 09, 2007 at 02:02:33PM -0400, Philip Goetz wrote:

 Samantha, you need to provide me with references if you want me to
 believe this.  No LISP compiler has ever been optimized to any serious

I've heard different. Google seems to agree somewhat:
http://www.google.com/search?hl=ensa=Xoi=spellresnum=0ct=resultcd=1q=LISP+numerical+performancespell=1

 degree AFAIK.  The nature of the language makes it difficult to write
 efficient code in the first place.  And I suspect that these many
 problem domains don't include any that involve numeric calculations.

Of course you won't get the numerical libraries of Fortran...

-- 
Eugen* Leitl a href=http://leitl.org;leitl/a http://leitl.org
__
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A  7779 75B0 2443 8B29 F6BE

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Philip Goetz

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


Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Philip Goetz

Some more notes on cognitive infrastructures:

IKAROS (http://www.lucs.lu.se/IKAROS/index.html)
IKAROS components correspond to brain areas, which are linked to each
other through arrays of real variables that represent neurons. IKAROS
is focused on representing the human brain accurately at a low level,
and duplicating specific brain regions and functions, purely for
research.  It has a specified level of detail, as does an
architecture, but is an infrastructure rather than an architecture in
that the user can specify how the components are connected.

BrainStorm/J was an attempt at the Universidad Nacional del Centro in
Argentina to build re-usable Java components for intelligent systems.
The major product of BrainStorm has been JavaLog, an open-source Java
implementation of Prolog suitable for use in a multithreaded Java
application.  The project focuses on belief-desire-intention (BDI)
planning architectures.

ABLE is an ongoing effort by the IBM Research Labs to produce a
library of low-level artificial intelligence components (neural
networks, function optimizers, logic engines, finite-state automata,
and so on) that communicate using a standard API.  ABLE is thorough
and well-tested.  Its API is meant only for components that reside in
the same thread on the same machine, and each component performs a
specific computational task rather than a specific cognitive function.
ABLE is hampered by an overly-restrictive licensing agreement that
allows only 90 days of use.

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Richard Loosemore

Philip Goetz wrote:

Some more notes on cognitive infrastructures:

IKAROS (http://www.lucs.lu.se/IKAROS/index.html)
IKAROS components correspond to brain areas, which are linked to each
other through arrays of real variables that represent neurons. IKAROS
is focused on representing the human brain accurately at a low level,
and duplicating specific brain regions and functions, purely for
research.  It has a specified level of detail, as does an
architecture, but is an infrastructure rather than an architecture in
that the user can specify how the components are connected.

BrainStorm/J was an attempt at the Universidad Nacional del Centro in
Argentina to build re-usable Java components for intelligent systems.
The major product of BrainStorm has been JavaLog, an open-source Java
implementation of Prolog suitable for use in a multithreaded Java
application.  The project focuses on belief-desire-intention (BDI)
planning architectures.

ABLE is an ongoing effort by the IBM Research Labs to produce a
library of low-level artificial intelligence components (neural
networks, function optimizers, logic engines, finite-state automata,
and so on) that communicate using a standard API.  ABLE is thorough
and well-tested.  Its API is meant only for components that reside in
the same thread on the same machine, and each component performs a
specific computational task rather than a specific cognitive function.
ABLE is hampered by an overly-restrictive licensing agreement that
allows only 90 days of use.


Alas, I fear that any attempt to build a horse (sorry, an AI) by making 
a committee of all the existing AI techniques is going to produce 
something that smells exactly as sweet as a camel 





Richard Loosemore


-
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


Re: [agi] My proposal for an AGI agenda

2007-04-09 Thread Jeff Rose

Philip Goetz wrote:

On 3/23/07, Samantha Atknis [EMAIL PROTECTED] wrote:

 8,Fast where most of the processing is done.

 In the language or in things written in the language or both?  Lisp has
been interpreted and compiled simultaneously and nearly seamlessly for 20
years and has efficiency approaching compiled C in many problem domains.


Samantha, you need to provide me with references if you want me to
believe this.  No LISP compiler has ever been optimized to any serious
degree AFAIK.  The nature of the language makes it difficult to write
efficient code in the first place.  And I suspect that these many
problem domains don't include any that involve numeric calculations.

-
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



Here are some benchmarks with SBCL lisp and GCC compiled C:

http://shootout.alioth.debian.org/gp4/benchmark.php?test=alllang=sbcllang2=gcc

Compared to other high level languages lisp is pretty impressive, but 
it's not at the level of C for sure.


-Jeff

-
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