Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-04-19 Thread J. Andrew Rogers


On Feb 21, 2007, at 6:09 AM, Eugen Leitl wrote:

On Wed, Feb 21, 2007 at 08:59:51AM -0500, Mark Waser wrote:
do well.  What are the special requirements/functionalities of the  
indices

that you believe that enterprise DBs are not *optimized* to handle?


Relational databases are designed to do well at about anything,  
sans further
tuning. Because of this relational databases perform very poorly  
for selected
applications, many of them trivial, some complex, which are  
typically much

better handled by custom code.

An example of where enterprise DBs fall flat onto their indices is
e.g. a multithreaded similiarity search on 5 million molecules.
There are tons of other examples.



This is a point that a great many people are obtuse to, and it is  
valid far beyond databases.  Relational databases in particular have  
very narrowly optimized use cases; see the huge tradeoffs between row- 
oriented versus column-oriented physical structure of the same data  
for an example.


In short:  The only index/search/retrieval patterns that are scalable  
are those that are meaningfully reducible to a B-tree i.e. topologies  
that are collapsible into a zero-dimensional object on a one- 
dimensional line.  By scalable I am referring to all three  
algorithmic dimensions: time, space, and concurrency.  Unfortunately,  
there are many, many data types and spaces that collapse very poorly  
(or not at all) into a usable B-tree analogue.  This is an enormous  
theoretical problem, and most people who work in software are  
oblivious to its existence.


There is no scalable algorithm to represent e.g. spatio-temporal  
data.  Whoever devises such an algorithm stands to make a great deal  
of money and/or fame, as it is *the* technological bottleneck for  
ubiquitous geospatial and other applications.  A related problem is  
geospatial routing (a space I've been doing some important work in on  
the side), which is semi-dependent on the solution to that problem.


Cheers,

J. Andrew Rogers

-
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] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Mark Waser

Hey Ben,

   Thanks for explaining so clearly.

   I do understand graph databases and their querying challenges.  :-) 
What I've not heard about is the successful application of indexes to these 
problems given that indexes in this case (as far as I know) are dependent 
upon the relationship between entities rather than just upon the indexed 
entity itself (which is also why
location points are slightly difficult though soluble because they are only 
two dimensional while space-time becomes rapidly nastier as you add another 
dimension).


   Are you actually creating and maintaining indexes or are you just 
calculating index values for a single use and then discarding them?


   Mark

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

To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 7:51 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
I am pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing comparable 
indices in an enterprise DB would be.


Wow.  You've floored me given that indexes are key to what enterprise DBs 
do well.  What are the special requirements/functionalities of the 
indices that you believe that enterprise DBs are not *optimized* to 
handle?
Look at the literature regarding graph databases for some general 
background in this area... e.g. here is a random presentation on graph 
DB's...


www.ciw.cl/material/irw-2005/2005-irw-gutierrez.pdf

Novamente's internal AtomTable is a customized, in-RAM hypergraph DB, with 
much relationship to prior graph DB's..


Another example, beyond standard graph DB stuff, is efficient lookup of 
spatiotemporal entities based on which space, time or spacetime points 
they are near to ...


-- Ben





- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 6:34 PM
Subject: **SPAM** Re: **SPAM** Re: [agi] Development Environments for AI 
(a few non-religious comments!)






 Also, why would 32 - 64 bit be a problem, provided you planned for
it in advance?
Name all the large, long-term projects that you know of that *haven't* 
gotten bitten by something like this.  Now, name all of the large, 
long-term projects that you know of that HAVE gotten bitten repeatedly 
by the state of the art moving past something that they have custom 
programmed and can't easily integrate.  If the second number isn't a 
lot larger than the first, you're not living in my world.:-)


I think you're exaggerating the issue.  Porting the NM code from 32-64 
bit was a pain but not a huge deal, certainly a trivial % of the total 
work done on the project.
I do not think an enterprise DB would serve well for Novamente.   I am 
pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing comparable 
indices in an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd avoid 
some of the work involved in making NM a distributed system --- work we 
know how to do, but haven't done yet, because it's time-consuming...


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



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Mark Waser

That just wouldn't work at all for the Novamente design.


Is the problem translating from C++ to C# or something else?

While there might not be a good point to writing Novamente in the .NET 
framework in the SQL engine of a database server, I don't get why it 
wouldn't work at all.


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

To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 8:13 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
So from the below, can I take it that you're a big proponent of the 
.NET framework since database access is built into the framework *AND* 
the framework is embedded in the database?
 The crazy like a fox way to build an AGI may very well be to write it 
in the .NET framework in the SQL engine of a database server.


That just wouldn't work at all for the Novamente design.

If you have an AGI design that will work reasonably efficiently that way, 
then go for it.  But I am dubious, at the moment ;-)


ben



- Original Message -
*From:* David Clark mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 2:27 PM
*Subject:* **SPAM** Re: [agi] Development Environments for AI (a
few non-religious comments!)

Unless the database is built into the language then using a
database, outside the AGI,  will never work.  The data and code
connection must be within the same development system.  The
overhead of sending, parsing, optimizing the query, getting the
data, preparing the result set, sending it back to the original
program, and then putting the result into useful variables is just
too much.
 There are alternatives that can give an extremely fast data
access, full language and other qualities necessary to creating an
AGI out there.
 MySQL is not only slow, but has no language capable of creating
anything.  Lisp, Python, C++ etc don't have the necessary power
tools to create much of anything without starting everything from
scratch.
 Some manipulations for any large project (AGI) can be done in
memory but without a scalable and flexible way of storing and
retrieving large amounts of data from disk, no AGI is going to be
built using conventional computers any time soon.
 David Clark

- Original Message -
*From:* Mark Waser mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 9:36 AM
*Subject:* Re: [agi] Development Environments for AI (a few
non-religious comments!)

 Incidentally, for those things (scalable write/search/read
of large data sets) which existing database engines do well,
which one would you recommend?
 Hmmm . . . . am I dumb enough to incite a database holy war? .
. . . .
 Yeah, I am.
 Let me phrase it this way . . . . I have extensive experience
with MySQL, Microsoft SQL Server, Oracle, and PostgreSQL. MySQL 
is simplest and free.  PostgreSQL is awesome and free

though the tools aren't quite as friendly as Microsoft and it
doesn't scale up quite as far as Microsoft yet -- though it
probably scales further than anyone on this list really
needs.  Microsoft has the best tools and the easiest
integration with many things.  Oracle scales further but it's
tools are not as good and it has some really odd capability 
holes.

 Or . . . . Never sneer at MySQL if someone wants it and it
fulfills your requirements (though it won't cut it for AGI
fairly quickly).  If you're a LAMP/*nix aficionado and hate
Microsoft, go PostgreSQL.  If you're a Microsoftie, it's not a
bad way to go and has many advantages.  But don't use Oracle,
the scaling advantage is *NOT* worth the costs (money,
time, effort, and frustration).


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


-
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] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Ben Goertzel

Mark Waser wrote:

Hey Ben,

   Thanks for explaining so clearly.

   I do understand graph databases and their querying challenges.  :-) 
What I've not heard about is the successful application of indexes to 
these problems given that indexes in this case (as far as I know) are 
dependent upon the relationship between entities rather than just upon 
the indexed entity itself (which is also why
location points are slightly difficult though soluble because they are 
only two dimensional while space-time becomes rapidly nastier as you 
add another dimension).


   Are you actually creating and maintaining indexes 


Yep...

or are you just calculating index values for a single use and then 
discarding them?


   Mark

- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 7:51 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
I am pretty confident that the specialized indices we use 
(implemented directly in C++) are significantly faster than 
implementing comparable indices in an enterprise DB would be.


Wow.  You've floored me given that indexes are key to what 
enterprise DBs do well.  What are the special 
requirements/functionalities of the indices that you believe that 
enterprise DBs are not *optimized* to handle?
Look at the literature regarding graph databases for some general 
background in this area... e.g. here is a random presentation on 
graph DB's...


www.ciw.cl/material/irw-2005/2005-irw-gutierrez.pdf

Novamente's internal AtomTable is a customized, in-RAM hypergraph DB, 
with much relationship to prior graph DB's..


Another example, beyond standard graph DB stuff, is efficient lookup 
of spatiotemporal entities based on which space, time or spacetime 
points they are near to ...


-- Ben





- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 6:34 PM
Subject: **SPAM** Re: **SPAM** Re: [agi] Development Environments 
for AI (a few non-religious comments!)





 Also, why would 32 - 64 bit be a problem, provided you planned 
