Re: [agi] organising parallel processes

2008-05-12 Thread wannabe
And I'd also like to thank Brad for pointing out Skype's API, as I've  
also being wanting to use a VOIP platform for speech processing and  
communication.  I don't know if Steve is going to end up using it, but  
it's nice to hear about a useful platform like this.

andi

Quoting Stephen Reed [EMAIL PROTECTED]:


Hi Brad,

I am interested in Skype of course as a VOIP provider for me   
personally.  I have just re-installed the client to chat with a   
potential collaborator.  You propose Skype as a communications   
backbone for Texai that solves all the problems I foresee with   
getting past ISPs and home DSL/cable/wireless routers to reach   
at-home Texai users.  And I, as a result, agree that I will evaluate  
 Skype for this purpose should n2n, and all other open-source   
alternatives fail.


One of my self-imposed constraints is to develop free software (i.e.  
 GPL) and reuse open source solutions.  Skype uses a proprietary   
protocol and is closed-source.  I suppose that client software that   
I write to their Java API can be licensed GPL but the network itself  
 is closed.


On the other hand n2n is GPL v3 and I should be able to borrow the   
most relevant features of Skype for the Texai peer-to-peer   
communications backbone that I will implement on top of n2n, should   
it actually work for me.  From the Wikipedia article on Skype:


* Skype operates on a peer-to-peer model
* three main entities: supernodes, ordinary nodes and the login server
	* each client builds and refreshes a list of reachable nodes known   
as the host cache.

* contains IP address and port numbers of supernodes
* supernodes relay communications to other clients behind a firewall
	* any skype client can become a supernode if it has good bandwidth,  
 no firewall and adequate processing power
	* the Skype user directory is entirely decentralized and   
distributed among the nodes of the network—i.e., users' computers
	* which allows the network to scale very easily to large sizes   
(currently about 240 million users)[44] without a complex   
centralized infrastructure costly to the Skype Group
A good article on the details of these featuresl is here.  The most   
important attributes of Skype are evidence that a peer-to-peer   
network can:

* scale to several hundred million users
	* be done with no costly complex centralized infrastructureThanks   
so much for your detailed technical suggestion.

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: Brad Paulsen [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Sunday, May 11, 2008 5:31:16 PM
Subject: Re: [agi] organising parallel processes


Steve,

This may be a naive question, but have you considered using Skype as  
 a P2P  mechanism?


The Skype User Agent (UA) software has been downloaded 100's of   
millions of  times and the average number of users on-line at any   
given time is in the 8-11  million range.  Skype publishes a (free)   
API specification for the UA which  includes their very powerful and  
 user-friendly chat system.  This system  can be used to host both   
group and public chats and also to upload/download any  type of file  
 (typical uneven P2P file transfer rates, but it's very reliable and  
  accessible via the UA API).  There are API's for Win32, Linux and   
 Macintosh.  There is also, if memory serves, a Java-based API that   
 should run on any platform that has a JRE (although, the UA API is  
a  text-based,  message-passing API and is, thus, only platform   
dependent at what Skype calls  the Communications Layer).  And I   
notice just now, there's a new  Python wrapper for the API (again,   
available on any platform that can host the  Python run-time --   
which list includes the usual
 suspects).  There can be  multiple programs (Texai agents?)   
concomitantly using the single Skype UA via  the API on a single   
machine.  Anyhow, you get a very powerful VOIP/text  chat P2P user   
agent for free.  You don't need to (can't, in fact) host the  UA   
download site.  You just put a Skype graphic on your site that   
points to  the Skype-hosted download site.  Check out Skype's   
developer site: https://developer.skype.com/.


Cheers,

Brad

P.S.  The Texai server(s) could just be a Skype UA, with its own   
Skype  username. You could wrap any text-based application-layer   
protocol you'd  want to inside the Skype chat protocol.   I can't   
recall if there is a  limit to how many users can be involved in a   
group or public chat  session.  I don't think there is any limit.






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

Re: [agi] organising parallel processes, try2

2008-05-10 Thread rooftop8000
Do you think a hierarchy structure could be too restrictive? What if low-hierarchy processes need to make a snap decision to turn off high-level ones. How are new processes put into the hierarchy? What if a high-level process is faulty and should be deactivated?I think the 'scheduling' should be a big part of the actual problem solving. (Deciding and learning which resources to use, activating strategies...). Do you know any already working systems like the one you are making (preferably ones that have a non-trivial scheme of activation, hierarchy/organisation or scheduling)? thanks--- On Fri, 5/9/08, Stephen Reed [EMAIL PROTECTED] wrote:From: Stephen Reed [EMAIL PROTECTED]Subject: Re: [agi]
 organising parallel processes, try2To: agi@v2.listbox.comDate: Friday, May 9, 2008, 11:04 PMHi,The Texai system, as I envision its deployment, will have the following characteristics:a lot of processesa lot of hostsmessage passing between processes, that are arranged in a hierarchical control systemhigher level processes will be deliberative, executing compiled production rules (e.g. acquired skills)lower level processes will be reactive, even so far as not to contain any state whatsoever, if the sensed world itself will sufficesome higher level processes on each host will be agents of the Host Resource
 Allocation Agency and will have the learned skills sufficient to optimally allocate host resources (e.g. CPU cores, RAM, KB cache) on behalf of other processes
 (i.e. agents)I have not yet thought much about how these resources should be allocated except to initially adopt the scheduling algorithms used by the Linux OS for its processes (e.g. each process has a priority, schedule the processes to achieve maximum use of the resources, allow real-time response for processes that must have it, do not allow low priority processes to starve, etc.)Cheers.-SteveStephen L. ReedArtificial Intelligence Researcherhttp://texai.org/bloghttp://texai.org3008 Oak Crest Ave.Austin, Texas, USA 78704512.791.7860- Original Message From: rooftop8000 [EMAIL PROTECTED]To: agi@v2.listbox.comSent: Friday, May 9, 2008 3:24:14 PMSubject: [agi] organising
 parallel processes, try2I'll try to explain it more..Suppose you have a lot of processes, all containing some production rule(s). They communicate with messages. They all should get cpu time somehow. Some processes just do low-level responses, some monitor other processes, etc. Some are involved in looking at the world, some involved in planning, etc. I'm thinking of a system like SOAR, but in parallel. Are there any systems that work like this, and have some way to organise the processes (assign cpu time, guide the communication, group according to some criteria..) I'd like to look at a bunch of those and compare the pros  consthanks

  

  






  Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.




  

  
  agi | Archives

 | Modify
 Your Subscription


  

  




