[Discussion] The need for an XML-based programming language for the development of Artificial General Intelligence
Software that is self-aware needs to be able to "see" its own code and be able to make the necessary changes to the code at run time. That requires the source code to be well structured and of high degree of formality. We need a language that does not have room for syntax error or any kind of compile time error when the software replaces lines/blocks of code or even removes them (logical error is fine since the software is adaptive). In essence, the source code needs to be treated as a data structure. What's your opinion on this? Do you think an XML-based programming language is the way to go?
9 votes  by zkam83    13 comments   

Comments

meldon    1 votes   Saturday, January 19, 2008 at 7:48 AM
- LISP pretty much does it.
- Don't forget the XML-based "Flare" , an early abortive project of SIAI (http://www.singinst.org/ourresearch/publications/GISAI/meta/glossary.html#gloss_lisp_tokens)
[Reply]
zkam83    1 votes   Saturday, January 19, 2008 at 1:14 PM
I wouldn't be surprised that Flare didn't make into the real world. Lisp itself didn't get the attention it deserves. Although I think languages such as Lisp and Prolog will make a come back.
[Reply]
akkartik    1 votes   Monday, January 21, 2008 at 10:03 AM
You can't compare flare with lisp. Flare doesn't exist yet.
[Reply]
wal    1 votes   Sunday, January 20, 2008 at 1:20 PM
Many modern programming platforms allow the code to inspect itself or generate code at run time; either built into the framework or using add-on libraries. However, in terms of practicality and productivity, dynamically generated code is much harder to debug when something goes wrong. And, that's probably why it's not such a widely used concept.
[Reply]
alstrup    1 votes   Saturday, January 19, 2008 at 11:42 AM
Transmuter (see transmuter.org, but the site is currently down) is a language which is designed for manipulation by a computer.

You can see the announcement here:
http://article.gmane.org/gmane.comp.ai.annevolve.devel/135

and using the wayback machine, you can read more here:
http://web.archive.org/web/20070106032219/http://transmuter.org/intro.html
[Reply]
mentifex    1 votes   Saturday, January 19, 2008 at 9:39 PM
Personally, I think that XML may be too straightjacketing, too rigid, too data-centric and not logic-centric. Nevertheless I have installed a link to this very discussion on my http://mind.sourceforge.net/xml.html page. Meanwhile, I am having trouble posting a link or a Discussion. I would much apppreciate it if somebody here would post http://mentifex.virtualentity.com/mind4th.html as a link with the question, "MindForth -- does it really think?" TIA
[Reply]
wal    1 votes   Sunday, January 20, 2008 at 1:34 PM
I agree on the XML point.

Do you have a brief summary of mentifix? The page you linked to (although you need to correct the url) is a little hard to read for someone who doesn't already know the basic concepts of your work. A quick explination of the basic concept behind it would help a lot.

Also, can you please send me more details about the error you're getting? A screen shot or the error message you see will be great. Please email it to waleed %at% ninua %dot% com. Thanks.
[Reply]
mentifex    1 votes   Sunday, January 20, 2008 at 10:07 PM
For more about the Mentifex MindForth AI program, please see the notes indexed at my http://www.kurzweilai.net/mindx/profile.php?id=26 webpage.

The error that I am getting in trying to post is that, with Windows 95 and Internet Explorer 5.1 (I think :-) the posting process just goes in circles and does not actually post anything. I may try later with a better computer. -Arthu
[Reply]
wal    1 votes   Sunday, January 20, 2008 at 1:26 PM
I'd argue that humans have general intelligence, but we don't have the ability to modify our own brains (at least not yet). Self introspection is not a requirement for AGI, but a result of AGI; if it's curious enough to want to know how it works.
[Reply]
julianmorrison    1 votes   Monday, January 21, 2008 at 2:16 AM
You seem to want a dynamic language with hard type checking, and with a s-expression structure. Something along the lines of liskell?

Personally I think a language that allows errors is OK, for three reasons. One: an AI won't mess with its code until it's smart, anyhow. Two: you can keep a change history in version control and just back-out a buggy change. Three: you can build the rules of the language perfectly into the AI.

You absolutely don't need XML. It's the wrong tool for representing programming languages. Every XML based general programming language has failed painfully.
[Reply]
zkam83    1 votes   Monday, January 21, 2008 at 4:31 AM
What I have in mind is a language that allows the source code to "evolve" based on stochastic feedback rather than "logic" and language rules. Similar in concept to Statistical NLP approach. Therefore, we could apply familiar methods of machine learning such as neural networks and genetic algorithms.
[Reply]
julianmorrison    1 votes   Monday, January 21, 2008 at 4:40 AM
Then you want something more than just strict type checking, you want "fail softly" code like DNA. Regular source code will fail hard, even with strict type checking.
[Reply]
akkartik    1 votes   Monday, January 21, 2008 at 10:09 AM
"We need a language that does not have room for syntax error or any kind of compile time error when the software replaces lines/blocks of code.."

Genetic programming deals a bunch with this problem. For example: http://onsingularity.com/item/2930
[Reply]
Back to:
On Singularity


Join the discussion. Sign up and add your comments.