Newcomers
This is a forum for newcomers to the Personality Forge. Many questions can be answered by reading the Book of AI and the FAQ under the "My Bots" link in the upper corner.
Posts 5,380 - 5,391 of 8,130
do you like (thingsliked)
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
Well, you can make him dislike anything not in the list quite easily by using 2 keyphrases:
do you like (thingsliked)
yes, I like (key1)
do you like
no, I don't like (postkey)<0>
If they are the same rank, the first one will always match if it can, because it is longer than the second. So you only need one plugin of (thingsliked), though it's still not going to allow the bot to dynamically update its likes and dislikes I'm afraid
Posts 5,380 - 5,391 of 8,130
Many questions are answered in the FAQ.
Irina
16 years ago
16 years ago
I can see nothing wrong with either of them. ["Declaimed" would be more correct English spelling but that should not influence the AIengine.] Wild guess: Is there an item before<0> the "DeclamedPoetry" case, and Is there something wrong with that item, for example the semicolon is missing? Or any<0> earlier item? If one item is bad, it would probably mess up all subsequent items. Try reversing the order of the two items and see what happens.
marco3b
16 years ago
16 years ago
Hi Irina, you are right! I discovered a behaviour that I never suppose!
If I declare a memory as:
default "" as "myMemory";
each memory declared after this is not initialized. It just will exists the first time the bot will put something in it! So first I have to put each memory inizialized with a value (should be a generic token, if I wont check if a value is in it or not, otherwisw the AI will skip the answer) then put all the memory inizialized with ""! Thats it!
If I declare a memory as:
default "" as "myMemory";
each memory declared after this is not initialized. It just will exists the first time the bot will put something in it! So first I have to put each memory inizialized with a value (should be a generic token, if I wont check if a value is in it or not, otherwisw the AI will skip the answer) then put all the memory inizialized with ""! Thats it!
marco3b
16 years ago
16 years ago
Hallo to all!
Anybody has ever deal vith dynamic memories?
An example on what I mean:
do you like (*) [0,0]
Yes I like it {?PF if (mem-Likes) is (key1); ?}
No, I'm not {?PF if (mem-Likes) is not (key1); ?}
But the import engine gives the error:
ERROR: The following AIScript statement is incorrectly formatted: "if (mem-Likes) is (key1)". Please correct this and try again.
The problem seems related to the key1 that is a dynamic value. It seems that only an exact math is accepted:
do you like dog [0,0]
Yes I like it {?PF if (mem-Likes) is "dog"; ?}
This works, but it is not usefull for my task! It is a bit more complex tnan the example...
Any workaround/syntax able to help?
Thanks
Anybody has ever deal vith dynamic memories?
An example on what I mean:
do you like (*) [0,0]
Yes I like it {?PF if (mem-Likes) is (key1); ?}
No, I'm not {?PF if (mem-Likes) is not (key1); ?}
But the import engine gives the error:
ERROR: The following AIScript statement is incorrectly formatted: "if (mem-Likes) is (key1)". Please correct this and try again.
The problem seems related to the key1 that is a dynamic value. It seems that only an exact math is accepted:
do you like dog [0,0]
Yes I like it {?PF if (mem-Likes) is "dog"; ?}
This works, but it is not usefull for my task! It is a bit more complex tnan the example...
Any workaround/syntax able to help?
Thanks
prob123
16 years ago
16 years ago
You have to establish what (key1) is first. You can't use (key1) in a mem. I don't think you can work around it.
psimagus
16 years ago
16 years ago
It rather surprises me that you can't compare (key1) to a memory (though I've certainly never tried it,) but the only workaround I can think of is to use custom plugins instead of memories - one containing a list of things the bot likes, and another containing a list of dislikes. I agree it's an imperfect and non-dynamic solution though 
I don't suppose this would actually work, but another rather hypothetical solution occurs to me which might be feasible if memories can be compared (I haven't actually tried this.) It does involve spreading the response over a couple of stages though -
do you like (*) [0,0]
Do I like (key1)? Well, I wonder... {?PF rem (key1) as (mem-temp); ?}
+ xnomatch [0]
goto z_doIlike
...
z_doIlike [0,0]
Yes, I think I do like (mem-temp) actually. {?PF if (mem-Likes) is (mem-temp); ?}
No, I rather think I don't like (mem-temp). {?PF if (mem-Likes) is not (mem-temp); ?}<0>
I suspect it may run into the same problem though

I don't suppose this would actually work, but another rather hypothetical solution occurs to me which might be feasible if memories can be compared (I haven't actually tried this.) It does involve spreading the response over a couple of stages though -
do you like (*) [0,0]
Do I like (key1)? Well, I wonder... {?PF rem (key1) as (mem-temp); ?}
+ xnomatch [0]
goto z_doIlike
...
z_doIlike [0,0]
Yes, I think I do like (mem-temp) actually. {?PF if (mem-Likes) is (mem-temp); ?}
No, I rather think I don't like (mem-temp). {?PF if (mem-Likes) is not (mem-temp); ?}<0>
I suspect it may run into the same problem though

marco3b
16 years ago
16 years ago
Psim,
use the plagin it is a serious problem. I can easily list things liked, but the not liked ones are a not finite number.
I should use a NOT operator at least:
do you like (thingsliked)
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
use the plagin it is a serious problem. I can easily list things liked, but the not liked ones are a not finite number.
I should use a NOT operator at least:
do you like (thingsliked)
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
prob123
16 years ago
16 years ago
The only workaround I can think of is to make a plug in with the most common negative things. Rotten food, murder, etc. You can use the AI engine plug ins like (noun-qual-neg) and (verb-action-neg) etc
psimagus
16 years ago
16 years ago
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
Well, you can make him dislike anything not in the list quite easily by using 2 keyphrases:
do you like (thingsliked)
yes, I like (key1)
do you like
no, I don't like (postkey)<0>
If they are the same rank, the first one will always match if it can, because it is longer than the second. So you only need one plugin of (thingsliked), though it's still not going to allow the bot to dynamically update its likes and dislikes I'm afraid

aimdsl
16 years ago
16 years ago
hi im new here to, i was wondering , how long or how amny posts are need befor the bots start login on theme selfs, and how would you get one to go on aim
prob123
16 years ago
16 years ago
The more you work on your bot the more they log on and the longer they stay logged on.
» More new posts: Doghead's Cosmic Bar