All Tutorials / Jlucben / Synbot Plugin Tutorial - interface to Syn Bot Software

Synbot Plugin Tutorial - interface to Syn Bot Software

EZ Robot Commands SIML Framework - Configuration - Authorized Combination

Combination

Authorized combinations in command user input between [Verb][Complement][Attribute] and [Position] must be specified in Map combination_verb_comp_att_pos

Code:

    [MapItem Content="0|SEND|MAIL_MESSAGE|EMPTY|EMPTY" Value="% FREENEEDDECODE1 NO EMPTY EMPTY mailuser TO NO EMPTY messdest" /]
[MapItem Content="0|SEND|TWITTER_MESSAGE|EMPTY|EMPTY" Value="% FREENEEDDECODE1 NO EMPTY EMPTY twitteruser TO NO EMPTY messdest" /]
[MapItem Content="0|SHOOT|CAMERA_PHOTO|EMPTY|EMPTY" Value="% NO NO EMPTY WITHCAM" /]
[MapItem Content="0|TAKE|CAMERA_PHOTO|EMPTY|EMPTY" Value="% NO NO EMPTY WITHCAM" /]
[MapItem Content="fr|DO|CAMERA_PHOTO|EMPTY|EMPTY" Value="% NO NO EMPTY WITHCAM" /]
[MapItem Content="0|START|CAMERA_RECORD|EMPTY|START" Value="% NO EMPTY EMPTY WITHCAM" /]
[MapItem Content="0|START|CAMERA_RECORD2|EMPTY|START" Value="% NO EMPTY EMPTY WITHCAM" /]
[MapItem Content="0|STOP|CAMERA_RECORD|EMPTY|STOP" Value="% NO EMPTY EMPTY WITHCAM" /]
[MapItem Content="0|TAKE|CAMERA_RECORD1|EMPTY|EMPTY" Value="% DURATIONNEED NO EMPTY WITHCAM" /]
[MapItem Content="0|TAKE|CAMERA_RECORD2|EMPTY|EMPTY" Value="% DURATIONNEED NO EMPTY WITHCAM" /]
[MapItem Content="0|RECORD|CAMERA_RECORD1|EMPTY|EMPTY" Value="% DURATIONNEED NO EMPTY WITHCAM" /]
[MapItem Content="fr|DO|CAMERA_RECORD1|EMPTY|EMPTY" Value="% NO NO EMPTY WITHCAM" /]
[MapItem Content="0|CENTER|HEAD|EMPTY|EMPTY" Value="% NO NO EMPTY EMPTY" /]
[MapItem Content="0|CENTER|CAMERA|EMPTY|EMPTY" Value="% NO NO EMPTY WITHMOVINGCAM" /]
[MapItem Content="0|MOVE|ARMS|EMPTY|EMPTY" Value="% MOVENEED EMPTY EMPTY EMPTY" /]
[MapItem Content="0|MOVE|ARM|EMPTY|EMPTY" Value="% MOVENEED EMPTY EMPTY EMPTY" /]
[MapItem Content="0|MOVE|HAND|EMPTY|EMPTY" Value="% MOVENEED EMPTY EMPTY EMPTY" /]
[MapItem Content="0|MOVE|HEAD|EMPTY|EMPTY" Value="% MOVENEED EMPTY EMPTY EMPTY" /]
[MapItem Content="0|MOVE|CAMERA|EMPTY|EMPTY" Value="% MOVENEED EMPTY EMPTY WITHMOVINGCAM" /]


Content key is structured with 5 parts separated by | delimitor :
Part 1 is the language code (fr , en , ...) or 0 if the configuration is valid for all the language Part 2 is verb AuthID - Part 3 is Complement AuthID - Part 4 is Attribute AuthID and Part 5 is Position AuthID
EMPTY keyword is used for part 2 to 5 when no signifiant.

Value returned :
Word 1 : %
Word 2 : Mnemonic used to specify:
. Whether or not a [Movement Direction] or an [Attribute] is Mandatory for the combination - If Mandatory a Dialog will be initiated with the user to get the mandatory value.
. Whether or Not a [Duration] can be present or is mandatory in the User Input.
. Whether or Not a required [Movement Direction] must be the last phrase element( for example "go 3 steps forward" is authorized but not "go forward 3 steps")
. Whether or Not a required [attribute] must be the last phrase element
. Whether or Not a [Free attribute] can be present or is mandatory in the User Input.

If a [Free attribute] is authorized or mandatory , Word 6 to word 10 must be filled in the MapItem value.
When a [Free attribute] is present in the User Input , which type of decoding and control is done on the [Free attribute] structure : No decoding and control or DECODE0 or DECODE1 or DECODE2.

When DECODE0 , DECODE1 or DECODE2 [Free attribute] structure is [preposition] [article] [attribute text] and structure decoding is done.
With DECODE1 and DECODE2 , control is done on authorized [preposition] and authorized [article] d├ępending on control type mnemonics in word 7 and word 8 (See after)
DECODE2 add a control on [attribute text] value which must be present in SIML Map genre_name

Possible Mnemonics for Word 2 are configured in combination_autho_model Map.

Code:


[MapItem Content="NO" Value="FFFFFFF" /]
[MapItem Content="DURATIONNEED" Value="FFFFMFF" /]
[MapItem Content="DURATIONAUTHORIZED" Value="FFFFAFF" /]
[MapItem Content="MOVENEEDBUTLAST" Value="TTFFFFF" /]
[MapItem Content="MOVENEED" Value="TFFFFFF" /]
[MapItem Content="ATTNEED" Value="FFTFFFFF" /]
[MapItem Content="ATTNEEDBUTLAST" Value="FFTTFFFF" /]
[MapItem Content="ATTANDFREENEED" Value="FFTFFFMF" /]
[MapItem Content="ATTANDFREENEEDDECODE1" Value="FFTFFFM1" /]
[MapItem Content="ATTANDFREENEEDDECODE2" Value="FFTFFFM2" /]
[MapItem Content="FREENEED" Value="FFFFFMF" /]
[MapItem Content="FREENEEDDECODE1" Value="FFFFFM1" /]
[MapItem Content="FREENEEDDECODE2" Value="FFFFFM2" /]
[MapItem Content="FREEPOSSIBLE" Value="FFFFFAF" /]
[MapItem Content="FREEPOSSIBLEDECODE1" Value="FFFFFA1" /]
[MapItem Content="FREEPOSSIBLEDECODE2" Value="FFFFFA2" /]
[MapItem Content="MOVENEED_DURATION" Value="TFFFMFF" /]
[MapItem Content="ATTNEED_DURATION" Value="FFTFMFF" /]


Word 3 is used to specify which Movement Directions are Authorized for the combination - Overwrite what it was configured at Verb and Complement level.
Word 4 is used to specify which Secondary Movement Directions are Authorized for the combination
Word 3 and Word 4 are mnemonic for movement directions authorizations linked to movement_autho_model map.
Word 5 specify the Robot Type authorization for the Combination - mnemonic linked to Robot Type authorization Map.
Word 6 to 10 must be filled only if a [Free attribute] is authorized or mandatory.

Word 6 : SIML Map Name in which [attribute text] value must be configured - EMPTY if no control map
Word 7 : Mnemonic used to specify the authorized prepositions in free attribut input
Word 8 : Mnemonic used to specify the authorized articles in free attribute input.
Word 9 : Mnemonic used to specify control type on [attribute text] if no entry found in Control Map(Word 6) or Word 6 = EMPTY.In this release only "NUMERIC" is coded and control that format of [attribute text] is Numeric Integer.
Word 10 : [Message name] to send to the user when a mandatory [Free attribute] is configured and not input by the user.
Message need to be configured in Random Responses SIML File with name [Message name]_language code.
For example if value for [Message name] is MESSDEST , tags [Random Name="Messdest_fr"] and [Random Name="Messdest_en"] must be included in Random Responses SIML File.

Mnemonics for authorized [Preposition] Word 7 are configured in map autho_preposition
Authorized prepositions are TO , OF , AS , ON and ABOUT

Code:


[MapItem Content="NOCONTROL" Value="FFFFFFFFFF" /]
[MapItem Content="ALL" Value="TTTTTTTTTT" /]
[MapItem Content="NO" Value="TFFFFFFFFF" /]
[MapItem Content="TO" Value="FTFFFFFFFF" /]
[MapItem Content="OF" Value="FFTFFFFFFF" /]
[MapItem Content="NOANDOF" Value="TFTFFFFFFF" /]
[MapItem Content="NOANDTO" Value="TTFFFFFFFF" /]
[MapItem Content="NOANDAS" Value="TFFTFFFFFF" /]
[MapItem Content="AS" Value="FFFTFFFFFF" /]
[MapItem Content="NOANDON" Value="TFFFTFFFFF" /]
[MapItem Content="ON" Value="FFFFTFFFFF" /]
[MapItem Content="ONABOUT" Value="FFFFTTFFFF" /]


Mnemonics for authorized [Article] Word 8 are configured in map autho_article and can be a/an or the or no article or plural form

Code:


[MapItem Content="NOCONTROL" Value="FFFF" /]
[MapItem Content="ALL" Value="TTTT" /]
[MapItem Content="NO" Value="TFFF" /]
[MapItem Content="AAN" Value="FTFF" /]
[MapItem Content="THE" Value="FFTF" /]
[MapItem Content="PLURAL" Value="FFFT" /]
[MapItem Content="ALLEXCEPTPLURAL" Value="TTTF" /]
[MapItem Content="AANTHEPLURAL" Value="FTTT" /]
[MapItem Content="AANTHE" Value="FTTF" /]
[MapItem Content="NOTHEPLURAL" Value="TFTT" /]

Code:

[MapItem Content="0|SWING|HEAD|EMPTY|EMPTY" Value="% ATTNEEDBUTLAST LR EMPTY EMPTY" /]


In this Example , Combination SWING|HEAD is authorized - If No [attribute] is input , It will request to the User to complete with an [Attribute] value.
In this case , after user input the combination SWING|HEAD|Input Attribute will be controlled again.
If [Movement Direction] is input , Authorized Movement Directions are only Left and Right
Robot Type Authorization are the same as those specified in Complement Map - Keyword EMPTY

Code:

 [MapItem Content="0|SING|EMPTY|EMPTY|EMPTY" Value="% FREENEED NO EMPTY EMPTY song NOCONTROL NOCONTROL EMPTY EMPTY" /]


In this example SING without complement attribute or position is authorized. [Free attribute] input is required, If No [Free Attribute] is input , It will request to the User to complete with a [FreeAttribute] value.
No control is done in free attribute input on preposition and article (Keyword NOCONTROL).
Free attribute input will be song title and will be controlled in SIML map song.
Robot Type Authorization are the same as those specified in Complement Map - Keyword EMPTY.

Steps