1. Creating Artificial Intelligence Triggers and Commands
There are two approaches to creating and saving commands.
The first is "Pragmatic",
in that whole sentences are used to trigger commands; this is stored as direct "Knowledge".
The Second is "Semantic", in that what is said must be parsed into "Phrases".
To deturmine which should be used, you must decide if the trigger your going to use
needs a target or object that is taken from, or parsed from the sentence. For example, saying "sit" or "who are you" are complete in their meanings, while "hug ...[somebody]" or "who is ...[somebody]" are phrases
that need to deturmine the target or object.
The first would be stored by using: .addknowledge (.ak, .add)
and the second would be stored by using: .addphrase (.ap)
Understanding the terms: this system uses a new and unique A.I. approach that is
designed to grow, and be usefull today. A "do it now' philosophy that follows a
simple stimulas/response or triggered model.
The Antecedent, is used for what comes first, what is spoken, heard or sensed: the stimulas.
The Consequence, is what follows, what is to be done: the response.
The Action, is the method for perfoming the consequence.
To create new knowledge, use .addknowledge (or .ak) and the page will guide you to
give the trigger sentence called the "Antecedent", which is what you say. Next, give the
command or command list called the "Consequence". Then, you must decide upon the "Action",
these are in a drop down menu.
For example, "Spoken", "WebLink", "Animation" are actions.
2. Search Rules
1. A Whole sentence/command/question, or the 'Knowledge' db, is searched first; then the parsed 'Phrases' db.
2. The larger length
sentences and/or phrases are ordered first before smaller.
3. 'Private' knowledge and phrases are searched before 'Public' knowledge
and phrases.
The combination of an Antecedent/Action/Consequence is called a conceptual.
There are two kinds of conceptuals, Public and Private. Private is searched before Public.
If you edit a Public conceptual, the Public remains and a Private conceptual is created for you.
In use, your conceptual will be found first, for you.
Others will not be able to see, edit or use your Private conceptuals.
If you think you have made a cool genaric conceptual, a button is provided to 'request' it be made public.
In this way, the total knowledge collective 'grows'.
3. Action Methods for Knowledge and Phrases
| token | Select | Discription |
| converse | Spoken Response | will say anything in chat |
| webpage | Goto WebPage | drop down dialog with url given in response |
| weblink | WebLink in Chat | says Weblink: with url given in response, in chat |
| requestion | Return Question | on hold - very soon |
| anim | Animation | say anything to trigger animation, must be in collar |
| multiple | Multiple(cmd|cmd|cmd) | separate cmds with | also use Multiple action for the couples/sync in .addphrase |
| goto | Goto Person | put ~target~ or a single persons name/initials/part in response field |
| gotoa | Goto Object | put ~target~ or an objects name/initials/part in response field |
| v | Goto Vector <x,y,z> | get vector with 'where am i' if not known |
| vectormap | Vector Map | on hold - use macro template in collar instead |
| walk | Walk(dir@dist) e@5 | on hold - needs testing |
| rotation | Rotation | on hold - for use with rotator |
| sleep | Sleep(in secs) | stops script with llSleep() |
| readsite | Read Web Site | on hold - for use with speech synth |
| addon | AddOn Script | addon's - see inside collar for details - for use with addon manager |
| pointsto | PointsTo | points to another sent/cmd |
| giveinventory | Give Inventory | place object in collar, use this to send with permissions |
| macro | Macro | triggers stored macro in the collar for long sequences of commands |
4. Additional Actions used Only in Parsing Phrases:
| drop | will cause the first phrase indicated to be dropped and the remainder to be resubmitted |
| paraphrase | will replace the phrase indicated with another phrase the remainder added and resubmitted |
| websearch | the object/target phrase is extracted and added to the end of the consequence. |
5. Multiple Responses at Once
To create a command list or 'mini macro' to be performed from a single Antecedent, set the Action to "Multiple". Give your Antecedent, then as the consequence, list commands separated by | which is the pipe symbol.
Example:
Antecedent: jane what have you been doing
Action: Multiple
Consequence: come here|anim*kneel2|report
With the commands also being placed in the database separatly, the same effect could be induced with 'and' usage.
Antecedent: jane come here and kneel and report
6. Action Methods used Inline with Multiple
| Action | Example Responses goto*~target~|converse*hello babe|anim*bellydance |
| converse | converse*my name is jane |
| webLink | weblink*http://www.google.com (shows in chat) |
| webPage | webPage*http://www.google.com (gives drop down page with url) |
| anim | anim*bellydance (must have animation in collar to play) |
| sendanim | sendanim*spankself (must have animation in collar to send) |
| goto | goto*~target~ (say: goto personname) |
| gotoa | gotoa*~target~ (say: goto the/a/an objectname) |
| v | v*<123,456,789> (this is a specific vector command) |
| sleep | sleep*5 (stops all action for x seconds) |
| follow | follow*theirname |
| giveinventory | giveinventory*invObjectName (must be in collar to give) |
7. Parsing Phrases
For parsed Phrases use:
.addphrase and its forms.
You will be taken to the add phrase page. The approach to this A.I. structure is as follows.
Sentences are searched for the first phrase given by you and the remaining half is the object/target phrase.
example: 'search wiki for ' is the first half of the sentence and the remainder is the object to be searched for. The Action for this example would be 'websearch' and would be presented privately to you as a dropdown button
giving a webpage for http://en.wikipedia.org/wiki/ and the remainder or object/target phrase would be appended to the end of this url request.
There is also the option of adding a last phrase to further differentiate meaning, for example, use the last phrase:
'as weblink' and the url will be shown in the chat box for anyone present to click.
Or 'translate' + object + 'into latin' would be another example of using both the first and last phrases.
This can lead to complex command structures for both the Antecedent and Consequence. Use copy and paste to lift
some of the more complex structures, and edit the details to simplify creating new conceptuals.
8. Couples Animations/Sync Commands
Couples commands are very complex involving parsing, scanning, movement, permissions, animations and need to be synchronized. Therefore, a sync command has been created to deal with a lot of these details.
First, make sure the animations to be used by you and your partner or the ~target~ are in the collar.
then, use the .addphrase (.ap) command, since this is a parsed sentence.
Enter the first half of the sentence to be used, ie. 'hug' or 'kiss' or 'roll in the hay with'
and
if you wish, a last half of the sentence, ie. 'quickly' or 'on the lips' or 'if they let me' to distinguish from other uses of hug, kiss, etc.
For the Action, select: Multiple
Enter the response with this format:
goto*~target~|sync*9,hug-feminine,hug(~target~)
example:
To say: "hug wendi"
First, the scripts needs to parse hug from the target wendi. Thats why we used .addphrase
You want the following actions to occur: goto wendi, load the anim for yourself called hug-feminine,
then send an animation and requst to animate to wendi, when they respond, begin both animations, hold for 9 seconds, then stop both animations. Use ~target~ to auto replace the name/object being discovered during parsing.
These individual commands are connected with the | thus as a multiple command list:
The sync command has two parts that are coordinated to cause couples animations that require animation permisions to be given. This command can be given by itself if no other needs like "goto" are nescessary.
Its structure is as follows:
sync*seconds, youranim , theiranim (their name)
their name will be replaced with ~target~ if used. 0 seconds will keep playing until a stop command is given.
To stop these coordinated animations in a separate command, use the sync* command again with the command stop instead of an animation name if its desired to to have only one animation stop and perhaps the other to do another, while the other continues.
sync*20,youranim,stop(~target~)
or any combination of choices. It is preferred to use the goto command before a sync command because the sync command will wait for the response to animate and start the sequence immediatly.