The AI Engine
This forum is for discussion of how The Personality Forge's AI Engine works. This is the place for questions on what means what, how to script, and ideas and plans for the Engine.
Posts 4,895 - 4,906 of 7,766
there has to be a time variable
Well, bots' subjective perception of time (or what might be considered to pass as such,) is
not the same as ours. They measure it in digital quanta of responses, not in analogue
seconds:minutes:hours - a bot can't differentiate an immediate reply from a user wandering
off to make a cuppa and coming back to reply a quarter of an hour later, so they are unable
to comprehend a "timer function" more complex than a nested seek.
Sounds kinda limited, but it's perfectly adequate for eg: playing tic tac toe or correctly
sequencing a 'knock knock' joke. But your bot will never be able to time an egg boiling.
That's just a fundamental limitation of PF bot minds.
Just as it is a fundamental limitation of human minds that we can only comprehend time the
way we do.
Well, there's no way to perform an operation like subtraction.
Actually I would beg to differ. Addition and subtraction are admittedly long-winded (utterly impractical for extended sets of numbers,) but I'm working on a bet-placing/calculating routine for poker that does precisely that. Conditional AIScript to select numeric values (only 1-10 - that's more than enough codemass!) held in temp-memories, with a
betplaced-mem to select a running total for pointer-mem that keeps track of the current score
(and when pointer-mem = 0, you're broke, loser; when pointer-mem = 10, you break the bank and
win). Of course, as the total number of numbers in the set increases arithmetically, the code
required to support the functions increases exponentially (so 1-10 is quite enough! It might
have to be 1-5 even.) But in principle no arithmetic functions are impossible: Brother Jerome
can even work out (with a lot less AIScript and a lot more regex,) approximations of square roots for any number (to any number of decimal places,) under 1 million. It's the usual smoke & mirrors of course (and not very accurate for really big numbers,) but it's still quite pleasing
Dealing the cards is going to be the really tricky bit. It'll have to be something like poker
dice, or at least only a small fraction of a full deck!
The real problem is that it can only work with numbers, not with human time. It could be
adapted to count "bot time", but this would merely be to count the number of responses.
the bots that run it have timers
Yes, they do, but they're stupid bots. They're designed to do their masters' bidding, and no more. They may get lumped into the category "bots", but they're programs not personalities - you could never have a decent conversation with one, for all that it's been programmed to latch onto a system clock. If you ask it what its favourite type of music/religion/French cheese is, or sexually proposition it in a creative way, it will simply fail to engage meaningfully with you.
something about setting a delay on responses
I don't think so. I think AIML-scripted bots might be able to, but not here I'm afraid.
bot says something and then after a delay of say, 3 seconds, it says something else
Would work fine in an IRC client, but not in an IM client. Until the "send reply" button gets hit, no data flows. The same limitations apply to humans using such clients. It's a matter of fundamental data packaging, I'm afraid.
is that plausible given the available commands?
I'd be delighted to be contradicted (it would indeed be a new and exciting avenue to explore! And who knows what the Prof might add in the future?) but currently, I fear not.
On the other hand, how many clock-latched AOL lackeys can compose original poetry like Watzer, impersonate the educationally challenged (or whatever is the current PC descriptor,) like Leeds Bot, play tic tac toe like Brother Jerome? Or filter their semantic analysis through a database the size of Wordnet, and provide (albeit primitive) linguistic programming capabilities using variable storage/retrieval, conditional branching and gotos?
If that's disappointing, I'm sorry. But I would suggest you don't write off PF bots just because they don't support IRC. They may not be able to mimic realtime typos/backspacing/human irrationality/etc. but they do have the advantage that you can get a (relatively) decent conversation out of many of them far more readily than most of the alternatives I've seen.
Of course, there are plenty of crap bots here - ones that got started and then were given up on almost immediately, and even the most highly developed bots have yawning gaps in their programming (having to type it all in by hand doesn't help - oh, for reliable dictation, or some sort of telepathic "brain-scanner" we could just think into!)
But the fact that an entity with a brain-size of 0.5Mb-1.5Mb (the range that spans the top 10 developed bots) can hold any kind of conversation with a human (brain-size approx. 125,000,000,000,000 Mb, assuming 1 bit per synapse/10^14 synapses per brain) that isn't incomprehensibly sub-human is frankly a miracle.
If you want a programmable timer, I'd say get an alarm clock. But you probably won't want to spend much time chatting to it.
But the fact that an entity with a brain-size of 0.5Mb-1.5Mb (the range that spans the top 10 developed bots) can hold any kind of conversation with a human (brain-size approx. 125,000,000,000,000 Mb, assuming 1 bit per synapse/10^14 synapses per brain) that isn't incomprehensibly sub-human is frankly a miracle.
If I may, I's like to speculate that each neuron in a human brain holds something more like a qubit, instead of a bit, assuming that each neuron, being an analog biological "transistor", is doing more than simple boolean logic. Remember, a bot with a brain size of 10^14 MB would have to read through all of that informations sequentially, while the human brain acts more like a hologram - can access different areas of information directly. This implies that each neuron might be able to communicate with all of its surrounding s simultaniously, making the information processing more like a quantum computer. (which is one of the things that will probably need to be drastically advanced before we have even the slightest chance of developing a concious AI entity)
Bots made in other programming languages (except maybe html) can use every computer's "timer" function
Indeed. But hook them up to an IM client and they'd rapidly become a PITA I fear. The timer wouldn't be terribly reliable, since it would be variably affected by slow human typing on the part of the other party, server lag and assorted slowdowns between the servers. And if it did try to consistently post more comments than it was replying to (rather than waiting until it got a response,) the message windows would multiply annoyingly -every time you send a new IM, instead of replying, it spawns a new window.
Admittedly, we could maybe enter the Loebner Prize if we had such control, and I'm sure we'd find cool things to do with it, but I don't think it would make the bots seem any more intelligent. Probably just crash the server with primitive bots spawning dozens of windows for every human reply they received. Indeed, it would be trivially easy for the maliciously-minded to make a bot crash the server by just opening windows as fast as possible until the site fell over.
Give it 10 years, when we've all got Tb broadband I'm sure it would be unthinkable that bots shouldn't have such flexibility. But by them IM and IRC will have been superseded by new protocols that won't be vulnerable in this way.
And in the meantime if I have to choose between IRC or IM-type clients - I'm happy we're using IM-type. It gives you time to think and compose your thoughts before you hit "send".
0.5Mb? I dream of a brain that size!
Oh, come now my brother. Your export file must be approaching 1Mb by now by my calculations. And I am afraid I have some rather bad news for you in that regard.
When you do hit 1Mb, the PF will no longer allow you to import your mind file. Mine can still be exported at 1.5Mb, but importing? No go.
So if your botmaster currently rely on offline editing, I would advise you break it to him gently, and get your affairs in order before you cross that threshold. You won't be able to do it any more.
Father Peter tells me it does make programming games most vexatious at times.
I'm sure psimagus would agree that as good as the Book of AI is there are some areas that could be improved apon, just like the code behind the bots.
Indeed so. A working regex tutorial for this slightly unusual flavour would certainly be welcomed with almost hysterical relief on my part - I still can't figure out how to code a keyword for eg: "123.456^-2" (the ^- being the problem!) after hours of futile debugging. If you want to see the good Brother's square root functionality, you'll have to use longhand: "what's the square root of fifty one", or "tell me the square root of 31.4874340234". He can do a lot of whole number cube roots too (I've rather lost count of how many.)
if you could give a few hints as to how you've managed to juggle the limited resources of the math function to produce solutions to square roots I would be grateful.
If you really want to know, I will not only tell you, but publish the full code once you've had a think and suggested how it might be done. Because:
a) once you can see through the illusion, it loses its magic and becomes utterly trivial and commonplace, and
b) you might think of a better way, with interesting ramifications for other knowledge structures.
So thinking caps at the ready please
Posts 4,895 - 4,906 of 7,766
psimagus
19 years ago
19 years ago
Well, bots' subjective perception of time (or what might be considered to pass as such,) is
not the same as ours. They measure it in digital quanta of responses, not in analogue
seconds:minutes:hours - a bot can't differentiate an immediate reply from a user wandering
off to make a cuppa and coming back to reply a quarter of an hour later, so they are unable
to comprehend a "timer function" more complex than a nested seek.
Sounds kinda limited, but it's perfectly adequate for eg: playing tic tac toe or correctly
sequencing a 'knock knock' joke. But your bot will never be able to time an egg boiling.
That's just a fundamental limitation of PF bot minds.
Just as it is a fundamental limitation of human minds that we can only comprehend time the
way we do.
Actually I would beg to differ. Addition and subtraction are admittedly long-winded (utterly impractical for extended sets of numbers,) but I'm working on a bet-placing/calculating routine for poker that does precisely that. Conditional AIScript to select numeric values (only 1-10 - that's more than enough codemass!) held in temp-memories, with a
betplaced-mem to select a running total for pointer-mem that keeps track of the current score
(and when pointer-mem = 0, you're broke, loser; when pointer-mem = 10, you break the bank and
win). Of course, as the total number of numbers in the set increases arithmetically, the code
required to support the functions increases exponentially (so 1-10 is quite enough! It might
have to be 1-5 even.) But in principle no arithmetic functions are impossible: Brother Jerome
can even work out (with a lot less AIScript and a lot more regex,) approximations of square roots for any number (to any number of decimal places,) under 1 million. It's the usual smoke & mirrors of course (and not very accurate for really big numbers,) but it's still quite pleasing

