At runtime, when an Entity is found in an utterance Lexicon generates an EntityMatch. An EntityMatch contains the following information:
Entity | The entity that was matched |
EntityValue | The value of the entity |
SystemValue | If entity is a system entity (e.g. sys-number) this will return the parsed value |
FirstCharacter | The position of the value’s first character in the transcription |
LastCharacter | The position of the value’s last character in the transcription |
TimeStart | The start time (in seconds) measured from the start of the utterance |
TimeEnd | The end time (in seconds) measured from the start of the utterance |
RealtimeStart | The start time (in seconds) measured from application start time (Time.realtimeSinceStartup) |
RealtimeEnd | The end time (in seconds) measured from application start time (Time.realtimeSinceStartup) |
FocusPosition | The focus position for the moment this entity was uttered (may be null) |
FocusSelection | The focus selection for the moment this entity was uttered (may be null) |
You can use this data to process an intent. Using our earlier example, if a user says “Create a small red ball over here” you might receive four separate entity matches:
Entity | EntityValue | Binding |
---|---|---|
Size | small | call EntityValue.GetBinding<float>() to get the size value |
Color | red | call EntityValue.GetBinding<Color>() to get the color value |
Primitive | ball | call EntityValue.GetBinding<PrimitiveType>() to get the primitive type |
Position | here | FocusPosition contains the position the user focused on when saying “here” |