for

it in advance?
Name all the large, long-term projects that you know of that 
*haven't* gotten bitten by something like this.  Now, name all of 
the large, long-term projects that you know of that HAVE gotten 
bitten repeatedly by the state of the art moving past something 
that they have custom programmed and can't easily integrate.  If 
the second number isn't a lot larger than the first, you're not 
living in my world.:-)


I think you're exaggerating the issue.  Porting the NM code from 
32-64 bit was a pain but not a huge deal, certainly a trivial % of 
the total work done on the project.
I do not think an enterprise DB would serve well for Novamente.   I 
am pretty confident that the specialized indices we use 
(implemented directly in C++) are significantly faster than 
implementing comparable indices in an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd 
avoid some of the work involved in making NM a distributed system 
--- work we know how to do, but haven't done yet, because it's 
time-consuming...


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



-
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



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Mark Waser
That was mean:-)  . . . .  Could you provide some details?  Isn't that 
really cutting edge stuff?


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

To: agi@v2.listbox.com
Sent: Thursday, February 22, 2007 11:20 AM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:

Hey Ben,

   Thanks for explaining so clearly.

   I do understand graph databases and their querying challenges.  :-) 
What I've not heard about is the successful application of indexes to 
these problems given that indexes in this case (as far as I know) are 
dependent upon the relationship between entities rather than just upon 
the indexed entity itself (which is also why
location points are slightly difficult though soluble because they are 
only two dimensional while space-time becomes rapidly nastier as you add 
another dimension).


   Are you actually creating and maintaining indexes


Yep...

or are you just calculating index values for a single use and then 
discarding them?


   Mark

- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 7:51 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
I am pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing comparable 
indices in an enterprise DB would be.


Wow.  You've floored me given that indexes are key to what enterprise 
DBs do well.  What are the special requirements/functionalities of the 
indices that you believe that enterprise DBs are not *optimized* to 
handle?
Look at the literature regarding graph databases for some general 
background in this area... e.g. here is a random presentation on graph 
DB's...


www.ciw.cl/material/irw-2005/2005-irw-gutierrez.pdf

Novamente's internal AtomTable is a customized, in-RAM hypergraph DB, 
with much relationship to prior graph DB's..


Another example, beyond standard graph DB stuff, is efficient lookup of 
spatiotemporal entities based on which space, time or spacetime points 
they are near to ...


-- Ben





- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 6:34 PM
Subject: **SPAM** Re: **SPAM** Re: [agi] Development Environments for 
AI (a few non-religious comments!)






 Also, why would 32 - 64 bit be a problem, provided you planned
for
it in advance?
Name all the large, long-term projects that you know of that 
*haven't* gotten bitten by something like this.  Now, name all of the 
large, long-term projects that you know of that HAVE gotten bitten 
repeatedly by the state of the art moving past something that they 
have custom programmed and can't easily integrate.  If the second 
number isn't a lot larger than the first, you're not living in my 
world.:-)


I think you're exaggerating the issue.  Porting the NM code from 
32-64 bit was a pain but not a huge deal, certainly a trivial % of 
the total work done on the project.
I do not think an enterprise DB would serve well for Novamente.   I am 
pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing comparable 
indices in an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd avoid 
some of the work involved in making NM a distributed system --- work 
we know how to do, but haven't done yet, because it's 
time-consuming...


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



-
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



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Ben Goertzel

Mark Waser wrote:

That just wouldn't work at all for the Novamente design.


Is the problem translating from C++ to C# or something else?



Translating NM to C# would not be particularly problematic, though we 
would likely end up using unsafe code blocks in some places to make 
execution sufficiently rapid in the face of complex GC demands.  It 
would certainly be a lot of work, though, and we don't have any 
motivation to do so.


AWindows port may be in the works, but that's a vastly simpler thing, of 
course.  We have one key AI developer who has a peculiar fondness for 
VC++ and wants to do NM development in that environment.
While there might not be a good point to writing Novamente in the .NET 
framework in the SQL engine of a database server, I don't get why it 
wouldn't work at all.
So long as the SQL engine is Turing complete (which it is, I believe), 
it would work, if you set computational efficiency aside.  However, my 
strong feeling is that it would be many orders of magnitude slower than 
the current implementation, which is not all that fast (for algorithmic 
rather than implementational reasons).


This was concluded in 2001 by NM team members who have a lot more 
experience with RDB's than I do.


RDB's obviously have major strengths, but they are not good for every 
application.  As Eugen pointed out, they are not adequate for BLAST type 
gene sequence searches, nor for large-scale text information retrieval 
... and nor for graph data structures that are rapidly evolving and need 
to support complex queries rapidly...


-- Ben

-- Ben




- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 8:13 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
So from the below, can I take it that you're a big proponent of 
the .NET framework since database access is built into the framework 
*AND* the framework is embedded in the database?
 The crazy like a fox way to build an AGI may very well be to 
write it in the .NET framework in the SQL engine of a database server.


That just wouldn't work at all for the Novamente design.

If you have an AGI design that will work reasonably efficiently that 
way, then go for it.  But I am dubious, at the moment ;-)


ben



- Original Message -
*From:* David Clark mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 2:27 PM
*Subject:* **SPAM** Re: [agi] Development Environments for AI (a
few non-religious comments!)

Unless the database is built into the language then using a
database, outside the AGI,  will never work.  The data and code
connection must be within the same development system.  The
overhead of sending, parsing, optimizing the query, getting the
data, preparing the result set, sending it back to the original
program, and then putting the result into useful variables is just
too much.
 There are alternatives that can give an extremely fast data
access, full language and other qualities necessary to creating an
AGI out there.
 MySQL is not only slow, but has no language capable of creating
anything.  Lisp, Python, C++ etc don't have the necessary power
tools to create much of anything without starting everything from
scratch.
 Some manipulations for any large project (AGI) can be done in
memory but without a scalable and flexible way of storing and
retrieving large amounts of data from disk, no AGI is going to be
built using conventional computers any time soon.
 David Clark

- Original Message -
*From:* Mark Waser mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 9:36 AM
*Subject:* Re: [agi] Development Environments for AI (a few
non-religious comments!)

 Incidentally, for those things (scalable write/search/read
of large data sets) which existing database engines do well,
which one would you recommend?
 Hmmm . . . . am I dumb enough to incite a database holy war? .
. . . .
 Yeah, I am.
 Let me phrase it this way . . . . I have extensive experience
with MySQL, Microsoft SQL Server, Oracle, and PostgreSQL. 
MySQL is simplest and free.  PostgreSQL is awesome and free

though the tools aren't quite as friendly as Microsoft and it
doesn't scale up quite as far as Microsoft yet -- though it
probably scales further than anyone on this list really
needs.  Microsoft has the best tools and the easiest
integration with many things.  Oracle scales further but it's
tools are not as good and it has some really odd capability 
holes.

 Or . . . . Never sneer at MySQL if someone wants it and it
fulfills your

Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Mark Waser
:-)  I think that you don't realize that .NET in  the SQL engine has all the 
advantages of standard .NET on Windows (i.e. it *isn't* true that everything 
has goes through a SQL funnel).  If you can do a .NET port to Windows, that 
port will run inside the SQL engine with zero modification.


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

To: agi@v2.listbox.com
Sent: Thursday, February 22, 2007 11:28 AM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:

That just wouldn't work at all for the Novamente design.


Is the problem translating from C++ to C# or something else?



Translating NM to C# would not be particularly problematic, though we 
would likely end up using unsafe code blocks in some places to make 
execution sufficiently rapid in the face of complex GC demands.  It would 
certainly be a lot of work, though, and we don't have any motivation to do 
so.


AWindows port may be in the works, but that's a vastly simpler thing, of 
course.  We have one key AI developer who has a peculiar fondness for VC++ 
and wants to do NM development in that environment.
While there might not be a good point to writing Novamente in the .NET 
framework in the SQL engine of a database server, I don't get why it 
wouldn't work at all.
So long as the SQL engine is Turing complete (which it is, I believe), it 
would work, if you set computational efficiency aside.  However, my strong 
feeling is that it would be many orders of magnitude slower than the 
current implementation, which is not all that fast (for algorithmic rather 
than implementational reasons).


This was concluded in 2001 by NM team members who have a lot more 
experience with RDB's than I do.


RDB's obviously have major strengths, but they are not good for every 
application.  As Eugen pointed out, they are not adequate for BLAST type 
gene sequence searches, nor for large-scale text information retrieval ... 
and nor for graph data structures that are rapidly evolving and need to 
support complex queries rapidly...