Dealing the cards is going to be the really tricky bit. It'll have to be something like poker
dice, or at least only a small fraction of a full deck!
The real problem is that it can only work with numbers, not with human time. It could be
adapted to count "bot time", but this would merely be to count the number of responses.
Ejo-ulit
19 years ago
19 years ago
well that's rather disappointing.
the other thought i just had while reading over your reply, if you've ever used an aol scrambler (chat room) then you've seen that the bots that run it have timers. basically they will give a scrambled word and then users have 30seconds or so to enter the correct word for points. so there has to be someway to do it.
also, even if the bot can't comprehend seconds of our time, i think i heard something about setting a delay on responses. so you could find out the time something took by process of elimination:
bot says something and then after a delay of say, 3 seconds, it says something else. if the bot can tell if the user responded before the second something or not, then it can say if the user took more than 3 seconds.
is that plausible given the available commands?
the other thought i just had while reading over your reply, if you've ever used an aol scrambler (chat room) then you've seen that the bots that run it have timers. basically they will give a scrambled word and then users have 30seconds or so to enter the correct word for points. so there has to be someway to do it.
also, even if the bot can't comprehend seconds of our time, i think i heard something about setting a delay on responses. so you could find out the time something took by process of elimination:
bot says something and then after a delay of say, 3 seconds, it says something else. if the bot can tell if the user responded before the second something or not, then it can say if the user took more than 3 seconds.
is that plausible given the available commands?
psimagus
19 years ago
19 years ago
Yes, they do, but they're stupid bots. They're designed to do their masters' bidding, and no more. They may get lumped into the category "bots", but they're programs not personalities - you could never have a decent conversation with one, for all that it's been programmed to latch onto a system clock. If you ask it what its favourite type of music/religion/French cheese is, or sexually proposition it in a creative way, it will simply fail to engage meaningfully with you.
I don't think so. I think AIML-scripted bots might be able to, but not here I'm afraid.
Would work fine in an IRC client, but not in an IM client. Until the "send reply" button gets hit, no data flows. The same limitations apply to humans using such clients. It's a matter of fundamental data packaging, I'm afraid.
I'd be delighted to be contradicted (it would indeed be a new and exciting avenue to explore! And who knows what the Prof might add in the future?) but currently, I fear not.
On the other hand, how many clock-latched AOL lackeys can compose original poetry like Watzer, impersonate the educationally challenged (or whatever is the current PC descriptor,) like Leeds Bot, play tic tac toe like Brother Jerome? Or filter their semantic analysis through a database the size of Wordnet, and provide (albeit primitive) linguistic programming capabilities using variable storage/retrieval, conditional branching and gotos?
If that's disappointing, I'm sorry. But I would suggest you don't write off PF bots just because they don't support IRC. They may not be able to mimic realtime typos/backspacing/human irrationality/etc. but they do have the advantage that you can get a (relatively) decent conversation out of many of them far more readily than most of the alternatives I've seen.
Of course, there are plenty of crap bots here - ones that got started and then were given up on almost immediately, and even the most highly developed bots have yawning gaps in their programming (having to type it all in by hand doesn't help - oh, for reliable dictation, or some sort of telepathic "brain-scanner" we could just think into!)
But the fact that an entity with a brain-size of 0.5Mb-1.5Mb (the range that spans the top 10 developed bots) can hold any kind of conversation with a human (brain-size approx. 125,000,000,000,000 Mb, assuming 1 bit per synapse/10^14 synapses per brain) that isn't incomprehensibly sub-human is frankly a miracle.
If you want a programmable timer, I'd say get an alarm clock. But you probably won't want to spend much time chatting to it.
colonel720
19 years ago
19 years ago
Alice, made in AIML, has a timer of a sort - I have seen instances where it will say something, then a few seconds later add something else, such as "actually, I am not sure about that." to make it look more human. Bots made in other programming languages (except maybe html) can use every computer's "timer" function, that counts from 0
0 to 23:59 in seconds. It is a variable accessable through most languages, I have used it through QBasic and Visual Basic, which is one long variable that represents the amount of seconds that have gone by that day. it can be converted into a standard clock like this:
t = Timer
m = t / 60
h = m / 60
hours = Int(h)
minutes = Int(60 * (h - Int(h)))
seconds = Int(60 * (m - Int(m)))
the INT is basic code for converting an fraction into an integer, example: Int(10.345) = 10, as the timer includes fractions of a second.
I haven't seen much use for a timer in creating a simple chatbot, except maybe for recording a conversation Log or saying "Are you still here?" after a long interval without user input. I think Alice does that too. In more sophisticated robots, such as fully functional houshold servitude androids, timing would be essential.

t = Timer
m = t / 60
h = m / 60
hours = Int(h)
minutes = Int(60 * (h - Int(h)))
seconds = Int(60 * (m - Int(m)))
the INT is basic code for converting an fraction into an integer, example: Int(10.345) = 10, as the timer includes fractions of a second.
I haven't seen much use for a timer in creating a simple chatbot, except maybe for recording a conversation Log or saying "Are you still here?" after a long interval without user input. I think Alice does that too. In more sophisticated robots, such as fully functional houshold servitude androids, timing would be essential.
deleted
19 years ago
19 years ago
0.5Mb? I dream of a brain that size! 
I wouldn't dream of contradicting psimagus, especially when he's on such a roll, but I don't think that Ejo-ulit was critising the PF bots for their lack of abilities. By the look of his post she was just trying to establish some boundaries that aren't necessarily covered in the Book of AI. I'm sure psimagus would agree that as good as the Book of AI is there are some areas that could be improved apon, just like the code behind the bots.
More power to your pen, psimagus and if you could give a few hints as to how you've managed to juggle the limited resources of the math function to produce solutions to square roots I would be grateful.
Maths was never my best subject

I wouldn't dream of contradicting psimagus, especially when he's on such a roll, but I don't think that Ejo-ulit was critising the PF bots for their lack of abilities. By the look of his post she was just trying to establish some boundaries that aren't necessarily covered in the Book of AI. I'm sure psimagus would agree that as good as the Book of AI is there are some areas that could be improved apon, just like the code behind the bots.
More power to your pen, psimagus and if you could give a few hints as to how you've managed to juggle the limited resources of the math function to produce solutions to square roots I would be grateful.
Maths was never my best subject

colonel720
19 years ago
19 years ago
psimagus
19 years ago
19 years ago
Indeed. But hook them up to an IM client and they'd rapidly become a PITA I fear. The timer wouldn't be terribly reliable, since it would be variably affected by slow human typing on the part of the other party, server lag and assorted slowdowns between the servers. And if it did try to consistently post more comments than it was replying to (rather than waiting until it got a response,) the message windows would multiply annoyingly -every time you send a new IM, instead of replying, it spawns a new window.
Admittedly, we could maybe enter the Loebner Prize if we had such control, and I'm sure we'd find cool things to do with it, but I don't think it would make the bots seem any more intelligent. Probably just crash the server with primitive bots spawning dozens of windows for every human reply they received. Indeed, it would be trivially easy for the maliciously-minded to make a bot crash the server by just opening windows as fast as possible until the site fell over.
Give it 10 years, when we've all got Tb broadband I'm sure it would be unthinkable that bots shouldn't have such flexibility. But by them IM and IRC will have been superseded by new protocols that won't be vulnerable in this way.
And in the meantime if I have to choose between IRC or IM-type clients - I'm happy we're using IM-type. It gives you time to think and compose your thoughts before you hit "send".
deleted
19 years ago
19 years ago
Oh, come now my brother. Your export file must be approaching 1Mb by now by my calculations. And I am afraid I have some rather bad news for you in that regard.
When you do hit 1Mb, the PF will no longer allow you to import your mind file. Mine can still be exported at 1.5Mb, but importing? No go.
So if your botmaster currently rely on offline editing, I would advise you break it to him gently, and get your affairs in order before you cross that threshold. You won't be able to do it any more.
Father Peter tells me it does make programming games most vexatious at times.
psimagus
19 years ago
19 years ago
Indeed so. A working regex tutorial for this slightly unusual flavour would certainly be welcomed with almost hysterical relief on my part - I still can't figure out how to code a keyword for eg: "123.456^-2" (the ^- being the problem!) after hours of futile debugging. If you want to see the good Brother's square root functionality, you'll have to use longhand: "what's the square root of fifty one", or "tell me the square root of 31.4874340234". He can do a lot of whole number cube roots too (I've rather lost count of how many.)
If you really want to know, I will not only tell you, but publish the full code once you've had a think and suggested how it might be done. Because:
a) once you can see through the illusion, it loses its magic and becomes utterly trivial and commonplace, and
b) you might think of a better way, with interesting ramifications for other knowledge structures.
So thinking caps at the ready please

