Thanks Andi for the kind words.

My directly preceding post is about the combination of AI-hard problems that I 
am trying to solve. It hints that incrementally solving the bunch of them may 
be achievable, but that sufficiently solving one of them alone may not be.

I've given automatic programming a lot of thought over my  rather long (i.e. 40 
years) experience programming computers.  While at Cycorp, I persisted abstract 
syntax trees for an Turing-complete agent control language into the Cyc 
knowledge base. I had the idea then that Cyc could thus reason about programs 
and begin to author portions of them.  But the idea did not gain traction with 
our sponsors nor with Cycorp management, so it languished.

My current thinking about automatic programming (a.k.a program synthesis) is 
centered on the notion of program composition.  This activity is a skill that 
involves both algorithmic knowledge as well as domain knowledge.  I am now 
building an essential set of agent capabilities to compose Java classes, 
variables, methods, and statements.  These capabilities will be associated with 
preconditions, input/output bindings, and postconditions.  A capability matcher 
library will find candidate agent capabilities that match the given task 
preconditions and postconditions via subsumption reasoning.  I intend to 
hand-craft some of these compositions into executable Java programs to build 
use cases for the essential programming skills required.  Note that I am 
building a program composition facility rather than a task-solving interpreter. 
 What I hope to accomplish is a system that solves a problem by writing a 
program that, when compiled,  performs the given task. 
 This will be much faster to repeatedly execute because the overhead of program 
composition greatly diminishes once the tasks are well understood (e.g. task 
variations become program parameters  and thus no need to compose a new 
program).

Earlier in the project I had hoped to postpone this phase until after the 
bootstrap English dialog system is completed.  But I see now that the general 
facility of skill acquisition will require precondition and postcondition 
vocabulary.  And because all skills will bottom out into the execution of a 
Java method, I made the decision to precede now with defining these primitives 
as skills.  For representing pre-and-post conditions I am using an elaborated 
version of RDF, based upon formula-manipulating classes that I previously 
released for the Incremental Fluid Construction Grammar vocabulary.  I added 
IMPLIES, NOT, OR, and AND logical operators and variables.  Today I finished a 
class that performs canonicalization (i.e. transformation to conjunctive normal 
form) and hopefully tomorrow I will complete the capability subsumption 
matcher.  Interested readers can follow my source code commits here.  


Having a dialog system simplifies automatic programming because Texai will be 
able to ask for help when required from its mentor, and will not be expected to 
complete the job on its own.  I am resigned to the fact however that initially 
programming via English dialog will be much more tedious than directly 
performing the task myself.  Until the student exceeds the skill of the mentor, 
programming this way will be hard.

Cheers,
-Steve

Stephen L. Reed


Artificial Intelligence Researcher
http://texai.org/blog
http://texai.org
3008 Oak Crest Ave.
Austin, Texas, USA 78704
512.791.7860



----- Original Message ----
From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
To: agi@v2.listbox.com
Sent: Tuesday, May 6, 2008 3:36:38 PM
Subject: Re: [agi] organising parallel processes

Stephen Reed wrote:

> At the time that the Texai bootstrap English dialog system is  
> available, I'll begin fleshing out the hundreds of agencies for  
> which I hope to recruit human mentors.  Each agency I establish will  
>  have paragraphs of English text to describe its mission, including  
> its relationship with commanding and subordinate agencies.  Mentors  
> then will use the dialog system to teach each of their respective  
> agencies the knowledge and skills it requires for its mission.    
> Learned skills will be compiled into Java code for execution.    
> Hopefully this will advance into automatic programming from high  
> level requirements, because programming is a skill which can be  
> taught.  Furthermore, I plan agencies whose missions will accomplish  
>  recursive self-improvement (e.g.  propagate best practices from the  
>  discovering agency to all applicable agencies).

This jumped out at me because I just read an article where someone was  
talking about how we don't know how to program:
http://paulspontifications.blogspot.com/2008/05/under-appreciated-fact-we-dont-know-how.html

There is no real process for it.  We don't really know how it works.  
There are plenty of courses, and it seems like we teach people to do  
it, but it is a very mysterious thing.  A good portion of people just  
don't get it when they try to learn.  Anyway, it is a very hard  
problem, and I wouldn't be surprised if programming were an  
AI-complete problem, because it sure seems like programming always  
involves arbitrary amounts of domain knowledge, theories of mind, and  
who knows what all else.

But I have to admit I am a fan of compiled programs as part of a set  
of skills of an intelligent computer agent.  The idea showed up in an  
essay (OK, blog entry) I wrote recently.

Also, I want to thank Stephen for adding to this community.  He really  
stood out at AGI-08 as a level-headed, diligent creative force working  
toward AGI.

andi

-------------------------------------------
agi
Archives: http://www.listbox.com/member/archive/303/=now
RSS Feed: http://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: http://www.listbox.com/member/?&;
Powered by Listbox: http://www.listbox.com



      
____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

-------------------------------------------
agi
Archives: http://www.listbox.com/member/archive/303/=now
RSS Feed: http://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: 
http://www.listbox.com/member/?member_id=8660244&id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com

Reply via email to