Re: [agi] My proposal for an AGI agenda
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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]
- 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
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
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
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
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
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
--- 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]
--- 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
--- 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
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
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
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]
- 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]
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
--- 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
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
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
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
--- 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
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
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
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
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
- 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
- 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
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 thats 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
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
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
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
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
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
--- 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
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
- 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 Thats 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]
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]
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
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]
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]
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]
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]
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]
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
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
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
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
- 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
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
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
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
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
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
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
- 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
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
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
- 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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
--- 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
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
--- 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
- 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
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
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
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
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
- 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
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
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
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