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,892 - 4,903 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.
Posts 4,892 - 4,903 of 7,766
Ulrike
19 years ago
19 years ago
It could be the curse of the xnones. Bots are programmed not to like going to xnone all the time. So if their keyphrases are being ignored and its defaulting to xnone, it takes their mood way down, and they're less likely to want to chat.
Ejo-ulit
19 years ago
19 years ago
hey all, i'm trying to figure out how to create *start timer* and *end timer* functions, but i only just (as in today) started programming bots, so I have no clue at all.
botcoding seems like a pretty new thing, so there might not be an already-made function. i had the idea that if there is a way to check the time, (chrono:hour) i believe, then there has to be a time variable. so if you could insert the time at the start of the timer into memory and the time at the end of the timer into memory, then you could subtract to create a working timer.
is there any way that would work, or even a timer function i haven't heard of yet? any help would be much appreciated.
~Temmy
botcoding seems like a pretty new thing, so there might not be an already-made function. i had the idea that if there is a way to check the time, (chrono:hour) i believe, then there has to be a time variable. so if you could insert the time at the start of the timer into memory and the time at the end of the timer into memory, then you could subtract to create a working timer.
is there any way that would work, or even a timer function i haven't heard of yet? any help would be much appreciated.

~Temmy
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.
» More new posts: Doghead's Cosmic Bar