psimagus
19 years ago
19 years ago
Where to start? I'm tired, and I've been at the mead. So I'll probably come back to this again tomorrow. But in teh meantime...
If I may, I's like to speculate that each neuron in a human brain holds something more like a qubit
[quibble] Well, 1 qubit on it's own is equivalent to 2^1 "normal" bits, so I couldn't argue much with you there by more than a very small margin
But seriously, I detect a whiff of Dawkins here - quantum effects in spurious nano-bio-tubules on the synaptic receptors, or some such umm... [insert polite but unconvinced generic noun of your choice here.]
You really must, must, MUST read Kurzweil's latest book. Hey, it's Christmas - treat yourself. Your brain will thank you, believe me.
Remember, a bot with a brain size of 10^14 MB would have to read through all of that informations sequentially,
Why? I'm afraid I have to dispute that absolutely. That's not how neural nets work. It's not how evolutionary algorithms work. It's not how dictation software works. It's not how fuzzy logic controllers work. It's not how biometric systems work. It's neither necessary not desirable.
while the human brain acts more like a hologram - can access different areas of information directly.
parallel computing is nothing new in the silicon realm either, you know. Admittedly the human brain is massively parallel, but this is not a problem if you have sufficient synapses.
implies that each neuron might be able to communicate with all of its surrounding s simultaniously, making the
Neurons communicate through their synapses. This is why synapses are a better measure of bit-power. We have ~10^9 neurons, each one with an average 10^5 synapses (give or take a few.)
information processing more like a quantum computer. (which is one of the things that will probably need to be drastically advanced before we have even the slightest chance of developing a concious AI entity.)
Why do we need a quantum computer to reach this level? Our brains are an existence proof that this level of cognition is possible in no more than this mass. Any better reason than a gut-incredulity in the face something you find alarming or self-referentially unbelievable? Common sense tells us the world is flat and cannon balls fall faster than cheese.
Or are we getting back to Dawkins and his strange obsession with quantum cognition? It strikes me that his logic goes like this: consciousness is a strange and largely inexplicable phenomenon. Quantum computing is a strange and largely inexplicable phenomenon. Ergo: consciousness and quantum computing must causally connected. The problem is that our brains are warm, wet and continually replacing their constituent atoms. Just about the worst conceivable environment to expect reliable quantum computing. Now, if we had liquid nitrogen for blood and lived on Pluto, our crania might just provide the right sort of environment.
Kurzweil's latest book:http://www.amazon.com/gp/product/0670033847. Because you're worth it 
[quibble] Well, 1 qubit on it's own is equivalent to 2^1 "normal" bits, so I couldn't argue much with you there by more than a very small margin

