AIWiki RecentChanges Index

HoopyIdeas

We need somewhere to put those really hoopy ideas so that other people can play with them. The ideas don’t need to be useful, just hoopy. I’ll give you a few to start you off.


AiProgrammer

What about writing a program in some language X, that can understand programming language X. By understand we mean that if you give the program a specification it can produce a program in X that meets the specification. So now you can give a specification of itself and …

Of course we have the issue of how the specification is formulated, but let’s leave that as an exercise for the reader.

This idea is by no means original and it is explored further under AiProgrammer. – GL7

AiDebugger

This is another aspect of the AiProgrammer. I guess you could call is the AiDebugger.

Write a program in some language X that can understand the output from the source code debugger for programs written in language X. By understand we mean that if you give the program a specification of the program and the debug trace from a run of the program, it can verify that the program ran correctly. Now you can give the program a specification of itself and …

And you also have an introspective program … perhaps ?? – GL7

More on specifications

And now, following on from the above, you may well start to wonder why we need program specifications as well as programs, and a very good question it is too. Surely there is such a strong sense of equivalence between the two that you shouldn’t need both.

But that is getting into the program as specification (or specification as program) debate which is not really Ai, and is being debated at various places around the Internet.

I think this sort of thing is actually intricately tied to the idea of an AiProgrammer. When you tell a human to make a program to do something, you don’t completely specify the result that you want. Furthermore, much of what you do specify is implicitly specified by context/shared assumptions rather than you’re actual words. Hence, I could say to someone “make me a program to check the spelling in this document” and they would make some sort of spellchecker even though I didn’t specify in what form I wanted to be notified of the results of the spell checking. Similarly, imagine that the AiProgrammer set its own goals for the programs it would write (in the process of trying to acheive some objective in a toy world that it existed in). The representation of those goals are key. – BayleShanks

My own view is that FunctionalProgramming? languages considerably narrow the gap between a program and its specification. I expect these laguages to play a major role in AIs in the future. (Yes, I know the apostrophe doesn’t belong there, but Ais looks wrong and AIs? creates a dangling link.) – GL7

re: “Ais”: I use the <nowiki> tag for that kind of thing. One suggested improvement to UseMod? is for each wiki to have a publically editable table of words that should never be turned into links (see MeatBall:AutoLink?). Seems like a low priority item, though, and I don’t have time to do it.

I don’t know any FunctionalProgramming? languages real well, but from what I know of the paradigm I like it a lot.

BayleShanks


I really like the hoopy ideas approach (as well as the specific goals of an AiProgrammer and AiDebugger; as noted on SelfProgramming, I think this sort of thing is a whole other approach to the concept of “learning” that was forgotten about when SupervisedLearning became popular. – BayleShanks

Well, why don’t we start our own AIs project, could be AiProgrammer or AiDebugger, and implement it in a FunctionalProgramming? language. I think that this is a good approach because FunctionalProgramming? languages are very clean and very mathematical and hence (questionable reasoning here !!) the best languages for AIs to be written in and to understand.

We could cheat a bit here and write program which simply monitors its own trace and does nothing with it. We could say that it was just meditating. This smacks of Zen, in fact one could say:

	Zen Originality
	Makes Beautiful,
	Introspective Engine

Which is not only a reasonable hack at a haiku, but also a wonderful acronym for our project.

My girlfriend and I were thinking of haikis, acronyms and self-reference - as one does - over beer and pizza in a Budapest restaurant this evening and we came up with:

	Haiku Acronymically
	Innocently,
	Knowingness Unfolds

I know it’s not so good - acronymically, in particular is pretty bad. Improvements welcome !! – GL7

It is clear that Patricia (my girlfriend) is better at haiku formulation than I am. What about:

	Haiku Artifice
	Inspirational Knowing,
	Unfathomable

which is really very good; it even has the 5,7,5 syllables pattern. This is all a bit off topic though. Mind you, DouglasHofstadter was well into haiku in his GodelEscherBach?, so we’re in good company. – GL7

Well, (speaking for myself and not the rest of AIWiki) I’d love to work on an AiProgrammer and it’s definitly something I’ve been planning to do someday, but for the next two years or so I don’t think I’ll have much time to give to an A.I. project (this year I’m doing an honors thesis on wikis, and next year is my first year in a neurobio phD program). But I’m very interested in doing something like this later on (and in following any project that you do now). – BayleShanks

The Ai Programmer Project is such a good idea that I’ve started such a project on the SourceForge.
https://sourceforge.net/projects/aiprogrammer/
It doesn’t have a homepage yet, but give it time. It already has a team of 6. I’ll put up an AiProgrammerProject page here to say what is, and what might, get done on the project. – GL7