Re: [agi] My proposal for an AGI agenda

2007-04-18 Thread Stephen Reed
 that 
is designed to acquire more form/meaning pairs.  Huddleston gives example 
phrases for all his identified constructions and I'll create a test suite from 
these.

-Steve

- Original Message 
From: James Ratcliff [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, April 17, 2007 2:59:35 PM
Subject: Re: [agi] My proposal for an AGI agenda

Do you have any of this on the Net or usable form?  Or can post some good 
screens of it?

James Ratcliff

Stephen Reed [EMAIL PROTECTED] wrote:
For my own AI research I am using Java.  Apart from its satisfactory speed, I 
like the NetBeans IDE, and most importantly like all the third-party software 
libraries that I can plug in.  Because my stuff is GPL, there really is a wide 
variety of compatible software.   For example, in the last 9 months I built an 
object store to contain the OpenCyc ontology and then added WordNet, the 
lexicon that I parsed from Wiktionary, and the CMU Pronouncing Dictionary.  All 
of this is to support a robust English dialog system that will depend up a 
reversible construction grammar now under development.   I was able to plug in 
Hibernate and MySQL to host millions of knowledge base propositions.  Once I 
got above 20 million propositions, performance became noticeably slower.  So  I 
am unplugging Hibernate and plugging in Oracle Berkeley DB Java Edition (GPL 
compatible) and hope to regain ideal performance by using a sharded (physically 
partitioned) object store.

For deployment I am using J2EE which is scalable from single box (where I'm at 
now) to cluster to fully distributed.

Regarding self-modifying programs, I prefer that the system intelligently 
compose its source code and then compile it.  I already experimented with a 
java classloader that can replace classes in a JVM on the fly.

I'm building the dialog system so that I can teach the system in English how to 
do things and so not worry about the programming 





__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

-
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/?member_id=231415user_secret=fabd7936

Re: [agi] My proposal for an AGI agenda

2007-04-18 Thread Benjamin Goertzel
 an elegant, concise rule-based grammar, and instead use a
simple paring of form and meaning, where the forms are numerous, include
idioms and special cases, and only incidentally may be able to share
constituents.   I'll use Huddleston's text to indicate the required forms
and CycL to represent the meanings.  I plan to bootstrap the grammar
acquisition by hand-coding a dialog system that is designed to acquire more
form/meaning pairs.  Huddleston gives example phrases for all his identified
constructions and I'll create a test suite from these.

-Steve

- Original Message 
From: James Ratcliff [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, April 17, 2007 2:59:35 PM
Subject: Re: [agi] My proposal for an AGI agenda

Do you have any of this on the Net or usable form?  Or can post some good
screens of it?

James Ratcliff

Stephen Reed [EMAIL PROTECTED] wrote:

For my own AI research I am using Java. Apart from its satisfactory speed, I
like the NetBeans IDE, and most importantly like all the third-party
software libraries that I can plug in. Because my stuff is GPL, there really
is a wide variety of compatible software. For example, in the last 9 months
I built an object store to contain the OpenCyc ontology and then added
WordNet, the lexicon that I parsed from Wiktionary, and the CMU Pronouncing
Dictionary. All of this is to support a robust English dialog system that
will depend up a reversible construction grammar now under development. I
was able to plug in Hibernate and MySQL to host millions of knowledge base
propositions. Once I got above 20 million propositions, performance became
noticeably slower. So I am unplugging Hibernate and plugging in Oracle
Berkeley DB Java Edition (GPL compatible) and hope to regain ideal
performance by using a sharded (physically partitioned) object store.

For deployment I am using J2EE which is scalable from single box (where I'm
at now) to cluster to fully distributed.

Regarding self-modifying programs, I prefer that the system intelligently
compose its source code and then compile it. I already experimented with a
java classloader that can replace classes in a JVM on the fly.

I'm building the dialog system so that I can teach the system in English how
to do things and so not worry about the programming


 
Ahhh...imagining that irresistible new car smell?
 Check out new cars at Yahoo! Autos. 
 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/?;


-
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/?member_id=231415user_secret=fabd7936


Re: [agi] My proposal for an AGI agenda

2007-04-18 Thread Stephen Reed
Ben,

OpenCyc, http://www.opencyc.org has the Apache license so you can use its 
content commercially with no problem.  It has the full Cyc ontology, including 
predicates and their argument constraints, but with an abbreviated lexicon, and 
very few rules, and few propositions between terms.  It includes about 12,000 
links between Cyc terms and WordNet synonym sets.

Full Cyc can be evaluated by obtaining a no-charge ResearchCyc license but in 
order to use that content commercially, you have to negotiate a Cyc license 
with Cycorp.  I am only using OpenCyc content in my project.

-Steve

- Original Message 
From: Benjamin Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, April 18, 2007 2:33:57 PM
Subject: Re: [agi] My proposal for an AGI agenda

Stephen --

What do you know about Cyc's licensing terms?

Let's say that Novamente reads Cyc and then learns some things from it
... but then does not retain Cyc in its memory, but only some
derivative knowledge that is in quite different form...

Is this Novamente system then considered a derivative product of Cyc,
so that if an NM instance is licensed, the customer also has to
license Cyc?

thx
Ben


On 4/18/07, Stephen Reed [EMAIL PROTECTED] wrote:

 Hi James,

 My development source code is stored in the subversion repository at
 SourceForge:  http://sf.net/projects/texai .  There is no GUI presently
 because I am concentrating on the server-side functions and want text chat
 as the system's primary communication modality.

 Recently I created my own lexicon that was derived from OpenCyc, WordNet,
 the CMU Pronouncing Dictionary and from a parsed Wiktionary.  I was using
 MySQL as the database back end to contain these propositions and the
 application performance suffered as the KB grew over 20 million propositions
 (9 GB).  So I conducted some experiments that demonstated that Oracle
 Berkelely DB Java Edition runs very fast for my application if the size of
 its database is kept below 100,000 propositions.

 While at Cycorp, I became familiar with their technique of physically
 partitioning Cyc in order to excise old portions at a time when system RAM
 was a limiting factor.  So I am accelerating a task that I planned for later
 on - a peer-to-peer network that partitions the KB.  Because certain
 reasonable partitions,  such as  context imported from WordNet, are over
 100,000 propositions in size, I will use the database  sharding (table
 slicing)  technique to  physically decompose  too-large  KB partitions.  As
 a result, my current 27 million row MySQL database will be transformed into
 approximately 10 partitions and approximately 300 shards.  For now I will
 just run all the peers in the same JVM, as my development computer is an AMD
 X2 5800 with 4 GB RAM running 64-bit Java 6.

 Some other miscellaneous details:
 1.  I revised all the KB terms such as symbols, variables, numbers,
 named-terms and propositions, to be indexed by a 16-byte UUID instead of a
 4-byte integer.  I had been keeping track of UUID for named terms, but now
 the p2p system will run faster if the IDs are the same in all peers and do
 not require translation to a local integer term ID.
 2.  Although my java classes are compatible with J2EE, I am using my own
 light-weight container for more rapid coding and testing.  Likewise the Java
 Message Service (JMS) will be my peer-to-peer message transport interface,
 and I will code a very simple implementation that works in a single JVM.
 When I do go ahead and test a remote peer, for example with my old Window's
 laptop, I'll probably use Apache ActiveMQ,  which is J2EE/JMS compatible.
 3.  I have already integrated the CMU Speech Tools, and imported the CMU
 Pronouncing Dictionary, so that when I get a text dialog system running, it
 will be simple to add speech recognition and speech generation.  I have
 hacked the CMU Sphinx speech recognition engine to enable the dialog system
 to prune the n-best word list incrementally as each phoneme is processed,
 according to discourse context.
 4.  Unlike Cyc tradition, I am only creating atomic terms, not non-atomic
 terms when naming new things, and I am creating only binary propositions
 even though CycL allows for unary, binary, ternary, quaternary and quintary
 (5- argument) propositions.  This is for efficiency, and for compatibility
 with the Semantic Web - OWL is limited to atomic terms and binary
 propositions.

 The next step will be to resume work on the first Construction-Grammar
 constructions, chosen to run my simple test cases and subsequently bootstrap
 the creation of the many remaining constructions.  Some have commented here
 on the failure of parsers to fully understand English text. Again, while at
 Cycorp, I witnessed the utilization of many English parsers with Cyc: 1.
 (in-house) simple template parser, 2. (in-house) recursive phrase structure
 parser,  3.  (in-house)  head-driven phrase structure parser, 4 Stanford
 parser,  5.  Charniak

Re: [agi] My proposal for an AGI agenda

2007-04-18 Thread Benjamin Goertzel

I doubt OpenCyc would be useful to Novamente...

I think full Cyc might, but it would take us a lot of effort to find
out yea or nay ... so I don't want to put in that effort unless I know
that it will be usable in a commercial sense...

So, perhaps I will contact Cycorp and see what kind of license
agreement they would offer for using Cyc within a commercial hosted
web service...

thx
ben

On 4/18/07, Stephen Reed [EMAIL PROTECTED] wrote:

Ben,

OpenCyc, http://www.opencyc.org has the Apache license so you can use its 
content commercially with no problem.  It has the full Cyc ontology, including 
predicates and their argument constraints, but with an abbreviated lexicon, and 
very few rules, and few propositions between terms.  It includes about 12,000 
links between Cyc terms and WordNet synonym sets.

Full Cyc can be evaluated by obtaining a no-charge ResearchCyc license but in 
order to use that content commercially, you have to negotiate a Cyc license 
with Cycorp.  I am only using OpenCyc content in my project.

-Steve

- Original Message 
From: Benjamin Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, April 18, 2007 2:33:57 PM
Subject: Re: [agi] My proposal for an AGI agenda

Stephen --

What do you know about Cyc's licensing terms?

Let's say that Novamente reads Cyc and then learns some things from it
... but then does not retain Cyc in its memory, but only some
derivative knowledge that is in quite different form...

Is this Novamente system then considered a derivative product of Cyc,
so that if an NM instance is licensed, the customer also has to
license Cyc?

thx
Ben


On 4/18/07, Stephen Reed [EMAIL PROTECTED] wrote:

 Hi James,

 My development source code is stored in the subversion repository at
 SourceForge:  http://sf.net/projects/texai .  There is no GUI presently
 because I am concentrating on the server-side functions and want text chat
 as the system's primary communication modality.

 Recently I created my own lexicon that was derived from OpenCyc, WordNet,
 the CMU Pronouncing Dictionary and from a parsed Wiktionary.  I was using
 MySQL as the database back end to contain these propositions and the
 application performance suffered as the KB grew over 20 million propositions
 (9 GB).  So I conducted some experiments that demonstated that Oracle
 Berkelely DB Java Edition runs very fast for my application if the size of
 its database is kept below 100,000 propositions.

 While at Cycorp, I became familiar with their technique of physically
 partitioning Cyc in order to excise old portions at a time when system RAM
 was a limiting factor.  So I am accelerating a task that I planned for later
 on - a peer-to-peer network that partitions the KB.  Because certain
 reasonable partitions,  such as  context imported from WordNet, are over
 100,000 propositions in size, I will use the database  sharding (table
 slicing)  technique to  physically decompose  too-large  KB partitions.  As
 a result, my current 27 million row MySQL database will be transformed into
 approximately 10 partitions and approximately 300 shards.  For now I will
 just run all the peers in the same JVM, as my development computer is an AMD
 X2 5800 with 4 GB RAM running 64-bit Java 6.

 Some other miscellaneous details:
 1.  I revised all the KB terms such as symbols, variables, numbers,
 named-terms and propositions, to be indexed by a 16-byte UUID instead of a
 4-byte integer.  I had been keeping track of UUID for named terms, but now
 the p2p system will run faster if the IDs are the same in all peers and do
 not require translation to a local integer term ID.
 2.  Although my java classes are compatible with J2EE, I am using my own
 light-weight container for more rapid coding and testing.  Likewise the Java
 Message Service (JMS) will be my peer-to-peer message transport interface,
 and I will code a very simple implementation that works in a single JVM.
 When I do go ahead and test a remote peer, for example with my old Window's
 laptop, I'll probably use Apache ActiveMQ,  which is J2EE/JMS compatible.
 3.  I have already integrated the CMU Speech Tools, and imported the CMU
 Pronouncing Dictionary, so that when I get a text dialog system running, it
 will be simple to add speech recognition and speech generation.  I have
 hacked the CMU Sphinx speech recognition engine to enable the dialog system
 to prune the n-best word list incrementally as each phoneme is processed,
 according to discourse context.
 4.  Unlike Cyc tradition, I am only creating atomic terms, not non-atomic
 terms when naming new things, and I am creating only binary propositions
 even though CycL allows for unary, binary, ternary, quaternary and quintary
 (5- argument) propositions.  This is for efficiency, and for compatibility
 with the Semantic Web - OWL is limited to atomic terms and binary
 propositions.

 The next step will be to resume work on the first Construction-Grammar
 constructions, chosen to run my

Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread Eric Baum

I'd commend to the LISP hackers' attention the compiler Stalin
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests 
on Stalin and concluded the compiled code was substantially faster 
than compiled C and C++, even on problems where this was quite 
surprising. It's possible Kevin published something on these tests. 

The above is about all I know on the subject, so please don't ask
for more details. The above was roughly 10
yrs ago. At the time, both Syskind and Kevin (and me) were at the NEC
Research Institute.
Presumably there is a catch or you would all be using Stalin ;^(

Philip 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.

Philip Samantha, you need to provide me with references if you want
Philip me to believe this.  No LISP compiler has ever been optimized
Philip to any serious degree AFAIK.  The nature of the language makes
Philip it difficult to write efficient code in the first place.  And
Philip I suspect that these many problem domains don't include any
Philip 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-10 Thread BillK

On 4/10/07, Eric Baum wrote:

I'd commend to the LISP hackers' attention the compiler Stalin
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests
on Stalin and concluded the compiled code was substantially faster
than compiled C and C++, even on problems where this was quite
surprising. It's possible Kevin published something on these tests.



http://community.schemewiki.org/?Stalin
http://en.wikipedia.org/wiki/Stalin_(Scheme_implementation)
http://cobweb.ecn.purdue.edu/~qobi/software.html

Stalin is an aggressively optimizing Scheme compiler. It is the most
highly optimizing Scheme compiler, and in fact one of the most highly
optimizing compilers of any sort for any language. Stalin is publicly
 freely available, licensed under the GNU GPL. It was written by
Jeffrey M. Siskind.

In detail, Stalin is a whole-program compiler that uses advanced flow
analysis  closure conversion techniques. It compiles Scheme to highly
optimized C. Stalin has a few very significant limitations, however:

* it takes a *long* time to compile anything including the compiler
* it is not designed for interactive use or debugging
* it does not support R4RS/R5RS high-level macros
* it does not support the full numeric tower

The compiler itself does lifetime analysis and hence does not generate
as much garbage as might be expected, but global reclamation of
storage is done using the Boehm garbage collector.



Scheme
http://cbbrowne.com/info/scheme.html
http://en.wikipedia.org/wiki/Scheme_(programming_language)

 Scheme is a LISP dialect that is relatively small, nicely supports
tail recursion, provides block structure and lexical scoping, and
gives a variety of object types first-class status (e.g. - first
class objects are namable and can be passed around as function
arguments, results, or as list elements).

If Common LISP is considered analogous to C++ (which is not entirely
unreasonable), Scheme would comparatively be analogous to C. Where
Common LISP requires that the rich functionality (such as a wide
variety of data structures and the Common Lisp Object System (CLOS))
come as an intrinsic part of the language, Scheme encourages the use
of libraries to provide these sorts of additional functionality.

The Scheme libraries are small enough that programmers commonly
construct functionality using primitive functions, where a LISP system
might have something already defined. This gives additional
opportunity either to tune performance or shoot oneself in the foot by
reimplementing it poorly...



BillK

-
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-10 Thread Benjamin Goertzel

The Stalin Scheme compiler can be obtained here:

http://cobweb.ecn.purdue.edu/~qobi/software.html

It is a batch-mode-only compiler, meaning it lacks the interactive
aspect that makes languages like LISP and Ruby so nice to
use.

The optimizations inside the Stalin compiler are quite advanced
though not as much so as the stuff inside the Java supercompiler
I worked with a while back

http://www.supercompilers.com

This sort of thing can really speed up numerical, mathematical code
quite a lot.  Using the Java supercompiler one can get Java code
that runs 50 times faster than comparable C code, for various mathematical
benchmarks (e.g. the FFT, sorting, etc.).

Stalin also has an advanced garbage collector, more so than existing
JVM's for example.

In practice Stalin is a bitch to use, due to being a slow compiler,
having no interactive mode, having no debugger, and other pragmatic
irritations.  It also leaves out some parts of Scheme.

In short, Stalin is a research compiler and probably not slick enough for
practical commercial use, but it demonstrates the principle
that an optimized LISP compiler can kick ass in batch mode.

Just as the Java supercompiler (in spite of its incompleteness at
the moment) demonstrates the principle that
supercompilation can make Java vastly faster than C++.

The reason C++ is the best approach for high-performance computing
right now is not anything fundamental -- it's just a matter of the
practicalities
of currently existing technology.  If someone put sufficient $$ or time
into making kick-ass optimizing compilers and supercompilers for nicer
languages, we'd all be better off.  But that doesn't seem to happening
at a very rapid rate...  And I'm personally more interested in pushing
toward
AGI than in improving programming language infrastructure...

-- Ben G







On 4/10/07, Eric Baum [EMAIL PROTECTED] wrote:



I'd commend to the LISP hackers' attention the compiler Stalin
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests
on Stalin and concluded the compiled code was substantially faster
than compiled C and C++, even on problems where this was quite
surprising. It's possible Kevin published something on these tests.

The above is about all I know on the subject, so please don't ask
for more details. The above was roughly 10
yrs ago. At the time, both Syskind and Kevin (and me) were at the NEC
Research Institute.
Presumably there is a catch or you would all be using Stalin ;^(

Philip 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.

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



-
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-10 Thread Benjamin Goertzel



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




Philip, I think your latter sentence is exactly wrong!

Mathematical code is exactly what's MOST EASILY OPTIMIZABLE using
techniques as exist in the Stalin Scheme compiler, or better yet in the Java
supercompiler.

Each numeric operation is of course no faster after optimized or super
compilation;
but these advanced compilation techniques can reorganize the math in the
code
so as to require fewer numeric operations.

And these advanced compilation techniques are easier to apply to LISP or
Refal
or Haskell than to Java, and easier to apply to Java than to C++

So, mathematical code is exactly where one should expect the largest
advantage
of optimized LISP over Java or C++ ...

-- Ben G

-
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-10 Thread Philip Goetz

On 4/10/07, Benjamin Goertzel [EMAIL PROTECTED] wrote:


Mathematical code is exactly what's MOST EASILY OPTIMIZABLE using
techniques as exist in the Stalin Scheme compiler, or better yet in the Java
supercompiler.

Each numeric operation is of course no faster after optimized or super
compilation;
but these advanced compilation techniques can reorganize the math in the
code
so as to require fewer numeric operations.

And these advanced compilation techniques are easier to apply to LISP or
Refal
or Haskell than to Java, and easier to apply to Java than to C++


Why is that?

BTW, for numeric computation in Java, see the Colt package put out by CERN.

-
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-10 Thread Benjamin Goertzel



 And these advanced compilation techniques are easier to apply to LISP or
 Refal
 or Haskell than to Java, and easier to apply to Java than to C++

Why is that?




well...

C++ has pointers, which basically rule out sophisticated  compilation
techniques like partial evaluation and supercompilation.

Java has no fundamental problems like that, it's just a big language, which
means
the actual practice of applying sophisticated compilation techniques to Java
is
a pain.

As an example, roughly 5 times as much work was put in on the Java
supercompiler
than was put in previously on the Refal supercompiler (Refal is a simple AI
language, sorta
the Russian counterpart of LISP), but the Refal supercompiler is further
advanced.

The Java supercompiler works OK now for Java code that is written with the
supercompiler's
currently limitations in mind, but hasn't yet been extended to cope with all
of Java.

Anyone who wants to invest $500K or so in completing the Java supercompiler
let
me know and I'll connect you with the supercompilers guys ;-)

-- Ben

-
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/?member_id=231415user_secret=fabd7936

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


Re: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-26 Thread David Clark
- Original Message - 
From: Richard Loosemore [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Sunday, March 25, 2007 12:43 PM
Subject: Re: Environments and Languages for AGI [WAS Re: [agi] My proposal
for an AGI agenda]


  when someone gets a clue about what they are trying to build, and why.
 
  Are you the only person on this list with a clue?

 As it happens, David, on this occasion I did not particularly have you
 in mind when I made the comments.

The above comment wasn't addressed to anyone in particular but to the list
by default.  Recently I was corrected rebuked by Ben for calling Eugen
arrogant for summarily putting down others on this list.  As it turns out,
he didn't mean to be so arrogant and his next email to the list was one of
the best he has sent to the list in a long time IMO.  I mentioned to Ben in
my email, apologizing for my comment, that I wondered why *very intelligent*
people seem to feel it necessary to leave their manners at the door when
emailing on the internet.

 If you have any criticisms you want to voice, by all means do so, but
 could you do so in a less inflammatory, and more specific way?  I can't
 really follow what you were saying in your text, above.

Your above comment wasn't inflammatory?  There are many areas of AI interest
discussed on this list.  Ben should be given credit for allowing a *very*
large net of acceptable threads, unlike some other lists, I won't mention.
I would like a lot more technical and code fragment like info shared on
this list but what I would like and what I can get are different things.  I
think rooftop8000, in opening the discussion for some kind of AGI
collaboration was just looking for more of that kind of interaction as well.
Even though it might have sounded like it in some emails, I don't think
anyone was contemplating building an AGI without a plan.  If someone was, we
all know it wouldn't have worked, guaranteed.

If relatively new people to this list are turned off from contributing to
this list by blanket putdowns or name calling then everyone loses.

Everyone on this list is quite different.  I think someone with even a
simple AI and some demonstratable code deserves much more credit than people
with big theories and nothing in code that works. (At this very moment that
also includes me!)  Others, I am sure, would disagree but I respect their
opinion.  I believe in getting the big picture right and then refining the
details only through code that works.  Too many times, I have created
details based on other details that just didn't work when coded and so were
worthless.  I have never even created any code for any project without a
computer to help and verify as I go.

I read this list because I think somebody might write something that I could
use or at least trigger my thinking of something I might not have otherwise.
For this reason I read everything *you* write even though your approach is
drastically different than mine.

My challenge to the list over my 15 points was for a language for AGI, not
just any general purpose language. My intentions at least, were to elicit
some constructive comments that might help me in my last few months of it's
development.  I never meant to cause a language flame war or to bore anyone
to death.

-- David Clark


-
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-03-26 Thread Stephen Reed
When I was at Cycorp, we used Allegro for program development and a Lisp-to-C 
translator and runtime of Cycorp's design for production.  When containing 
millions of knowledge store objects, Allegro is less space efficient than the 
Cycorp C runtime.  For example, Allegro uses two fullwords to implement a CONS 
cell, whereas with CDR-coding, a typical list can use just one fullword per 
cell.  Allegro also had the drawback of runtime fees.  At the time of my 
departure in August 2006, Cycorp was developing a Lisp-to-Java translator and 
Java runtime to perhaps replace the C versions.  Even the preliminary Java 
version was faster than Allegro in a 64-bit Linux environment, with image size 
(virtual memory footprint) of approximately two GB.

For my own AI research I am using Java.  Apart from its satisfactory speed, I 
like the NetBeans IDE, and most importantly like all the third-party software 
libraries that I can plug in.  Because my stuff is GPL, there really is a wide 
variety of compatible software.   For example, in the last 9 months I built an 
object store to contain the OpenCyc ontology and then added WordNet, the 
lexicon that I parsed from Wiktionary, and the CMU Pronouncing Dictionary.  All 
of this is to support a robust English dialog system that will depend up a 
reversible construction grammar now under development.   I was able to plug in 
Hibernate and MySQL to host millions of knowledge base propositions.  Once I 
got above 20 million propositions, performance became noticeably slower.  So I 
am unplugging Hibernate and plugging in Oracle Berkeley DB Java Edition (GPL 
compatible) and hope to regain ideal performance by using a sharded (physically 
partitioned) object store.

For deployment I am using J2EE which is scalable from single box (where I'm at 
now) to cluster to fully distributed.

Regarding self-modifying programs, I prefer that the system intelligently 
compose its source code and then compile it.  I already experimented with a 
java classloader that can replace classes in a JVM on the fly.

I'm building the dialog system so that I can teach the system in English how to 
do things and so not worry about the programming smile

-Steve

- Original Message 
From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 10:03:44 AM
Subject: Re: [agi] My proposal for an AGI agenda


Allegro LISP seems to basically fulfill all those requirements also 
(with minor tweaks -- e.g.
Allegro Cache isn't exactly part of the language, but it's tightly 
integrated...).

 ben g


 David Clarke wrote:
 I have 18 points at www.rccconsulting.com/aihal.htm and an explanation for
 each one.  Prove to me that this list of features can all be accommodated
 by
 any existing computer language and I will stop my development right now
 and
 switch.

 

 David, your full list of requirements is completely provided by C# and .NET.
 See below for point by point matching:

 1. Object Oriented
 As a modern OO language C# supports encapsulation, data hiding,
 polymorphism, etc, blah, blah, blah

 2. All Classes, Methods, Properties, Objects can be created and changed
 easily by the program itself.
 .NET provides in depth reflection capabilities that provide this capability.
 You can also construct code at run time using various approaches from high
 level code to MSIL.  

 3. Efficiently run many programs at the same time. 
 There is in depth support for multi tasking at the process and thread level.
 This includes multithreaded debugging. This is in part dependent on the OS
 but that’s not an issue with Windows or Linux.

 4. Fully extensible. 
 .NET is fully extensible through the addition of class libraries.

 5. Built-in IDE (Interactive Development Environment) that allows programs
 to be running concurrently with program edit, compile and run. 
 A number of IDEs are available. The Microsoft IDE supports real time update
 of variables during debug sessions. As well as the language being fully
 extensible the IDE is also fully extensible.

 6. As simple as possible. 
 This is of course an unknown. That said C# has been designed to be as clean
 a language as possible. It is type safe, has very good garbage collection,
 and a minimal syntax that is very familiar to C/C++ and Java programmers.

 7. Quick programming turnaround time. 
 If you mean compile time then C# compiles in a JIT environment so is very
 quick, especially incremental builds.

 8. Fast where most of the processing is done. 
 C# is almost as efficient as C++. Where speed critical components are needed
 you can drop into unmanaged mode for high performance.

 9. Simple hierarchy of Classes and of Objects. 
 What is a simple hierarchy? If you mean the library classes then it is as
 simple as you want to make it. There is a rich set of class libraries that
 you can utilise but you don't have to.

 10. Simple Class inheritance. 
 C# uses single inheritance rather than multiple inheritance

Re: [agi] My proposal for an AGI agenda

2007-03-25 Thread Russell Wallace

On 3/25/07, YKY (Yan King Yin) [EMAIL PROTECTED] wrote:


Some form of unifying framework, whatever that is, is of course
desirable.  But the problem is how to get people to *agree* to work within
your framework (or any particular one).



Consider the problem of getting everyone to agree to use HTML; how was that
solved? Very simply: by publishing the first Web browser.

A similar solution is going to be required here.

-
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-03-25 Thread Chuck Esterbrook

On 3/24/07, YKY (Yan King Yin) [EMAIL PROTECTED] wrote:
 On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:

...

  I think Jey's comment is reasonable.  It seems impractical to start a
  collaborative AI project without having an AGI design which specifies
what
  modules are there and how they communicate.

 I hoped someone on the list was smart enough to find one

I have actually proposed such an architecture, in outline.  I'm sure Ben G
and Peter Voss also have their respective architectures.  One question is
whether we can synthesize these different theories.  If not, we'd end
up with a number of isolated groups that do not collaborate in any
meaningful / significant way.


That might be bad from your perspective, but I think it could be good
from a global perspective. For one thing, each group will have its own
approach and one will cross the finish line earlier than the others.
Since you can't objectively predict which approach that will be, the
diversity is valuable. Also, the groups may learn from each other or
improve their performance in response to the accomplishment of other
groups.

The fragmentation of ordinary software development can be frustrating.
There is Java vs. .NET vs. C++ vs. open source (which isn't really
entirely separate from the others). But I'm positive none of these
would have progressed as far without the competition. Hell, Java 5.0
was *all* about responding to .NET which in turn was very much about
responding to the Java phenomena. And we reap the rewards: there is
more benefit than harm.

You have a lot of passion for forming a group. I think you shouldn't
worry so much about recruiting Novamente and AdaptiveAI and just form
your own. Your collaborators are going to be people like rooftop who
aren't already in a close knit group. They are not going to be folks
who have already devised a well thought out approach/design and are
well into coding. Forget it.

And in a sense, Ben is practically a collaborator with everybody due
to his willingness to share so many thoughts and insights. (And for
that, we thank you.)

Peter... I wish you weren't so secretive...  ;-)
Although there is some nice starter material here:
http://adaptiveai.com/research/index.htm


Some form of unifying framework, whatever that is, is of course
desirable.  But the problem is how to get people to *agree* to work within
your framework (or any particular one).  In fact, a whole bunch of people on
this list may claim to have some unifying framework for everyone else to
work in.


Let the competition between groups for recruitment and demonstrable
results begin!


Simply voting on individual features cannot work because all the features of
an AGI are inter-related; they have to work together synergistically.


A committee approach to architecture has historically failed
repeatedly, especially where breaking new ground is concerned. Someone
needs to be the leader/visionary. Usually the one that forms the
group...


I'd make a bronze statue of anyone who can solve this problem!!


Can I get a million dollars instead?  :-)

-Chuck

-
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-03-25 Thread A. T. Murray
Ben Goertzel wrote:

 My PhD is in math and I used to be a math prof, but I have 
 found no opportunity yet to use really advanced math in AI

My B.A. is in Latin and Greek and I used to be a teacher of 
Latin and German. In Mentifex AI, I use very little math and 
tons of linguistics. A brief progress report follows now. 

Earlier last week I finally got some true AI thinking with 
http://mind.sourceforge.net/Mind.html in MSIE JavaScript.

By true AI thinking I mean that the Mind.html AI was able 
to respond correctly to simple knowledge-base queries. 
Prior to my work of 20 March 2007, the AI Mind would always 
veer off into spurious associations of spewing gibberish. 

Now for the first time I fully understand the broad outlines 
of the function of my own AI software, whereas previously 
the AI would malfunction but I did not know what was wrong. 

To tie this progress report in with recent discussion on 
the AGI mail list, I would like to report that the AI Mind 
may seem to do what a database could do, but uses arrays 
of associative memory instead of a database, and uses 
spreading activation (q.v.) to propagate spikes of 
excitation from concept to concept and from a linguistic 
superstructure down into the building blocks of thought -- 
nouns as a class; verbs as a class; other parts of speech. 

Mentifex AI is neuroscience and not evolution. The AI Mind 
has always been based on what I could learn over years of 
independent scholarship in the study of neuroscience. See 
http://mind.sourceforge.net/theory5.html for my AI theory.

It is time for evolution to take over from neuroscience. 
Just before composing this post, I checked the user logs 
of the last one hundred visits to my AI project and saw 
the following instances of Netizens downloading the AI:

C:/Documents and Settings/cazub/Desktop/Mind.html 
C:/Documents and Settings/Lucian_Twilight/My 
Documents/Ai_source/Mind.html 
C:/WINDOWS/Desktop/Abhi's Fun Stuff!!/NLP/Mind.html 

Prior to last week Mentifex AI sported a large user base 
of _malfunctioning_ AI. From now on, there is a basic, 
solid functionality which I may hope only to improve 
and not to worsen. Even if my own future coding efforts 
take a wrong direction and render the AI Mind inferior, 
the current diaspora of working code may take root in 
the environment of other AI programmers who surpass me. 

I feel psychological pressure to code Mind.Forth because 
http://aimind-i.com is where Frank J. Russo has devoted 
a new Web domain to his re-implementation of my Forth AI. 

Before I resume Mind.Forth coding (critiqued by the way in 
http://doi.acm.org/10.1145/307824.307853 ACM SIGPLAN 1998; and
http://doi.acm.org/10.1145/1052883.1052885 ACM SIGPLAN 2004), 
Mind.html needs further tweaking and fine-tuning, so that 
the AI will not only think a single thought in response 
to user input but will exhaustively think through all 
the thoughts lodged in its associative knowledge base.
Then in Mind.Forth I will aim for machine reasoning. 

Respectfully submitted, 

A.T. Murray
-- 
http://www.technorati.com/wtf/mentifex 

-
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-03-25 Thread Bob Mottram

I've seen heated arguments over computer languages on AI-related forums many
times before, so I've no intention of pimping any particular language
specifically for AGI development.  Actually I think the state of the art in
software creation at the moment is still rather crummy, and not much better
than laborious text editing.  The pace of change in software tools is
agonisingly slow and the opinions of programmers soon become stale and
oscified.  When future historians look back at the progress of computer
technology they'll laugh about how crude the tools we use today are.

-
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-03-25 Thread rooftop8000

--- YKY (Yan King Yin) [EMAIL PROTECTED] wrote:

 On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:
  The richer your set of algorithms and representations, the more likely
  the correct ones will emerge/pop out as you put it. I don't really like
  the idea of hoping for extra functionality to emerge.
 
 This particular version of emergence does not seem to work because:
 1. You need a massive number of participants ( 1,000, say) which we
 definitely don't have on this list or on the net.
 2. You cannot simply throw a bunch of algorithms and representations
 together and make an AGI.  There has got to be some common communication
 protocols.  *If* you are willing to enforce communication protocols, then
 why not instead enforce a common knowledge representation scheme, which is
 more direct?

If it's a protocol that can hold numeric data and logic data etc, i'm all for 
it.
Where can i read about it? 

And of course throwing things together doesn't work. You need hard work
to provide meta-information on the parts. (How to use them, when they work,
how to detect failures, how to communicate with them...) This kind of
thing is usually still done by people... but i think it is a crucial 
step to getting a worthwhile system.

 
 Trying to establish *any* concensus is hard, but it seems to be
 a *necessary* step.
 
  Because i think we need more than 1 knowledge base in the system,
  and more than 1 type of communication. Why should neuralnet-Bayesian talk
  use the same representation as communication between logic modules.
 
  But maybe making a framework that is general enough for all those
  things is impossible?
 
 Well, mine and Ben's approaches are similar:  we try to *combine* logic,
 probability, and graphical models / neural networks.  It's not really as
 hard as it sounds.  What do you think about such an approach?  I'm also open
 to other alternatives, if they are simpler.

Sounds good to me. Where can i see the source, and how easily does it 
allow existing algorithms to be added in some way?

 
 But it seems that it is impossible to simply let a bunch of AGIers
 collaborate by everyone doing their own thing without any kind of imposed
 structure / organization.  Or am I missing some very ingenious ideas?

One way is some architecture like push singh proposed, where
reflective layers can decide to activate different representations and 
algorithms (the reflective layers are a collaboration too, of course)

 
   I think Jey's comment is reasonable.  It seems impractical to start a
   collaborative AI project without having an AGI design which specifies
 what
   modules are there and how they communicate.
 
  I hoped someone on the list was smart enough to find one
 
 I have actually proposed such an architecture, in outline.  

Can i find this outline somewhere? 

I'm sure Ben G
 and Peter Voss also have their respective architectures.  One question is
 whether we can synthesize these different theories.  If not, we'd end
 up with a number of isolated groups that do not collaborate in any
 meaningful / significant way.
 
  my vote goes to any framework that is broad enough
  to make
  -rule based/ logic parts
  -parts with number-based neural networks etc
  -...
  and allows different parts to be developed independently and
  added easily
 
 A *probabilistic* logic-based system is very much numerical.  Me, Pei Wang,
 and Ben all advocate the use of some form of numerical logic for commonsense
 reasoning.  This type of systems cannot be easily classified into logic or
 neural.
 
 Some form of unifying framework, whatever that is, is of course
 desirable.  But the problem is how to get people to *agree* to work within
 your framework (or any particular one).  In fact, a whole bunch of people on
 this list may claim to have some unifying framework for everyone else to
 work in.
I'd love to see one. (preferably one that's not commercial and can be used)
 
 Simply voting on individual features cannot work because all the features of
 an AGI are inter-related; they have to work together synergistically.
 
 I'd make a bronze statue of anyone who can solve this problem!!
 
 YKY
 
 -
 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
 




 

Need Mail bonding?
Go to the Yahoo! Mail QA for great tips from Yahoo! Answers users.
http://answers.yahoo.com/dir/?link=listsid=396546091

-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-25 Thread rooftop8000

--- Chuck Esterbrook [EMAIL PROTECTED] wrote:

 On 3/24/07, rooftop8000 [EMAIL PROTECTED] wrote:
   one chooses a
   decent option and gets on with it.
  
   -- Ben
 
  That's exactly the problem.. everyone just builds their
  own ideas and doesn't consider how their ideas and code could
  (later) be used by other people
 
 If Novamente reaches human like, general intelligence, you'll use it
 by saying things like, Novamente, I'm out of beer. and he'll know to
 run out to the store to get some!
 
 
 But seriously, some companies may intend that their projects get used
 more macroscopically than as a marketplace for AGI parts. Adding that
 extra dimension to a project has extra cost and it's not clear what
 the pay off will be. Just the fact that you make certain choices about
 AGI will probably mean that 80% of us say I won't use that because
 you didn't blah blah blah. Examples of blah blah blah include bake
 in high level math, use one communication protocol, use multiple
 communication protocols, use .NET, did not use .NET, use Java, did not
 use Java, lojbanize everything, etc.
 
 AGI companies tend to have a strong(er) idea of what they are trying
 to accomplish. If you want an open AGI architecture for community
 collaboration on the internals of the AGI, then it is more likely to
 come in the form of an open source project pushed mostly by
 individuals.
 
 Furthermore, I have my doubts that such an approach will lead to AGI.
 I think a close knit, full-time team with a vision, such as Novamente
 or AdaptiveAI, has a much better chance. I offer no proof--that's just
 my impression.
 

i think the open route is the only way you're gonna get enough
different ideas and representations in a system. 

any of these other systems will drive as far as possible with their 
assumptions and ideas (logic for cyc, i don't really know the details
of the ones you mention TBH), without thinking about how different ideas
could be incorporated

but i agree that a full-time team with a vision is much better..
and there isn't much interest in some open AGI architecture apparently

the general feeling seems to be:
-dedicated team is better and it is too hard as a collaboration of
random people
-clear set goals and approach/framework from the start is better
-it isn't clear what an open AGI architecture should be, and
getting people together in an undefined project isn't gonna happen
-just throwing stuff together isn't gonna work 

i hate to admit it, but i guess you guys are right




 -Chuck
 
 -
 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
 




 

Need Mail bonding?
Go to the Yahoo! Mail QA for great tips from Yahoo! Answers users.
http://answers.yahoo.com/dir/?link=listsid=396546091

-
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-03-25 Thread rooftop8000

--- Chuck Esterbrook [EMAIL PROTECTED] wrote:

  On 3/24/07, YKY (Yan King Yin) [EMAIL PROTECTED] wrote:
   On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:
 ...
I think Jey's comment is reasonable.  It seems impractical to start a
collaborative AI project without having an AGI design which specifies
  what
modules are there and how they communicate.
  
   I hoped someone on the list was smart enough to find one
 
  I have actually proposed such an architecture, in outline.  I'm sure Ben G
  and Peter Voss also have their respective architectures.  One question is
  whether we can synthesize these different theories.  If not, we'd end
  up with a number of isolated groups that do not collaborate in any
  meaningful / significant way.
 
 That might be bad from your perspective, but I think it could be good
 from a global perspective. For one thing, each group will have its own
 approach and one will cross the finish line earlier than the others.
 Since you can't objectively predict which approach that will be, the
 diversity is valuable. Also, the groups may learn from each other or
 improve their performance in response to the accomplishment of other
 groups.
 
 The fragmentation of ordinary software development can be frustrating.
 There is Java vs. .NET vs. C++ vs. open source (which isn't really
 entirely separate from the others). But I'm positive none of these
 would have progressed as far without the competition. Hell, Java 5.0
 was *all* about responding to .NET which in turn was very much about
 responding to the Java phenomena. And we reap the rewards: there is
 more benefit than harm.

Too bad java and c++ are pretty horrible languages and they kept
better languages from being used. 




 

Need Mail bonding?
Go to the Yahoo! Mail QA for great tips from Yahoo! Answers users.
http://answers.yahoo.com/dir/?link=listsid=396546091

-
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-03-25 Thread Peter Voss
Chuck is exactly right,

A successful AGI project (or anything else large  difficult) depends on
someone's vision and leadership: technical (design), motivational
(psychological and goal-defining), and execution (engineering and
management).

Peter

(Chuck, as for the million dollars: join our project...)


-Original Message-
From: Chuck Esterbrook [mailto:[EMAIL PROTECTED] 
Sent: Sunday, March 25, 2007 12:37 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda

 On 3/24/07, YKY (Yan King Yin) [EMAIL PROTECTED] wrote:
  On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:
...
 Simply voting on individual features cannot work because all the features
 of an AGI are inter-related; they have to work together synergistically.

A committee approach to architecture has historically failed
repeatedly, especially where breaking new ground is concerned. Someone
needs to be the leader/visionary. Usually the one that forms the
group...

 I'd make a bronze statue of anyone who can solve this problem!!

Can I get a million dollars instead?  :-)

-Chuck


-
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-03-25 Thread Chuck Esterbrook

On 3/25/07, Bob Mottram [EMAIL PROTECTED] wrote:

I've seen heated arguments over computer languages on AI-related forums many
times before, so I've no intention of pimping any particular language
specifically for AGI development.  Actually I think the state of the art in
software creation at the moment is still rather crummy, and not much better
than laborious text editing.  The pace of change in software tools is
agonisingly slow and the opinions of programmers soon become stale and
oscified.  When future historians look back at the progress of computer
technology they'll laugh about how crude the tools we use today are.


No disagreement here. But we have to work with what we have in order
to build the next generation. Back to work!

Btw it would be interesting to see what period of time will considered
the dark ages of medicine 1,000 years from now. I'm guessing through
2,100 AD at least.

Student of 3,000 A.D.: You mean they couldn't cure cancer, treat
simple viruses or regrow limbs? Wow! That must have sucked!

-Chuck

-
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-03-25 Thread Chuck Esterbrook

On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:


--- Chuck Esterbrook [EMAIL PROTECTED] wrote:

  On 3/24/07, YKY (Yan King Yin) [EMAIL PROTECTED] wrote:
   On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:
 ...
I think Jey's comment is reasonable.  It seems impractical to start a
collaborative AI project without having an AGI design which specifies
  what
modules are there and how they communicate.
  
   I hoped someone on the list was smart enough to find one
 
  I have actually proposed such an architecture, in outline.  I'm sure Ben G
  and Peter Voss also have their respective architectures.  One question is
  whether we can synthesize these different theories.  If not, we'd end
  up with a number of isolated groups that do not collaborate in any
  meaningful / significant way.

 That might be bad from your perspective, but I think it could be good
 from a global perspective. For one thing, each group will have its own
 approach and one will cross the finish line earlier than the others.
 Since you can't objectively predict which approach that will be, the
 diversity is valuable. Also, the groups may learn from each other or
 improve their performance in response to the accomplishment of other
 groups.

 The fragmentation of ordinary software development can be frustrating.
 There is Java vs. .NET vs. C++ vs. open source (which isn't really
 entirely separate from the others). But I'm positive none of these
 would have progressed as far without the competition. Hell, Java 5.0
 was *all* about responding to .NET which in turn was very much about
 responding to the Java phenomena. And we reap the rewards: there is
 more benefit than harm.

Too bad java and c++ are pretty horrible languages and they kept
better languages from being used.


Well, I didn't say it was a perfect system. :-)

Still, even the top 3 put together (Java, C, C++) don't break 50%:
http://www.tiobe.com/tpci.htm

And you can see that Python, Ruby and D are on the rise.

-Chuck

-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-25 Thread David Clark
- Original Message - 
From: Richard Loosemore [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 1:46 PM
Subject: Environments and Languages for AGI [WAS Re: [agi] My proposal for
an AGI agenda]


 As for all the other talk on this list, recently, about programming
 languages and the need for math, etc., I find myself amused by the
 irrelevance of most of it:  when someone gets a clue about what they are
 trying to build, and why, the question of what language (or environment)
 they need to use will answer itself.


I find fluffy concepts and language that never gets put into code quite
*irrelevant*.  Ben has an internal functinoal language that seems to be of
interest to many.  Leitl has ideas and information about parallel and low
level evolutionary systems.  I haven't seen too many posts that say that
your ideas are *irrelavant* even if most people aren't working on systems
that interest you!

Ben seems to have created an AGI that contains both AGI code, system tools
(memory management etc) and a higher level language.  My language was
designed to be a large C++ (like Ben's) with a built in language (like his)
that can facilitate my veiw of creating an AGI.  The difference is that he
codes most of his AGI in C++ where I want to code mine in the internal
language I have created.  My intent wasn't be debate general purpose
computer languages but to get feedback on my language from people who are
planning to work on AGI.  I have been working on this project for over 2
years and I only brought it up now in response to others who wanted to know
what languages would be good to work on AI.

I don't think an AGI design can just pop out of thin air any more than I
think that the tools used to create an AGI are irrelavant.

when someone gets a clue about what they are trying to build, and why.

Are you the only person on this list with a clue?

-- David Clark


-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-25 Thread Richard Loosemore

David Clark wrote:
- Original Message - 
From: Richard Loosemore [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 1:46 PM
Subject: Environments and Languages for AGI [WAS Re: [agi] My proposal for
an AGI agenda]



As for all the other talk on this list, recently, about programming
languages and the need for math, etc., I find myself amused by the
irrelevance of most of it:  when someone gets a clue about what they are
trying to build, and why, the question of what language (or environment)
they need to use will answer itself.



I find fluffy concepts and language that never gets put into code quite
*irrelevant*.  Ben has an internal functinoal language that seems to be of
interest to many.  Leitl has ideas and information about parallel and low
level evolutionary systems.  I haven't seen too many posts that say that
your ideas are *irrelavant* even if most people aren't working on systems
that interest you!

Ben seems to have created an AGI that contains both AGI code, system tools
(memory management etc) and a higher level language.  My language was
designed to be a large C++ (like Ben's) with a built in language (like his)
that can facilitate my veiw of creating an AGI.  The difference is that he
codes most of his AGI in C++ where I want to code mine in the internal
language I have created.  My intent wasn't be debate general purpose
computer languages but to get feedback on my language from people who are
planning to work on AGI.  I have been working on this project for over 2
years and I only brought it up now in response to others who wanted to know
what languages would be good to work on AI.

I don't think an AGI design can just pop out of thin air any more than I
think that the tools used to create an AGI are irrelavant.

when someone gets a clue about what they are trying to build, and why.

Are you the only person on this list with a clue?


As it happens, David, on this occasion I did not particularly have you 
in mind when I made the comments.


(The comments I made, btw, apparently summarized a sentiment that 
several people had either already expressed, or that they were in 
agreement with).


If you have any criticisms you want to voice, by all means do so, but 
could you do so in a less inflammatory, and more specific way?  I can't 
really follow what you were saying in your text, above.



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-03-25 Thread rooftop8000

--- Chuck Esterbrook [EMAIL PROTECTED] wrote:

 On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:
 
  --- Chuck Esterbrook [EMAIL PROTECTED] wrote:
 
On 3/24/07, YKY (Yan King Yin) [EMAIL PROTECTED] wrote:
 On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:
   ...
  I think Jey's comment is reasonable.  It seems impractical to start 
  a
  collaborative AI project without having an AGI design which 
  specifies
what
  modules are there and how they communicate.

 I hoped someone on the list was smart enough to find one
   
I have actually proposed such an architecture, in outline.  I'm sure 
Ben G
and Peter Voss also have their respective architectures.  One question 
is
whether we can synthesize these different theories.  If not, we'd end
up with a number of isolated groups that do not collaborate in any
meaningful / significant way.
  
   That might be bad from your perspective, but I think it could be good
   from a global perspective. For one thing, each group will have its own
   approach and one will cross the finish line earlier than the others.
   Since you can't objectively predict which approach that will be, the
   diversity is valuable. Also, the groups may learn from each other or
   improve their performance in response to the accomplishment of other
   groups.
  
   The fragmentation of ordinary software development can be frustrating.
   There is Java vs. .NET vs. C++ vs. open source (which isn't really
   entirely separate from the others). But I'm positive none of these
   would have progressed as far without the competition. Hell, Java 5.0
   was *all* about responding to .NET which in turn was very much about
   responding to the Java phenomena. And we reap the rewards: there is
   more benefit than harm.
 
  Too bad java and c++ are pretty horrible languages and they kept
  better languages from being used.
 
 Well, I didn't say it was a perfect system. :-)
 
 Still, even the top 3 put together (Java, C, C++) don't break 50%:
 http://www.tiobe.com/tpci.htm
 
 And you can see that Python, Ruby and D are on the rise.
 
 -Chuck
 
 -
 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
 

I think Ruby is related to LISP and smalltalk.. they have some nice 
properties.. it's very easy to make code that writes and performs code
at run-time. Really flexible compared to 
java reflection .. you also don't have to worry about compilation etc

Although from that site it seems obvious to use java if you want 
a big collaboration



 

Be a PS3 game guru.
Get your game face on with the latest PS3 news and previews at Yahoo! Games.
http://videogames.yahoo.com/platform?platform=120121

-
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-03-24 Thread John Rose
 PowerBuilder and Visual FoxPro.  Everyone is entitled to their 
 opinion but if Math wasn't required at all in all my career, I fail 
 to see how it is necessary for the creation on an AGI or 

Building an AGI without math, I wonder what the design would look like.

 different creature.  How much Math do you think is 
 used by the brains of most human beings?  

Lots.  What math is not in there?  Where did all our math come from?  That
one string of zeros and ones that your whole computer language boils down
into and can be described with, how many bits is it and how many bits can
one brain be described with, and what would the mapping be between your
language's string and a brain's string.  If you could simplify that mapping
by incorporating some of it into your language's string, there could be some
pretty useful features in there.

 Would you define total introspection and many built-in tools to create
 efficient programs using programs to be same old things rehashed?  

Yes.

For a language to succeed nowadays, there are new ones all the time, you
need something to get people using it.  If you could imagine a really,
really super advanced language created by super-intelligent giant brained
aliens (seriously) or created by their alien supercomputer, what would that
language be like?  Would it be a mishmash of lowest common denominators of
current earth computer languages permuted into something different and
optimized a little more?  What would it really have.  It would have features
that are breathtaking.  Would it have for-loops where the syntax is changed
a little?  Or OOP enhanced just a bit?  No.  You would see stuff that would
make your eyes twitch.  This may sound like a crazy way of looking at it and
perhaps for some not really useful but what reference points do we have for
new languages that would be useful?  I'm sure your language is more than
just a rehash and I'm not trying to put it down I'm just trying to generate
some ideas because realistically you could add one unique feature that could
potentially propel it into stardom.

John

- Original Message - 
From: John Rose [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Thursday, March 22, 2007 10:26 PM
Subject: RE: [agi] My proposal for an AGI agenda


 Enhancements to existing computer languages or new computer languages that
 could possibly grease the wheels for AGI development would be aligning the
 language more closely to mathematics.  Many of the computer languages are
 the same old things rehashed in different though new and evolutionarily
 better ways but nothing I've seen too revolutionary.  Same old looping
 structures, classes, OOP, etc.. nothing new.  But if someone could add
some
 handy math structures into the language - group/ring theory, category
 theory, advanced graph structures have this stuff built right in not
 utilized through add-ons or libraries or coded in house.  These math
 structures should be standardized and made part of the language now.
 Believe me, non mathematician programmers would learn these tools rapidly
 and use them in new and exciting ways.  Now many are going in all sorts of
 wild goose chase directions due to lack of standard mathematical guidance
 built in.  Growing a crop of potential AGI developers who don't need no
math
 PHd's would happen if this came about.  Granted good C++ coders can
 accomplish just about anything with the language, there is a complexity
 overhead tradeoff that needs to be maintained in doing so (in exchange for
 speed usually in C++).  But as many here understand, having good patterns,
 algorithms and particularly math systems and structures, speed issues can
be
 bridged and many times eliminated by designing and solving things through
 math verses CPU cycles.  Now naturally AGI systems can and do have
 handcrafted or other incorporated languages built in, these too many times
 suffer from the same limitations.  Though I imagine certain AGI's have
some
 pretty advanced languages cooked up inside.  And perhaps these are the
ones
 that grapple more efficiently with machine and network resource
 limitations

 John


-
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

-
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-03-24 Thread Russell Wallace

On 3/24/07, John Rose [EMAIL PROTECTED] wrote:


If you could imagine a really,
really super advanced language created by super-intelligent giant brained
aliens (seriously) or created by their alien supercomputer, what would
that
language be like?  Would it be a mishmash of lowest common denominators of
current earth computer languages permuted into something different and
optimized a little more?  What would it really have.  It would have
features
that are breathtaking.  Would it have for-loops where the syntax is
changed
a little?  Or OOP enhanced just a bit?  No.  You would see stuff that
would
make your eyes twitch.  This may sound like a crazy way of looking at it
and
perhaps for some not really useful but what reference points do we have
for
new languages that would be useful?  I'm sure your language is more than
just a rehash and I'm not trying to put it down I'm just trying to
generate
some ideas because realistically you could add one unique feature that
could
potentially propel it into stardom.



If we're talking language for AGI _content_ (as opposed to framework for
which Ben Goertzel has made a fair case for even C++), then more like
removal of features. Because for AGI content, it's not what you can do in
principle, it's what you can be _casual_ with.

In C/C++ you can be casual with machine-word numbers. In Java you can be
casual with strings. In Python you can be casual with lists.

The requirement for an AGI content language is that you can be casual with
procedural knowledge in general.

And the reason you can't do that with existing languages - at least the best
of them, like Lisp, Prolog, Haskell - is not so much that they have too few
features, more that they have too many.

-
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-03-24 Thread Sampo Etelavuori

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


 - Original Message -

*From:* Shane Legg [EMAIL PROTECTED]
*To:* agi@v2.listbox.com
*Sent:* Friday, March 23, 2007 10:34 AM
*Subject:* Re: [agi] My proposal for an AGI agenda



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

 I have a Math minor from University but in 32 years of computer work, I
 haven't used more than grade 12 Math in any computer project yet.

...


 I created a bond comparison program for a major wealth investment firm
 that
 used a pretty fancy formula at it's core but I just typed it in.  I
 didn't
 have to create it, prove it or even understand exactly why it was any
 good.


IMO, creating an AGI isn't really a programming problem.  The hard part is
knowing exactly what to program.  The same was probably true of your bond
program: The really hard part was originally coming up with that 'fancy
formula'
which you just had to type in.


Both the code and algorythmn must be good for any computer system to work
and neither is easy.  The bond formula was published for many years but this
particular company certainly didn't have a copy of it inside a program they
could use.  The formula was 1 line of at least 4K lines of code.  The
program wasn't so trivial either :)  The formula didn't do they any good at
all until my program made it useful to them.  The first year, the program
netted the company's clients over 10M in extra profits.



Thus far math has proven very useful in many areas of artificial
intelligence,
just pick up any book on machine learning such as Bishop's.  Whether it
will
also be of large use for AGI... only time will tell.

Shane


Is the research on AI full of Math because there are many Math professors
that publish in the field or is the problem really Math related?  Many PhDs
in computer science are Math oriented exactly because the professors that
deem their work worth a PhD are either Mathematicians or their sponsoring
professor was.



Well, do you agree that making predictions is one central aspect of
intelligence? The brain does it all the time to the best of my knowledge.
And I would say studying how to make better predictions can definitely
benefit from mathematical analysis. Though of course it is also possible to
evolve predictors with algorithms and you don't necessarily require much
math to design those. It just might take ages with limited resources
to evolve any non-trivial and good predictors (ok, I'm trying it anyway -
recurrent nets rule!).



I have read many books on AI and I had a Math professor as a business
partner in my computer work for 10 years.  I would challenge anyone to find
a non Math oriented major computer program that was designed and implemented
by a formal Mathematician.  I can give you many examples where they weren't.



Of course they tend to outsorce such tedious tasks to computer scientists.

-
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-03-24 Thread rooftop8000

--- David Clark [EMAIL PROTECTED] wrote:

 - Original Message - 
 From: rooftop8000 [EMAIL PROTECTED]
 To: agi@v2.listbox.com
 Sent: Friday, March 23, 2007 1:48 PM
 Subject: Re: [agi] My proposal for an AGI agenda
 
 
  Suppose there was an AGI framework that everyone could add
  their ideas to..   What properties should it have? I listed
  some points below. What would it take for
  you to use the framework? You can add points if you like.
 
 
  1. collaboration. is it possible to focus all attention/ work
  in one big project? will it be too complex and unmanageable?
 
 I think that specific parts can be designated to multiple developers in a
 coherent manner without requiring full time effort by everyone.  An adhoc or
 anything goes approach might be interesting but without direction it would
 never get anywhere.

-so it will need to have different parts that can be developed (and run?) 
independently.
-won't anything goes direct itself towards things that work? (ie. people 
building things 
on top of the parts that already give the best results). 

-what other kind of direction could you put in the system?

 
  2. supported computer languages? many or one?
 
 Multi language design won't work IMO.  No one could just pop a whole set of
 routines into someone else's computer and watch the result.  Different
 language modules couldn't just fit together as needed.  Larger existing AGI
 projects could communicate in the future by using sockets like Novamente,
 A2I2 or others but this communication with proprietary systems (or other
 language designs) wouldn't be the same as people working in the same
 environment.

It might give a big overhead, but won't it also make the system
more fault-tolerant ? All the different parts can be designed by different 
people ...
Do Novamente and A2I2 already do this? (I'm not familiar with them)
Maybe there are better ways than socket communication?
Are virtual machines needed to run all the languages/parts in a safe way?

This is probably the biggest problem. How to divide it so people can design
their own parts, in their own preferred language? And how to run them/ have
easy communication between them. 
I'm sure a lot of research has been done into this?

 
  3. organization?
  -try to find a small set of algorithms (seed AI)?
  -allow everything that is remotely useful?
 
 If you think you can breed an intelligence from a small set of algorithms
 then why not just make it and see if you can? (evolutionary algorithms
 wouldn't have to be excluded from the research)  Limiting what people could
 work on isn't a good idea but some lines of research have been tried and
 found wanting.  People could be more useful by working in areas that most
 others in the group believed to be most promising.  Unless someone is
 getting paid, however, it is difficult to force them to NOT work in an area
 they have interest in.  Not all code would have to be included in the AGI
 design just because it was made.
 
  4. what is the easiest way for people to contribute?
  how could existing algorithms be added easily?
  -neural networks
  -logic
  -existing knowledge bases
 
 I don't think the number of algorithms matters as much as getting some
 promising results quickly.  Even some small promising results!

what kind of results? I think making existing ones
work in a framework would be a really good result by itself. (If other
people can easily build on it and expand it in some way)

 
  5. what kind of problems should be the focus first?
   -visual/real world robotics?
   -abstract problems?
 
 Is a blind person still intelligent?  Can someone still be intelligent if
 they can't solve abstract problems?  The better question is: can a person
 teach someone anything that doesn't understand your language?  I think to
 build models that combine language/context and information would be a good
 place to start.
 
  6. self-modification?
  -don't waste time on it, it will never give good results?
  -all the parts should be able to be modified easily?
 
 If no self-modification then you have to build all the intelligence into the
 data or people have to program the entire AGI by hand.  Does either of these
 consequences appeal to you?  If the parts aren't easily modified and you
 don't know exactly what might work, then the project doesn't have much
 chance.

maybe the framework should  focus on easily modifiable by humans, not
the system itself. (So people can design their own self-modifiable parts, but it
wouldn't be required)

 
  7.organization in modules?
  -what is the best granularity?
  -how to generalize from them (in stead
  of just getting the sum of all the algorithms)?
 
 I suggest that models produce a set of coded patterns.  These patterns could
 be accessed to get lists of models that produce similar patterns in other
 domains.  Testing could be done using algorithms from the initial domain to
 help solve the problem in the new domain.  I think generalization should
 occur

Re: [agi] My proposal for an AGI agenda

2007-03-24 Thread Shane Legg

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



Both the code and algorythmn must be good for any computer system to work
and neither is easy.  The bond formula was published for many years but this
particular company certainly didn't have a copy of it inside a program they
could use.  The formula was 1 line of at least 4K lines of code.  The
program wasn't so trivial either :)



The reason AGI doesn't exist yet is not because there aren't enough skilled
programmers in the world.  (Or that these people are using the wrong
operating
system or programming language etc... to address the rest of the discussion
on this thread!)  The problem is that people aren't exactly clear about what
it is
that has to be programmed.  Time and time again in the field people have
thought
that they knew what had to be done, and yet when they finally got around to
coding
it the results weren't what they had hoped for.




Is the research on AI full of Math because there are many Math professors
that publish in the field or is the problem really Math related?  Many PhDs
in computer science are Math oriented exactly because the professors that
deem their work worth a PhD are either Mathematicians or their sponsoring
professor was.



I don't know of any math profs who publish in artificial intelligence,
though no doubt
there are a few that do.  No, thinking about it now I can think of a few.
Even if you
look at the work of my PhD supervisor Marcus Hutter, he's not a math prof,
he's
actually a physics PhD.  His work might look very mathematical to a computer
scientist, but he doesn't actually use much beyond about 4th year university
level
mathematics and statistics in his book.  Indeed he likes to joke about
mathematicians
and how they are overly formal and concerned about details like whether he
has
properly deal with certain special cases on sets of measure 0 :-)

So yeah, the math that you see in the field is almost always coming from
people
who are mathematically inclined, but aren't math profs.  I should also note
that the
number of pure theory people in AI is very small.  For example, I went to
the ALT
conference last year to present some work and there were only 40 people.
This is
the second biggest AI theory conference in the world (after COLT).  Other
areas like
genetic algorithms attract thousands.

Shane

-
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-03-24 Thread Ben Goertzel




If we're talking language for AGI _content_ (as opposed to framework 
for which Ben Goertzel has made a fair case for even C++), then more 
like removal of features. Because for AGI content, it's not what you 
can do in principle, it's what you can be _casual_ with.


Correct, this is an important distinction.

One thing that's nice about LISP --- at first glance -- is that it looks 
like it can be a language for both AGI content and AGI framework.


But I believe this is somewhat deceptive.  In principle LISP could be OK 
for AGI framework (though I'm not convinced it's there yet ... though 
Allegro LISP arguably comes close...), but I don't think it's right for 
AGI content. 

On the other hand, you could build an AGI-content language by 
**extending** LISP ... whereas if your framework language is C++ you 
need to make a content language totally separately.


In fact our content language, Combo, looks a bit like LISP, but with 
other features like

-- explicit higher-order typing [not yet implemented, but needed soon]
-- a particular kind of uncertain truth values
-- probabilistic tools for dealing with statements based on their truth 
values


Currently this content language is used almost only for internal 
AI-generated programs, and has an awkward textual syntax, but we intend 
to improve the syntax so that in some cases we can supply the system 
with human-programmed modules to use as a starting-point for learning.


Anyway, the plan is that initial NM self-modification will take the form 
of NM modifying its **cognitive control scripts** that are written in 
the internal Combo language ... modification of the underlying C++ code 
is going to be a later-phase thing.  [This also enforces some basic, 
non-absolute AGI safety in that the C++ layer provides certain 
constraints.]


Ben

-
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-03-24 Thread Ben Goertzel



Is the research on AI full of Math because there are many Math
professors that publish in the field or is the problem really Math
related?  Many PhDs in computer science are Math oriented exactly
because the professors that deem their work worth a PhD are either
Mathematicians or their sponsoring professor was.


I don't know of any math profs who publish in artificial intelligence, 
though no doubt

there are a few that do.  No, thinking about it now I can think of a few.


My PhD is in math and I used to be a math prof, but I have found no 
opportunity yet to use really advanced math in AI


Advanced undergraduate level math is as far as it's gone so far ... 
the most advanced stuff has been in Novamente's probabilistic reasoning 
component, but there's nothing here really going beyond undergrad 
probability, stats, and vector calculus...


No algebraic geometry, no modular forms or inaccessible cardinals of 
the mind, etc. ;-)


Ben G

-
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-03-24 Thread David Clark
I don't deny that you also might have extensive experience but you were the
one to use inflammatory language.

I have 18 points at www.rccconsulting.com/aihal.htm and an explanation for
each one.  Prove to me that this list of features can all be accommodated by
any existing computer language and I will stop my development right now and
switch.

Was the purpose and tone of your email to help, ridicule, impress someone,
what?  It didn't help at all if that was your purpose.

If your language is one OS dependent then it sucks from the beginning. Is
this language professional, necessary or reasonable?

-- David Clark

- Original Message - 
From: Samantha Atknis [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Friday, March 23, 2007 11:29 PM
Subject: Re: [agi] My proposal for an AGI agenda


 David Clark wrote:
  I appreciate the amount of effort you made in replying to my email.
 
  Most of your questions would be answered if you read the documentation
  on my site.  The last time I looked, LISP had no built-in database.
  Has this changed recently?  Does it still use that idiotic prefix
  notation?  My internal byte code uses just such a system but it is
  meant for a computer to read not a human.

 I read your site.  Lisp does not need a built in database if it can use
 existing databases.  There is Allegro Cache.  The syntax is not at all
 idiotic.  It is a simple, yet packs incredible power.  It is what
 enables data is code and code is data.  It is a large part of why Lisp
 is the premier language  for creating DSLs and is the language the
 majority of new language features were first invented and tested in.
 But that you simply call it idiotic probably means it is not
 worthwhile to attempt to convince you.

 I built my first PC in 1976.  In 1985 I created a persistent distributed
 OO development platform.  Do you really want this kind of contest or do
 your points stand or fall on their own?

 - samantha


 -
 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


-
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-03-24 Thread David Clark

  - Original Message - 
  From: Sampo Etelavuori 
  To: agi@v2.listbox.com 
  Sent: Saturday, March 24, 2007 3:13 AM
  Subject: Re: [agi] My proposal for an AGI agenda

  Well, do you agree that making predictions is one central aspect of 
intelligence? The brain does it all the time to the best of my knowledge.
  And I would say studying how to make better predictions can definitely 
benefit from mathematical analysis. Though of course it is also possible to 
evolve predictors with algorithms and you don't necessarily require much math 
to design those. It just might take ages with limited resources to evolve any 
non-trivial and good predictors (ok, I'm trying it anyway - recurrent nets 
rule!). 


Yes, predictions are a central aspect of intelligence hence my proposal to 
make models the heart of the AGI.  What algorithm creates that model is another 
question entirely?  A Math formula could be that model but many other 
algorithms could be as well.  I think the concept of a model is large enough to 
encompass any number of algorithms including NNs etc.  The trick would be to 
encode patterns produced by these models so that comparisons and cross learning 
could occur between different domains even if quite different algorithms were 
used to create the patterns.

-- David Clark

-
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-03-24 Thread David Clark
- Original Message - 
From: rooftop8000 [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 4:26 AM
Subject: Re: [agi] My proposal for an AGI agenda


 -so it will need to have different parts that can be developed (and run?)
independently.

An AGI would be huge.  Working on different parts and synchronizing them on
a regular basis would be the most efficient method of development.

 -won't anything goes direct itself towards things that work? (ie. people
building things
 on top of the parts that already give the best results).

I think group discussions of some form (wiki?) would have to take place so
that the overall project would have a single direction.  I don't think
everyone would automatically agree what already give the best results
means.

 -what other kind of direction could you put in the system?

I believe that things shouldn't be set in stone.  If reason dictates a new
direction then go with flow.  This approach necessitates a very flexible
design.

 It might give a big overhead, but won't it also make the system
 more fault-tolerant ? All the different parts can be designed by different
people ...
 Do Movement and AIR already do this? (I'm not familiar with them)

People are free to create their own AGI right now.  They can make
communications with other designs if they wish right now.  If a more
cooperative scheme is desired then multi languages and different operating
systems probably won't work.

 Maybe there are better ways than socket communication?

Someone mentioned using TCP but I don't see much difference.  The socket
overhead over TCP doesn't look like much to me but I don't know all the
details (I don't pretend to be a network specialist).  Socket communications
can be made within a single computer and to anywhere over the internet.  If
you want to include Web browsers in your communications, then sockets are
necessary.

 This is probably the biggest problem. How to divide it so people can
design
 their own parts, in their own preferred language? And how to run them/
have
 easy communication between them.
 I'm sure a lot of research has been done into this?

I don't know how much research has been done on this but mutual planning
using something like a Wiki would be my preferred approach.

 what kind of results? I think making existing ones
 work in a framework would be a really good result by itself. (If other
 people can easily build on it and expand it in some way)

I don't know what existing ones you refer to but trying to get something
like SOAR or others integrated into a single system would probably be
impossible and net very little if it was.  If the intelligence of an AI
system is only in the phrases built in by some user, then the resulting
intelligence will never exceed a small subset of that person's intelligence.
SOAR has a single deductive algorithm that uses a set of production rules
that a user types in.  If there is any intelligence in that system then it
comes only from the user who produced the rules.  In Searle's Chinese room
experiment (I don't agree with this test or it's conclusions) the person who
can't speak Chinese is obviously not showing any intelligent and I believe
that any rule based system won't be either for the same reasons.

 maybe the framework should  focus on easily modifiable by humans, not
 the system itself. (So people can design their own self-modifiable parts,
but it
 wouldn't be required)

If no self-modification then you have to build all the intelligence into
the data or people have to program the entire AGI by hand.  You don't seem
to refute this point that I made in my last post.  I never said *all* code
needed to be self generated just that some *should* be.  If you start with a
system (C++ for example), no self modification can be made *at all*.
Strictly typed procedural languages like C++ and Java are edited and then
run, not both at the same time.  Program creation (in the native language)
and introspection are impossible in these languages.  My language is just a
C++ program that has a fast built in language.  Any of my internal programs
can never modify the C++ program at all, only it's own internal language.

 It could use KBs as tools (like humans would use them),
 For example, query opencyc for more information on cats, and use that
 in some way.

My previous response was that you have no way of knowing how *good* the
information is (in using foreign KBs in a direct way).  I think words should
be stored and manipulated in context so no normal dictionary would be of
much good.  It would just be words without meaning.

-- David Clark


-
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-03-24 Thread David Clark
I appreciate your detailed response but I don't have time to respond to all
your points right now.  You can be assured that I will investigate your
points in the coming days.

I am not familiar with C# directly but have programmed extensively in C++
for many years.  C itself is not OO and nor is C++ so if C# is C at all is
isn't OO enough for me.  Can you create a LONG integer that can be used as a
LONG integer anywhere but have additional fields attached at the same time?
If I want a number that contains currency information like country,
conversion rate etc but I still want the system to recognize this whole
object as if it was just a DOUBLE float, is that part of C#?  (I mean a LONG
that contains 14 bytes but is treated at the compiler level and is
interchangeable with, a 4 byte LONG) This is a very small example of a huge
list of such things.  C by it's very nature says that things like LONG,
DOUBLE are elementary parts of the language and can't be modified or
extended.  This is not OO or the way my language was made.  Can you override
the assignment of a DOUBLE with your own routine without creating an object?
My language has almost no reserved words.  You can make variables called IF
or WHILE if you wanted (doesn't read very well however).  Is introspection,
code generation and execution an integral part of the design of C# even if
it can be done?

Have you ever tried to run many threads and synchronize them with mutex's?
My internal multi-threading is many times more efficient than any operating
systems could ever be because I don't allow outside programs to multi-task.
Samantha Atkins says there are hacks that you can perform that can
alleviate some of this overhead but I'm not much interested in hacks.

You say a number of IDE's are available but even if you could sit in your
running program as you compile and edit it (I would be very shocked if C#
could do such a thing), C or any of it's derivatives were never designed for
this kind of thing.  C has a paradigm view that says humans make programs,
then compile, then run.  Stop running, edit program and start again.  Has C#
changed this paradigm?

My system provides for virtual disk reading and writing.  Objects just float
in and out of memory as they are needed.  In fact, you can't
open/close/read/write an operating system file even if you wanted to.  I
have made all disk accesses/writing automatic and invisible.  This true of
compiling as well (automatic and invisible).

The fact that C, C++ and I would presume C# has pointers, precludes any of
these from my list up front.  There can be no boundary checks at either
compile or execution time so this feature alone is incompatible with a
higher level language IMO. (The Java developers thought this as well so they
removed pointers from their version of C!)  If I wanted a language that is
as low a level (everything to everyone) language like C, I would just have
used C in the first place.

My point 6 about simple as possible means that some flexibility is lost so
that the programmer can spend their time on the project instead of the
language/programming.  Memory and disk garbage collection are built-in to my
system and no garbage collector could be programmed in any case as
allocating memory isn't even part of my language.  Allocating memory is just
not the programmers business in my language.

-- David Clark

- Original Message - 
From: Tony Lofthouse [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 7:54 AM
Subject: RE: [agi] My proposal for an AGI agenda



 David Clarke wrote:
 I have 18 points at www.rccconsulting.com/aihal.htm and an explanation for
 each one.  Prove to me that this list of features can all be accommodated
 by
 any existing computer language and I will stop my development right now
 and
 switch.


David, your full list of requirements is completely provided by C# and .NET.
See below for point by point matching:

1. Object Oriented
As a modern OO language C# supports encapsulation, data hiding,
polymorphism, etc, blah, blah, blah

2. All Classes, Methods, Properties, Objects can be created and changed
easily by the program itself.
.NET provides in depth reflection capabilities that provide this capability.
You can also construct code at run time using various approaches from high
level code to MSIL.

3. Efficiently run many programs at the same time.
There is in depth support for multi tasking at the process and thread level.
This includes multithreaded debugging. This is in part dependent on the OS
but that’s not an issue with Windows or Linux.

4. Fully extensible.
.NET is fully extensible through the addition of class libraries.

5. Built-in IDE (Interactive Development Environment) that allows programs
to be running concurrently with program edit, compile and run.
A number of IDEs are available. The Microsoft IDE supports real time update
of variables during debug sessions. As well as the language being fully
extensible the IDE is also fully

Re: [agi] My proposal for an AGI agenda

2007-03-24 Thread Ben Goertzel



The fact that C, C++ and I would presume C# has pointers, precludes any of
these from my list up front.  There can be no boundary checks at either
compile or execution time so this feature alone is incompatible with a
higher level language IMO. 


FYI, C# has no pointers generically, but you can create unsafe code 
blocks that can contain pointers

inside them.

Your language may well be a great one, but personally, I feel like your 
criticisms of other languages aren't really

adequately informed...

-- Ben

-
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-03-24 Thread David Clark
I'm afraid that prefix notion, huge numbers of round brackets and program
structure looking like normal code is not helpful to me.  I want a system
that is simple/readable and allows me to concentrate of the project instead
of the code.

LISP is not the only language I have used where program structure wasn't
obvious.  In 1975/76, I used APL extensively and it used normal data for
program structure.  This was a very elegant language but this aspect and the
right to left execution were nothing but a bother all the time.

I do like the way LISP uses macros to create source at compile time and so I
have added this to my language.

Sorry, LISP or any kind of LISP just won't do.

-- David Clark

- Original Message - 
From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 8:03 AM
Subject: Re: [agi] My proposal for an AGI agenda



 Allegro LISP seems to basically fulfill all those requirements also
 (with minor tweaks -- e.g.
 Allegro Cache isn't exactly part of the language, but it's tightly
 integrated...).

  ben g


-
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-03-24 Thread John Rose
I'm coming from years of computer telephony work and mostly the languages
that I've worked with include c++, Delphi(Pascal), Java, C#, VB. lately lots
of C# on Windows.  What I've seen repeatedly is the features of the
languages, mostly the non-c++ languages where feature utilization is
saturated.  Developers master many of the features quickly and are looking
for new ones to learn.  Now many of the apps are multi-language where you
add c++ dlls or COM or whatever to C# and such and that is usually because a
lot of open source code or other code needed is written in c or c++.  

 

I can't say I have much experience with Lisp, Prolog, Haskell and most
computer telephony I've seen strays from them for some reason.   But the
newest popular language C# is very similar to Delphi since the guy who
architected it also did Delphi.  I did expect much more from C# and it is
being added to incrementally albeit at a slow pace.  I think there is room
for other languages that move faster and the ability of developers to be
casual with features is underestimated by many.  For AGI the casuality level
is more demanding, from what I've seen for either content or framework.  I'm
not that AGI experienced, having little, so my opinions are biased from
computer telephony software.

 

John

 

From: Russell Wallace [mailto:[EMAIL PROTECTED] 
Sent: Saturday, March 24, 2007 2:06 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda

 

On 3/24/07, John Rose [EMAIL PROTECTED] wrote:

If you could imagine a really,
really super advanced language created by super-intelligent giant brained
aliens (seriously) or created by their alien supercomputer, what would that
language be like?  Would it be a mishmash of lowest common denominators of 
current earth computer languages permuted into something different and
optimized a little more?  What would it really have.  It would have features
that are breathtaking.  Would it have for-loops where the syntax is changed 
a little?  Or OOP enhanced just a bit?  No.  You would see stuff that would
make your eyes twitch.  This may sound like a crazy way of looking at it and
perhaps for some not really useful but what reference points do we have for 
new languages that would be useful?  I'm sure your language is more than
just a rehash and I'm not trying to put it down I'm just trying to generate
some ideas because realistically you could add one unique feature that could

potentially propel it into stardom.


If we're talking language for AGI _content_ (as opposed to framework for
which Ben Goertzel has made a fair case for even C++), then more like
removal of features. Because for AGI content, it's not what you can do in
principle, it's what you can be _casual_ with. 

In C/C++ you can be casual with machine-word numbers. In Java you can be
casual with strings. In Python you can be casual with lists.

The requirement for an AGI content language is that you can be casual with
procedural knowledge in general. 

And the reason you can't do that with existing languages - at least the best
of them, like Lisp, Prolog, Haskell - is not so much that they have too few
features, more that they have too many.

  _  

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 

-
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-03-24 Thread YKY (Yan King Yin)

On 3/23/07, rooftop8000 [EMAIL PROTECTED] wrote:
 Suppose there was an AGI framework that everyone could add
 their ideas to..   What properties should it have? I listed
 some points below. What would it take for
 you to use the framework? You can add points if you like.


On 3/24/07, Jey Kottalam [EMAIL PROTECTED] wrote:

I don't understand. Is the hypothesis that if we have enough people
writing and contributing AI modules according to their conception of
intelligence, and we wire up the modules up to each other, then AGI
will {result, emerge, pop out}? This doesn't sound like a feasible
approach. And, if there isn't a coherent picture of how the modules
are supposed to interact, how can you choose the design of
infrastructure like the language, organization, and knowledge base?
This seems backwards, to choose a design for the infrastructure then
fit an AGI design to the infrastructure. It's analogous to I don't
know to build a house, but I know I want to use a sledgehammer to do
it. :-)


I think Jey's comment is reasonable.  It seems impractical to start a
collaborative AI project without having an AGI design which specifies what
modules are there and how they communicate.

A more conventional approach is to fix an AGI architecture and then recruit
people to contribute the modules; but this requires people to agree on the
architecture (knowledge representation etc), which is hard.

We certainly have enough talented people here to build one AGI *if* we can
agree on the theory.  In reality, we don't, so the available
manpower gets divided into small projects and becomes inadequate.

Perhaps we can start a democratic / voting process to bring about
collaboration?

YKY

-
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-03-24 Thread Tony Lofthouse
 this as well so
 they
 removed pointers from their version of C!)  If I wanted a language that is
 as low a level (everything to everyone) language like C, I would just have
 used C in the first place.

You presumption is incorrect, C# is a memory managed language and has no
pointers. Boundary overruns are not possible in C# (see caveat at end). This
was a design goal built in from the beginning.

 
 My point 6 about simple as possible means that some flexibility is lost
 so
 that the programmer can spend their time on the project instead of the
 language/programming.  Memory and disk garbage collection are built-in to
 my
 system and no garbage collector could be programmed in any case as
 allocating memory isn't even part of my language.  Allocating memory is
 just
 not the programmers business in my language.
 
That is the approach that C# takes. There is no memory allocation! It is all
automatic. The garbage collector is a very sophisticated three level
algorithm, very similar in concept to the design of the Eiffel language if
you are familiar with that. 

There is one caveat I need to mention. In order to provide the maximum
flexibility for the developer C# provides something called unsafe mode. This
allows the programmer to use pointers and memory allocation if necessary. In
practice this is rarely used and needs to be explicitly declared.

 -- David Clark
 
 - Original Message -
 From: Tony Lofthouse [EMAIL PROTECTED]
 To: agi@v2.listbox.com
 Sent: Saturday, March 24, 2007 7:54 AM
 Subject: RE: [agi] My proposal for an AGI agenda
 
 
 
  David Clarke wrote:
  I have 18 points at www.rccconsulting.com/aihal.htm and an explanation
 for
  each one.  Prove to me that this list of features can all be
 accommodated
  by
  any existing computer language and I will stop my development right now
  and
  switch.
 
 
 David, your full list of requirements is completely provided by C# and
 .NET.
 See below for point by point matching:
 
 1. Object Oriented
 As a modern OO language C# supports encapsulation, data hiding,
 polymorphism, etc, blah, blah, blah
 
 2. All Classes, Methods, Properties, Objects can be created and changed
 easily by the program itself.
 .NET provides in depth reflection capabilities that provide this
 capability.
 You can also construct code at run time using various approaches from high
 level code to MSIL.
 
 3. Efficiently run many programs at the same time.
 There is in depth support for multi tasking at the process and thread
 level.
 This includes multithreaded debugging. This is in part dependent on the OS
 but that’s not an issue with Windows or Linux.
 
 4. Fully extensible.
 .NET is fully extensible through the addition of class libraries.
 
 5. Built-in IDE (Interactive Development Environment) that allows programs
 to be running concurrently with program edit, compile and run.
 A number of IDEs are available. The Microsoft IDE supports real time
 update
 of variables during debug sessions. As well as the language being fully
 extensible the IDE is also fully extensible.
 
 6. As simple as possible.
 This is of course an unknown. That said C# has been designed to be as
 clean
 a language as possible. It is type safe, has very good garbage collection,
 and a minimal syntax that is very familiar to C/C++ and Java programmers.
 
 7. Quick programming turnaround time.
 If you mean compile time then C# compiles in a JIT environment so is very
 quick, especially incremental builds.
 
 8. Fast where most of the processing is done.
 C# is almost as efficient as C++. Where speed critical components are
 needed
 you can drop into unmanaged mode for high performance.
 
 9. Simple hierarchy of Classes and of Objects.
 What is a simple hierarchy? If you mean the library classes then it is as
 simple as you want to make it. There is a rich set of class libraries that
 you can utilise but you don't have to.
 
 10. Simple Class inheritance.
 C# uses single inheritance rather than multiple inheritance. This greatly
 simplifies class design. Interfaces are provided to support those cases
 where multiple inheritance would have been used. IMO this is much better
 approach.
 
 11. Simple external file architecture.
 This is dependent on the OS but at the simplest you have text files. At
 the
 other extreme you have RDBMS.
 
 12. Finest possible edit and compile without any linking of object
 modules.
 There are no object modules as such in .NET. Classes are grouped into
 namespaces and then libraries. Each library is a .DLL which is directly
 callable from the code.
 
 13. Scalable to relatively large size.
 C# is industrial strength. There are no limitations on current hardware.
 You
 can develop fully distributed apps across multiple domains if you can
 afford
 the hardware :-)
 
 14. Built in SQL, indexes, tables, lists, stacks and queues.
 Microsoft's version of C# ships with SQLSERVER RDBMS (single user, 3
 conections), all common data structures are available as class libraries.
 SQL syntax

Re: [agi] My proposal for an AGI agenda

2007-03-24 Thread rooftop8000

--- YKY (Yan King Yin) [EMAIL PROTECTED] wrote:

  On 3/23/07, rooftop8000 [EMAIL PROTECTED] wrote:
   Suppose there was an AGI framework that everyone could add
   their ideas to..   What properties should it have? I listed
   some points below. What would it take for
   you to use the framework? You can add points if you like.
  
 On 3/24/07, Jey Kottalam [EMAIL PROTECTED] wrote:
  I don't understand. Is the hypothesis that if we have enough people
  writing and contributing AI modules according to their conception of
  intelligence, and we wire up the modules up to each other, then AGI
  will {result, emerge, pop out}? 

The richer your set of algorithms and representations, the more likely
the correct ones will emerge/pop out as you put it. I don't really like
the idea of hoping for extra functionality to emerge. 

 This doesn't sound like a feasible
  approach. And, if there isn't a coherent picture of how the modules
  are supposed to interact, how can you choose the design of
  infrastructure like the language, organization, and knowledge base?

Because i think we need more than 1 knowledge base in the system, 
and more than 1 type of communication. Why should neuralnet-Bayesian talk
use the same representation as communication between logic modules.

But maybe making a framework that is general enough for all those 
things is impossible? 


  This seems backwards, to choose a design for the infrastructure then
  fit an AGI design to the infrastructure. It's analogous to I don't
  know to build a house, but I know I want to use a sledgehammer to do
  it. :-)

The framework should facilitate the collaboration, and not limit
the things inside of it. I hope it's more like how do i build a house
so everyone can live in it together

 
 I think Jey's comment is reasonable.  It seems impractical to start a
 collaborative AI project without having an AGI design which specifies what
 modules are there and how they communicate.

I hoped someone on the list was smart enough to find one 

 
 A more conventional approach is to fix an AGI architecture and then recruit
 people to contribute the modules; but this requires people to agree on the
 architecture (knowledge representation etc), which is hard.
 
 We certainly have enough talented people here to build one AGI *if* we can
 agree on the theory.  In reality, we don't, so the available
 manpower gets divided into small projects and becomes inadequate.
 
 Perhaps we can start a democratic / voting process to bring about
 collaboration?
 
 YKY
 

my vote goes to any framework that is broad enough
to make 
-rule based/ logic parts
-parts with number-based neural networks etc
-...
and allows different parts to be developed independently and
added easily




 

The fish are biting. 
Get more visitors on your site using Yahoo! Search Marketing.
http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php

-
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-03-24 Thread David Clark
For anyone who might be interested, all program, classes, objects etc reside
in a single operating system file.  Only a simple config file resides
outside this one file and it is used at startup only.  The overhead of
1000's of classes and 10,000's of objects made me decide to make access to
any of these objects at least an order of magnitude faster than using many
files in an arbitrarily complex operating system directory tree.  There are
disadvantages to this scheme but the benefits made this my decision.

- Original Message - 
From: Chuck Esterbrook [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 9:32 AM
Subject: Re: [agi] My proposal for an AGI agenda


 For that particular example, yes I believe you can. You do so by
 creating a class (or struct; your preference) and giving it an
 implicit cast to long.

Can you use the resultant LONG anywhere, with the same syntax and efficiency
as if it was just 4 bytes?  In my language, you can inherit *any* class as
the base class on an object and it's that base class that determines
even the built in methods at execution and compile time.  These kind of
objects are stored directly in other objects (some objects exist in the
object hierarchy) so the overhead is the same as if the object were just the
built in variable type.

 But another way to use C# would be in place of your C++. You may find
 it more productive and if your language features garbage collection,
 you get that for free (no future maintenance). With a little bit of
 rigging, you would also get access to all .NET libraries, both
 built-in and standard.

That might be something I consider doing in the future but definitely is
worth a look.

 Btw I just recalled that Second Life decided to switch their
 proprietary VM over to Novell Mono (they run on Linux so they run
 .NET's open source clone) for 2 benefits:
 1. Huge increase in speed by leverage the fact that Mono/Novell
 generate machine code

Generating machine code decreases flexibility (in my design) and wouldn't
improve the speed much at all.

 2. Let people choose from a number of languages instead of just one

I would like to spend most of my time working on an AGI instead of
programming in low level languages, so multi-languages are not an option for
me.  I tried to track down all the nested include files used by one of my
C++ modules and after at least 30 files, I gave up.  I will trade some
flexibility in what can be usefully programmed in my language for a little
bit more simplicity (or a lot more simplicity).  Some people enjoy more
complexity than others.

 Only mildly. There is a Property Inspector you can use at runtime to
 modify your objects. You have to provide the UI code that pops it up.

All meta and value data is accessible at execution time for *all*
objects/variables (even a LONG is an object) in my language.

 There is an edit and continue feature in the IDE, but it does not
impress.

My programming model is an event system so program has a slightly
different meaning that say in C++.  Programs can pop into execution space by
time, other program invocation or external stimulation like getting a
message from a web browser.  If a single program stopped because of an
error, my system couldn't just let it continue from the console, either.
This could be done with the built-in error catching mechanism, however.  A
normal program written in C++ would end up being many smaller programs
running serially or in parallel and each small program can be changed etc
while others execute.  Unlike a C++ system, not only is all data accessible
to running programs and ones triggered by Internet messages, but all their
methods are available while editing as well.

 You can probably get the IronPython prompt embedded in your .NET
 program and get some real in-program coding going.

 What if you need to read in a text file because that's how someone has
 delivered some information to you?

There is an import facility from a specific operating system directory that
can import things like text files, images, and comma delimited files
directly into tables. (Any arbitrary file can be imported, not just the 3
kinds mentioned)  This means that this language can never be used in direct
connection to normal operating system files etc.  No ODBC database hooks
etc.  It does mean that it can never be used to maliciously change any other
programs or systems on a persons' computer either.

 C# has pointers
 (http://www.softsteel.co.uk/tutorials/cSharp/lesson5.html) but hardly
 anyone uses them in day-to-day programming. The idea behind having
 them was to avoid the Java problem where people get pushed out to JNI
 when they want to integrate third party C libs. With C#'s pointers,
 structs and arrays, you can stay in the same language.

 Probably another point is to coax more speed out of the
 machine--again, without having to step outside.

Stepping outside is not an option in my language.  This could be viewed as
either good

Re: [agi] My proposal for an AGI agenda

2007-03-24 Thread David Clark
- Original Message - 
From: Tony Lofthouse [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 10:19 AM
Subject: RE: [agi] My proposal for an AGI agenda


 That’s a neat trick. So on a four processor box you can take control of
the
 processors and the OS and run your own multitasking system on top of this?

All four processors would be difficult for me to use at once in my current
version. I use 1 thread for the IDE, 1 thread to run all the internal events
and a separate thread for each connection to the internet.  This is not the
most efficient use of 4 processors but it makes my multi-tasking run rings
around multi-threading.

 I find this a little suspect. I could see how you could create your own
 timeslicing mechanism within an application but this wouldn't give you
 access to multiple CPU's and threads. It certainly wouldn't stop outside
 programs multitasking (on windows or Linux)

I could also run multi-copies of the C++ program and have them communicate
using sockets but this isn't implemented yet.  Normal multi-tasking could
occur while my system is running, as you say.  You could call my internal
multi-tasking a timeslicing mechanism if you like.

 First of all C# is not really a derivative of C. It has some common
reserved
 words but is a totally different language. And yes you can edit variables
in
 the IDE whilst the program is running. More impressive is the ability to
 dynamically start and stop class libraries whilst the program is running.
 This is of course a necessary requirement for 24/7 enterprise apps. You
 can't afford down time to upgrade them. You just do it on the fly. This
 enables you to update a class then dynamically change it with the older
 version whilst the app is running.

That feature sounds like something that I would want.

 That is the approach that C# takes. There is no memory allocation! It is
all
 automatic. The garbage collector is a very sophisticated three level
 algorithm, very similar in concept to the design of the Eiffel language if
 you are familiar with that.

I'm not familiar with Eiffel but my memory manager is fairly sophisticated
and of course I have the source to make it better if needed :).  My memory
manager doesn't have a periodic re-write mechanism so I will probably have
to add this in the future.  This is much easier that it would be in C#
because all my programs have a common structure.  Memory is recursively made
into bigger chunks as it is released.

 There is one caveat I need to mention. In order to provide the maximum
 flexibility for the developer C# provides something called unsafe mode.
This
 allows the programmer to use pointers and memory allocation if necessary.
In
 practice this is rarely used and needs to be explicitly declared.

This is definitely an improvement on C++.

-- David Clark


-
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


Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread Richard Loosemore

Ben Goertzel wrote:

Mark Waser wrote:
 IMO, creating an AGI isn't really a programming problem.  The hard 
part is knowing exactly what to program.  
Which is why it turns into a programming problem . . . .  I 
started out as a biochemist studying enzyme kinetics.  The only 
reasonable way to get a reasonable turn-around time on testing a new 
fancy formula was to update the simulation program myself.  
If the tools were there (i.e. Loosemoore's environment), it 
wouldn't be a programming problem.  Since they aren't, the programming 
turns into a/the real problem.:-)


Well, programming AGI takes more time and effort now than it would with 
more appropriate programming tools ...


But it seems like what Loosemore wants is an environment that will help 
him **discover** the right AGI design ... this is a different 
matter  Or am I misunderstanding?


I can answer the specific question about what kind of programming 
environment I am working on.


It is in between the two extremes that Ben suggests:  it is specifically 
designed for a particular *class* of AGI systems, and what it allows the 
developer to do is to systematically explore various members of that 
class in ways that current tools do not.


What I mean by the class of AGI systems that it is _specifically_ 
designed for is an AGI design that emerges from a framework document 
that I working on.  The bulk of that framework is a detailed 
interpretation of the current state of cognitive psychology research -- 
it is a unified model of all the various micromodels that cognitive 
psychology folks come up with when they explain their various 
experimental results.  It has a (kind of) connectionist foundation, but 
it goes well beyond standard connectionism.


However, it would be misleading to think of the environment as something 
that will allow me to discover the right AGI design because there is 
already more in the way of AGI design in the framework itself, than 
there is in most existing AGI designs.  Yes, the environment allows 
variations on that theme ... but the theme itself is very specific.


Now, with all of the above said:  the environment is ALSO designed to be 
general enough that any other system (Novamente, etc.) could be 
implemented in the environment, so that its facilities could be used to 
help in the development.  You might not try to use the systematic 
variation aspects ofteh environment, but there are many other aspects 
that would be useful, so it might make sense.


So in that regard, it would be a general purpose programming tool like 
any other.


Sorry that I have to talk in the future tense, but I am optimistic that 
pending developments are going to lead to faster implementation of this 
environment, so you can see it rather than have me talk about it.


As for all the other talk on this list, recently, about programming 
languages and the need for math, etc., I find myself amused by the 
irrelevance of most of it:  when someone gets a clue about what they are 
trying to build, and why, the question of what language (or environment) 
they need to use will answer itself.






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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread Ben Goertzel





As for all the other talk on this list, recently, about programming 
languages and the need for math, etc., I find myself amused by the 
irrelevance of most of it:  when someone gets a clue about what they 
are trying to build, and why, the question of what language (or 
environment) they need to use will answer itself.




Yes ... and this is the same thing those of us actually working on AGI 
projects have been saying.


My experience is:
Once you have an AGI design, the choice of prog. language becomes a 
pragmatic rather than philosophical/emotional choice.  Even if none of 
the existing languages matches one's desires perfectly, one chooses a 
decent option and gets on with it.


-- Ben

-
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-03-24 Thread John Rose
I don't know math too well, not an expert, just what I picked up on forays
into AGI design.  But I see an AGI (a simplified view) as being a kind of
morphism processor and database.  Taking inputs from the world, detecting
and storing morphisms from the data streams, post processing the morphisms,
creating morphisms of morphisms, groups of morphisms, putting all these into
graphs, performing and integrating NN, genetic analysis, vector analysis and
statistical analysis on these graphs while doing all the houskeeping.  The
morphism processing is what I struggle with trying to pick up all the group
theory and understand how to code it up.  Plus the plethora of morphisms out
there.  Then many intelligent structures (or subcomponents) can be built
up using other advanced math in addition to just morphisms.  Coming up with
these structures and then coding them up and integrating them efficiently,
yes difficult.  Having mathematicians build tools into computer languages
would definitely make it a lot easier.  
 
John

-Original Message-
From: Ben Goertzel [mailto:[EMAIL PROTECTED] 
Sent: Saturday, March 24, 2007 6:10 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda


 Is the research on AI full of Math because there are many Math
 professors that publish in the field or is the problem really Math
 related?  Many PhDs in computer science are Math oriented exactly
 because the professors that deem their work worth a PhD are either
 Mathematicians or their sponsoring professor was.


 I don't know of any math profs who publish in artificial intelligence, 
 though no doubt
 there are a few that do.  No, thinking about it now I can think of a few.

My PhD is in math and I used to be a math prof, but I have found no 
opportunity yet to use really advanced math in AI

Advanced undergraduate level math is as far as it's gone so far ... 
the most advanced stuff has been in Novamente's probabilistic reasoning 
component, but there's nothing here really going beyond undergrad 
probability, stats, and vector calculus...

No algebraic geometry, no modular forms or inaccessible cardinals of 
the mind, etc. ;-)

Ben G

-
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

-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread rooftop8000
 one chooses a 
 decent option and gets on with it.
 
 -- Ben

That's exactly the problem.. everyone just builds their
own ideas and doesn't consider how their ideas and code could
(later) be used by other people


 

Looking for earth-friendly autos? 
Browse Top Cars by Green Rating at Yahoo! Autos' Green Center.
http://autos.yahoo.com/green_center/

-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread Chuck Esterbrook

On 3/24/07, rooftop8000 [EMAIL PROTECTED] wrote:

 one chooses a
 decent option and gets on with it.

 -- Ben

That's exactly the problem.. everyone just builds their
own ideas and doesn't consider how their ideas and code could
(later) be used by other people


If Novamente reaches human like, general intelligence, you'll use it
by saying things like, Novamente, I'm out of beer. and he'll know to
run out to the store to get some!


But seriously, some companies may intend that their projects get used
more macroscopically than as a marketplace for AGI parts. Adding that
extra dimension to a project has extra cost and it's not clear what
the pay off will be. Just the fact that you make certain choices about
AGI will probably mean that 80% of us say I won't use that because
you didn't blah blah blah. Examples of blah blah blah include bake
in high level math, use one communication protocol, use multiple
communication protocols, use .NET, did not use .NET, use Java, did not
use Java, lojbanize everything, etc.

AGI companies tend to have a strong(er) idea of what they are trying
to accomplish. If you want an open AGI architecture for community
collaboration on the internals of the AGI, then it is more likely to
come in the form of an open source project pushed mostly by
individuals.

Furthermore, I have my doubts that such an approach will lead to AGI.
I think a close knit, full-time team with a vision, such as Novamente
or AdaptiveAI, has a much better chance. I offer no proof--that's just
my impression.

-Chuck

-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread Richard Loosemore

Ben Goertzel wrote:

Richard Loosemore wrote:


As for all the other talk on this list, recently, about programming 
languages and the need for math, etc., I find myself amused by the 
irrelevance of most of it:  when someone gets a clue about what they 
are trying to build, and why, the question of what language (or 
environment) they need to use will answer itself.




Yes ... and this is the same thing those of us actually working on AGI 
projects have been saying.


You mean to imply I am *not* one of those actually working on an AGI 
project?





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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread Ben Goertzel

Richard Loosemore wrote:

Ben Goertzel wrote:

Richard Loosemore wrote:


As for all the other talk on this list, recently, about programming 
languages and the need for math, etc., I find myself amused by the 
irrelevance of most of it:  when someone gets a clue about what they 
are trying to build, and why, the question of what language (or 
environment) they need to use will answer itself.




Yes ... and this is the same thing those of us actually working on 
AGI projects have been saying.


You mean to imply I am *not* one of those actually working on an AGI 
project?




No, sorry for the inaccurate phrasing...

ben

-
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: Environments and Languages for AGI [WAS Re: [agi] My proposal for an AGI agenda]

2007-03-24 Thread Ben Goertzel

rooftop8000 wrote:
one chooses a 
decent option and gets on with it.


-- Ben



That's exactly the problem.. everyone just builds their
own ideas and doesn't consider how their ideas and code could
(later) be used by other people

  


I'm not at all sure something like AGI is well-suited to a large-scale, 
open-source project.


Linux, for instance, is based on well-known ideas (Unix) and consists of 
a lot of loosely-related parts; it's well-suited to

construction by a large pool of part-timers.

An AGI design like Novamente is based on a lot of very obscure ideas 
that are quite hard to understand (due to being at
the research frontier), and consists of a set of parts that interdepend 
very intricately and subtlely.  It really needs to be
built by a small team with a deep common understanding and close 
interaction.


I guess most other AGI designs are the same way.

Ben

-
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-03-24 Thread YKY (Yan King Yin)

On 3/25/07, rooftop8000 [EMAIL PROTECTED] wrote:

The richer your set of algorithms and representations, the more likely
the correct ones will emerge/pop out as you put it. I don't really like
the idea of hoping for extra functionality to emerge.


This particular version of emergence does not seem to work because:
1. You need a massive number of participants ( 1,000, say) which we
definitely don't have on this list or on the net.
2. You cannot simply throw a bunch of algorithms and representations
together and make an AGI.  There has got to be some common communication
protocols.  *If* you are willing to enforce communication protocols, then
why not instead enforce a common knowledge representation scheme, which is
more direct?

Trying to establish *any* concensus is hard, but it seems to be
a *necessary* step.


Because i think we need more than 1 knowledge base in the system,
and more than 1 type of communication. Why should neuralnet-Bayesian talk
use the same representation as communication between logic modules.

But maybe making a framework that is general enough for all those
things is impossible?


Well, mine and Ben's approaches are similar:  we try to *combine* logic,
probability, and graphical models / neural networks.  It's not really as
hard as it sounds.  What do you think about such an approach?  I'm also open
to other alternatives, if they are simpler.

But it seems that it is impossible to simply let a bunch of AGIers
collaborate by everyone doing their own thing without any kind of imposed
structure / organization.  Or am I missing some very ingenious ideas?


 I think Jey's comment is reasonable.  It seems impractical to start a
 collaborative AI project without having an AGI design which specifies

what

 modules are there and how they communicate.

I hoped someone on the list was smart enough to find one


I have actually proposed such an architecture, in outline.  I'm sure Ben G
and Peter Voss also have their respective architectures.  One question is
whether we can synthesize these different theories.  If not, we'd end
up with a number of isolated groups that do not collaborate in any
meaningful / significant way.


my vote goes to any framework that is broad enough
to make
-rule based/ logic parts
-parts with number-based neural networks etc
-...
and allows different parts to be developed independently and
added easily


A *probabilistic* logic-based system is very much numerical.  Me, Pei Wang,
and Ben all advocate the use of some form of numerical logic for commonsense
reasoning.  This type of systems cannot be easily classified into logic or
neural.

Some form of unifying framework, whatever that is, is of course
desirable.  But the problem is how to get people to *agree* to work within
your framework (or any particular one).  In fact, a whole bunch of people on
this list may claim to have some unifying framework for everyone else to
work in.

Simply voting on individual features cannot work because all the features of
an AGI are inter-related; they have to work together synergistically.

I'd make a bronze statue of anyone who can solve this problem!!

YKY

-
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-03-23 Thread John Rose
Pretty ambitious project.  

Mathematical notation: We would like to reduce the time it takes for a
domain expert to turn a mathematical specification into a working
high-performance program. We are examining language changes which would
enable computations to be written in a more mathematical format.

Why are these projects always in the research and D stage?

But an AGI can plug itself into or encapsulate a math engine like Maple or
Matlab or Mathematica for it's heavy duty symbology processing and
computations or take open source or proprietary math engines and lay them on
top of the language.  Integration into the programming language is
desirable, I imagine that there have been standards specs floated for these
types of language enhancements though what I'm talking about would likely be
a new language.

John


-Original Message-
From: Chuck Esterbrook [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 23, 2007 12:15 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda

Sun has a fairly new language called Fortress that is targeted to
scientists and engineers, and it has stronger notions of built-in math
than your typical OO language. I don't know (and probably doubt) that
it has the group/ring theory, category theory, etc. that you're
looking for, but you can check into it yourself (if you haven't
already):

http://www.google.com/search?hl=enq=sun+fortressbtnG=Search


On 3/22/07, John Rose [EMAIL PROTECTED] wrote:
 Enhancements to existing computer languages or new computer languages that
 could possibly grease the wheels for AGI development would be aligning the
 language more closely to mathematics.  Many of the computer languages are
 the same old things rehashed in different though new and evolutionarily
 better ways but nothing I've seen too revolutionary.  Same old looping
 structures, classes, OOP, etc.. nothing new.  But if someone could add
some
 handy math structures into the language - group/ring theory, category
 theory, advanced graph structures have this stuff built right in not
 utilized through add-ons or libraries or coded in house.  These math
 structures should be standardized and made part of the language now.
 Believe me, non mathematician programmers would learn these tools rapidly
 and use them in new and exciting ways.  Now many are going in all sorts of
 wild goose chase directions due to lack of standard mathematical guidance
 built in.  Growing a crop of potential AGI developers who don't need no
math
 PHd's would happen if this came about.  Granted good C++ coders can
 accomplish just about anything with the language, there is a complexity
 overhead tradeoff that needs to be maintained in doing so (in exchange for
 speed usually in C++).  But as many here understand, having good patterns,
 algorithms and particularly math systems and structures, speed issues can
be
 bridged and many times eliminated by designing and solving things through
 math verses CPU cycles.  Now naturally AGI systems can and do have
 handcrafted or other incorporated languages built in, these too many times
 suffer from the same limitations.  Though I imagine certain AGI's have
some
 pretty advanced languages cooked up inside.  And perhaps these are the
ones
 that grapple more efficiently with machine and network resource
 limitations

 John

 -Original Message-
 From: David Clark [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, March 21, 2007 10:16 AM
 To: agi@v2.listbox.com
 Subject: Re: [agi] My proposal for an AGI agenda

 I totally agree that maximum speed is required for AGI.  I agree with Ben
 that flexabilty is also needed (he might have said liked, not needed) like
 seen in Ruby.  My language IDE has a small simple editor built-in that
 automatically reformats the code and compiles as it saves making compiling
 totally invisible.  Edit/compile/run turnaround is as fast as one click of
 the mouse.  My system, although unintentionally somewhat like Ruby (my
 system was totally designed without any knowledge of Ruby) has almost all
of
 it's flexability while retaining almost the speed of C++.  My worst case
 internal looping is 15x slower than C++ but most functions and overall
 program execution are much closer to C++ speed.  The looping overhead on
my
 machine is about 10M/sec for a store operation.  My looping speed is 2-3
 times faster than Visual FoxPro which is very fast for a compiler/byte
code
 interpreter.  I haven't tested Ruby on my machine but I would suggest it's
 looping overhead to be at least 100-200 times slower than C++.  My
indexing
 times are similiar to Visual FoxPro or better.  I have never seen a faster
 indexing/data access system than Visual FoxPro (any bench mark between
MySQL
 and Visual FoxPro would be no contest at all).  I can import 100,000
 names/addresses in 1.5 seconds and search every record in this file by
first
 name, last name and prov in 1/10 second (data searched is 17.8M and all
 records are stored on the disk).  I have

Re: [agi] My proposal for an AGI agenda

2007-03-23 Thread David Clark
I have a Math minor from University but in 32 years of computer work, I
haven't used more than grade 12 Math in any computer project yet.  I have
produced thousands of programs for at least 100 clients including creating a
language/database that sold over 30,000 copies.  I have done system
programming and lots of assembly language as well as major applications in
PowerBuilder and Visual FoxPro.  Everyone is entitled to their opinion but
if Math wasn't required at all in all my career, I fail to see how it is
necessary for the creation on an AGI or any other major programming effort.

I created a bond comparison program for a major wealth investment firm that
used a pretty fancy formula at it's core but I just typed it in.  I didn't
have to create it, prove it or even understand exactly why it was any good.
I think Math is fine but computer programs from my perspective are a totally
different creature.  How much Math do you think is used by the brains of
most human beings?  By the way, I did complete a 3rd year computer
engineering course in 2000 where the professor tried to show how you could
make and prove programs correct with a totally Math system.  Good thing he
is a professor and doesn't have to work in the real world.

A CPU executes instructions including assignment, conditionals and simple
looping.  How can a language not have these things and still be useful.
Functional languages seem to refute this statement but they still must be
implemented in procedural internal code.  Functional languages like SQL and
report generators are already implemented in procedural languages (so it
doesn't have to be either/or) and more could be as needed.  Is useful and
practical not better than revolutionary and limited?

Would you define total introspection and many built-in tools to create
efficient programs using programs to be same old things rehashed?  Is
having a very fast built-in database with triggers and stored procedures
just laisser-faire?  Most human invention isn't brand new concepts or ideas
but different and useful combinations of things already known IMO.

I made a point about the efficiency of creating high level languages in the
language of the AGI.  I argue that this causes a performance hit of up to
100x or more depending on the complexity of the code. (less complex means a
bigger performance hit)  With the tools I have put into my language, higher
level functional or other languages can easily be made and then compiled
into the native language for huge cycle savings.  This can't be said for all
the languages I have looked at so far.

If you care to comment on any of my points directly, I would more than happy
to respond.

-- David Clark

- Original Message - 
From: John Rose [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Thursday, March 22, 2007 10:26 PM
Subject: RE: [agi] My proposal for an AGI agenda


 Enhancements to existing computer languages or new computer languages that
 could possibly grease the wheels for AGI development would be aligning the
 language more closely to mathematics.  Many of the computer languages are
 the same old things rehashed in different though new and evolutionarily
 better ways but nothing I've seen too revolutionary.  Same old looping
 structures, classes, OOP, etc.. nothing new.  But if someone could add
some
 handy math structures into the language - group/ring theory, category
 theory, advanced graph structures have this stuff built right in not
 utilized through add-ons or libraries or coded in house.  These math
 structures should be standardized and made part of the language now.
 Believe me, non mathematician programmers would learn these tools rapidly
 and use them in new and exciting ways.  Now many are going in all sorts of
 wild goose chase directions due to lack of standard mathematical guidance
 built in.  Growing a crop of potential AGI developers who don't need no
math
 PHd's would happen if this came about.  Granted good C++ coders can
 accomplish just about anything with the language, there is a complexity
 overhead tradeoff that needs to be maintained in doing so (in exchange for
 speed usually in C++).  But as many here understand, having good patterns,
 algorithms and particularly math systems and structures, speed issues can
be
 bridged and many times eliminated by designing and solving things through
 math verses CPU cycles.  Now naturally AGI systems can and do have
 handcrafted or other incorporated languages built in, these too many times
 suffer from the same limitations.  Though I imagine certain AGI's have
some
 pretty advanced languages cooked up inside.  And perhaps these are the
ones
 that grapple more efficiently with machine and network resource
 limitations

 John


-
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-03-23 Thread David Clark

- Original Message - 
From: Kevin Peterson [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Thursday, March 22, 2007 11:11 PM
Subject: Re: [agi] My proposal for an AGI agenda


 This thread has been going on for what, weeks? The argument has been
 going on since the beginning of time. If you think you need to invent
 a new language to accomplish something, you don't know how to do it,
 and creating the language will accomplish nothing. Every good language
 has been a refinement of techniques that have grown popular in other
 languages.

Is this conclusion based on your personal experience with many programming
languages?  I have found that the ease of programming, speed of execution
and result of any system I have programmed, to be quite dependant on the
language used.  Have you ever tried to make a device driver in Powerbuilder?
Would you like to write an inventory control system in Assembler?

 Solutions are best to well specified problems. AI is hard isn't
 specific. Self modifying code is difficult in Java is the kind of
 problem that may warrant using a different language. Wait, let me
 qualify that. Self modifying code is difficult in Java _and I've got
 a design thought up that will make use of self modifying code_ is the
 kind of problem that may warrant using a different language.

I have created a system that makes Self modifying code and I have a design
that will make use of self modifying code.  This is exactly why I created
this language in the first place.

 But AGI is not going to be hacked together by some undergrad between WOW
 sessions once he's given the right tools.

Totally in agreement but are all the people on this list undergrads?  Does
the fact that most people given any computer language tool mean that they
will be able to successfully use it?  Is this an argument for NOT creating
better tools?

 The portions of the first seed AGI that are written by humans will not
 be written in a language designed for that project.

I would be interested in knowing what arguments or experience you have that
would lead to this conclusion?  I can't think of any!

-- David Clark


-
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-03-23 Thread Eugen Leitl
On Fri, Mar 23, 2007 at 08:36:14AM -0700, David Clark wrote:

 I have created a system that makes Self modifying code and I have a design
 that will make use of self modifying code.  This is exactly why I created
 this language in the first place.

Interesting. Why did you feel the need to improve on SEXPRs? What does
it improve on the CL Lisp model?
 
-- 
Eugen* Leitl a href=http://leitl.org;leitl/a http://leitl.org
__
ICBM: 48.07100, 11.36820http://www.ativel.com
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-03-23 Thread Eugen Leitl
On Fri, Mar 23, 2007 at 08:23:51AM -0700, David Clark wrote:

 I have a Math minor from University but in 32 years of computer work, I
 haven't used more than grade 12 Math in any computer project yet.  I have
 produced thousands of programs for at least 100 clients including creating a
 language/database that sold over 30,000 copies.  I have done system
 programming and lots of assembly language as well as major applications in
 PowerBuilder and Visual FoxPro.  Everyone is entitled to their opinion but
 if Math wasn't required at all in all my career, I fail to see how it is
 necessary for the creation on an AGI or any other major programming effort.

I agree that formal mathematics is probably not a useful tool for
AI, but neurons do process information by physical processes which
sometimes have a close match to human concepts (delay, correlation,
multiply). Of course the constraints of biological systems are very
much like engineering (power footprint, structure minimax) and not
at all like mathematics. Mathematics typically doesn't like to 
deal with relativistic latency, for instance. 
 
 A CPU executes instructions including assignment, conditionals and simple
 looping.  How can a language not have these things and still be useful.

Does the human brain tissue have assignments, conditionals, and simple looping?
I don't think it does, and yet it is good enough that I can understand your
message (at least I think so) by the feat of Natural Intelligence.

If you look at provably optimal computing substrates, they're very
far removed from what you would consider computation. A classical
approach looks a look like a silicon compiler, only on a 3d lattice.
Signal timing and gates are discrete though, which removes any parasitary/
dirt effects from design.

Less conventional computation would be based on an Edge of Chaos dynamic
pattern, which self-organises, homeostates and adapts. 

 I made a point about the efficiency of creating high level languages in the
 language of the AGI.  I argue that this causes a performance hit of up to
 100x or more depending on the complexity of the code. (less complex means a
 bigger performance hit)  With the tools I have put into my language, higher
 level functional or other languages can easily be made and then compiled
 into the native language for huge cycle savings.  This can't be said for all
 the languages I have looked at so far.

Does your language allow you to do asynchronous message passing (no shared
memory) across a signalling mesh, involving millions and billions of
asynchronous, concurrent units?

-- 
Eugen* Leitl a href=http://leitl.org;leitl/a http://leitl.org
__
ICBM: 48.07100, 11.36820http://www.ativel.com
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-03-23 Thread Shane Legg

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


I have a Math minor from University but in 32 years of computer work, I
haven't used more than grade 12 Math in any computer project yet.


...


I created a bond comparison program for a major wealth investment firm
that
used a pretty fancy formula at it's core but I just typed it in.  I didn't
have to create it, prove it or even understand exactly why it was any
good.



IMO, creating an AGI isn't really a programming problem.  The hard part is
knowing exactly what to program.  The same was probably true of your bond
program: The really hard part was originally coming up with that 'fancy
formula'
which you just had to type in.

Thus far math has proven very useful in many areas of artificial
intelligence,
just pick up any book on machine learning such as Bishop's.  Whether it will
also be of large use for AGI... only time will tell.

Shane

-
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-03-23 Thread Mark Waser
 IMO, creating an AGI isn't really a programming problem.  The hard part is 
 knowing exactly what to program. 

Which is why it turns into a programming problem . . . .  I started out as 
a biochemist studying enzyme kinetics.  The only reasonable way to get a 
reasonable turn-around time on testing a new fancy formula was to update the 
simulation program myself.  

If the tools were there (i.e. Loosemoore's environment), it wouldn't be a 
programming problem.  Since they aren't, the programming turns into a/the real 
problem.:-)
  - Original Message - 
  From: Shane Legg 
  To: agi@v2.listbox.com 
  Sent: Friday, March 23, 2007 1:34 PM
  Subject: **SPAM** Re: [agi] My proposal for an AGI agenda




  On 3/23/07, David Clark [EMAIL PROTECTED] wrote:
I have a Math minor from University but in 32 years of computer work, I
haven't used more than grade 12 Math in any computer project yet.

  ...

I created a bond comparison program for a major wealth investment firm that
used a pretty fancy formula at it's core but I just typed it in.  I didn't
have to create it, prove it or even understand exactly why it was any good. 

  IMO, creating an AGI isn't really a programming problem.  The hard part is
  knowing exactly what to program.  The same was probably true of your bond
  program: The really hard part was originally coming up with that 'fancy 
formula' 
  which you just had to type in.

  Thus far math has proven very useful in many areas of artificial intelligence,
  just pick up any book on machine learning such as Bishop's.  Whether it will
  also be of large use for AGI... only time will tell. 

  Shane


--
  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 

-
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-03-23 Thread Ben Goertzel

Mark Waser wrote:
 IMO, creating an AGI isn't really a programming problem.  The hard 
part is knowing exactly what to program. 
 
Which is why it turns into a programming problem . . . .  I 
started out as a biochemist studying enzyme kinetics.  The only 
reasonable way to get a reasonable turn-around time on testing a new 
fancy formula was to update the simulation program myself. 
 
If the tools were there (i.e. Loosemoore's environment), it 
wouldn't be a programming problem.  Since they aren't, the programming 
turns into a/the real problem.:-)


Well, programming AGI takes more time and effort now than it would with 
more appropriate programming tools ...


But it seems like what Loosemore wants is an environment that will help 
him **discover** the right AGI design ... this is a different 
matter  Or am I misunderstanding?


-- Ben

-
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-03-23 Thread Mark Waser
But it seems like what Loosemore wants is an environment that will help 
him **discover** the right AGI design ... this is a different matter 
Or am I misunderstanding?


   Somewhat.  He made it sound that way but I would also assert that having 
such an environment would also certainly help speed up Novamente development 
where you clearly already have and are following a high-level design.  Your 
subprojects and your research into learning algorithms would certainly 
benefit even more.


- Original Message - 
From: Ben Goertzel [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Friday, March 23, 2007 2:56 PM
Subject: Re: [agi] My proposal for an AGI agenda



Mark Waser wrote:

 IMO, creating an AGI isn't really a programming problem.  The hard
part is knowing exactly what to program. Which is why it turns into a 
programming problem . . . .  I started out as a biochemist studying 
enzyme kinetics.  The only reasonable way to get a reasonable turn-around 
time on testing a new fancy formula was to update the simulation 
program myself. If the tools were there (i.e. Loosemoore's environment), 
it wouldn't be a programming problem.  Since they aren't, the programming 
turns into a/the real problem.:-)


Well, programming AGI takes more time and effort now than it would with 
more appropriate programming tools ...


But it seems like what Loosemore wants is an environment that will help 
him **discover** the right AGI design ... this is a different matter 
Or am I misunderstanding?


-- Ben

-
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




-
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-03-23 Thread David Clark

- Original Message - 
From: Eugen Leitl [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Friday, March 23, 2007 10:26 AM
Subject: Re: [agi] My proposal for an AGI agenda

  A CPU executes instructions including assignment, conditionals and
simple
  looping.  How can a language not have these things and still be useful.

 Does the human brain tissue have assignments, conditionals, and simple
looping?
 I don't think it does, and yet it is good enough that I can understand
your
 message (at least I think so) by the feat of Natural Intelligence.

As I have stated before, computers and people aren't similar.  If you create
hardware that acts in ways like it's biological counterpart then my current
ideas wouldn't be appropriate.  Can you argue that widely available
computers (the one I am using to send you this email) don't have looping
etc?

 If you look at provably optimal computing substrates, they're very
 far removed from what you would consider computation. A classical
 approach looks a look like a silicon compiler, only on a 3d lattice.
 Signal timing and gates are discrete though, which removes any parasitary/
 dirt effects from design.

I enjoy this kind of information but it doesn't help me with my AGI design.
I want an AGI design that models the higher level aspects of our cognition
and how it actually gets there doesn't have to have anything to do with our
brains.  I am glad that you want to build a machine and software to create
intelligence from the bottom up but that is not my approach.  Unlike some
others, I wouldn't hazard a guess as to your success potential but your
approach isn't mine.

 Does your language allow you to do asynchronous message passing (no shared
 memory) across a signalling mesh, involving millions and billions of
 asynchronous, concurrent units?

My AGI and my language was never designed to have millions and billions of
asynchronous, concurrent units.  My design certainly has the ability for
run a few thousand events simultaneously and pass messages efficiently
between them but this is not what you are asking.  My language would be
totally inadequate for the kind of solution you envision but I would argue
that for the kinds of systems I envision, current languages are equally
ill-suited.  I have a summary of the features in my system and some examples
concerning why Lisp wasn't suitable at  www.rccconsulting.com/aihal.htm


-- David Clark


-
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-03-23 Thread David Clark
I looked up SEXPR and the following is what I got.

 This library is intended to provide a minimal C/C++ API to efficiently
create, manipulate, and
 parse LISP-style symbolic expressions. An interpreter for a very minimal,
high-performance
 subset of LISP will eventually be included.


- Original Message - 
From: Eugen Leitl [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Friday, March 23, 2007 9:58 AM
Subject: Re: [agi] My proposal for an AGI agenda

 Interesting. Why did you feel the need to improve on SEXPRs? What does
 it improve on the CL Lisp model?

1. I don't want or need a C/C++ API.
2. I intend to do a lot more than just LISP-style symbolic expressions
3. I don't think LISP is very OOPs.
4. I don't like mixing program structure with program functions like LISP.
5. I don't like the prefix notation of LISP or it's unnecessary punctuation.

etc etc

LISP was designed a long time ago by University researchers and they can
have it as far as I am concerned.

My language stands all on it's own.  Anyone wanting a language to manipulate
arbitrary files on their computer can't use it as it is restricted to it's
own directory by design. I could name many applications where my system is
not appropriate but I think AGI isn't one of them.

-- David Clark


-
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-03-23 Thread DEREK ZAHN

David Clark writes:


I looked up SEXPR and the following is what I got.


I think he just was using shorthand for s expression.

Looking over the web page you linked to, it seems like your approach is 
basically that building an AGI (at least an AGI of the type you are 
pursuing) is at its heart a large software engineering task not much 
different from other large software engineering tasks.  So you're building a 
language that you believe will help you with that engineering task.  Anybody 
who has written software for a long time has opinions about what works best 
for developing large software projects, and there's nothing wrong with you 
embodying your ideas on that subject in your language.


Issues like indentation, punctuation, and so on are clearly not central to 
AGI as an endeavor, but one intriguing aspect of your project is the focus 
on self-modifying code.  Any information you'd like to share about how your 
language constructs make on the fly code generation elegant and natural 
would be very interesting.



-
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-03-23 Thread David Clark
- Original Message - 
From: rooftop8000 [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Friday, March 23, 2007 1:48 PM
Subject: Re: [agi] My proposal for an AGI agenda


 Suppose there was an AGI framework that everyone could add
 their ideas to..   What properties should it have? I listed
 some points below. What would it take for
 you to use the framework? You can add points if you like.


 1. collaboration. is it possible to focus all attention/ work
 in one big project? will it be too complex and unmanageable?

I think that specific parts can be designated to multiple developers in a
coherent manner without requiring full time effort by everyone.  An adhoc or
anything goes approach might be interesting but without direction it would
never get anywhere.

 2. supported computer languages? many or one?

Multi language design won't work IMO.  No one could just pop a whole set of
routines into someone else's computer and watch the result.  Different
language modules couldn't just fit together as needed.  Larger existing AGI
projects could communicate in the future by using sockets like Novamente,
A2I2 or others but this communication with proprietary systems (or other
language designs) wouldn't be the same as people working in the same
environment.

 3. organization?
 -try to find a small set of algorithms (seed AI)?
 -allow everything that is remotely useful?

If you think you can breed an intelligence from a small set of algorithms
then why not just make it and see if you can? (evolutionary algorithms
wouldn't have to be excluded from the research)  Limiting what people could
work on isn't a good idea but some lines of research have been tried and
found wanting.  People could be more useful by working in areas that most
others in the group believed to be most promising.  Unless someone is
getting paid, however, it is difficult to force them to NOT work in an area
they have interest in.  Not all code would have to be included in the AGI
design just because it was made.

 4. what is the easiest way for people to contribute?
 how could existing algorithms be added easily?
 -neural networks
 -logic
 -existing knowledge bases

I don't think the number of algorithms matters as much as getting some
promising results quickly.  Even some small promising results!

 5. what kind of problems should be the focus first?
  -visual/real world robotics?
  -abstract problems?

Is a blind person still intelligent?  Can someone still be intelligent if
they can't solve abstract problems?  The better question is: can a person
teach someone anything that doesn't understand your language?  I think to
build models that combine language/context and information would be a good
place to start.

 6. self-modification?
 -don't waste time on it, it will never give good results?
 -all the parts should be able to be modified easily?

If no self-modification then you have to build all the intelligence into the
data or people have to program the entire AGI by hand.  Does either of these
consequences appeal to you?  If the parts aren't easily modified and you
don't know exactly what might work, then the project doesn't have much
chance.

 7.organization in modules?
 -what is the best granularity?
 -how to generalize from them (in stead
 of just getting the sum of all the algorithms)?

I suggest that models produce a set of coded patterns.  These patterns could
be accessed to get lists of models that produce similar patterns in other
domains.  Testing could be done using algorithms from the initial domain to
help solve the problem in the new domain.  I think generalization should
occur at all levels, all the time.

 8. cpu power
 -only allow very fast, optimized algorithms
 -allow anything

Most importantly, it has to work, however, is Allow anything ok with you?

 9. the set of properties required
 -too large to do by hand?
 -try to let properties emerge?

Why not both?  Let the system evolve into what properties make sense.

 10. KBs. how to use them? how to reuse existing ones

I don't think existing KBs would be very useful because I think that
language/knowledge and context must be coded or learned together.  What
weight would you automatically assign to this information that you haven't
created and don't know the validity or completeness of?

 11. embodiment?  important or not?

If a person is paralyzed and can only type on a computer, are they still
intelligent?  If a knowledgeable person is helping you out on the internet
using instant messenger (no vision), are they still intelligent or useful?
Embodiment doesn't seem to be a requirement for intelligence in people.

 12. representations?
 -try to find a small set
 -allow everything

Why not try some small set and then throw out what you don't like and add
new if you think it necessary?

 13. learning.

Can a system have too many ways of learning?  So long as they work, why
isn't the more the merrier?

 14. how to make it scale well

Can many people work on different parts

Re: [agi] My proposal for an AGI agenda

2007-03-23 Thread Jey Kottalam

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

Suppose there was an AGI framework that everyone could add
their ideas to..   What properties should it have? I listed
some points below. What would it take for
you to use the framework? You can add points if you like.



I don't understand. Is the hypothesis that if we have enough people
writing and contributing AI modules according to their conception of
intelligence, and we wire up the modules up to each other, then AGI
will {result, emerge, pop out}? This doesn't sound like a feasible
approach. And, if there isn't a coherent picture of how the modules
are supposed to interact, how can you choose the design of
infrastructure like the language, organization, and knowledge base?
This seems backwards, to choose a design for the infrastructure then
fit an AGI design to the infrastructure. It's analogous to I don't
know to build a house, but I know I want to use a sledgehammer to do
it. :-)

-Jey Kottalam

-
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-03-23 Thread Samantha Atknis

David Clark wrote:


My AGI and my language was never designed to have millions and billions of
asynchronous, concurrent units.  My design certainly has the ability for
run a few thousand events simultaneously and pass messages efficiently
between them but this is not what you are asking.  My language would be
totally inadequate for the kind of solution you envision but I would argue
that for the kinds of systems I envision, current languages are equally
ill-suited.  I have a summary of the features in my system and some examples
concerning why Lisp wasn't suitable at  www.rccconsulting.com/aihal.htm
  

Here are a few thoughts on the list at your site.

The following is the list of language requirements I thought an AI would 
minimally need.


  1. Object Oriented.

OO is great except when it isn't.  What features do you want from OO?  
Encapsulation? Modularity? Inheritance? Reuse?  All wonderful but OO is 
not the only and in some situation not the best way to achieve them.  
Single dispatch or multi-dispatch?  Class based or prototype based or a 
mix?  Frame type contstructs?  Inheritance or delegation? 

2. All Classes, Methods, Properties, Objects can be created and changed 
easily by the program itself.


Is there a  MOP?  Can the implementation details be tweaked freely?  Can 
cross cutting concerns be cleaned expressed? 


3. Efficiently run many programs at the same time.

What is and isn't a program or unit of computation in your thinking?  
Is this part of the language or the OS or do you agree with Alan Kay 
that an OS is where you put all that stuff you failed to account for it 
the language?


4. Fully extensible.

So there is a MOP and the constructs of the language can be change, 
added to, implemente differently fairly freely?\


5. Built-in IDE (Interactive Development Environment) that allows 
programs to be running concurrently with program edit, compile and run.


IDE is just another program or set of programs.  I don't see it as being 
particular built-in except languages can support interpretation, 
reflection, JIT compilation, run time code generation and loading of 
code and so on that make development and deployment much more 
efficient.   Lisp machines had exactly the type of IDE you are talking 
about.  Smalltalk still does.  Both Lisp and Smalltalk allow changing 
code on the fly without restart. 


6. As simple as possible.

Hard to get much simpler than Lisp with as much power.

7. Quick programming turnaround time.

As above concerning interactive iterative devolopment without 
edit-compile-link-test cycles.  If you are concerned with portability 
writing the language in Java or even smalltalk would give you guaranteed 
portability on about every system out there.  You could also write in 
Python or Ruby and be much more productive that in C/C++ although you 
would want to later optimize crucial sections.


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.   

Only some programs spend most of their time in indexing, searching and 
other things you write about optimizing internally. 

Lisp allows the creation of new primitives, optimized as highly as you 
can imagine at any time. 

If this is mainly about developer productivity and power then getting 
too caught up in efficiency before addressing productivity and 
expressiveness and maintainability would be a mistake.


9. Simple hierarchy of Classes and of Objects.

  1. Simple Class inheritance.
  2. Simple external file architecture.
  3. Finest possible edit and compile without any linking of object
 modules.
  4. Scalable to relatively large size.
  5. Built in SQL, indexes, tables, lists, stacks and queues.
  6. Efficient vector handling of all data types.
  7. Internet interface.
  8. Runs on Windows PC machines.
  9. Can run as multiple separate systems on the same computer or in
 the background

Class inheritance is only one of many useful mechanisms.  Single or 
multiple?  Mixins supported?  Typing ?  What do you have in mind as 
needed external file arhicecture?  What kind of module structure?  SQL?  
Why?  Don't you want more OQL at least?  What kind of tables?  Data 
structures are trivial to build up in any reasonably powerful language 
so I guess some of this is about what is in the standard library.


On threading I have build an deployed systems running hundreds of 
threads as appservers on fairly normal mid to high-end desktops under 
both Windows and Linux coded in Java.   So it is certainly false that 
noone does this.  Many locking problems can be ameliorated by using more 
of a work-queue based approach. Often mechanism like thread-local 
storage can further reduce the amount of locking needed.  Threads can be 
done in a much more lightweight manner than some of the standard 

Re: [agi] My proposal for an AGI agenda

2007-03-23 Thread David Clark
- Original Message - 
  From: Shane Legg 
  To: agi@v2.listbox.com 
  Sent: Friday, March 23, 2007 10:34 AM
  Subject: Re: [agi] My proposal for an AGI agenda




  On 3/23/07, David Clark [EMAIL PROTECTED] wrote:
I have a Math minor from University but in 32 years of computer work, I
haven't used more than grade 12 Math in any computer project yet.

  ...

I created a bond comparison program for a major wealth investment firm that
used a pretty fancy formula at it's core but I just typed it in.  I didn't
have to create it, prove it or even understand exactly why it was any good. 

  IMO, creating an AGI isn't really a programming problem.  The hard part is
  knowing exactly what to program.  The same was probably true of your bond
  program: The really hard part was originally coming up with that 'fancy 
formula' 
  which you just had to type in.

Both the code and algorythmn must be good for any computer system to work and 
neither is easy.  The bond formula was published for many years but this 
particular company certainly didn't have a copy of it inside a program they 
could use.  The formula was 1 line of at least 4K lines of code.  The program 
wasn't so trivial either :)  The formula didn't do they any good at all until 
my program made it useful to them.  The first year, the program netted the 
company's clients over 10M in extra profits.


  Thus far math has proven very useful in many areas of artificial intelligence,
  just pick up any book on machine learning such as Bishop's.  Whether it will
  also be of large use for AGI... only time will tell. 

  Shane

Is the research on AI full of Math because there are many Math professors that 
publish in the field or is the problem really Math related?  Many PhDs in 
computer science are Math oriented exactly because the professors that deem 
their work worth a PhD are either Mathematicians or their sponsoring professor 
was.

I have read many books on AI and I had a Math professor as a business partner 
in my computer work for 10 years.  I would challenge anyone to find a non Math 
oriented major computer program that was designed and implemented by a formal 
Mathematician.  I can give you many examples where they weren't.

-- David Clark

-
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-03-23 Thread Samantha Atknis

Ben Goertzel wrote:


Regarding languages, I personally am a big fan of both Ruby and 
Haskell.  But, for Novamente we use C++ for reasons of scalability.
I am  curious as to how C++ helps scalability.  What sorts of 
scalability?  Along what dimensions?  There are ways that C++ does not 
scale so well like across large project sizes or in terms of 
maintainability.   It also doesn't scale that well in terms of  space 
requirements if the  class hierarchy gets  too deep or uses much  
multiple inheritance  of  non-mixin classes.   It also doesn't scale 
well in large team development.  So I am curious what you mean.



-
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-03-23 Thread David Clark
I appreciate the amount of effort you made in replying to my email.

Most of your questions would be answered if you read the documentation on my 
site.  The last time I looked, LISP had no built-in database.  Has this changed 
recently?  Does it still use that idiotic prefix notation?  My internal byte 
code uses just such a system but it is meant for a computer to read not a human.

I set out a list of attributes that I believed a language should have to create 
an AGI.  I found no SINGLE language that contained even a subset of those 
attributes.  I have spent a huge amount of time creating my system to it's 
current level but I would stop my development, today, if a single computer 
language could meet my original spec list.

I bought my first PC in 1976.  I have owned many different micro computer 
systems even before the PC was invented.  I helped design and program a PC from 
the ground up in 1979 including a muti-user CPM operating system that ran in 
64K of memory.  I worked on a Mac to convert a language/database program in 
1984.  I have used main frames, mini's and many non PC systems.  I have 
programmed in at least 30 computer languages and I have created more than a few 
myself.  I don't think I know everything about micros or languages but I am not 
a newbie or without PC experience.  Unlike most people that have had a long 
career, I have spent ALL my career (30+ years) using micro computers.

Linux stinks!  I have had my linux box at my right knee now for the past 6 
years and I can't wait to get rid of it.  I dislike the linux culture, the 
cryptic operating system commands, the massive number of versions and the buggy 
(free) code.  Six years ago, I bought over 1 foot high of documentation and 
taught myself Linux, VIM, Apache, PHP3, MySQL, HTML, and sendmail.  I had a 
commercial website up and running in 30 days that logged over 150k in sales in 
it's first 3 months without advertising.  It now is automatically updated and 
synchronized from my clients computer 600 miles away multi times a day.  You 
might not agree with my conclusions but I wanted you to know that my 
conclusions are based on first hand experience and not from books or third 
parties!

Most of the PC's in the world run Windows.  I personally don't much like 
Microsoft but with 95% of users using it, I think I'll stick with the crowd.  I 
dislike Mac and Linux much more.  That's just my professional opinion.

I have programmed my language in C++ but only the small amount of code that 
implements the IDE is actually not in portable C.  Very little of the 
non-standard or Windows specific functions were used in my code.  I do have 
plans to implement the language on Linux in the future but many other things 
are a higher priority.

If your language is one OS dependent then it sucks from the beginning.

I guess this is your form of *constructive criticism*.  Thanks!

You say you looked at different languages such as Lisp but your comments say 
you didn't really understand what you were looking at all.

What exact examples do you disagree with?  Do you think the examples I took 
verbatim from the official Lisp web site were made up?  Do YOU understand or do 
you just know the code words?

-- David Clark




  - Original Message - 
  From: Samantha Atknis 
  To: agi@v2.listbox.com 
  Sent: Friday, March 23, 2007 3:37 PM
  Subject: Re: [agi] My proposal for an AGI agenda



  I think you are pretty much stark raving here. :-)   Linux is not cryptic 
compared to Windoze in the least.  I have worked with Window many, many times.  
When I have a Windows machine that I bought myself it inevitably gets converted 
to Linux within 6 months.  Usually this is after I have had to reinstall the OS 
at least once to fix the breakage that is the  Windows registry.  It IDEs for 
C/C++ are not bad if you don't mind having window-isms leak into every part of 
your code.  .Net is a step into much better direction but I can get most of 
that goodness under Mono and run on more platforms.   Windows GUI is not very 
good at all once you have lived on the Mac world for very long.  The Mac 
running OS X gives most of the advantages of Unix on a very visually 
well-designed system with excellent tools.  Windows is a disaster for hacking.  
Most of the nomal cli tools are utterly brain dead.  I always load cygwin and 
live under it as much as possible on windoze.  We want even get into the virus 
breeding idiocy that is Windows.  

  At the least go the Mac route.  That is my choice today for the most of the 
things I care about.  Especially now that I can easily run Linux and/or Windows 
when I need to in virtual machines (Parallels).   For many years I did not have 
any Windows machine and I had no trouble working just fine with the rest of the 
world.  What few Windows programs I needed ran fine under Wine or had quite 
useable alternatives. 

  If your language is one OS dependent then it sucks from the beginning.


  You say you

Re: [agi] My proposal for an AGI agenda

2007-03-23 Thread Ben Goertzel

David Clark wrote:

I appreciate the amount of effort you made in replying to my email.
 
Most of your questions would be answered if you read the documentation 
on my site.  The last time I looked, LISP had no built-in database.


Allegro Lisp has a very nice (easy to use, scalable, damn fast) built in 
database, FYI



ben

-
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-03-23 Thread Samantha Atknis

David Clark wrote:

I appreciate the amount of effort you made in replying to my email.
 
Most of your questions would be answered if you read the documentation 
on my site.  The last time I looked, LISP had no built-in database.  
Has this changed recently?  Does it still use that idiotic prefix 
notation?  My internal byte code uses just such a system but it is 
meant for a computer to read not a human.


I read your site.  Lisp does not need a built in database if it can use 
existing databases.  There is Allegro Cache.  The syntax is not at all 
idiotic.  It is a simple, yet packs incredible power.  It is what 
enables data is code and code is data.  It is a large part of why Lisp 
is the premier language  for creating DSLs and is the language the 
majority of new language features were first invented and tested in.   
But that you simply call it idiotic probably means it is not 
worthwhile to attempt to convince you.


I built my first PC in 1976.  In 1985 I created a persistent distributed 
OO development platform.  Do you really want this kind of contest or do 
your points stand or fall on their own?


- samantha


-
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-03-22 Thread Charles D Hixson

Chuck Esterbrook wrote:

On 3/20/07, Charles D Hixson [EMAIL PROTECTED] wrote:

rooftop8000 wrote:
 ...
 I think we should somehow allow people to use all the program 
languages they want.


That somehow is the big problem.  Most approaches to dealing with it
are...lamentable.
 ...
 You can use closed modules if you have meta-information on
 how to use them and what they do. It's like having an API and not
 worrying about the inner workings...

Module level communication is probably too low a level.   Socket level
communication can work easily between arbitrary languages, but it's
cumbersome, so it's generally best if you have large sections devoted to
any particular language.

P.S.:  There are exceptions.  E.g. D claims to work well with C, and
Pyrex works well with C.  OTOH, D and Python each have their own garbage
collection mechanism, and they don't synchronize at all, so going from
Python to C to D (or conversely) is going to have a lot of overhead.
Add Java to the mix and you have THREE garbage collectors.  Haskell
would make four.  This isn't something you're going to want to carry
around for a small chunk of code.  Better if it's large pieces that talk
over TCP/IP, or something analogous.  (And TCP/IP is ubiquitous.)


The best solution I've seen for this to date in MS .NET and its open
source clone, Novell Mono. You can, for example, run C#, VB, J#, C++,
IronPython, IronRuby and many more languages on the same platform in
the same process. While this is also true of the JVM, there are some
explicit aspects of .NET that make it appealing for multiple
languages. It has a standard for source code generation so that tools
that do so can work with any language (that provides a simple
adapter). It has callbacks/delegates which are found in many languages
and thereby makes it easier to get those languages working and
efficient. Upcoming .NET enhancements, such as in-language query, are
also being designed in a language independent fashion from the get go.

Also, MS hired the developer of IronPython to work on it full time and
also inform them on making .NET an even better platform for dynamic
languages. He had previously implemented Python on Java (called
Jython) and I find it interesting that the .NET version performs
substantially faster (see
http://weblogs.asp.net/jezell/archive/2003/12/10/42407.aspx).

Regarding communication between modules, I agree with others that
there are better choices than English, but more importantly, if you're
going to really push for multiple contributors, the best might be to
encourage them to use one or more from a set such as:

* json data
* xml data
* csv
* first order logic
* lojban
* Simple English (http://en.wikipedia.org/wiki/Simple_English_Wikipedia)
* English

And then let the marketplace work it out. Your language or library
could provide automatic views of objects, classes, etc. in a couple of
these formats.

-Chuck

Unfortunately, MS is claiming undefined things as being proprietary.  As 
such, I intend to stay totally clear of implementations of it's 
protocols.  Including mono.  I am considering jvm, however, as Sun has 
now freed the java license (and was never very restrictive).



-
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-03-22 Thread Chuck Esterbrook

On 3/22/07, Charles D Hixson [EMAIL PROTECTED] wrote:

Unfortunately, MS is claiming undefined things as being proprietary.  As
such, I intend to stay totally clear of implementations of it's
protocols.  Including mono.  I am considering jvm, however, as Sun has
now freed the java license (and was never very restrictive).


Do you have details or a reference? I would be interested in having a look.

-Chuck

-
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-03-22 Thread Charles D Hixson

Chuck Esterbrook wrote:

On 3/22/07, Charles D Hixson [EMAIL PROTECTED] wrote:

Unfortunately, MS is claiming undefined things as being proprietary.  As
such, I intend to stay totally clear of implementations of it's
protocols.  Including mono.  I am considering jvm, however, as Sun has
now freed the java license (and was never very restrictive).


Do you have details or a reference? I would be interested in having a 
look.


-Chuck
Sorry, they aren't *being* specific.  It may well have nothing to do 
with dot-net, it's just too vague to see what they're talking about.  As 
for a reference, look at the recent comments about patents and the 
Novell deal.  They're claiming something...but one can't determine 
what.  I live in the US, so I'm playing safe, and avoiding both Novell 
and dotnet (including mono).  All I know is it can't be more than about 
17 years old, and it can't be something that they're barred from 
claiming via estoppel.  But I'm no lawyer, so I'm not sure what that 
is.  Various comments and personalities have caused me to suspect that 
it's something involving mono...but this is definitely not clear and 
convincing, it's just the best info I have.  (Partially because Miguel 
De Icaza was all in favor of the deal, and he's heavily involved in mono.)




-
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-03-22 Thread John Rose
Enhancements to existing computer languages or new computer languages that
could possibly grease the wheels for AGI development would be aligning the
language more closely to mathematics.  Many of the computer languages are
the same old things rehashed in different though new and evolutionarily
better ways but nothing I've seen too revolutionary.  Same old looping
structures, classes, OOP, etc.. nothing new.  But if someone could add some
handy math structures into the language - group/ring theory, category
theory, advanced graph structures have this stuff built right in not
utilized through add-ons or libraries or coded in house.  These math
structures should be standardized and made part of the language now.
Believe me, non mathematician programmers would learn these tools rapidly
and use them in new and exciting ways.  Now many are going in all sorts of
wild goose chase directions due to lack of standard mathematical guidance
built in.  Growing a crop of potential AGI developers who don't need no math
PHd's would happen if this came about.  Granted good C++ coders can
accomplish just about anything with the language, there is a complexity
overhead tradeoff that needs to be maintained in doing so (in exchange for
speed usually in C++).  But as many here understand, having good patterns,
algorithms and particularly math systems and structures, speed issues can be
bridged and many times eliminated by designing and solving things through
math verses CPU cycles.  Now naturally AGI systems can and do have
handcrafted or other incorporated languages built in, these too many times
suffer from the same limitations.  Though I imagine certain AGI's have some
pretty advanced languages cooked up inside.  And perhaps these are the ones
that grapple more efficiently with machine and network resource
limitations

John

-Original Message-
From: David Clark [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 21, 2007 10:16 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda

I totally agree that maximum speed is required for AGI.  I agree with Ben
that flexabilty is also needed (he might have said liked, not needed) like
seen in Ruby.  My language IDE has a small simple editor built-in that
automatically reformats the code and compiles as it saves making compiling
totally invisible.  Edit/compile/run turnaround is as fast as one click of
the mouse.  My system, although unintentionally somewhat like Ruby (my
system was totally designed without any knowledge of Ruby) has almost all of
it's flexability while retaining almost the speed of C++.  My worst case
internal looping is 15x slower than C++ but most functions and overall
program execution are much closer to C++ speed.  The looping overhead on my
machine is about 10M/sec for a store operation.  My looping speed is 2-3
times faster than Visual FoxPro which is very fast for a compiler/byte code
interpreter.  I haven't tested Ruby on my machine but I would suggest it's
looping overhead to be at least 100-200 times slower than C++.  My indexing
times are similiar to Visual FoxPro or better.  I have never seen a faster
indexing/data access system than Visual FoxPro (any bench mark between MySQL
and Visual FoxPro would be no contest at all).  I can import 100,000
names/addresses in 1.5 seconds and search every record in this file by first
name, last name and prov in 1/10 second (data searched is 17.8M and all
records are stored on the disk).  I have tested full text search on 16K
emails representing 100M of data in 1 second where the data is stored on the
disk (it would be faster if only in memory).  I have had 2.5K programs
running at the same time and created tables of over 2M records.  I have
created arrays up to 10M elements. (size is limited to memory space)

-- David Clark

- Original Message - 
From: Chuck Esterbrook [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, March 20, 2007 7:43 PM
Subject: Re: [agi] My proposal for an AGI agenda


 Sometimes the slowness of a program is not contained in a small
 portion of a program. Especially, after a few rounds of profiling and
 improving performance render the profile graph fairly flat.

 I experienced this on a financial program that I ported from Python to
 C# for an 18 X speed up (and I had already improved the Python program
 itself 2 - 4 X (memory getting fuzzy...) before running out of
 reasonable ways to make it faster). So then instead of having to wait
 20 minutes per run to study the results and continue development, I
 only needed to wait a little over a minute. That made a *huge*
 improvement in speed of development.

 Unfortunately, C# is not a rapid coding language like Python and Ruby
 and consequently some of the speed up (but not all) was lost in
 development.

 There are some applications that don't suffer much from this either
 because they are overwhelmed by external factors (such as network
 latency), or they are a small part of the system (providing glue

Re: [agi] My proposal for an AGI agenda

2007-03-22 Thread Kevin Peterson

On 3/22/07, John Rose [EMAIL PROTECTED] wrote:

Enhancements to existing computer languages or new computer languages that
could possibly grease the wheels for AGI development would be aligning the
language more closely to mathematics.  Many of the computer languages are

[...]

This would be counter productive. Give a man a hammer, ..., give a man
Prolog, and everything is a problem in logic, give him Lisp and
everything is symbols, give him high order language structures to deal
with sets, groups, graphs, and everything will be expressed via those.
Force him to think about his data structures and representation, and
at least it will be clear that there are choices to be made, that
there should be reasoning behind things.

This thread has been going on for what, weeks? The argument has been
going on since the beginning of time. If you think you need to invent
a new language to accomplish something, you don't know how to do it,
and creating the language will accomplish nothing. Every good language
has been a refinement of techniques that have grown popular in other
languages.

Solutions are best to well specified problems. AI is hard isn't
specific. Self modifying code is difficult in Java is the kind of
problem that may warrant using a different language. Wait, let me
qualify that. Self modifying code is difficult in Java _and I've got
a design thought up that will make use of self modifying code_ is the
kind of problem that may warrant using a different language. But AGI
is not going to be hacked together by some undergrad between WOW
sessions once he's given the right tools.

The portions of the first seed AGI that are written by humans will not
be written in a language designed for that project.

-
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-03-22 Thread Chuck Esterbrook

Sun has a fairly new language called Fortress that is targeted to
scientists and engineers, and it has stronger notions of built-in math
than your typical OO language. I don't know (and probably doubt) that
it has the group/ring theory, category theory, etc. that you're
looking for, but you can check into it yourself (if you haven't
already):

http://www.google.com/search?hl=enq=sun+fortressbtnG=Search


On 3/22/07, John Rose [EMAIL PROTECTED] wrote:

Enhancements to existing computer languages or new computer languages that
could possibly grease the wheels for AGI development would be aligning the
language more closely to mathematics.  Many of the computer languages are
the same old things rehashed in different though new and evolutionarily
better ways but nothing I've seen too revolutionary.  Same old looping
structures, classes, OOP, etc.. nothing new.  But if someone could add some
handy math structures into the language - group/ring theory, category
theory, advanced graph structures have this stuff built right in not
utilized through add-ons or libraries or coded in house.  These math
structures should be standardized and made part of the language now.
Believe me, non mathematician programmers would learn these tools rapidly
and use them in new and exciting ways.  Now many are going in all sorts of
wild goose chase directions due to lack of standard mathematical guidance
built in.  Growing a crop of potential AGI developers who don't need no math
PHd's would happen if this came about.  Granted good C++ coders can
accomplish just about anything with the language, there is a complexity
overhead tradeoff that needs to be maintained in doing so (in exchange for
speed usually in C++).  But as many here understand, having good patterns,
algorithms and particularly math systems and structures, speed issues can be
bridged and many times eliminated by designing and solving things through
math verses CPU cycles.  Now naturally AGI systems can and do have
handcrafted or other incorporated languages built in, these too many times
suffer from the same limitations.  Though I imagine certain AGI's have some
pretty advanced languages cooked up inside.  And perhaps these are the ones
that grapple more efficiently with machine and network resource
limitations

John

-Original Message-
From: David Clark [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 21, 2007 10:16 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda

I totally agree that maximum speed is required for AGI.  I agree with Ben
that flexabilty is also needed (he might have said liked, not needed) like
seen in Ruby.  My language IDE has a small simple editor built-in that
automatically reformats the code and compiles as it saves making compiling
totally invisible.  Edit/compile/run turnaround is as fast as one click of
the mouse.  My system, although unintentionally somewhat like Ruby (my
system was totally designed without any knowledge of Ruby) has almost all of
it's flexability while retaining almost the speed of C++.  My worst case
internal looping is 15x slower than C++ but most functions and overall
program execution are much closer to C++ speed.  The looping overhead on my
machine is about 10M/sec for a store operation.  My looping speed is 2-3
times faster than Visual FoxPro which is very fast for a compiler/byte code
interpreter.  I haven't tested Ruby on my machine but I would suggest it's
looping overhead to be at least 100-200 times slower than C++.  My indexing
times are similiar to Visual FoxPro or better.  I have never seen a faster
indexing/data access system than Visual FoxPro (any bench mark between MySQL
and Visual FoxPro would be no contest at all).  I can import 100,000
names/addresses in 1.5 seconds and search every record in this file by first
name, last name and prov in 1/10 second (data searched is 17.8M and all
records are stored on the disk).  I have tested full text search on 16K
emails representing 100M of data in 1 second where the data is stored on the
disk (it would be faster if only in memory).  I have had 2.5K programs
running at the same time and created tables of over 2M records.  I have
created arrays up to 10M elements. (size is limited to memory space)

-- David Clark

- Original Message -
From: Chuck Esterbrook [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, March 20, 2007 7:43 PM
Subject: Re: [agi] My proposal for an AGI agenda


 Sometimes the slowness of a program is not contained in a small
 portion of a program. Especially, after a few rounds of profiling and
 improving performance render the profile graph fairly flat.

 I experienced this on a financial program that I ported from Python to
 C# for an 18 X speed up (and I had already improved the Python program
 itself 2 - 4 X (memory getting fuzzy...) before running out of
 reasonable ways to make it faster). So then instead of having to wait
 20 minutes per run to study the results and continue development, I

Re: [agi] My proposal for an AGI agenda

2007-03-21 Thread Shane Legg

On 3/21/07, Chuck Esterbrook [EMAIL PROTECTED] wrote:

Sometimes the slowness of a program is not contained in a small

portion of a program.



Sure.  For us however this isn't the case.

Cobra looks nice, very clean to read, even more so than Python.
However the fact that it's in beta and .NET sort of kills it for us.

As we will be going into high performance computing, we have
no choice but to do the core work in plain C running on Linux.

Shane

-
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-03-21 Thread Chuck Esterbrook

On 3/21/07, Shane Legg [EMAIL PROTECTED] wrote:

On 3/21/07, Chuck Esterbrook [EMAIL PROTECTED] wrote:

 Sometimes the slowness of a program is not contained in a small
 portion of a program.

Sure.  For us however this isn't the case.

Cobra looks nice, very clean to read, even more so than Python.
However the fact that it's in beta and .NET sort of kills it for us.

As we will be going into high performance computing, we have
no choice but to do the core work in plain C running on Linux.


.NET and Mono. The latter is developed on Linux and Cobra releases are
tested on Mono.

But I can see how the beta status excludes it from efforts that are
already underway.

-Chuck

-
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-03-21 Thread rooftop8000

--- YKY (Yan King Yin) [EMAIL PROTECTED] wrote:

 On 3/20/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
 
  [...]
 
  But you could always allow people to make their own critics (modules)
  in any way, as long as they are executable. So people can still use there
  preferred way of doing things and contribute.
 
  Singh described a central hierarchy of critics, but it will be probably
  be better to distribute it somehow, so different people can run their
  own hierarchy  and communicate results  over the web to other
  people (connecting different hierarchies into a big one)
  They can also fine-tune things (spend cpu-time on what they find
  interesting) and maybe locally test out their own critics.
 
  This can scale very well. People can offer their own modules
  for people to run and reflective critics will probably be designed that
 favor
  the most useful modules.
 
  Singh uses 1 type of representation for communication between all
  the modules. This isn't really necessary, you can use any data structure
 for
  critic to critic communication. But you'll need to make flexible ones for
  the critics you code, or people won't collaborate.
 
  Do you guys think all this makes sense? Are there any previous
 collaboration
  attempts like this that i should be aware of?
  Thanks
 
 Just one big question:  are you way *overestimating* the number of people
 who could contribute such modules?  Is your idea like, people contributing
 modules for face-recognition, fruit-recognition, license-plate recognition,
 etc, etc, and you join these modules together?  What mechanism do you have
 to ensure that you would end up with a system that can recognize *all*
 things?
 
 It seems that you're taking the idea of online collaboration too far.
 (Please correct me if I've mistaken your position...)
 
 YKY
 


I think splitting things up in small manageable modules will allow this.
Not all the work is developing some killer learning algorithm, you also 
need a lot of modules in between that do simpler tasks 

For example simple translation modules or modules that handle connections
to peers over the web... Modules that manage a knowledge database... I'm sure
a lot of people can help. 

I am not sure this ends up being able to recognize all things. I will
be happy to see a system where people can add their ideas ( new and
existing) to with minimal effort, but thats a huge step in the good 
direction, i think

I still have no idea how it could work though, ideas are welcome :)





 

Food fight? Enjoy some healthy debate 
in the Yahoo! Answers Food  Drink QA.
http://answers.yahoo.com/dir/?link=listsid=396545367

-
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-03-21 Thread David Clark
I totally agree that maximum speed is required for AGI.  I agree with Ben
that flexabilty is also needed (he might have said liked, not needed) like
seen in Ruby.  My language IDE has a small simple editor built-in that
automatically reformats the code and compiles as it saves making compiling
totally invisible.  Edit/compile/run turnaround is as fast as one click of
the mouse.  My system, although unintentionally somewhat like Ruby (my
system was totally designed without any knowledge of Ruby) has almost all of
it's flexability while retaining almost the speed of C++.  My worst case
internal looping is 15x slower than C++ but most functions and overall
program execution are much closer to C++ speed.  The looping overhead on my
machine is about 10M/sec for a store operation.  My looping speed is 2-3
times faster than Visual FoxPro which is very fast for a compiler/byte code
interpreter.  I haven't tested Ruby on my machine but I would suggest it's
looping overhead to be at least 100-200 times slower than C++.  My indexing
times are similiar to Visual FoxPro or better.  I have never seen a faster
indexing/data access system than Visual FoxPro (any bench mark between MySQL
and Visual FoxPro would be no contest at all).  I can import 100,000
names/addresses in 1.5 seconds and search every record in this file by first
name, last name and prov in 1/10 second (data searched is 17.8M and all
records are stored on the disk).  I have tested full text search on 16K
emails representing 100M of data in 1 second where the data is stored on the
disk (it would be faster if only in memory).  I have had 2.5K programs
running at the same time and created tables of over 2M records.  I have
created arrays up to 10M elements. (size is limited to memory space)

-- David Clark

- Original Message - 
From: Chuck Esterbrook [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, March 20, 2007 7:43 PM
Subject: Re: [agi] My proposal for an AGI agenda


 Sometimes the slowness of a program is not contained in a small
 portion of a program. Especially, after a few rounds of profiling and
 improving performance render the profile graph fairly flat.

 I experienced this on a financial program that I ported from Python to
 C# for an 18 X speed up (and I had already improved the Python program
 itself 2 - 4 X (memory getting fuzzy...) before running out of
 reasonable ways to make it faster). So then instead of having to wait
 20 minutes per run to study the results and continue development, I
 only needed to wait a little over a minute. That made a *huge*
 improvement in speed of development.

 Unfortunately, C# is not a rapid coding language like Python and Ruby
 and consequently some of the speed up (but not all) was lost in
 development.

 There are some applications that don't suffer much from this either
 because they are overwhelmed by external factors (such as network
 latency), or they are a small part of the system (providing glue), or
 they have a specific piece of code that overwhelms performance which
 can be pushed out to C or C++ (tight inner loop).

 But there's plenty of programs that are down right fascinating *and*
 compute intensive including AGI, GP/GA/EC, NNs, simulation, finances,
 compression, search and more. Many of these require speed in order to
 work with non-trivial data sets while still enabling a fast run,
 study, edit loop. And, of course, you want quick, high level coding
 to keep the run, study, edit loop tight as well.

 I think we can have both with the right language design. I'll finish
 this off in a response to Ben in this same thread...

 -Chuck

 -
 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


-
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-03-20 Thread rooftop8000

--- Ben Goertzel [EMAIL PROTECTED] wrote:

 rooftop8000 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
 
 The Novamente core system actually does fits this description, but
 
 1)
 the API is in some places inelegant, though we have specific
 plans for improving it
 
 2)
 it's C++, which some folks don't like
 
 3)
 it currently only runs on Unix systems, though a Windows port
 will likely be made during the next month, as it happens
 
 4)
 it is proprietary
 
 
 If there would be use for such a thing, I would consider open-sourcing
 the Novamente core system, separate from the specific learning modules
 we have created to go with it.  I would only do so after the inelegancies
 mentioned above (point 1) are resolved though.

what kind of things does it contain that will facilitate a big collaboration?
(because you only list the negative points)


 
 My own view these days is that a wild combination of agents is
 probably not the right approach, in terms of building AGI. 
 
 Novamente consists of a set of agents that have been very carefully
 sculpted to work together in such a way as to (when fully implemented
 and tuned) give rise to the right overall emergent structures.
 
 The Webmind system I was involved with in the late 90's was more
 of a heterogeneous agents architecture, but through that experience
 I became convinced that such an approach, while workable in principle,
 has too much potential to lead to massive-dimensional parameter-
 tuning nightmares...

not if you let everyone take care of their own piece of code.
i think it is unavoidable to have a large degree of heterogeneity
in the system (modules), if you want it to handle a wide range of
problems. 

 
 This gets into my biggest dispute w/Minsky (and Push Singh): they
 really think intelligence is just about hooking together a sufficiently
 powerful community of agents/critics/resources whatever, whereas
 I think it's about hooking together a community of learning algorithms
 that is specifically configured to give rise to the right emergent
 structures/dynamics. 

I agree. picking a small subset of algorithms gives you an easier
and prettier system. But you can never make sure you have the right ones.
Combining a lot of imperfect ones is just more likely to give a more
powerful system. 

I'd love to hear more about what the Novamente core system can offer
bye


 

Food fight? Enjoy some healthy debate 
in the Yahoo! Answers Food  Drink QA.
http://answers.yahoo.com/dir/?link=listsid=396545367

-
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-03-20 Thread David Clark
- Original Message - 
From: rooftop8000 
To: agi@v2.listbox.com 
Sent: Monday, March 19, 2007 2:42 PM
Subject: Re: [agi] My proposal for an AGI agenda


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 have seen multiple times where others have lamented an adequate platform that 
can be used for creating an AGI.  One that has full introspection, speed, power 
tools, self programmability and extreme flexibility.  I came to this conclusion 
about 3 years ago and have been creating that environment ever since.  I think 
I have a tool that can create an AGI made up of multiple techniques while 
communicating at a high level in plain English.  See my website for a short 
description of the capabilities of this development system. 
www.rccconsulting.com/goals.htm

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 

The AI architecture I have been planning uses models that communicate in 
plain English.  These models (and models containing unlimited number of other 
models) could contain any number of algorithms including logical systems, 
problem solving etc.  These models could also communicate with tools (programs 
outside of this system) that could utilize special hardware like FPGAs and 
special processing clusters (groups of simple CPUs described by Eugen Leitl).  
Models could communicate with systems like Novamente using standard sockets but 
I would suspect that most models would be created in the dev system.

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).

I propose using standard English and subsets of this depending on the level of 
the communication.  I have a facility in the dev language where machine 
readable documentation can be added to Objects so that Objects could be asked 
what they can do and have programs change their behavior based on that info. 
(small point but just an illustration of the capability of the dev system)

The first choice is probably: Do you choose for 1 programming
language? Do you allow closed source systems as long as they can 
provide some service?

Most of the development in my proposal is in the AI which would be open to 
groups of developers that are helping to develop the AGI.  Open source for the 
development environment would take valuable time away from the AGI development 
and it wouldn't create a better environment in any case.  I have a document 
that shows some of my ideas on how people could contribute to my project 
without spending money but also have a chance to profit from AGI work.  
www.rccconsulting.com/money.htm

 I think push singh's framework is a very good starting point. 
Although i wouldn't choose LISP because there are too few people that
 know it and you'll need a lot of people. 

LISP has many faults and lacks the kind of power tools needed to develop an 
AGI.  It was designed in the 1960's and had it's OOP objects tacked on like C++ 
in the 1990's.  The system I have created is more like Ruby on steroids.  Think 
flexibility with a full database, speed, macro's (like LISP), and program code 
creation and execution by your program or you, while the system runs!

I think Java could be a good choice because it's the most used and 
has the most tools available. Although reflection and interpreting code
are  pretty hard in Java. And you can't just easily add/execute 1 line of 
code like in LISP or prolog, i think. So I'm not sure about this choice.

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.

But you could always allow people to make their own critics (modules) 
in any way, as long as they are executable. So people can still use there 
preferred way of doing things and contribute.  

This wouldn't allow at least some of the potential developers to work with 
modules created by the others.  This would mean back to square one or close to 
it.

Singh described a central hierarchy of critics, but it will be probably 
be better to distribute it somehow, so different people can run their 
own hierarchy  and communicate results  over the web to other 
people (connecting different hierarchies into a big one)
They can also fine-tune things (spend cpu-time on what they find 
interesting) and maybe locally test out their own critics. 

This connection of object hierarchies is built into my development system.  A 
whole system of Classes, Methods and Objects could be automatically sent (via

Re: [agi] My proposal for an AGI agenda

2007-03-20 Thread Ben Goertzel


 For people who might be interested in influencing some of the 
features of this system, I would appreciate them looking at my 
documentation at www.rccconsulting.com/hal.htm 
http://www.rccconsulting.com/hal.htm  Although my system isn't quite 
ready for alpha distribution yet, I expect that it will be within a 
few months.  People that help with the alpha and beta testing will be 
given consideration on the use of the system in the future even if 
they don't participate in the AGI development.
 
When this project goes ahead, I think even Ben (who has a huge 
intellectual and financial investment in his Novamente project) will 
be interested in the experiments and results a system like I am 
proposing will have, even if he never interfaces his program with it.
 


http://v2.listbox.com/member/?list_id=303


Your programming language looks interesting, and well designed in many 
ways, but I have never been convinced that the inadequacies of current 
programming languages are a significant cause of the slow progress we 
have seen toward AGI.


If you were introducing a radically new programming paradigm for AGI, I 
would be more interested  Not that I think this is necessary to 
achieve AGI, but I would find it more intellectually stimulating ;-)


Regarding languages, I personally am a big fan of both Ruby and 
Haskell.  But, for Novamente we use C++ for reasons of scalability.


-- Ben


-
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-03-20 Thread rooftop8000

 
 I have seen multiple times where others have lamented an adequate platform 
 that can be used for
 creating an AGI.  One that has full introspection, speed, power tools, self 
 programmability and
 extreme flexibility.  I came to this conclusion about 3 years ago and have 
 been creating that
 environment ever since.  I think I have a tool that can create an AGI made up 
 of multiple
 techniques while communicating at a high level in plain English.  See my 
 website for a short
 description of the capabilities of this development system. 
 www.rccconsulting.com/goals.htm
 


I think we should somehow allow people to use all the program languages they 
want.

Why should people learn another language if they can code their ideas in a 
language they already
know? (Not all modules have to introspective or fast to be useful). If modules 
can have different
representations, why not allow different code too. 

A nice test for a collaboration framework is: how fast can you incorporate 
existing
algorithms? In your case it will be very slow because
0. developing your system from scratch so it wont be perfect right away
1. people have to learn a new language 2. translating the code into a language
other that the ones it is designed in usually make it worse/less elegant.


 But you could always allow people to make their own critics (modules) 
 in any way, as long as they are executable. So people can still use there 
 preferred way of doing things and contribute.  
 
 This wouldn't allow at least some of the potential developers to work with 
 modules created by
 the others.  This would mean back to square one or close to it.

You can use closed modules if you have meta-information on
how to use them and what they do. It's like having an API and not
worrying about the inner workings...

 It is easy to show that 1 rep isn't enough.  However, binary interfaces (in 
 general) require a
 huge overhead if many independent modules need to communicate (meta data 
 communication and
 translators between modules etc).  The best approach is to use a form of 
 English IMO.  An
 exception to this would be groups of low level models where large standard 
 data structures
 (Objects) could work on sensory data etc.  These groups of objects would 
 contain a higher level
 interface in plain English to communicate with other modules.

Why not use the communication that is easiest for the modules?
If you have a NN module, let it output numbers; logic modules can output logic.
You just have to make translation modules when necessary. 





 

It's here! Your new message!  
Get new email alerts with the free Yahoo! Toolbar.
http://tools.search.yahoo.com/toolbar/features/mail/

-
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-03-20 Thread David Clark
 If you were introducing a radically new programming paradigm for AGI, I
 would be more interested  Not that I think this is necessary to
 achieve AGI, but I would find it more intellectually stimulating ;-)


If you care to detail what kind of problem or structure you find hard to
deal with in C++ or other major languages, I would be interested either on
or off list.  I have created some primitives that return the difference or
similarity of both meta data and value data in objects.  By combining a few
methods, I can easily categorize an object into a class of objects and using
weights predict what the object is based on less the total information.  I
have extensive built-in parsing of character strings based on a character,
list of keywords etc.  A single version of my encode method can produce the
HTML given some wiki text.  XML can be decoded directly in a tree object as
well as any branch of the Class or Object hierarchies.


 Regarding languages, I personally am a big fan of both Ruby and
 Haskell.  But, for Novamente we use C++ for reasons of scalability.

With your huge investment in C++ code, I would be leery of any suggestion of
language change as well.  It is hard to evaluate the robustness and
scalability of a language from only documentation where the actual code
isn't available yet.  I think once you actually get a copy, you might just
change your mind about the scalability and speed of this system but I know
all that probably won't be enough for you to switch.  Just you having a
small interest in the outcome of this project as it goes forward would be
great for me.

-- David Clark


-
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-03-20 Thread Ben Goertzel

David Clark wrote:

If you were introducing a radically new programming paradigm for AGI, I
would be more interested  Not that I think this is necessary to
achieve AGI, but I would find it more intellectually stimulating ;-)




If you care to detail what kind of problem or structure you find hard to
deal with in C++ or other major languages, I would be interested either on
or off list. 


Well, **anything** can be dealt with in C++, it's just a matter of how 
awkward it is.


For instance, using Boost you can do lambda-calculus in C++ ... but it's 
not the most elegant

way to do lambda-calculus

The biggest thing I miss in C++ are higher-order functions, as you find 
in Haskell for example.


And, at the opposite end of the spectrum, I'm a big fan of Ruby's duck 
typing , as well ...


But I can see that duck typing and higher-order types provide compiler 
writers with a lot of

challenges, where efficiency is concerned...

I am hopeful that recent advances in programming language theory will 
allow the creation of

efficient functional language interpreters in the next 5-10 years, see e.g.

http://www.dcc.fc.up.pt/~frs/

But I don't want to wait!  Instead of creating a better language for 
human use, we are coding
NM in C++ ... but internally, Novamente learns cognitive code expressed 
in a different language,
which doesn't need to have a nice syntax (and is more like LISP or 
Haskell than C++)



With your huge investment in C++ code, I would be leery of any suggestion of
language change as well.  It is hard to evaluate the robustness and
scalability of a language from only documentation where the actual code
isn't available yet.  I think once you actually get a copy, you might just
change your mind about the scalability and speed of this system but I know
all that probably won't be enough for you to switch.  Just you having a
small interest in the outcome of this project as it goes forward would be
great for me.

  


Hey, when the language is ready, I'll try it out ;-)

ben

-
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-03-20 Thread David Clark
- Original Message - 
From: rooftop8000 [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, March 20, 2007 11:19 AM
Subject: Re: [agi] My proposal for an AGI agenda
 I think we should somehow allow people to use all the program languages
they want.

My proposal certainly allows that.  If sockets and some form of standard
English is used to communicate between the different systems, then any
language should work.  If you want to directly use major chunks of code that
others have written within a whole set of your own code, then you will have
to have compatible interfaces and work from a common language (whether that
is mine or not.)


 Why should people learn another language if they can code their ideas in a
language they already
 know? (Not all modules have to introspective or fast to be useful). If
modules can have different
 representations, why not allow different code too.

If the language they know has the requisite tools, then by all means use it.
I found no current language with the proper set of tools.  All AGI that
can't access, analyze, and change it's own code doesn't have much chance of
reaching AGI level IMO.  Fast is a no brainer.  No matter how many CPUs you
have or how fast they go, speed has always mattered and always will.  Slow
is only better than fast when the slow works and the fast doesn't.


 A nice test for a collaboration framework is: how fast can you incorporate
existing
 algorithms? In your case it will be very slow because
 0. developing your system from scratch so it wont be perfect right away
 1. people have to learn a new language 2. translating the code into a
language
 other that the ones it is designed in usually make it worse/less elegant.


Point 0 is well taken as I know it won't be perfect right away as well.  My
language, although powerful, has very simple syntax.  Anyone who knows
another language could program in mine immediately.  Useful code by the next
day.

The proverbial hello world looks like this.

? 'Hello world'

 Why not use the communication that is easiest for the modules?
 If you have a NN module, let it output numbers; logic modules can output
logic.
 You just have to make translation modules when necessary.

Why not put an English language front end on all major modules and have
interfacing objects negotiate the interface themselves?  My objective is to
eventually eliminate the programmer from doing any coding at all.  Hopefully
by then, the AGI will be able to program itself with much higher accuracy
and speed than any human could.  The goal of most human coding in my vision
of an AGI is to create programs that generate programs.

-- David Clark


-
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-03-20 Thread gts

On Tue, 20 Mar 2007 15:29:06 -0400, Ben Goertzel [EMAIL PROTECTED] wrote:

Well, **anything** can be dealt with in C++, it's just a matter of how  
awkward it is.


nod :-)

I don't want to become deeply involved in these language wars, because I  
cannot say honestly that my very limited experience in AI or AGI gives me  
qualification to speak authoritatively on this subject, but I'd guess  
C++ still rocks in this context.


-gts


-
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-03-20 Thread Charles D Hixson

rooftop8000 wrote:

...
I think we should somehow allow people to use all the program languages they 
want.
  
That somehow is the big problem.  Most approaches to dealing with it 
are...lamentable.

...
You can use closed modules if you have meta-information on
how to use them and what they do. It's like having an API and not
worrying about the inner workings...
  
Module level communication is probably too low a level.   Socket level 
communication can work easily between arbitrary languages, but it's 
cumbersome, so it's generally best if you have large sections devoted to 
any particular language.


P.S.:  There are exceptions.  E.g. D claims to work well with C, and 
Pyrex works well with C.  OTOH, D and Python each have their own garbage 
collection mechanism, and they don't synchronize at all, so going from 
Python to C to D (or conversely) is going to have a lot of overhead.  
Add Java to the mix and you have THREE garbage collectors.  Haskell 
would make four.  This isn't something you're going to want to carry 
around for a small chunk of code.  Better if it's large pieces that talk 
over TCP/IP, or something analogous.  (And TCP/IP is ubiquitous.)


-
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-03-20 Thread Peter Voss
Yes, David, some good ideas.

We are well into our AGI prototype using c# and are quite happy with it.
However, fully integrated reflection, DB support, etc. would be nice.

I designed and implemented a very comprehensive language (called One) in the
'80s and used it to code a large commercial application: that was heaven.
But. Getting other people to work on it (bad career move), and trying to
develop various development tools as good or better than commercial ones
proved to be its undoing.

I see a specialized language for AGI as a (huge) distraction. C#/.net gives
you a fighting chance to overcome most serious limitations. 

I must say it *would* be nice to have a z# (ie. C# plus full wishlist).

Peter Voss


-Original Message-
From: Ben Goertzel [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, March 20, 2007 9:57 AM
To: agi@v2.listbox.com
Subject: Re: [agi] My proposal for an AGI agenda


  For people who might be interested in influencing some of the 
 features of this system, I would appreciate them looking at my 
 documentation at www.rccconsulting.com/hal.htm 
 http://www.rccconsulting.com/hal.htm  Although my system isn't quite 
 ready for alpha distribution yet, I expect that it will be within a 
 few months.  People that help with the alpha and beta testing will be 
 given consideration on the use of the system in the future even if 
 they don't participate in the AGI development.
  
 When this project goes ahead, I think even Ben (who has a huge 
 intellectual and financial investment in his Novamente project) will 
 be interested in the experiments and results a system like I am 
 proposing will have, even if he never interfaces his program with it.
  

 http://v2.listbox.com/member/?list_id=303

Your programming language looks interesting, and well designed in many 
ways, but I have never been convinced that the inadequacies of current 
programming languages are a significant cause of the slow progress we 
have seen toward AGI.

If you were introducing a radically new programming paradigm for AGI, I 
would be more interested  Not that I think this is necessary to 
achieve AGI, but I would find it more intellectually stimulating ;-)

Regarding languages, I personally am a big fan of both Ruby and 
Haskell.  But, for Novamente we use C++ for reasons of scalability.

-- Ben


-
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

-
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


  1   2   >