Language Object Reference
Language objects are building blocks for language conditions. They capture words, synonyms, or various ways of expressing the same (partial) intent. They make it possible to efficiently write and re-use language conditions.
Elements of a language object name
All language objects in the pre-built language resources follow a naming convention. The naming convention not only ensures resources are described in a useful manner, but is also used by the algorithm that creates language conditions from examples ('Train NLU').
When following the naming convention, a language object name has these elements:
-
A mandatory kernel name (e.g. DOG)
-
An optional suffix specifying part of speech (applicable only for the types LEX, MUL and SYN):
- ADJ (adjective)
- ADV (adverb)
- FW (function word such as preposition and particle)
- CW (content word)
- NN (noun)
- VB (verb)
On the SYN and MIX levels the tag may also be a combination of two parts of speech: ADJV for combined adjectives and adverbs, NNVB for combined nouns and verbs etc.
-
A mandatory suffix specifying type (e.g. LEX. See the list below).
Types of language objects
Suffix | Type | Example Name | Example Condition | Generate NLU* |
---|---|---|---|---|
LEX | Lexical entry: is the smallest building block from which more complex language objects are built. Covers different inflections of a word, but also spelling and regional variations. | DOG.NN.LEX | dog / dog's / dogs / dogs' | yes |
MIX | Mixed entry: groups LEX language objects that share the same root. | HAPPY.ADJV.MIX | %HAPPY.ADJ.LEX / %HAPPILY.ADV.LEX | yes |
MUL | Multi-word unit: forms the multi-word correspondence to the LEX language objects in that they capture the dictionary-level entries of multi-word units that are meant to be used as building blocks in higher level language objects. | GIVE_UP.VB.MUL | %GIVE.VB.LEX + %UP.FW.LEX | yes |
SYN | Synonym set: groups LEX/MUL language objects with similar meaning. | DOG.NN.SYN | %DOG.NN.LEX / %HOUND.NN.LEX / %MUTT.NN.LEX / %POOCH.NN.LEX / (...) | yes |
ENTITY | Entity: entity related concepts, such as colors or country names. Entities typically have columns with variables attached to them. Each entity in CURRENCY.ENTITY, for example, has a currency code. | CURRENCY.ENTITY | See here for an example Entity | yes |
LIST | List: lists related concepts, such as colors or country names. A list often contains other lists. | COLOR_SHADES.LIST | %COLOR_SHADES_BLUE.LIST / %COLOR_SHADES_BROWN.LIST / %COLOR_SHADES_GRAY.LIST / (...) | no |
PHR | Phrases: groups various ways of expressing the same phrase or partial intent. | IS_BROKEN.PHR | ((%BE.VB?PRESENT.LEX / %SEEM.VB.SYN)>> %BROKEN.ADJV.SYN ) / (...) | yes |
THEME | Theme: groups words with a common theme. | WEATHER.THEME | (%RAIN.NNVB.SYN / %SNOW.NNVB.SYN / %SUNNY.ADJ.LEX / %RAINDROP.NN.LEX / (...)) | no |
PROJ | Project: these language objects act as place-holders in the language resources. Should be customized to fit your project. | COMPANY_NAME.NN.PROJ | ((%YOUR.FW.LEX / %THE.FW.LEX ) >> %COMPANY.NN.SYN) / %ARTIFICIAL_SOLUTIONS.NN.SYN | yes |
REC | Miscellaneous: contains condition that does not fit under any other category. | HOW.REC | %HOW.FW.LEX / %HOWS.FW.LEX / %HOWRE.FW.LEX / %HOWD.FW.LEX / (...) | no |
SCRIPT | Script: language object: contains scripts, e.g. to count words or sentences. | WD_LT4.SCRIPT | {_.getSentenceWords().length<4} | no |
ANNOT | Annotation: language object: contains annotation labels, and may be used instead of the labels themselves. This is deprecated, please use .ENTITY instead. | POS_NOUN.ANNOT | %$NN.POS | no |
If 'yes', the language object can be included in conditions that are generated from test data (when clicking the 'Draft Condition' button under the 'Condition' panel in 'Advanced Options' for a Conditional Match Requirement).