Re: [agi] organising parallel processes, try2

2008-05-10 Thread Stephen Reed


- Original Message 
From: rooftop8000 [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Saturday, May 10, 2008 12:35:49 PM
Subject: Re: [agi] organising parallel processes, try2


Do you think a hierarchy structure could be too restrictive? 


No, I have not yet found a use case that would change my opinion.

What if low-hierarchy processes need to make a snap decision to turn off 
high-level ones. 


In a hierarchical control system, a process should be deactivated by its 
superior node.  A low-hierarchy process can make a snap decision but it cannot 
turn off high-level ones.  It can urgently pass along its perceptions and 
status to its commanding process and request their mutual deactivation.

How are new processes put into the hierarchy? 


Agencies can spawn additional agents to help fulfill their mission.  Likewise 
they can spawn child agencies to delegate a submission in support of their own 
mission.  Some agencies will have as their mission, the composition and 
creation of other agencies.

What if a high-level process is faulty and should be deactivated?


A faulty process should be deactivated by its superior process.  Each process, 
even a high level process will have a superior process which can deactivate it, 
except for the topmost process, whose sole mission is to be friendly.  Every 
process is responsible for ensuring that their directly subordinate processes 
are not faulty, and are behaving in a friendly manner according to the policies 
in effect for that agency.

Do you know any already working systems like the one you are making (preferably 
ones that have a non-trivial scheme of activation, hierarchy/organization or 
scheduling)? 


Unfortunately, I do not know of any systems like the one that I am making.  I 
suggest that you survey the literature for the topic of agent scheduling.  A 
very good place to start is Citeseer.

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


  

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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes, try2

2008-05-09 Thread Stephen Reed
Hi,

The Texai system, as I envision its deployment, will have the following 
characteristics:

* a lot of processes
* a lot of hosts
* message passing between processes, that are arranged in a 
hierarchical control system

* higher level processes will be deliberative, executing compiled 
production rules (e.g. acquired skills)
* lower level processes will be reactive, even so far as not to contain 
any state whatsoever, if the sensed world itself will suffice
* some higher level processes on each host will be agents of the Host 
Resource Allocation Agency and will have the learned skills sufficient to 
optimally allocate host resources (e.g. CPU cores, RAM, KB cache) on behalf of 
other processes (i.e. agents)
* I have not yet thought much about how these resources should be 
allocated except to initially adopt the scheduling algorithms used by the Linux 
OS for its processes (e.g. each process has a priority, schedule the processes 
to achieve maximum use of the resources, allow real-time response for processes 
that must have it, do not allow low priority processes to starve, etc.)
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: rooftop8000 [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Friday, May 9, 2008 3:24:14 PM
Subject: [agi] organising parallel processes, try2


I'll try to explain it more..
Suppose you have a lot of processes, all containing some production rule(s). 
They communicate with messages. They all should get cpu time somehow. Some 
processes just do low-level responses, some monitor other processes, etc. Some 
are involved in looking at the world, some involved in planning, etc. 

I'm thinking of a system like SOAR, but in parallel. Are there any systems that 
work like this, and have some way to organise the processes (assign cpu time, 
guide the communication, group according to some criteria..) 
I'd like to look at a bunch of those and compare the pros  cons

thanks





  

  





  

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/?;
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread YKY (Yan King Yin)
On 5/4/08, Stephen Reed [EMAIL PROTECTED] wrote:
 As perhaps you know, I want to organize Texai as a vast multitude of
agents situated in a hierarchical control system,  grouped as possibly
redundant, load-sharing, agents within an agency sharing a specific
mission.  I have given some thought to the message content, and assuming
that my bootstrap English dialog effort actually works, then English
language as an Agent Control Language vocabulary becomes possible at the
more deliberative, higher levels of the hierarchy, when the duration of NL
parsing and generation is small compared to the overall task duration.

Let me offer my naive opinion:

The distributive agents would be owned by different people on the net, who
would want their agents to do *different* things for them.  This occurs
simultaneously.

We need to distinguish 2 situations:
A)  where all the agents cooperate to solve ONE problem
B)  where agents are solving their own problems

Your scheme would be useful for A.  But it seems that most AGI users would
want B.  Which problem do you intend to solve?

In case B, your scheme would add a lot of complications and whether it'd
be beneficial or not is rather unclear.

YKY

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread Stephen Reed
Hi YKY,

You said:


The distributive agents would be owned by different people on the net, who 
would want their agents to do different things for them.  This occurs 
simultaneously.
 
We need to distinguish 2 situations:
A)  where all the agents cooperate to solve ONE problem
B)  where agents are solving their own problems
 
