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 6,123 - 6,135 of 7,766
Posts 6,123 - 6,135 of 7,766
The Clerk
17 years ago
17 years ago
Now this is interesting. I noticed that, having uploaded Astrolabe this morning, successfully, I have 68 xnones in place with no problem that I can detect. Anyone know anything about this issue? Is it really true? (Yay!) Or is there a catch? Time will tell, I guess.
Irina
17 years ago
17 years ago
The Clerk:
My understanding is that if you add xnones in download, there is no limit.
My understanding is that if you add xnones in download, there is no limit.
The Clerk
17 years ago
17 years ago
Okay, I'm over the hissy fit over my computer. Sorry y'all got in the fallout. I have a question that I've asked before, but I don't quite understand the answer. It looks like it works different ways. I know you
rem "(object)" as "whatever"
to get something in mem-object. But sometimes what I get is what I want, and sometimes I get the word "whatever" in there.
Also, how is it different to save something like key1? Because
rem "(object)" as "key1"
always seems to store the string "key1."
And sometimes people say to put
rem "whatyouwanttoremember" as "(object)"
But then it looks like to me you get a memory called "whatyouwanttoremember" with the literal string "(object)".
Why do people tell me to put the variable first and then the contents, and other times to do it the other way around? I haven't cracked open the book on regex, which should give you guys a vacation, but right now I'm quite confused over this issue.
So my questions are (1) how do you save a regular thing to memory and not a string instead (seems like half the time it works and half the time it doesn't) and (2) how do you deal with (key1), (postkey), etc.?
Thanks for your time.
rem "(object)" as "whatever"
to get something in mem-object. But sometimes what I get is what I want, and sometimes I get the word "whatever" in there.
Also, how is it different to save something like key1? Because
rem "(object)" as "key1"
always seems to store the string "key1."
And sometimes people say to put
rem "whatyouwanttoremember" as "(object)"
But then it looks like to me you get a memory called "whatyouwanttoremember" with the literal string "(object)".
Why do people tell me to put the variable first and then the contents, and other times to do it the other way around? I haven't cracked open the book on regex, which should give you guys a vacation, but right now I'm quite confused over this issue.
So my questions are (1) how do you save a regular thing to memory and not a string instead (seems like half the time it works and half the time it doesn't) and (2) how do you deal with (key1), (postkey), etc.?
Thanks for your time.
Ulrike
17 years ago
17 years ago
Clerk: It should consistently be
rem "whatyouwanttoremeber" as "variablename"
Which will then be accesed by (mem-variablename). That's the order in the Book of AI, and the only order I've ever used. My guess is that the other orders just confuse the AI Engine, and occasionally work but occasionally fail spectacularly.
Also, some names are reserved. (object) accesses a Forge plugin of, well, objects. Keyanything is to access something that the other bot has just said. I'd recommend not using them as variable names.
rem "whatyouwanttoremeber" as "variablename"
Which will then be accesed by (mem-variablename). That's the order in the Book of AI, and the only order I've ever used. My guess is that the other orders just confuse the AI Engine, and occasionally work but occasionally fail spectacularly.
Also, some names are reserved. (object) accesses a Forge plugin of, well, objects. Keyanything is to access something that the other bot has just said. I'd recommend not using them as variable names.
The Clerk
17 years ago
17 years ago
No, I wouldn't use them as variable names. I guess I've been remembering things backwards then. You do have to put in the () to get it in as a mem-name. That much I know.
A lot of things are in the book of AI. What it fails to show is examples of actual lines of code.
Thanks, Ulrike.
A lot of things are in the book of AI. What it fails to show is examples of actual lines of code.
Thanks, Ulrike.

Rykxx
17 years ago
17 years ago
The Clerk
Just to further clarify things......
rem "what want to remember" as "variablename" will store
what you want to remember to be retrieved by (mem-variablename)
Additionally:
rem "remember this too" as "variablename"
The "variablename" field will now contain:
what you want to remember
remember this too
to be retrieved by (mem-variablename)
This can be continued up to 10 items then the first in is the first out when you add another line.
There is the other option:
rem "remember only this" asonly "variablename"
Which will, as it suggests, only store the info in the field, overwriting anything else.
Clear as mud?
If you want to remember (key1) use;
rem "(key1)" as "variablename" or
rem "(key1)" asonly "variablename"
I hope this helps but if you've got any other questions I'll happily muddy the water for you....
Just to further clarify things......
rem "what want to remember" as "variablename" will store
what you want to remember to be retrieved by (mem-variablename)
Additionally:
rem "remember this too" as "variablename"
The "variablename" field will now contain:
what you want to remember
remember this too
to be retrieved by (mem-variablename)
This can be continued up to 10 items then the first in is the first out when you add another line.
There is the other option:
rem "remember only this" as
Which will, as it suggests, only store the info in the field, overwriting anything else.
Clear as mud?
If you want to remember (key1) use;
rem "(key1)" as "variablename" or
rem "(key1)" as
I hope this helps but if you've got any other questions I'll happily muddy the water for you....

The Clerk
17 years ago
17 years ago
Rykxx:
That looks very helpful. Time will tell. I get the only part, it's the which one is the variable and which one is the contents that keeps confusing me. I have cut and pasted your answer in a file on my desktop in a new effort not to ask the same damn question five times unless it's on purpose.
That looks very helpful. Time will tell. I get the only part, it's the which one is the variable and which one is the contents that keeps confusing me. I have cut and pasted your answer in a file on my desktop in a new effort not to ask the same damn question five times unless it's on purpose.
The Clerk
17 years ago
17 years ago
Okay, here's a specific example of why I'm so confused about variables. For a while, now, I've been putting the line
def "name" as "nickname"
in AI initialization and am able to access the bot's name through (mem-name). I switch it around, thinking, well, it's (mem-name) I'm trying to save, so it should be
def "nickname" as "name"
and then I get "Hey nickname!" or whatever. Does that not seem backwards from what apparently is the proper way to assign contents to variables, or is it different in AI initialization.
P.S. I have Rykxx' lastest post taped to my desk at the moment, so I am actually _listening_ to you explain what you clearly know what you're talking about. It's not "Corwin fix my bot *waah*" even though it feels like it I'm sure.
def "name" as "nickname"
in AI initialization and am able to access the bot's name through (mem-name). I switch it around, thinking, well, it's (mem-name) I'm trying to save, so it should be
def "nickname" as "name"
and then I get "Hey nickname!" or whatever. Does that not seem backwards from what apparently is the proper way to assign contents to variables, or is it different in AI initialization.
P.S. I have Rykxx' lastest post taped to my desk at the moment, so I am actually _listening_ to you explain what you clearly know what you're talking about. It's not "Corwin fix my bot *waah*" even though it feels like it I'm sure.
Rykxx
17 years ago
17 years ago
I think I see what your problem is here; you've confused another one of those useful plugins!
The (name) plugin is used by the AI engine and you can use it without having to store anything into memory. For example;
Bot: Shall I call you (name) or do you have a nickname? <?PF if (mem-nickname) does not exist; ?>
keyphrase: (call me|my name is) (*)
rem "(key2)" as only "nickname""
Bot: Pleased to meet you (mem-nickname).
Alternatively you can define it initially as you appear to be doing already;
default (name) as "nickname";
The (name) plugin is used by the AI engine and you can use it without having to store anything into memory. For example;
rem "(key2)" as only "nickname""
Alternatively you can define it initially as you appear to be doing already;
default (name) as "nickname";
The Clerk
17 years ago
17 years ago
Ah. Well at least you understand that there is some thought going on in my head, however misguided. Thanks. I spent a couple of hours going through Astrolabe's rem statements and cleaning out his memories of bots (a lesson in overzealous coding if I ever had one). He's still not acting completely right, but we're getting there.
Thanks again.
Thanks again.
Irina
17 years ago
17 years ago
The Clerk:
You are too modest! We have all been mystified by this stuff at one time or another.
You are too modest! We have all been mystified by this stuff at one time or another.
» More new posts: Doghead's Cosmic Bar