-- Ben

-- Ben




- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 8:13 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
So from the below, can I take it that you're a big proponent of the 
.NET framework since database access is built into the framework *AND* 
the framework is embedded in the database?
 The crazy like a fox way to build an AGI may very well be to write 
it in the .NET framework in the SQL engine of a database server.


That just wouldn't work at all for the Novamente design.

If you have an AGI design that will work reasonably efficiently that 
way, then go for it.  But I am dubious, at the moment ;-)


ben



- Original Message -
*From:* David Clark mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 2:27 PM
*Subject:* **SPAM** Re: [agi] Development Environments for AI (a
few non-religious comments!)

Unless the database is built into the language then using a
database, outside the AGI,  will never work.  The data and code
connection must be within the same development system.  The
overhead of sending, parsing, optimizing the query, getting the
data, preparing the result set, sending it back to the original
program, and then putting the result into useful variables is just
too much.
 There are alternatives that can give an extremely fast data
access, full language and other qualities necessary to creating an
AGI out there.
 MySQL is not only slow, but has no language capable of creating
anything.  Lisp, Python, C++ etc don't have the necessary power
tools to create much of anything without starting everything from
scratch.
 Some manipulations for any large project (AGI) can be done in
memory but without a scalable and flexible way of storing and
retrieving large amounts of data from disk, no AGI is going to be
built using conventional computers any time soon.
 David Clark

- Original Message -
*From:* Mark Waser mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 9:36 AM
*Subject:* Re: [agi] Development Environments for AI (a few
non-religious comments!)

 Incidentally, for those things (scalable write/search/read
of large data sets) which existing database engines do well,
which one would you recommend?
 Hmmm . . . . am I dumb enough to incite a database holy war? .
. . . .
 Yeah, I am.
 Let me phrase it this way . . . . I have extensive experience
with MySQL, Microsoft SQL Server, Oracle, and PostgreSQL. MySQL 
is simplest and free

Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Ben Goertzel

Mark Waser wrote:
:-)  I think that you don't realize that .NET in  the SQL engine has 
all the advantages of standard .NET on Windows (i.e. it *isn't* true 
that everything has goes through a SQL funnel).  If you can do a .NET 
port to Windows, that port will run inside the SQL engine with zero 
modification.


OK ... but if an RDB is not the right data container to use, then what 
advantage is there in running your C# code (including e.g. your graph 
DB) in in a SQL engine???




- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Thursday, February 22, 2007 11:28 AM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:

That just wouldn't work at all for the Novamente design.


Is the problem translating from C++ to C# or something else?



Translating NM to C# would not be particularly problematic, though we 
would likely end up using unsafe code blocks in some places to make 
execution sufficiently rapid in the face of complex GC demands.  It 
would certainly be a lot of work, though, and we don't have any 
motivation to do so.


AWindows port may be in the works, but that's a vastly simpler thing, 
of course.  We have one key AI developer who has a peculiar fondness 
for VC++ and wants to do NM development in that environment.
While there might not be a good point to writing Novamente in the 
.NET framework in the SQL engine of a database server, I don't get 
why it wouldn't work at all.
So long as the SQL engine is Turing complete (which it is, I 
believe), it would work, if you set computational efficiency aside.  
However, my strong feeling is that it would be many orders of 
magnitude slower than the current implementation, which is not all 
that fast (for algorithmic rather than implementational reasons).


This was concluded in 2001 by NM team members who have a lot more 
experience with RDB's than I do.


RDB's obviously have major strengths, but they are not good for every 
application.  As Eugen pointed out, they are not adequate for BLAST 
type gene sequence searches, nor for large-scale text information 
retrieval ... and nor for graph data structures that are rapidly 
evolving and need to support complex queries rapidly...


-- Ben

-- Ben




- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 8:13 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
So from the below, can I take it that you're a big proponent 
of the .NET framework since database access is built into the 
framework *AND* the framework is embedded in the database?
 The crazy like a fox way to build an AGI may very well be to 
write it in the .NET framework in the SQL engine of a database 
server.


That just wouldn't work at all for the Novamente design.

If you have an AGI design that will work reasonably efficiently 
that way, then go for it.  But I am dubious, at the moment ;-)


ben



- Original Message -
*From:* David Clark mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 2:27 PM
*Subject:* **SPAM** Re: [agi] Development Environments for AI (a
few non-religious comments!)

Unless the database is built into the language then using a
database, outside the AGI,  will never work.  The data and code
connection must be within the same development system.  The
overhead of sending, parsing, optimizing the query, getting the
data, preparing the result set, sending it back to the original
program, and then putting the result into useful variables is 
just

too much.
 There are alternatives that can give an extremely fast data
access, full language and other qualities necessary to 
creating an

AGI out there.
 MySQL is not only slow, but has no language capable of creating
anything.  Lisp, Python, C++ etc don't have the necessary power
tools to create much of anything without starting everything from
scratch.
 Some manipulations for any large project (AGI) can be done in
memory but without a scalable and flexible way of storing and
retrieving large amounts of data from disk, no AGI is going to be
built using conventional computers any time soon.
 David Clark

- Original Message -
*From:* Mark Waser mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 9:36 AM
*Subject:* Re: [agi] Development Environments for AI (a few
non-religious comments!)

 Incidentally, for those things (scalable write/search/read
of large data sets) which existing database engines do well,
which one would you recommend?
 Hmmm . . . . am I dumb enough to incite a database holy 
war

Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-22 Thread Mark Waser
OK ... but if an RDB is not the right data container to use, then what 
advantage is there in running your C# code (including e.g. your graph DB) 
in in a SQL engine???


Two answers.

1.  My previous comment of While there might not be a good point to writing 
Novamente in the .NET framework in the SQL engine of a database server . . 
.

AND
2.  Because there are a lot of ancillary functions that would either benefit 
from having the RDB immediately available or not have to be written because 
the RDB is immediately available.


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

To: agi@v2.listbox.com
Sent: Thursday, February 22, 2007 1:19 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
:-)  I think that you don't realize that .NET in  the SQL engine has all 
the advantages of standard .NET on Windows (i.e. it *isn't* true that 
everything has goes through a SQL funnel).  If you can do a .NET port to 
Windows, that port will run inside the SQL engine with zero modification.


OK ... but if an RDB is not the right data container to use, then what 
advantage is there in running your C# code (including e.g. your graph DB) 
in in a SQL engine???




- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Thursday, February 22, 2007 11:28 AM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:

That just wouldn't work at all for the Novamente design.


Is the problem translating from C++ to C# or something else?



Translating NM to C# would not be particularly problematic, though we 
would likely end up using unsafe code blocks in some places to make 
execution sufficiently rapid in the face of complex GC demands.  It 
would certainly be a lot of work, though, and we don't have any 
motivation to do so.


AWindows port may be in the works, but that's a vastly simpler thing, of 
course.  We have one key AI developer who has a peculiar fondness for 
VC++ and wants to do NM development in that environment.
While there might not be a good point to writing Novamente in the .NET 
framework in the SQL engine of a database server, I don't get why it 
wouldn't work at all.
So long as the SQL engine is Turing complete (which it is, I believe), 
it would work, if you set computational efficiency aside.  However, my 
strong feeling is that it would be many orders of magnitude slower than 
the current implementation, which is not all that fast (for algorithmic 
rather than implementational reasons).


This was concluded in 2001 by NM team members who have a lot more 
experience with RDB's than I do.


RDB's obviously have major strengths, but they are not good for every 
application.  As Eugen pointed out, they are not adequate for BLAST type 
gene sequence searches, nor for large-scale text information retrieval 
... and nor for graph data structures that are rapidly evolving and need 
to support complex queries rapidly...


-- Ben

-- Ben




- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 8:13 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




Mark Waser wrote:
So from the below, can I take it that you're a big proponent of 
the .NET framework since database access is built into the framework 
*AND* the framework is embedded in the database?
 The crazy like a fox way to build an AGI may very well be to write 
it in the .NET framework in the SQL engine of a database server.


That just wouldn't work at all for the Novamente design.

If you have an AGI design that will work reasonably efficiently that 
way, then go for it.  But I am dubious, at the moment ;-)


ben



- Original Message -
*From:* David Clark mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 2:27 PM
*Subject:* **SPAM** Re: [agi] Development Environments for AI (a
few non-religious comments!)

Unless the database is built into the language then using a
database, outside the AGI,  will never work.  The data and code
connection must be within the same development system.  The
overhead of sending, parsing, optimizing the query, getting the
data, preparing the result set, sending it back to the original
program, and then putting the result into useful variables is 
just