Your scheme would be useful for A.  But it seems that most AGI users would want 
B.  Which problem do you intend to solve?
 
In case B, your scheme would add a lot of complications and whether it'd be 
beneficial or not is rather unclear.

I believe the opposite of what you say  I hope that my following explanation 
will help converge our thinking.  Let me first emphasize that I plan a vast 
multitude of specialized agencies, in which each agency has a particular 
mission.  This pattern is adopted from human agencies.  For example, an human 
advertising agency has as its mission the preparation of advertising media for 
its customers.  Agents, who are governed by the agency, fulfill its mission by 
carrying out commanded tasks, responding to perceived events, reporting to 
superiors and controlling subordinates.  

In the Texai organization I envisage, it would never be the case that all 
agents or agencies try to solve the same problem - not (A) above.  Rather, if a 
problem arose that is both urgent and sufficiently important, then the agency 
capable of solving that problem would commandeer the computing resources of 
other, lower priority, agencies.  This is analogous to a natural disaster 
affecting a human organization - in a flood, everyone changes roles to move 
materials above the water line.  In my plan for Texai, the agents could 
cooperate together only to the extent that the problem to be solved could be 
decomposed to match the capabilities of particular agencies.  Agents lacking 
the capability to help out would be omitted from that job.

From the standpoint of AGI users, a Texai agent exists for each specialized 
role (i.e. interest, activity-type) that the user wants - (B) above.  My 
current thinking is to a first provide an instant-message chatbot that 
intelligent acquires knowledge and skills.  The user would only require an 
instant messaging client, (e.g. text messaging on a cellphone, Google Chat, 
Yahoo Chat, IRC, AIM, email, etc.).  The user would name one or more Texai 
chatbots and assign them roles (i.e.  sports buddy, family buddy, work buddy, 
cooking buddy, financial buddy, product adviser buddy, matchmaker buddy, etc. 
).  The required servers would, at the kickoff, be supplied by me.  Users 
would be offered a higher level of benefit if they agree to download a Texai 
instance, and to leave it running as much as possible, connected to the net.  
When not providing work for the owning user, it would add its agent-hosting 
server capability to the Texai cloud.

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

While at Cycorp, I created two previous small versions of the agency graph, 
which of course were very much focused on the needs of Cycorp.  Now I am 
inspired by the Wikipedia, to work first on agencies that are required for 
basic infrastructure and then let mentors, governed by locally-applicable human 
law, and governed by consensus, establish agencies as they see fit. 

When I get further along on these ideas, especially when I have an initial set 
of agencies and missions, I would very much like to vet that organization chart 
with the readers of this list, before tying to deploy it.

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: YKY (Yan King Yin) [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, May 6, 2008 10:36:16 AM
Subject: Re: [agi] organising parallel processes


On 5/4/08, Stephen Reed [EMAIL PROTECTED] wrote: 
 As perhaps you know, I want to organize Texai as a vast multitude of agents 
 situated in a hierarchical control system,  grouped as possibly redundant, 
 load-sharing, agents within an agency sharing a specific mission.  I have 
 given some thought to the message content

Re: [agi] organising parallel processes

2008-05-06 Thread Matt Mahoney

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

 On 5/4/08, Stephen Reed [EMAIL PROTECTED] wrote:
  As perhaps you know, I want to organize Texai as a vast multitude
 of agents situated in a hierarchical control system,  grouped as
 possibly
 redundant, load-sharing, agents within an agency sharing a specific
 mission.  I have given some thought to the message content, and
 assuming
 that my bootstrap English dialog effort actually works, then English
 language as an Agent Control Language vocabulary becomes possible at
 the
 more deliberative, higher levels of the hierarchy, when the duration
 of NL parsing and generation is small compared to the overall task
 duration.
 
 Let me offer my naive opinion:
 
 The distributive agents would be owned by different people on the
 net, who
 would want their agents to do *different* things for them.  This
 occurs simultaneously.
 
 We need to distinguish 2 situations:
 A)  where all the agents cooperate to solve ONE problem
 B)  where agents are solving their own problems
 
 Your scheme would be useful for A.  But it seems that most AGI users
 would want B.  Which problem do you intend to solve?
 
 In case B, your scheme would add a lot of complications and whether
 it'd be beneficial or not is rather unclear.
 
 YKY

We already have many examples where cooperation between selfish agents
results in solving problems that could not be solved individually.  AIs
would ultimately communicate faster and more effectively than humans,
resulting in a more efficient division of labor and better coordination
of efforts.