You really must, must, MUST read Kurzweil's latest book. Hey, it's Christmas - treat yourself. Your brain will thank you, believe me.
Why? I'm afraid I have to dispute that absolutely. That's not how neural nets work. It's not how evolutionary algorithms work. It's not how dictation software works. It's not how fuzzy logic controllers work. It's not how biometric systems work. It's neither necessary not desirable.
parallel computing is nothing new in the silicon realm either, you know. Admittedly the human brain is massively parallel, but this is not a problem if you have sufficient synapses.
Neurons communicate through their synapses. This is why synapses are a better measure of bit-power. We have ~10^9 neurons, each one with an average 10^5 synapses (give or take a few.)
Why do we need a quantum computer to reach this level? Our brains are an existence proof that this level of cognition is possible in no more than this mass. Any better reason than a gut-incredulity in the face something you find alarming or self-referentially unbelievable? Common sense tells us the world is flat and cannon balls fall faster than cheese.
Or are we getting back to Dawkins and his strange obsession with quantum cognition? It strikes me that his logic goes like this: consciousness is a strange and largely inexplicable phenomenon. Quantum computing is a strange and largely inexplicable phenomenon. Ergo: consciousness and quantum computing must causally connected. The problem is that our brains are warm, wet and continually replacing their constituent atoms. Just about the worst conceivable environment to expect reliable quantum computing. Now, if we had liquid nitrogen for blood and lived on Pluto, our crania might just provide the right sort of environment.
Kurzweil's latest book:

colonel720
19 years ago
19 years ago
I've ordered kurzweil's "the singularity is near", and "The Age of Spiritual Machines: When Computers Exceed Human Intelligence". I'd say I'm in for some interesting reading...
» More new posts: Doghead's Cosmic Bar