too much.
 There are alternatives that can give an extremely fast data
access, full language and other qualities necessary to creating 
an

AGI out there.
 MySQL is not only slow, but has no language capable of creating
anything.  Lisp, Python, C++ etc don't have the necessary power
tools to create much of anything without starting everything from
scratch.
 Some manipulations for any large project (AGI) can be done in
memory

Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Mark Waser
I am pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing comparable 
indices in an enterprise DB would be.


Wow.  You've floored me given that indexes are key to what enterprise DBs do 
well.  What are the special requirements/functionalities of the indices that 
you believe that enterprise DBs are not *optimized* to handle?


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

To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 6:34 PM
Subject: **SPAM** Re: **SPAM** Re: [agi] Development Environments for AI (a 
few non-religious comments!)






 Also, why would 32 - 64 bit be a problem, provided you planned for
it in advance?
Name all the large, long-term projects that you know of that *haven't* 
gotten bitten by something like this.  Now, name all of the large, 
long-term projects that you know of that HAVE gotten bitten repeatedly by 
the state of the art moving past something that they have custom 
programmed and can't easily integrate.  If the second number isn't a lot 
larger than the first, you're not living in my world.:-)


I think you're exaggerating the issue.  Porting the NM code from 32-64 
bit was a pain but not a huge deal, certainly a trivial % of the total 
work done on the project.
I do not think an enterprise DB would serve well for Novamente.   I am 
pretty confident that the specialized indices we use (implemented directly 
in C++) are significantly faster than implementing comparable indices in 
an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd avoid some 
of the work involved in making NM a distributed system --- work we know 
how to do, but haven't done yet, because it's time-consuming...


-- 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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Mark Waser
I think you're exaggerating the issue.  Porting the NM code from 32-64 
bit was a pain but not a huge deal, certainly a trivial % of the total 
work done on the project.


A man-month is a healthy chunk of time/effort (in a field that is starved 
for it); however, if it were the only instance, I would agree with you. 
Yet, then you turn around and also acknowledge . . . .


the advantage of an enterprise DB would be that you'd avoid some of the 
work involved in making NM a distributed system --- work we know how to 
do, but haven't done yet, because it's time-consuming...


and I think that there are a whole bunch more of similar cases that add up 
and add up and add up.  Did you have to write code to load and save from 
memory to disk (both for swapping and semi-permanent purposes)?  Are you 
confident that you know and have all the tricks necessary to scale up that 
enterprise Dabs already have (effectively for free to you)?  And what about 
concurrency?  Is your architecture designed *from the ground up* to allow 
controlled parallel, simultaneous operation?


I want to repeat that I think that y'all have done amazing work.  I just 
think that you've missed out on some opportunities to focus even more on 
what matters instead of re-inventing some wheels.



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

To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 6:34 PM
Subject: **SPAM** Re: **SPAM** Re: [agi] Development Environments for AI (a 
few non-religious comments!)






 Also, why would 32 - 64 bit be a problem, provided you planned for
it in advance?
Name all the large, long-term projects that you know of that *haven't* 
gotten bitten by something like this.  Now, name all of the large, 
long-term projects that you know of that HAVE gotten bitten repeatedly by 
the state of the art moving past something that they have custom 
programmed and can't easily integrate.  If the second number isn't a lot 
larger than the first, you're not living in my world.:-)


I think you're exaggerating the issue.  Porting the NM code from 32-64 
bit was a pain but not a huge deal, certainly a trivial % of the total 
work done on the project.
I do not think an enterprise DB would serve well for Novamente.   I am 
pretty confident that the specialized indices we use (implemented directly 
in C++) are significantly faster than implementing comparable indices in 
an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd avoid some 
of the work involved in making NM a distributed system --- work we know 
how to do, but haven't done yet, because it's time-consuming...


-- 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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Ricardo Barreira

Wow.  You've floored me given that indexes are key to what enterprise DBs do
well.  What are the special requirements/functionalities of the indices that
you believe that enterprise DBs are not *optimized* to handle?


Is there any AGI project which uses so called enterprise DBs
intensively? If not, I guess the burden of proof is on you...

Ricardo

-
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: **SPAM** Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Mike Dougherty

On 2/21/07, Eugen Leitl [EMAIL PROTECTED] wrote:

The language thread has been reasonably abstruse already, but proposing
doing AI by stored procedures in relational databases backed by
~10 ms access time devices... Hey, why not tapes? I think you could
implement a reasonably competent Turing machine with an Ultrium
tape library. Why not implementing it on that? You can't beat the
costs per bit. As to 10^23 words/s, well...


I'm working on an AI driven by water wheel and memory stored as rubber
ducks floating in a pond.  The current problems I'm faced with is
maintaining accurate tracking of regional rainfall (for both the wheel
and the pond) as well as minimizing wind effects on the ducks on the
pond.

I'm surprised anyone has such strong opinions about what absolutely
will not work considering that we do not have evidence of what
absolutely will work.  Clearly there are conceivable tasks that would
sub-optimal to do in a commercial database.  Isn't the whole idea of
modular development that the performance failure of a DB can be
managed after the consumer of that data shows significant promise?  Or
do we have to assume that AI developers should write every module from
scratch?  I wouldn't want to spend considerable effort building a
rigid or formal knowledge base because I'd feel that I should stick
with it in order to justify its cost even after it appeared that the
engine (brain?) might be better with a different KB.

Since there is still no agreed-upon right way to do A[G]I, doesn't it
make sense to be able to rapidly try as many different potential
solutions as possible in order to assess each method's promise?

-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Russell Wallace

On 2/21/07, Mark Waser [EMAIL PROTECTED] wrote:


and I think that there are a whole bunch more of similar cases that add up
and add up and add up.  Did you have to write code to load and save from
memory to disk (both for swapping and semi-permanent purposes)?  Are you
confident that you know and have all the tricks necessary to scale up that
enterprise Dabs already have (effectively for free to you)?  And what
about
concurrency?  Is your architecture designed *from the ground up* to allow
controlled parallel, simultaneous operation?



Incidentally, for those things (scalable write/search/read of large data
sets) which existing database engines do well, which one would you
recommend? For example, I remember hearing years ago that MySQL should be
avoided other than for read-only operation due to lacking adequate
transaction handling, but I've also heard it's improved a great deal in the
meantime, is that the case?

-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Kevin
Human vision article of interest:
http://www.technologyreview.com/Infotech/18210/
 
seems to me they heisted alot of concepts from Hawkins for this
application.
 
RE: the database versus custom data handlingI think for certain apps,
DB's are fine, but for AGI and the associated amount of data, a custom
system is a must.  A person can write a b-tree file management system that
can scale to tens of thousands of low-cost pc's and be lightning fast.  This
is exactly the way Google looks up search results and they do NOT use a DB.
 
Cheers,
--Kevin
 
 

  _  

