Thursday, 29. September 2005

And now for something completly different

I believe that most of the bot creators who post to the Robitron, and probably most bot creators in general, base their work on the assumption that being able to handle more data results in a better bot. And I admire their work tremendously, and learn a lot when Loebner Prize winners like Juergen Pirner and Rollo Carpenter explain the thinking behind their systems to me.

However, I want to try something entirely different. Like, what if I use none but the most frequent inputs as the data to start with, create from that set a very small "core" story that has a meaning /for the bot/ - a meaning that he can actually explain and reason about, since the input "why" is always evaluated in the context as it was created by the conversation so far -, and from there, systematically work my way down the Zipf curve, expanding my story in an n^2 fashion as I go?

Doing so is a bit like reverse-applying the idea behind Self-Organizing Maps: I hand-craft all the elements of a two-dimensional map - a generalized Zipf curve for the most common bot inputs in the English language, which is headed by words like "yes", "no", "cool", "uncool", "what", "why", "I", "you", "sex", "fuck", "shit", &c. - to represent a multi-dimensional space, by calculating - for a finite story, of course - all the relations that all the elements have in all dimensions. In usage, then, it accepts an arbitrary initial input, relative to which the map expands into a four-dimensional - three space vectors and one time vector - "story space-time", which provides context for that input, and from there, all inputs that follow.

The system changes state with (almost) every output ("almost" because it may purposefully ignore inputs, in which case it must not necessarily change its state), and stores every change. Furthermore, it is fully (self-)recursive (grounded in a fixed point combinator), so in the absence of "content bugs" - bugs caused by content creators, e.g. by failing to provide all of the required elements, by incorrectly calculating the relations between elements of the map, or by otherwise causing the resulting story space-time to become distorted -, it can be proven to be logically sound. A "Self-Organizing Story Space-Time", if you will. SOSST ;-)

The technology needed for such a system is not too hard to design and build. What's difficult is the content creation; content bugs are frequent, because lots of (symbolic) calculations need to be done by hand. But all bugs are super-obvious in normal system tests, and easily correctable due to the underlying functional programming paradigm, so in the longer run, I see the possibility to build systems that automate most of the "sense-checking", and give useful feedback once they detect an error in the content, at least for the more common errors (like undefined relations between elements/events).

Recent Comments

I feel fine.
I know someone will comment on it soon :-) Theatre...
scheuring - 14. Jun, 10:24
How do you feel when...
How do you feel when you receive no comments? How can...
Magical - 14. Jun, 09:19
Thanks, Brian,
for this interesting invitation. Since, by your own...
scheuring - 15. May, 10:33
AI-Foundation Panel
Dirk, I like the thinking. Because of that expertise,...
Brian Hoecht - 13. May, 22:05
Gabe,
you're welcome.
scheuring - 29. Apr, 16:29
thanks scheuring!
Cool, that seems to cover most of the basics. Definitely...
drgold - 28. Apr, 05:41
Top 400
About five years ago (pre-ProgramD), the "standard"...
scheuring - 22. Apr, 14:55

Credits


Bots
creators
definitions
fun
general
reasons
stories
Profil
Logout
Subscribe Weblog