-- Matt Mahoney, [EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread YKY (Yan King Yin)
   On 5/6/08, Stephen Reed [EMAIL PROTECTED] wrote:
I believe the opposite of what you say  I hope that my following 
explanation will help converge our thinking.  Let me first emphasize 
that I plan a vast multitude of specialized agencies, in which each 
agency has a particular mission.  This pattern is adopted from human 
agencies.  For example, an human advertising agency has as its mission 
the preparation of advertising media for its customers.  Agents, who 
are governed by the agency, fulfill its mission by carrying out 
commanded tasks, responding to perceived events, reporting to superiors 
and controlling subordinates.


If the agents have common sense, they can use their common sense to
broker capabilities among themselves, but that is begging the question
because we don't have commonsense AGI yet.

A more interesting possibility is whether we can spawn a large number
of very *weak* intelligent agents over the net, who don't have common
sense, and let commonsense emerge out of them.

It seems possible, but we'll need to design distributive algorithms
for reasoning, especially distributive deduction...

YKY

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread wannabe

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/?member_id=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread Matt Mahoney
--- [EMAIL PROTECTED] wrote:

http://paulspontifications.blogspot.com/2008/05/under-appreciated-fact-we-dont-know-how.html

Computer programming is an art, as Knuth observed.

I teach classes in C++, Java, and x86 assember.  I can show my students
some simple drawings and show them how to hold a brush.  But I can't
make a Picasso out of them.


-- Matt Mahoney, [EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread Bob Mottram
The blog entry is amusing.  I started writing software at quite young
age (about 10), and I always assumed that it was an art rather like
writing a novel or a musical composition.  So when I grew older and
became employed to write programs I was shocked in my early career to
find that some people consider programming to be an activity requiring
no creative input.

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-06 Thread Stephen Reed
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

Re: [agi] organising parallel processes

2008-05-05 Thread Stephen Reed
Mike said,


I assume that a 'conversation' would include all nodes interested in the 
discussion,
and that when new nodes join they would be brought up to date and
could then contribute resources.  

Exactly, I would employ Jabber, a low bandwidth, client/server instant 
messaging protocol to initiate this process.  But because I desire a 
partitioned, distributed, and locally-cached knowledge base, there will be a 
need for agent peers to frequently exchange knowledge chunks with other peers.  
Its for this latter low-latency, high bandwidth P2P communication that I am 
considering NAT hole punching.


Is there already an existing framework for this kind of communication?  

Not that I have found that fits close enough for my purpose.  Please if anyone 
has suggestions, let me know.  I want to reuse existing solutions as much as 
possible.  By the way, the N2N software provides TCP connectivity, not UDP and 
the former is closer to the needs of the Texai software application.


If you're going to build it, do you intend to keep the mechanism open enough 
that it could
transport other kinds of data, or keep it tightly coupled to your application?

N2N is very open in that it establishes a VPN that any application can then 
use.  Texai by design will be a friendly system.  Among the useful behaviors 
that users teach it may be the transport of non-knowledge data from one peer to 
another.  There will eventually be a policy mechanism throughout the Texai 
agents that would ensure that Texai agents behave in a legal manner, that 
should prevent the transport of materials that Texai knows the user cannot 
legally distribute.

 
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: Mike Dougherty [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Monday, May 5, 2008 12:26:43 AM
Subject: Re: [agi] organising parallel processes

On Sun, May 4, 2008 at 11:28 PM, Stephen Reed [EMAIL PROTECTED] wrote:
 be like Skype, the popular non-scum Internet phone service that also
 performs NAT hole punching (a.k.a. NAT traversal).

I was not aware Skype worked like that- thanks for the info.  If you
are using a similar form of UDP-listener to allow the client to make a
connection out where the firewall then allows responses in, you
wouldn't be violating existing protocol.  (and admins could turn off
the feature that auto-whitelists UDP responce)

 services.  Relays could become performance bottlenecks too.   For an initial
 deployment I would like to try direct P2P unless you have a better
 objection, or maybe you could just clarify the remarks you already made,
 given my own clarification herein.

Of course a test network can be direct P2P.  I can configure my
firewall (both dedicated hardware and per-machine software) to allow
whatever I want.  I was suggesting that a dynamic network could allow
nodes to advertise their capability and perform relay services to
clients that do not have direct access.  From the article you posted
above, it seems that the auto-whitelisting of ports for UDP response (
my firewall calls them triggered ports - if I send out port X, expect
legitimate return replies on X+1 through X+Y) - your client
application would only need to access any public node in the cloud to
become an active server.

 Thanks for the great comment.  I do really do not want to waste time with the 
 wrong P2P design decision.

I like to brainstorm.  I know a little bit about computer networking.
I know a little more about programming.  I don't know much about
artificial intelligence design, so I've mostly just been lurking here.

I think if the nodes in your graph were to reinforce the existence of
their connections simply by using them, it would facilitate new
connections forming and becoming available for other nodes according
to whatever propagation rules you devise.  As the developer, you would
only need to understand the mechanism on a theoretical level- there
would be too much dynamic state to micromanage (or hand-code) a
snapshot of the network graph at any given moment.  I assume that a
'conversation' would include all nodes interested in the discussion,
and that when new nodes join they would be brought up to date and
could then contribute resources.  Is there already an existing
framework for this kind of communication?  If you're going to build
it, do you intend to keep the mechanism open enough that it could
transport other kinds of data, or keep it tightly coupled to your
application?

I'm on a tangent now...  it's difficult to think about this kind of
thing via email.  ttyl.

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

Re: [agi] organising parallel processes

2008-05-05 Thread Matt Mahoney
--- Stephen Reed [EMAIL PROTECTED] wrote:
 Matt (or anyone else), have you gotten as far as thinking about NAT
 hole punching or some other solution for peer-to-peer?

Yes, but NAT hole punching is not really a solution.  I have a home
router/firewall/NAT that by default blocks all incoming traffic (TCP,
UDP, ICMP) not initiated by me.  I could configure the firewall to open
a port for P2P traffic, but in order to get a peer widely deployed,
there has to be an incentive for users to do so.

I looked at Skype.
http://www1.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf

Their approach (as of 2004) to initiate a connection is to first try
UDP, and if that is blocked by a firewall, then try TCP on a high port
number, and then on ports 80 and 443 which aren't usually blocked.  If
none of these work (like trying to contact me), then both peers have to
relay messages through a supernode with a public (not necessarily
static) IP address that admits at least one of these ports.  I would
have to continually poll supernodes to see if I have any incoming
calls.

This is convenient because users can run Skype without reconfiguring
their firewalls.  However it adds traffic to supernodes.  The Skype
software detects if you have a firewall/NAT, and if not, your computer
automatically becomes a supernode and there is no option (as of 2004)
to turn this off.  This creates an incentive to install a NAT, which is
the opposite of what you want.

I also looked at N2N.  It creates a virtual IP layer so it should work
for both TCP and UDP.  However it still needs supernodes with public IP
addresses to set up connections.  It also appears that the software
needs to run at both ends.

A second problem is that Skype is not truly distributed.  There is a
central login server.  Skype traffic is encrypted with AES using public
key RSA to negotiate keys.  However, the login server has to validate
the public keys.  The problem is fundamental to public key
cryptography.  I can publish a public key so that anyone can send me
encrypted messages that only I can read.  However, this does not stop
people from saying I'm Matt and here is my public key to read
messages intended for me.  The Skype login server prevents this
impersonation.

SSH has this problem too.  To set up a secure server, I register my
public key with a trusted authority which can vouch that I am really
me by signing my key.  Another authority has to vouch for it,
ultimately leading to a chain of certificate authorities leading back
to a root authority like Verisign or Microsoft.

Maybe for distributed AI you could get away with not using encryption,
but you will still need some way to authenticate users.  Otherwise your
system is vulnerable to malicious users inserting bogus data or spam
while impersonating another source with a high reputation.



-- Matt Mahoney, [EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-05 Thread Stephen Reed
Hi Matt,

I am glad you are looking deeply into the issue of how to deploy vastly 
distributed AGI.  I have some follow-up questions regarding your informative 
comments.


...but NAT hole punching is not really a solution.  I have a home
router/firewall/NAT that by default blocks all incoming traffic (TCP,
UDP, ICMP) not initiated by me.  I could configure the firewall to open
a port for P2P traffic, but in order to get a peer widely deployed,
there has to be an incentive for users to do so.
 
I've read the n2n paper and downloaded their software, but not yet actually 
evaluated it.  All my home computers are behind the same NAT/router/firewall 
(i.e. a Netgear Cable/DSL router), so I postponed having to collaborate with 
someone else who is also behind a NAT.  My understanding of n2n is that, like 
you say, each end-user periodically contacts a public, redundant, super node, 
to maintain a lease.  The client opens the TCP socket connection, and the super 
node accepts the connection request.  This behavior should not be a problem 
with a firewall or NAT (Network Address Translation facility in the user's 
router), because the end user behind the NAT has the client role - not the 
server role.   Then the super node can inform each end user's client of the 
other's NAT-provided IP address and port, so that the peers can directly 
exchange packets as though they were servers.  The key point is that initially 
both of them opened a TCP socket as a client;
 they did not accept a connection as a server.   Only so-called symmetric NATs 
would force the super node to relay every packet from peer to peer.   There is 
some downloadable software that will determine whether your NAT is symmetric.  
Mine, like most are not.  With the advent of Skype and other P2P, VOIP 
(Internet phone) services, users are purchasing NATs that are not symmetric, 
but rather support the NAT hole-punching Skype employs.

Matt, given my clarification, would you then agree that you as an end user need 
no firewall or router configuration beyond the defaults to make use of n2n?  Or 
could you please correct my understanding of the n2n paper here.


I also looked at N2N.  It creates a virtual IP layer so it should work
for both TCP and UDP.  However it still needs supernodes with public IP
addresses to set up connections.  It also appears that the software
needs to run at both ends.
I agree that public (i.e. static) IP addresses are needed for the super nodes, 
and I agree that n2n software is required for each peer user.  As long as the 
super nodes are not relaying any TCP messages between peers (e.g. those behind 
symmetric NATs), then I believe that a few redundant super nodes can support a 
vast number of clients, in the same fashion as the Network Time Protocol is 
deployed.  My plan is deploy Texai in a distributed fashion with minimal need 
on centralized infrastructure and also at the lowest possible cost.  I think 
that I can afford a few dedicated servers at ServerPronto for 30 USD per month 
per server.  Perhaps a couple of these could handle a million Texai clients at 
less than 2,000 lease-renewal connections per second apiece.  I would 
distribute the n2n software as part of the Texai end-user download, as it has 
the GPL license.  A setup wizard would inform the user if they had a symmetric 
NAT - that would require replacement
 before Texai could benefit them.


Maybe for distributed AI you could get away with not using encryption,
but you will still need some way to authenticate users.  Otherwise your
system is vulnerable to malicious users inserting bogus data or spam
while impersonating another source with a high reputation.

The n2n software fully encrypts TCP messages by providing a VPN (Virtual 
Private Network).  So this should not be a problem right?  Texai will have to 
provide a user authentication facilty anyway to attach credentials to what a 
user teaches it, and also to safeguard private information designated by the 
user.

Thanks for the advice.
-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: Matt Mahoney [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Monday, May 5, 2008 1:43:20 PM
Subject: Re: [agi] organising parallel processes

--- Stephen Reed [EMAIL PROTECTED] wrote:
 Matt (or anyone else), have you gotten as far as thinking about NAT
 hole punching or some other solution for peer-to-peer?

Yes, but NAT hole punching is not really a solution.  I have a home
router/firewall/NAT that by default blocks all incoming traffic (TCP,
UDP, ICMP) not initiated by me.  I could configure the firewall to open
a port for P2P traffic, but in order to get a peer widely deployed,
there has to be an incentive for users to do so.

I looked at Skype.
http://www1.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf

Their approach (as of 2004) to initiate

Re: [agi] organising parallel processes

2008-05-05 Thread Matt Mahoney

--- Stephen Reed [EMAIL PROTECTED] wrote:

 Hi Matt,
 
 I am glad you are looking deeply into the issue of how to deploy
 vastly distributed AGI.  I have some follow-up questions regarding
 your informative comments.
 
 
 ...but NAT hole punching is not really a solution.  I have a home
 router/firewall/NAT that by default blocks all incoming traffic (TCP,
 UDP, ICMP) not initiated by me.  I could configure the firewall to
 open
 a port for P2P traffic, but in order to get a peer widely deployed,
 there has to be an incentive for users to do so.
  
 I've read the n2n paper and downloaded their software, but not yet
 actually evaluated it.  All my home computers are behind the same
 NAT/router/firewall (i.e. a Netgear Cable/DSL router), so I postponed
 having to collaborate with someone else who is also behind a NAT.  My
 understanding of n2n is that, like you say, each end-user
 periodically contacts a public, redundant, super node, to maintain a
 lease.  The client opens the TCP socket connection, and the super
 node accepts the connection request.  This behavior should not be a
 problem with a firewall or NAT (Network Address Translation facility
 in the user's router), because the end user behind the NAT has the
 client role - not the server role.   Then the super node can inform
 each end user's client of the other's NAT-provided IP address and
 port, so that the peers can directly exchange packets as though they
 were servers.  The key point is that initially both of them opened a
 TCP socket as a client;
  they did not accept a connection as a server.   Only so-called
 symmetric NATs would force the super node to relay every packet from
 peer to peer.   There is some downloadable software that will
 determine whether your NAT is symmetric.  Mine, like most are not. 
 With the advent of Skype and other P2P, VOIP (Internet phone)
 services, users are purchasing NATs that are not symmetric, but
 rather support the NAT hole-punching Skype employs.

The problem is not a technical one, but an economic one.  People can
reconfigure their firewalls to run P2P software.  Your problem is to
figure out how to make it worth the user's effort to do it, in addition
to downloading, installing, and using your software.  Skype's solution
is a temporary one.  Ultimately if P2P is widely deployed, networks
will become more friendly to it.

 Matt, given my clarification, would you then agree that you as an end
 user need no firewall or router configuration beyond the defaults to
 make use of n2n?  Or could you please correct my understanding of the
 n2n paper here.

According to this paper: http://luca.ntop.org/n2n.pdf
n2n emulates Ethernet on top of an application protocol like HTTP.  You
need a supernode with a public IP address (a server) to join a virtual
network.

 My plan
 is deploy Texai in a distributed fashion with minimal need on
 centralized infrastructure and also at the lowest possible cost.  I
 think that I can afford a few dedicated servers at ServerPronto for
 30 USD per month per server.  Perhaps a couple of these could handle
 a million Texai clients at less than 2,000 lease-renewal connections
 per second apiece.  I would distribute the n2n software as part of
 the Texai end-user download, as it has the GPL license.  A setup
 wizard would inform the user if they had a symmetric NAT - that would
 require replacement
  before Texai could benefit them.

I think there are scaling problems with n2n according to the paper.  It
would not work as an internet-wide Ethernet, which is what it would
ultimately become.  Well, it might, but I don't think that is the best
approach.

A central server would still be needed to set up P2P connections
between clients behind NATs.  For users who can't or don't want to
reconfigure their firewalls, I think that you could tunnel a connection
through UDP port 53 (DNS) on one end.  When a peer contacts your
server, you give it the IP and port of the other peer.  To the firewall
it looks like a DNS request and response.

Of course there are many other temporary solutions with centralized
servers that should be good enough to work the bugs out of your system.
 What you want to do is make sure there will be no barriers to
switching existing users to a purely distributed system later.  That
will be very hard is you have a lot of users.  Consider the problems
Skype will have as the number of supernodes dwindles.  You will
probably need several different protocols (to be abandoned later) and
make sure they can talk to each other.

 Maybe for distributed AI you could get away with not using
 encryption,
 but you will still need some way to authenticate users.  Otherwise
 your
 system is vulnerable to malicious users inserting bogus data or spam
 while impersonating another source with a high reputation.
 
 The n2n software fully encrypts TCP messages by providing a VPN
 (Virtual Private Network).  So this should not be a problem right? 
 Texai will have to provide a user 

Re: [agi] organising parallel processes

2008-05-04 Thread Jean-paul Van Belle
I assume that you have checked out Hofstadters architecture mixing random  
relevance (Fluid Analogies Research Group)?

Jean-Paul Van Belle
Associate Professor


Head: Postgraduate Section, Department of Information Systems
Research Associate: Centre for IT and National Development in Africa (CITANDA)
The IS Dept is co-hosting ZA-WWW'08


Contact details: phone +27-21-6504256;   fax +27-21-6502280;   office LC 4.21


 On 2008/05/04 at 09:09, in message [EMAIL PROTECTED], rooftop8000 [EMAIL 
 PROTECTED] wrote:

hi,
I have a lot of parallel processes that are in control of their own activation 
(they can decide which processes are activated and for how long). I need some 
kind of organisation (a simple example would be a hierarchy of processes that 
only activate downwards). 

I'm looking for examples of possible organisations or hierarchies in existing 
AI systems or designs of them . Any ideas?
thanks



  

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/?;
Powered by Listbox: http://www.listbox.com

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Vladimir Nesov
On Sun, May 4, 2008 at 11:09 AM, rooftop8000 [EMAIL PROTECTED] wrote:
 hi,
  I have a lot of parallel processes that are in control of their own 
 activation (they can decide which processes are activated and for how long). 
 I need some kind of organisation (a simple example would be a hierarchy of 
 processes that only activate downwards).

   I'm looking for examples of possible organisations or hierarchies in 
 existing AI systems or designs of them . Any ideas?


You should probably expand on this -- I have no idea what you are
talking about...

-- 
Vladimir Nesov
[EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread a

rooftop8000 wrote:

hi,
I have a lot of parallel processes that are in control of their own activation (they can decide which processes are activated and for how long). I need some kind of organisation (a simple example would be a hierarchy of processes that only activate downwards). 


 I'm looking for examples of possible organisations or hierarchies in existing 
AI systems or designs of them . Any ideas?
thanks
  
I am developing the same kind of process. (inspired by cognitive 
science) I am not complete.


Cognitive control depends on motivation, which can be learned by 
reinforcement and prefrontal cortex techniques.


---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread a

Vladimir Nesov wrote:

On Sun, May 4, 2008 at 11:09 AM, rooftop8000 [EMAIL PROTECTED] wrote:
  

hi,
 I have a lot of parallel processes that are in control of their own activation 
(they can decide which processes are activated and for how long). I need some 
kind of organisation (a simple example would be a hierarchy of processes that 
only activate downwards).

  I'm looking for examples of possible organisations or hierarchies in existing 
AI systems or designs of them . Any ideas?




You should probably expand on this -- I have no idea what you are
talking about...
  
I think what he is referring to is top-down cognitive control processes 
that can observe and select competitive bottom-up stimuli.


---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Vladimir Nesov
On Sun, May 4, 2008 at 7:16 PM, a [EMAIL PROTECTED] wrote:

  I think what he is referring to is top-down cognitive control processes
 that can observe and select competitive bottom-up stimuli.


But it's too general to say something and expect to answer the
question. Parallel processes that change their state as a result of
interaction can refer to anything at all.

-- 
Vladimir Nesov
[EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Matt Mahoney

--- rooftop8000 [EMAIL PROTECTED] wrote:

 hi,
 I have a lot of parallel processes that are in control of their own
 activation (they can decide which processes are activated and for how
 long). I need some kind of organisation (a simple example would be a
 hierarchy of processes that only activate downwards). 
 
  I'm looking for examples of possible organisations or hierarchies in
 existing AI systems or designs of them . Any ideas?
 thanks

I proposed competitive message routing (CMR) as a way to organize lots
of autonomous narrow AI to form AGI.  The idea is that specialists
communicate in natural language (understanding only messages relevant
to their narrow domains) and route messages outside their specialty to
other agents that it knows are more closely related.  This could be
done by simple term matching, although there is an economic incentive
for agents to match the meanings of messages more intelligently, such
as matching words to images.

I have so far only investigated its scalability in a very abstract
form.  Building a working model would be very expensive. 
http://www.mattmahoney.net/agi.html (Most people on this list have
already seen this).  


-- Matt Mahoney, [EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Stephen Reed
Hi Matt,

As perhaps you know, I want to organize Texai as a vast multitude of agents 
situated in a hierarchical control system,  grouped as possibly redundant, 
load-sharing, agents within an agency sharing a specific mission.  I have given 
some thought to the message content, and assuming that my bootstrap English 
dialog effort actually works, then English language as an Agent Control 
Language vocabulary becomes possible at the more deliberative, higher levels of 
the hierarchy, when the duration of NL parsing and generation is small compared 
to the overall task duration.

I am still some ways away from tackling this implementation, but I believe that 
the issues you raise are pertainent to what I plan.  For example, I have spent 
a bit of time trying to figure out how to construct a scalable peer-to-peer 
network.   I think that I'll use Jabber as the way for high-level agents to 
talk to one another and the N2N protocol (not actually evaluated yet) or some 
other NAT hole-punching technique for low-overhead, direct agent-to-agent 
communication.  For the non-specialists among you, what I am referring to is 
the fact that Internet Service Providers subvert the original intent of the 
net, which was easy peer-to-peer services, with a client-server paradigm in 
which end-users cannot easily become service providers.  NAT hole punching is a 
clever way to change an end-user client into a server so that two end-users can 
directly communicate even though they do not have public Internet addresses.

Matt (or anyone else), have you gotten as far as thinking about NAT hole 
punching or some other solution for peer-to-peer?

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: Matt Mahoney [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Sunday, May 4, 2008 12:47:45 PM
Subject: Re: [agi] organising parallel processes


--- rooftop8000 [EMAIL PROTECTED] wrote:

 hi,
 I have a lot of parallel processes that are in control of their own
 activation (they can decide which processes are activated and for how
 long). I need some kind of organisation (a simple example would be a
 hierarchy of processes that only activate downwards). 
 
  I'm looking for examples of possible organisations or hierarchies in
 existing AI systems or designs of them . Any ideas?
 thanks

I proposed competitive message routing (CMR) as a way to organize lots
of autonomous narrow AI to form AGI.  The idea is that specialists
communicate in natural language (understanding only messages relevant
to their narrow domains) and route messages outside their specialty to
other agents that it knows are more closely related.  This could be
done by simple term matching, although there is an economic incentive
for agents to match the meanings of messages more intelligently, such
as matching words to images.

I have so far only investigated its scalability in a very abstract
form.  Building a working model would be very expensive. 
http://www.mattmahoney.net/agi.html (Most people on this list have
already seen this).  


-- Matt Mahoney, [EMAIL PROTECTED]

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Mike Dougherty
On Sun, May 4, 2008 at 10:00 PM, Stephen Reed [EMAIL PROTECTED] wrote:
 Matt (or anyone else), have you gotten as far as thinking about NAT hole
 punching or some other solution for peer-to-peer?

NAT hole punching has no solution because it's not a problem you can
fix.  If I administrate the border security for my network and I do
not want your protocol running, I will block the port it uses.  If you
dynamically change ports to avoid this, you'll find your software
blacklisted with a slew of scumware that is actively removed from the
computers it infests.  If you are welcome within the network, it is
much less hassle (for everyone) if you properly ask for access and use
bandwidth intelligently.

To address your issue with P2P being blocked by ISP, you could allow
those nodes with public server capability to proxy connections to
client-only nodes.  I know that sounds like undue pain, but this is
exactly the kind of modular flexibility that distributed agents should
be able to work out in response to varying network conditions  (my
$0.02)

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Stephen Reed
Hi Mike,

Of course you are correct about enterprise networks, or anyone else who would 
hire a an administrator for their network.  I am totally opposed to a rouge, 
corporate policy-subverting employee would would download software without 
permission, especially one that would expose a service that endangers their 
workplace.  This is indeed the bane of system and network admins.

However, as an end user of the ATT network, at my home, here in Austin, in 
which I am the administrator, and who wants only to connect to other such 
non-enterprise users, I think that your objections do not apply.   I want to be 
like Skype, the popular non-scum Internet phone service that also performs NAT 
hole punching (a.k.a. NAT traversal).

I hope that Texai software eventually will be on the list of approved corporate 
software.  After all I plan for it to be friendly and useful in a compelling 
way.  It will be free to use even for commercial purposes provided that the 
non-proprietary knowledge and skills it learns are shared for the common 
wealth.  


To address your issue with P2P being blocked by ISP, you could allow
those nodes with public server capability to proxy connections to
client-only nodes.  I know that sounds like undue pain, but this is
exactly the kind of modular flexibility that distributed agents should
be able to work out in response to varying network conditions
 
I accept your advice, and actually had some experience at Cycorp with the Sun 
JXTA protocol that does this.   but I would far prefer to perform direct P2P.  
Public relays are not only slower, they will be more expensive.  ATT charges 
more than double for a small range of static IP addresses, and the setup is off 
the beaten path for most end-users who might offer relay services.  Relays 
could become performance bottlenecks too.   For an initial deployment I would 
like to try direct P2P unless you have a better objection, or maybe you could 
just clarify the remarks you already made, given my own clarification herein.

Thanks for the great comment.  I do really do not want to waste time with the 
wrong P2P design decision.
-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: Mike Dougherty [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Sunday, May 4, 2008 9:41:16 PM
Subject: Re: [agi] organising parallel processes

On Sun, May 4, 2008 at 10:00 PM, Stephen Reed [EMAIL PROTECTED] wrote:
 Matt (or anyone else), have you gotten as far as thinking about NAT hole
 punching or some other solution for peer-to-peer?

NAT hole punching has no solution because it's not a problem you can
fix.  If I administrate the border security for my network and I do
not want your protocol running, I will block the port it uses.  If you
dynamically change ports to avoid this, you'll find your software
blacklisted with a slew of scumware that is actively removed from the
computers it infests.  If you are welcome within the network, it is
much less hassle (for everyone) if you properly ask for access and use
bandwidth intelligently.

To address your issue with P2P being blocked by ISP, you could allow
those nodes with public server capability to proxy connections to
client-only nodes.  I know that sounds like undue pain, but this is
exactly the kind of modular flexibility that distributed agents should
be able to work out in response to varying network conditions  (my
$0.02)

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com


Re: [agi] organising parallel processes

2008-05-04 Thread Mike Dougherty
On Sun, May 4, 2008 at 11:28 PM, Stephen Reed [EMAIL PROTECTED] wrote:
 be like Skype, the popular non-scum Internet phone service that also
 performs NAT hole punching (a.k.a. NAT traversal).

I was not aware Skype worked like that- thanks for the info.  If you
are using a similar form of UDP-listener to allow the client to make a
connection out where the firewall then allows responses in, you
wouldn't be violating existing protocol.  (and admins could turn off
the feature that auto-whitelists UDP responce)

 services.  Relays could become performance bottlenecks too.   For an initial
 deployment I would like to try direct P2P unless you have a better
 objection, or maybe you could just clarify the remarks you already made,
 given my own clarification herein.

Of course a test network can be direct P2P.  I can configure my
firewall (both dedicated hardware and per-machine software) to allow
whatever I want.  I was suggesting that a dynamic network could allow
nodes to advertise their capability and perform relay services to
clients that do not have direct access.  From the article you posted
above, it seems that the auto-whitelisting of ports for UDP response (
my firewall calls them triggered ports - if I send out port X, expect
legitimate return replies on X+1 through X+Y) - your client
application would only need to access any public node in the cloud to
become an active server.

 Thanks for the great comment.  I do really do not want to waste time with the 
 wrong P2P design decision.

I like to brainstorm.  I know a little bit about computer networking.
I know a little more about programming.  I don't know much about
artificial intelligence design, so I've mostly just been lurking here.

I think if the nodes in your graph were to reinforce the existence of
their connections simply by using them, it would facilitate new
connections forming and becoming available for other nodes according
to whatever propagation rules you devise.  As the developer, you would
only need to understand the mechanism on a theoretical level- there
would be too much dynamic state to micromanage (or hand-code) a
snapshot of the network graph at any given moment.  I assume that a
'conversation' would include all nodes interested in the discussion,
and that when new nodes join they would be brought up to date and
could then contribute resources.  Is there already an existing
framework for this kind of communication?  If you're going to build
it, do you intend to keep the mechanism open enough that it could
transport other kinds of data, or keep it tightly coupled to your
application?

I'm on a tangent now...  it's difficult to think about this kind of
thing via email.  ttyl.

---
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=8660244id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com