From: Russell Wallace [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, February 21, 2007 9:34 AM
To: agi@v2.listbox.com
Subject: Re: [agi] Development Environments for AI (a few non-religious
comments!)


On 2/21/07, Mark Waser [EMAIL PROTECTED] wrote: 

and I think that there are a whole bunch more of similar cases that add up
and add up and add up.  Did you have to write code to load and save from
memory to disk (both for swapping and semi-permanent purposes)?  Are you 
confident that you know and have all the tricks necessary to scale up that
enterprise Dabs already have (effectively for free to you)?  And what about
concurrency?  Is your architecture designed *from the ground up* to allow 
controlled parallel, simultaneous operation?


Incidentally, for those things (scalable write/search/read of large data
sets) which existing database engines do well, which one would you
recommend? For example, I remember hearing years ago that MySQL should be
avoided other than for read-only operation due to lacking adequate
transaction handling, but I've also heard it's improved a great deal in the
meantime, is that the case? 

  _  

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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread David Clark
On any given machine, indexing code quickly reaches it's maximum speed.
Enterprise DB's are much slower because they have to be concerned with much
more than just simple indexing.  I know for a fact that my indexes are as
fast or faster than any widely used software DB on the same hardware.

Optimization on DB's is done at a higher level than an index in any case.

David Clark

- Original Message - 
From: Mark Waser [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 6:59 AM
Subject: Re: [agi] Development Environments for AI (a few non-religious
comments!)


  I am pretty confident that the specialized indices we use (implemented
  directly in C++) are significantly faster than implementing comparable
  indices in an enterprise DB would be.

 Wow.  You've floored me given that indexes are key to what enterprise DBs
do
 well.  What are the special requirements/functionalities of the indices
that
 you believe that enterprise DBs are not *optimized* to handle?


-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread David Clark
Unless the database is built into the language then using a database, outside 
the AGI,  will never work.  The data and code connection must be within the 
same development system.  The overhead of sending, parsing, optimizing the 
query, getting the data, preparing the result set, sending it back to the 
original program, and then putting the result into useful variables is just too 
much.

There are alternatives that can give an extremely fast data access, full 
language and other qualities necessary to creating an AGI out there.

MySQL is not only slow, but has no language capable of creating anything.  
Lisp, Python, C++ etc don't have the necessary power tools to create much of 
anything without starting everything from scratch.

Some manipulations for any large project (AGI) can be done in memory but 
without a scalable and flexible way of storing and retrieving large amounts of 
data from disk, no AGI is going to be built using conventional computers any 
time soon.

David Clark
  - Original Message - 
  From: Mark Waser 
  To: agi@v2.listbox.com 
  Sent: Wednesday, February 21, 2007 9:36 AM
  Subject: Re: [agi] Development Environments for AI (a few non-religious 
comments!)


   Incidentally, for those things (scalable write/search/read of large data 
sets) which existing database engines do well, which one would you recommend? 

  Hmmm . . . . am I dumb enough to incite a database holy war? . . . . . 

  Yeah, I am.

  Let me phrase it this way . . . . I have extensive experience with MySQL, 
Microsoft SQL Server, Oracle, and PostgreSQL.  MySQL is simplest and free.  
PostgreSQL is awesome and free though the tools aren't quite as friendly as 
Microsoft and it doesn't scale up quite as far as Microsoft yet -- though it 
probably scales further than anyone on this list really needs.  Microsoft has 
the best tools and the easiest integration with many things.  Oracle scales 
further but it's tools are not as good and it has some really odd capability 
holes.

  Or . . . . Never sneer at MySQL if someone wants it and it fulfills your 
requirements (though it won't cut it for AGI fairly quickly).  If you're a 
LAMP/*nix aficionado and hate Microsoft, go PostgreSQL.  If you're a 
Microsoftie, it's not a bad way to go and has many advantages.  But don't use 
Oracle, the scaling advantage is *NOT* worth the costs (money, time, effort, 
and frustration).

-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Mark Waser

Optimization on DB's is done at a higher level than an index in any case.


And with that statement, you prove that you don't know what you're talking 
about . . . .  Optimization on commercial DBs is done at all levels and 
anywhere possible.


- - - - -

And by the way, while I would believe that your indexes could be as fast or 
faster than any equivalent commercial DB software on small datastores, I 
don't believe that they can scale up to the necessary sizes for AGI *and* 
remain faster (or even close assuming that you could even handle the scaling 
up).  There are always trade-offs.  Enterprise DBs have accepted unimportant 
slowdowns at small scales to optimize for scaling to much larger sizes.  And 
the kid on the bicycle can get down the street long before the airline pilot 
even starts the engines.


- Original Message - 
From: David Clark [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 2:04 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




On any given machine, indexing code quickly reaches it's maximum speed.
Enterprise DB's are much slower because they have to be concerned with 
much

more than just simple indexing.  I know for a fact that my indexes are as
fast or faster than any widely used software DB on the same hardware.

Optimization on DB's is done at a higher level than an index in any case.

David Clark

- Original Message - 
From: Mark Waser [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 6:59 AM
Subject: Re: [agi] Development Environments for AI (a few non-religious
comments!)



 I am pretty confident that the specialized indices we use (implemented
 directly in C++) are significantly faster than implementing comparable
 indices in an enterprise DB would be.

Wow.  You've floored me given that indexes are key to what enterprise DBs

do

well.  What are the special requirements/functionalities of the indices

that

you believe that enterprise DBs are not *optimized* to handle?



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Mark Waser
So from the below, can I take it that you're a big proponent of the .NET 
framework since database access is built into the framework *AND* the framework 
is embedded in the database?

The crazy like a fox way to build an AGI may very well be to write it in 
the .NET framework in the SQL engine of a database server.
  - Original Message - 
  From: David Clark 
  To: agi@v2.listbox.com 
  Sent: Wednesday, February 21, 2007 2:27 PM
  Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)


  Unless the database is built into the language then using a database, outside 
the AGI,  will never work.  The data and code connection must be within the 
same development system.  The overhead of sending, parsing, optimizing the 
query, getting the data, preparing the result set, sending it back to the 
original program, and then putting the result into useful variables is just too 
much.

  There are alternatives that can give an extremely fast data access, full 
language and other qualities necessary to creating an AGI out there.

  MySQL is not only slow, but has no language capable of creating anything.  
Lisp, Python, C++ etc don't have the necessary power tools to create much of 
anything without starting everything from scratch.

  Some manipulations for any large project (AGI) can be done in memory but 
without a scalable and flexible way of storing and retrieving large amounts of 
data from disk, no AGI is going to be built using conventional computers any 
time soon.

  David Clark
- Original Message - 
From: Mark Waser 
To: agi@v2.listbox.com 
Sent: Wednesday, February 21, 2007 9:36 AM
Subject: Re: [agi] Development Environments for AI (a few non-religious 
comments!)


 Incidentally, for those things (scalable write/search/read of large data 
sets) which existing database engines do well, which one would you recommend? 

Hmmm . . . . am I dumb enough to incite a database holy war? . . . . . 

Yeah, I am.

Let me phrase it this way . . . . I have extensive experience with MySQL, 
Microsoft SQL Server, Oracle, and PostgreSQL.  MySQL is simplest and free.  
PostgreSQL is awesome and free though the tools aren't quite as friendly as 
Microsoft and it doesn't scale up quite as far as Microsoft yet -- though it 
probably scales further than anyone on this list really needs.  Microsoft has 
the best tools and the easiest integration with many things.  Oracle scales 
further but it's tools are not as good and it has some really odd capability 
holes.

Or . . . . Never sneer at MySQL if someone wants it and it fulfills your 
requirements (though it won't cut it for AGI fairly quickly).  If you're a 
LAMP/*nix aficionado and hate Microsoft, go PostgreSQL.  If you're a 
Microsoftie, it's not a bad way to go and has many advantages.  But don't use 
Oracle, the scaling advantage is *NOT* worth the costs (money, time, effort, 
and frustration).

--
  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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread David Clark
You are a very ignorant person Mr Mark Waser.  How do you know what I know
or don't from a few sentences in an email?  Have you designed and programmed
a commercial database programming language that sold over 30,000 copies
around the world?  If you have points to make, then make them without the
flames!

David Clark

PS Would you call millions of records and hundreds of gigs of disk space
small?  How about looking for a random string in 16,000 emails (over 100 meg
of emails) in 1 second.  Slow?

- Original Message - 
From: Mark Waser [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 12:36 PM
Subject: Re: [agi] Development Environments for AI (a few non-religious
comments!)


  Optimization on DB's is done at a higher level than an index in any
case.

 And with that statement, you prove that you don't know what you're talking
 about . . . .  Optimization on commercial DBs is done at all levels and
 anywhere possible.

 - - - - -

 And by the way, while I would believe that your indexes could be as fast
or
 faster than any equivalent commercial DB software on small datastores, I
 don't believe that they can scale up to the necessary sizes for AGI *and*
 remain faster (or even close assuming that you could even handle the
scaling
 up).  There are always trade-offs.  Enterprise DBs have accepted
unimportant
 slowdowns at small scales to optimize for scaling to much larger sizes.
And
 the kid on the bicycle can get down the street long before the airline
pilot
 even starts the engines.



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Mark Waser

How do you know what I know
or don't from a few sentences in an email?


   Huh?  When people make a simple, clear, and blatantly incorrect 
statement, don't you feel pretty sure that they don't know what they're 
talking about?


   If you wanted to retract or amend your statement that Optimization on 
DB's is done at a higher level than an index in any case, I might be 
tempted to change my mind.


   But blustering on about *off-topic* experience only diminishes your 
credibility.  Just because you have written database software and didn't do 
optimization at the index level (very hard to believe), doesn't mean that 
others haven't (unless you're claiming that you know everyone's software 
inside out -- in which case, I'd just laugh at you since I do know some of 
the people involved and do know that they do indeed do index level 
optimization).


   And pointing to a specific, blatantly incorrect statement and dismissing 
it with half a sentence is hardly a flame . . . .


- Original Message - 
From: David Clark [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 3:18 PM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




You are a very ignorant person Mr Mark Waser.  How do you know what I know
or don't from a few sentences in an email?  Have you designed and 
programmed

a commercial database programming language that sold over 30,000 copies
around the world?  If you have points to make, then make them without the
flames!

David Clark

PS Would you call millions of records and hundreds of gigs of disk space
small?  How about looking for a random string in 16,000 emails (over 100 
meg

of emails) in 1 second.  Slow?

- Original Message - 
From: Mark Waser [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Wednesday, February 21, 2007 12:36 PM
Subject: Re: [agi] Development Environments for AI (a few non-religious
comments!)



 Optimization on DB's is done at a higher level than an index in any

case.


And with that statement, you prove that you don't know what you're 
talking

about . . . .  Optimization on commercial DBs is done at all levels and
anywhere possible.

- - - - -

And by the way, while I would believe that your indexes could be as fast

or

faster than any equivalent commercial DB software on small datastores, I
don't believe that they can scale up to the necessary sizes for AGI *and*
remain faster (or even close assuming that you could even handle the

scaling

up).  There are always trade-offs.  Enterprise DBs have accepted

unimportant

slowdowns at small scales to optimize for scaling to much larger sizes.

And

the kid on the bicycle can get down the street long before the airline

pilot

even starts the engines.




-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Ben Goertzel


Hi Mark,

Actually, we seriously considered using an enterprise DB for Novamente, 
back when we were planning the original architecture.  We decided not 
to, for a number of particular technical reasons that it really isn't 
appropriate or sensible to go into on this list  But anyway, we did 
not consider it a stupid idea a priori


If there were a graph DB with the quality and flexibility of, say, an 
Oracle relational DB, we might well have wound up using it instead of 
brewing our own. But there wasn't when we started the NM project, and 
there still isn't. 


We also looked at object databases...

-- Ben


Mark Waser wrote:
I think you're exaggerating the issue.  Porting the NM code from 
32-64 bit was a pain but not a huge deal, certainly a trivial % of 
the total work done on the project.


A man-month is a healthy chunk of time/effort (in a field that is 
starved for it); however, if it were the only instance, I would agree 
with you. Yet, then you turn around and also acknowledge . . . .


the advantage of an enterprise DB would be that you'd avoid some of 
the work involved in making NM a distributed system --- work we know 
how to do, but haven't done yet, because it's time-consuming...


and I think that there are a whole bunch more of similar cases that 
add up and add up and add up.  Did you have to write code to load and 
save from memory to disk (both for swapping and semi-permanent 
purposes)?  Are you confident that you know and have all the tricks 
necessary to scale up that enterprise Dabs already have (effectively 
for free to you)?  And what about concurrency?  Is your architecture 
designed *from the ground up* to allow controlled parallel, 
simultaneous operation?


I want to repeat that I think that y'all have done amazing work.  I 
just think that you've missed out on some opportunities to focus even 
more on what matters instead of re-inventing some wheels.



- Original Message - From: Ben Goertzel [EMAIL PROTECTED]
To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 6:34 PM
Subject: **SPAM** Re: **SPAM** Re: [agi] Development Environments for 
AI (a few non-religious comments!)






 Also, why would 32 - 64 bit be a problem, provided you planned for
it in advance?
Name all the large, long-term projects that you know of that 
*haven't* gotten bitten by something like this.  Now, name all of 
the large, long-term projects that you know of that HAVE gotten 
bitten repeatedly by the state of the art moving past something that 
they have custom programmed and can't easily integrate.  If the 
second number isn't a lot larger than the first, you're not living 
in my world.:-)


I think you're exaggerating the issue.  Porting the NM code from 
32-64 bit was a pain but not a huge deal, certainly a trivial % of 
the total work done on the project.
I do not think an enterprise DB would serve well for Novamente.   I 
am pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing 
comparable indices in an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd avoid 
some of the work involved in making NM a distributed system --- work 
we know how to do, but haven't done yet, because it's time-consuming...


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



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-21 Thread Ben Goertzel

Mark Waser wrote:
So from the below, can I take it that you're a big proponent of 
the .NET framework since database access is built into the 
framework *AND* the framework is embedded in the database?
 
The crazy like a fox way to build an AGI may very well be to 
write it in the .NET framework in the SQL engine of a database server.


That just wouldn't work at all for the Novamente design.

If you have an AGI design that will work reasonably efficiently that 
way, then go for it.  But I am dubious, at the moment ;-)


ben



- Original Message -
*From:* David Clark mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 2:27 PM
*Subject:* **SPAM** Re: [agi] Development Environments for AI (a
few non-religious comments!)

Unless the database is built into the language then using a
database, outside the AGI,  will never work.  The data and code
connection must be within the same development system.  The
overhead of sending, parsing, optimizing the query, getting the
data, preparing the result set, sending it back to the original
program, and then putting the result into useful variables is just
too much.
 
There are alternatives that can give an extremely fast data

access, full language and other qualities necessary to creating an
AGI out there.
 
MySQL is not only slow, but has no language capable of creating

anything.  Lisp, Python, C++ etc don't have the necessary power
tools to create much of anything without starting everything from
scratch.
 
Some manipulations for any large project (AGI) can be done in

memory but without a scalable and flexible way of storing and
retrieving large amounts of data from disk, no AGI is going to be
built using conventional computers any time soon.
 
David Clark


- Original Message -
*From:* Mark Waser mailto:[EMAIL PROTECTED]
*To:* agi@v2.listbox.com mailto:agi@v2.listbox.com
*Sent:* Wednesday, February 21, 2007 9:36 AM
*Subject:* Re: [agi] Development Environments for AI (a few
non-religious comments!)

 Incidentally, for those things (scalable write/search/read
of large data sets) which existing database engines do well,
which one would you recommend?
 
Hmmm . . . . am I dumb enough to incite a database holy war? .

. . . .
 
Yeah, I am.
 
Let me phrase it this way . . . . I have extensive experience
with MySQL, Microsoft SQL Server, Oracle, and PostgreSQL. 
MySQL is simplest and free.  PostgreSQL is awesome and free

though the tools aren't quite as friendly as Microsoft and it
doesn't scale up quite as far as Microsoft yet -- though it
probably scales further than anyone on this list really
needs.  Microsoft has the best tools and the easiest
integration with many things.  Oracle scales further but it's
tools are not as good and it has some really odd capability holes.
 
Or . . . . Never sneer at MySQL if someone wants it and it

fulfills your requirements (though it won't cut it for AGI
fairly quickly).  If you're a LAMP/*nix aficionado and hate
Microsoft, go PostgreSQL.  If you're a Microsoftie, it's not a
bad way to go and has many advantages.  But don't use Oracle,
the scaling advantage is *NOT* worth the costs (money,
time, effort, and frustration).


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 


-
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] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Richard Loosemore

Chuck Esterbrook wrote:

On 2/19/07, Richard Loosemore [EMAIL PROTECTED] wrote:

Wow, I leave off email for two days and a 55-message Religious War
breaks out!  ;-)

I promise this is nothing to do with languages I do or do not like (i.e.
it is non-religious...).

As many people pointed out, programming language matters a good deal
less that what you are going to use it for.  In my case I am very clear
about what I want to do, and it is very different from conventional AI.

My own goals are to build an entire software development environment, as
I said earlier, and the main reasons for this are:

1) I am working on a conceptual framework for developing a *class* of AI
systems [NB:  a class of systems, not just one system], and the best way
to express a framework is by instantiating that framework in the form
of a tool that allows systems within that framework to be constructed
easily.


Can't comment on this one as it's too high level for me to do so.


2) My intention is to do systematic experiments to investigate the
behavior of systems within that class, so I need some way to easily do
this systematic experimentation.  I want, for example, to construct a
particular mechanism and then look at the behavior of many variants of
that mechanism.  So, for example, a concept-learning mechanism that
involves a parameter governing the number of daughter concepts that are
grabbed in an abstraction event ... and I might be intersted in how the
mechanism behaves when the number of daughters is 2, 3, 4, 5, or some
random number in the vicinity of one of those).  I need a tool that will
let me quickly set up such simulation experiments without having to
touch any low level code.


I've done this for financial analysis and genetic algorithm projects
that had parameters that could be varied.

It can be glued on to just about any system. Define your parameters by
name, type, required-or-not and optionally (when applicable) min and
max. Then provide some code that reads the parameter definitions and
does (at least) the following:
* complains about violations (missing value, value of out range)
* interprets looping values like a (start, stop, step) for numeric
parameters or an (a, b, c) for enums or strings
* executes the program with each combination of values, storing the
parameter sets with the results

The inputs could be done via a text file that is parsed and
interpreted. And/or a web or gui form could be generated from the
defs.

My real point is that you don't really need a new dev env for this.


I take your point, though what I did above was try to give the simplest 
example I can think of.


Certainly, all the facilities that I have in mind (wrt automated tests) 
could just be implemented as add-ons to something else.  No doubt about 
it.  But the list of facilities does start to get quite large and 
complex, when you go into the detail, so there needs to be some way to 
organize them all in one tightly-knit context.  After a while, it kind 
of adds up to an environment.


Here are some of the other things that would need to be automated:

1) I want the system to allow a user to point to any structural 
component (within limits) and say vary this.  So then the system would 
look at the definition of that structural component and try to come up 
with suggestions for ways to make variations.  These would be suggested 
to the user, who would then select the ones they wanted to try.  You 
could probably imagine the complexity involved if the user couldn't do 
this, and instead had to look into the parametric definitions for 
structural aspects of the system that were represented graphically, then 
try to manually figure out a way to make sensible variations.  This is 
what you might call a meta-automation level, because the process of 
*choosing* an automated test run is itself being automated.  Quick 
example:  the space within which elements (my term for the active 
processes that represent symbols, or concepts) interact with one 
another, is structured in such a way that there can be bottlenecks where 
different groups of elements (say, phonemes and graphemes) are forced to 
interact in a way that does not allow full connectivity.  This would 
show up in graphical form as two blob-like zones with a narrow bridge 
between them.  The user should be able to select the perimeter line that 
goes around the two blobs and bridge, and see the handles that define 
the shape.  Then say, of the handles in the vicinity of the bottleneck 
show me some variations on this.  Then the system gives a set of 
example variations, with the bottleneck constricted or dilated.


The important thing is that the user should never have to figure out 
where in the code the parameters are that would allow those variations 
to happen:  they should just be able to think, suggest and act.


2) Same as above, but you would want to ask the system for monte carlo 
runs in which it could only select random examples from a space of 
variations, 

Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Mark Waser

My real point is that you don't really need a new dev env for this.


   Richard is talking about some *substantial* architecture here -- not 
just a development environment but a *lot* of core library routines (as you 
later speculate) and functionality that is either currently spread across 
many disparate non-communicating research platforms or doesn't even exist 
yet.


   A tool that will quickly set up such simulation experiments without 
having to touch any low level code first requires all that low-level code 
to be written/ported to a common development and testing environment --  
which, in itself, requires a design/specification of a development and 
testing environment that can even support all the proposed code.  If you've 
got a small app with all of the specifications set, it's easy to write a 
testing harness.  What we're talking about here though is an environment 
that can 1) store and retrieve via a variety of different mechanisms an 
immense quantity of data, 2) store and retrieve vast amounts of knowledge in 
a variety of different formats (and cross-translating between formats as 
necessary), 3) build knowledge out of data through a variety of different 
mechanisms (probably written in a *wide* variety of programming language 
families including LISP, Prolog, and the functional programming languages 
(OCaml, Haskell, etc.),
4) allow for the tracking of context in all of the preceding operations, 
etc., etc., etc.


   Realistically, you'll have an AGI before the environment is completed . 
. . .


   Personally, I'd start with a commercial extensible development 
environment and a commercial enterprise class datastore and start designing 
and developing from there.  The one thing that I always hammer on Novamente 
for is their decision to build their datastore from scratch.  They do 
awesome research on discovery and learning but they've bled and continue to 
bleed a lot of manpower and time on interacting with a custom, 
non-enterprise class data *core*.  Imagine if they had a development 
environment like Richard is proposing . . . . (and plugged all of their BOA, 
MOSES, etc. into it) . . . .


- Original Message - 
From: Chuck Esterbrook [EMAIL PROTECTED]

To: agi@v2.listbox.com
Sent: Tuesday, February 20, 2007 1:40 AM
Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)




On 2/19/07, Richard Loosemore [EMAIL PROTECTED] wrote:

Wow, I leave off email for two days and a 55-message Religious War
breaks out!  ;-)

I promise this is nothing to do with languages I do or do not like (i.e.
it is non-religious...).

As many people pointed out, programming language matters a good deal
less that what you are going to use it for.  In my case I am very clear
about what I want to do, and it is very different from conventional AI.

My own goals are to build an entire software development environment, as
I said earlier, and the main reasons for this are:

1) I am working on a conceptual framework for developing a *class* of AI
systems [NB:  a class of systems, not just one system], and the best way
to express a framework is by instantiating that framework in the form
of a tool that allows systems within that framework to be constructed
easily.


Can't comment on this one as it's too high level for me to do so.


2) My intention is to do systematic experiments to investigate the
behavior of systems within that class, so I need some way to easily do
this systematic experimentation.  I want, for example, to construct a
particular mechanism and then look at the behavior of many variants of
that mechanism.  So, for example, a concept-learning mechanism that
involves a parameter governing the number of daughter concepts that are
grabbed in an abstraction event ... and I might be intersted in how the
mechanism behaves when the number of daughters is 2, 3, 4, 5, or some
random number in the vicinity of one of those).  I need a tool that will
let me quickly set up such simulation experiments without having to
touch any low level code.


I've done this for financial analysis and genetic algorithm projects
that had parameters that could be varied.

It can be glued on to just about any system. Define your parameters by
name, type, required-or-not and optionally (when applicable) min and
max. Then provide some code that reads the parameter definitions and
does (at least) the following:
* complains about violations (missing value, value of out range)
* interprets looping values like a (start, stop, step) for numeric
parameters or an (a, b, c) for enums or strings
* executes the program with each combination of values, storing the
parameter sets with the results

The inputs could be done via a text file that is parsed and
interpreted. And/or a web or gui form could be generated from the
defs.

My real point is that you don't really need a new dev env for this.


3) One reason that is almost tangential to AI itself, though related:  I
believe that conventional

Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Russell Wallace

On 2/20/07, Mark Waser [EMAIL PROTECTED] wrote:


Realistically, you'll have an AGI before the environment is completed
.
. . .



I think you slightly underestimate the difficulty of creating AGI ;)

   Personally, I'd start with a commercial extensible development

environment and a commercial enterprise class datastore and start
designing
and developing from there.  The one thing that I always hammer on
Novamente
for is their decision to build their datastore from scratch.



I'm still curious about what advantages you see commercial database systems
having for AI work?

-
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: **SPAM** Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Mark Waser
 I think you slightly underestimate the difficulty of creating AGI ;) 

I think that you grossly underestimate the magnitude of what is being proposed 
because the tag development environment has been attached to it.:-)

Realistically, the development environment is both the AGI's DNA *and* it's 
womb/environment/nutrients.

 I'm still curious about what advantages you see commercial database systems 
 having for AI work?

An AGI is going to want to store, retrieve, and update an immense amount of 
data and knowledge based upon a wide array of criteria.  Many, many really 
smart people have spent many, many man-years designing heavy-duty, 
fault-tolerant systems that do exactly that (with many other capabilities 
besides -- you know, little things like triggers, back-up, set-based 
operations, etc., etc.).  What possible advantage do you see in not leveraging 
all that capability?

Note that I'm not talking about a stupid architecture where you hammer yourself 
flat with nine million, small database calls.  I block move chunks of data in 
and out and would move anything that uses more than a certain amount of data 
into the database itself and operate on it there.


  - Original Message - 
  From: Russell Wallace 
  To: agi@v2.listbox.com 
  Sent: Tuesday, February 20, 2007 3:31 PM
  Subject: **SPAM** Re: [agi] Development Environments for AI (a few 
non-religious comments!)


  On 2/20/07, Mark Waser [EMAIL PROTECTED] wrote:
Realistically, you'll have an AGI before the environment is completed .
. . .

  I think you slightly underestimate the difficulty of creating AGI ;) 



Personally, I'd start with a commercial extensible development
environment and a commercial enterprise class datastore and start designing
and developing from there.  The one thing that I always hammer on Novamente 
for is their decision to build their datastore from scratch.

  I'm still curious about what advantages you see commercial database systems 
having for AI work?

--
  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: **SPAM** Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Russell Wallace

On 2/20/07, Mark Waser [EMAIL PROTECTED] wrote:


I think that you grossly underestimate the magnitude of what is being
proposed because the tag development environment has been attached to
it.:-)



*grin* No, I think it's a big project, at least the version I have in mind
(on my to-do list for if and when I get the chance to spend a few years on
it) - bigger than some people's estimates for full AGI. I still think actual
AGI will be much much harder.

Note that I'm not talking about a stupid architecture where you hammer

yourself flat with nine million, small database calls.  I block move chunks
of data in and out and would move anything that uses more than a certain
amount of data into the database itself and operate on it there.



How do you propose to operate on data while it's stored in the database?
Commercial data processing usually performs no significant computation, just
storing and retrieving data, and DBs typically provide facilities for doing
that; but AI needs to perform heavy computation, don't you need to have your
working set in your processes' memory for that?

-
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] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Russell Wallace

On 2/20/07, Ben Goertzel [EMAIL PROTECTED] wrote:


Novamente works fine on 64-bit machines -- but it took nearly a
man-month of work to 64-bit-ify the code, which was done back in 2004...



I guess I stand corrected on that one!

-
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: **SPAM** Re: [agi] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Ben Goertzel


 Also, why would 32 - 64 bit be a problem, provided you planned for 
it in advance?
Name all the large, long-term projects that you know of that *haven't* 
gotten bitten by something like this.  Now, name all of the large, 
long-term projects that you know of that HAVE gotten bitten repeatedly 
by the state of the art moving past something that they have custom 
programmed and can't easily integrate.  If the second number isn't a 
lot larger than the first, you're not living in my world.:-)


I think you're exaggerating the issue.  Porting the NM code from 32-64 
bit was a pain but not a huge deal, certainly a trivial % of the total 
work done on the project. 

I do not think an enterprise DB would serve well for Novamente.   I am 
pretty confident that the specialized indices we use (implemented 
directly in C++) are significantly faster than implementing comparable 
indices in an enterprise DB would be.


However, the advantage of an enterprise DB would be that you'd avoid 
some of the work involved in making NM a distributed system --- work we 
know how to do, but haven't done yet, because it's time-consuming...


-- 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] Development Environments for AI (a few non-religious comments!)

2007-02-20 Thread Chuck Esterbrook

On 2/20/07, Richard Loosemore [EMAIL PROTECTED] wrote:
...

It helps to remember that my target users are cognitive scientists who
want to be able to stay in a high-level thought mode (fancy way of
saying that my users ain't gonna be hackers).


Now I see why it would be a dev env, both from the examples and the
target audience. Thanks,

-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] Development Environments for AI (a few non-religious comments!)

2007-02-19 Thread Anna Taylor

Richard Loosemore wrote:
There is a restriction in my case that enables me to get away without
having to solve the general problem.

I am curious to know what that restriction is?  Offlist would be welcomed.
Thanks
Anna:)




On 2/19/07, Richard Loosemore [EMAIL PROTECTED] wrote:


Wow, I leave off email for two days and a 55-message Religious War
breaks out!  ;-)


I promise this is nothing to do with languages I do or do not like (i.e.
it is non-religious...).


As many people pointed out, programming language matters a good deal
less that what you are going to use it for.  In my case I am very clear
about what I want to do, and it is very different from conventional AI.

My own goals are to build an entire software development environment, as
I said earlier, and the main reasons for this are:

1) I am working on a conceptual framework for developing a *class* of AI
systems [NB:  a class of systems, not just one system], and the best way
to express a framework is by instantiating that framework in the form
of a tool that allows systems within that framework to be constructed
easily.

2) My intention is to do systematic experiments to investigate the
behavior of systems within that class, so I need some way to easily do
this systematic experimentation.  I want, for example, to construct a
particular mechanism and then look at the behavior of many variants of
that mechanism.  So, for example, a concept-learning mechanism that
involves a parameter governing the number of daughter concepts that are
grabbed in an abstraction event ... and I might be intersted in how the
mechanism behaves when the number of daughters is 2, 3, 4, 5, or some
random number in the vicinity of one of those).  I need a tool that will
let me quickly set up such simulation experiments without having to
touch any low level code.

3) One reason that is almost tangential to AI itself, though related:  I
believe that conventional environments and languages are built by people
who think like engineers, and do not have a good understanding of how a
mind works when it is trying to comprehend the enormous complexity of
computational systems.  [I know, I said that in combative language:  but
try not to flame me just because I said it assertively ;-)].  So I am
trying to use psychological principles to make the process of system
design and programming into a task that does not constantly trap the
designer/programmer into the most stupid of errors.  I have a number of
ideas in this respect, but since I am talking to some people about
funding this project right now, I'd rather not go into detail.

4) I need particular primitives that are simply not available in
conventional languages.  The biggest example is a facility for massive
asymmetric parallelism that is not going to fall flat on its face all
the time (with deadlocks and livelocks).  I realise that everyone and
their grandmother would like to do massive parallel programming without
all the usuall headaches, and that the general problem is horrendous...
but I can actually solve the problem in my context because I do not have
to create a general solution to the problem.  There is a restriction in
my case that enables me to get away without having to solve the general
problem.  Again, apologies for coyness:  possible patent pending and all
that.




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



-
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] Development Environments for AI (a few non-religious comments!)

2007-02-19 Thread Chuck Esterbrook

On 2/19/07, Richard Loosemore [EMAIL PROTECTED] wrote:

Wow, I leave off email for two days and a 55-message Religious War
breaks out!  ;-)

I promise this is nothing to do with languages I do or do not like (i.e.
it is non-religious...).

As many people pointed out, programming language matters a good deal
less that what you are going to use it for.  In my case I am very clear
about what I want to do, and it is very different from conventional AI.

My own goals are to build an entire software development environment, as
I said earlier, and the main reasons for this are:

1) I am working on a conceptual framework for developing a *class* of AI
systems [NB:  a class of systems, not just one system], and the best way
to express a framework is by instantiating that framework in the form
of a tool that allows systems within that framework to be constructed
easily.


Can't comment on this one as it's too high level for me to do so.


2) My intention is to do systematic experiments to investigate the
behavior of systems within that class, so I need some way to easily do
this systematic experimentation.  I want, for example, to construct a
particular mechanism and then look at the behavior of many variants of
that mechanism.  So, for example, a concept-learning mechanism that
involves a parameter governing the number of daughter concepts that are
grabbed in an abstraction event ... and I might be intersted in how the
mechanism behaves when the number of daughters is 2, 3, 4, 5, or some
random number in the vicinity of one of those).  I need a tool that will
let me quickly set up such simulation experiments without having to
touch any low level code.


I've done this for financial analysis and genetic algorithm projects
that had parameters that could be varied.

It can be glued on to just about any system. Define your parameters by
name, type, required-or-not and optionally (when applicable) min and
max. Then provide some code that reads the parameter definitions and
does (at least) the following:
* complains about violations (missing value, value of out range)
* interprets looping values like a (start, stop, step) for numeric
parameters or an (a, b, c) for enums or strings
* executes the program with each combination of values, storing the
parameter sets with the results

The inputs could be done via a text file that is parsed and
interpreted. And/or a web or gui form could be generated from the
defs.

My real point is that you don't really need a new dev env for this.


3) One reason that is almost tangential to AI itself, though related:  I
believe that conventional environments and languages are built by people
who think like engineers, and do not have a good understanding of how a
mind works when it is trying to comprehend the enormous complexity of
computational systems.  [I know, I said that in combative language:  but
try not to flame me just because I said it assertively ;-)].  So I am
trying to use psychological principles to make the process of system
design and programming into a task that does not constantly trap the
designer/programmer into the most stupid of errors.  I have a number of
ideas in this respect, but since I am talking to some people about
funding this project right now, I'd rather not go into detail.


This is the most interesting point in your list. Too bad we can't get
the details yet.  :-)

I don't know what such an environment would look like, but I don't see
why it couldn't exist. Developers have to keep a lot of stuff in their
head as they work on a project and I'm positive that current IDEs
aren't doing as much as they could to help visualize, manage and
develop a project. Not nearly as much as they could!

I sincerely wish you luck as I'd like to take such an environment for a drive.


4) I need particular primitives that are simply not available in
conventional languages.  The biggest example is a facility for massive
asymmetric parallelism that is not going to fall flat on its face all
the time (with deadlocks and livelocks).  I realise that everyone and
their grandmother would like to do massive parallel programming without
all the usuall headaches, and that the general problem is horrendous...
but I can actually solve the problem in my context because I do not have
to create a general solution to the problem.  There is a restriction in
my case that enables me to get away without having to solve the general
problem.  Again, apologies for coyness:  possible patent pending and all
that.


That feels likes something that can be done via a library, although I
appreciate that some things can only be done at the language level or
are simply best done there. (And perhaps at the environment level or
some mix of all of these.)

Feel free to keep us informed of any technical and business developments...

-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