Troubleshooting
TLML Syntax
Teneo Studio performs checks and validations to help developers spot and correct potential errors in the TLML Syntax, these are visible to the developer through syntax highlighting (read more here) and error messages.
The below table lists the most common errors which can occur while working on the TLML Syntax in the Syntax editor of Language Objects, TLML Syntax Matches, Listeners, etc. most of these are both highlighted in the TLML Syntax editor, displayed in the Tryout and included in Suggestions.
Error message | Example | Comment | More information |
---|---|---|---|
Closing parenthesis directly after operator | (word&) | Indicates that the developer might have forgotten to add a word or reference to a Language Object or Entity | Bracketed syntax |
Compound-operator may only be used with single words without options | %LOB § word word § %LOB %LOB§word | The Compound operator (| or § ) can only be used together with plain words (i.e. no use of Language Objects nor Entities is allowed) on both sides of the operator | Compound operators |
Condition option not allowed | %LOB:1 :e %LOB:E :L word:L word:o %LOB:O | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior | Syntax options |
Condition predicate script / variable propagation script not allowed | word^{script} word:{script} | This covers problems with attached scripts | Variables and attached scripts |
Condition terminated incorrectly | word+ | This indicates that the developer might have forgotten to add a word, Language Object or Entity after the operator | Compound syntaxes |
First operand missing | &word ! §word | Indicates that the developer might have forgotten to add a word, Language Object or Entity between two operators or before the use of an operator | Compound syntaxes |
Incomplete dynamic word condition | # | The syntax for this element is incomplete | Dynamic syntax |
Incomplete successor or topic condition | @ | The syntax for the successor or topic syntax is incomplete | Topic syntax |
Invalid number of quotes | "word word >> "& >> word2 | Quotation marks in TLML Syntax have to be always duplicated, so one at the beginning of the word and another at the end | TLML syntax |
Missing opening brace | script} | Script expression have to be enclosed in curly brackets {} when used in TLML syntax editors | Script syntax |
Missing opening parenthesis | word + word2) / word3 word + word2) | Parentheses or brackets are used to group and organize syntax parts and are especially useful when writing Compound syntaxes also, they are a necessary mean when using more than one type of operators in a TLML syntax to determine which parts of the syntax belong together, and for the syntax to be valid there need to be both an opening bracket and a closing bracket | Bracketed syntax |
Missing or Invalid option value | word: word: + x word:x | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior, the syntax option is added to the TLML syntax by use of : (colon) plus the wanted option (:1 , :E , :L , :O ) | Syntax options |
Name of language object / entity missing | % | This covers errors where a percentage sign is written but the name of the Language Object/Entity is not present | Language Object syntax |
Operator at invalid location | word / / word2 word + (word +) word § word § / word2 | Indicates that the developer has forgotten to add a word, Language Object or Entity between two operators or before/after the use of an operator | Compound syntaxes |
Operator expected | (word1) word2 word1 word2 word1 (word2) %LOB1 %LOB2 %LOB %ENTITY | TLML Syntax needs operators between words, Language Objects, Entities and other syntax elements | Compound syntaxes |
Parenthesis not closed | word + (word2 | Parentheses or brackets are used to group and organize TLML syntax parts and are especially useful when writing Compound syntaxes also, they are a necessary mean when using more than one type of operators in a syntax to determine which parts of the syntax belong together, and for the syntax to be valid there need to be both an opening bracket and a closing bracket | Bracketed syntax |
Script terminated incorrectly | {script (word):{script (word)^{script | Script expression have to be enclosed in curly brackets {} when used in TLML syntax editors | Script syntax |
Successor condition not supported | word$@42 @0123 @"123" | The syntax for the successor is not supported | TLML syntaxTopic syntax |
Unterminated condition comment | word == comment | Comments inline TLML Syntax are written by the use of two equal symbols (== ) at the beginning and at the end of the comment | Comments |
Whitespace not allowed before opening brace of condition predicate / propagate script | (word)^ {script} | Variables and attached scripts |
In Teneo Studio Web, syntax errors can also be displayed through error messages in the TLML Syntax editor as displayed in the below image; hovering over the red x displays a message with more information.
The below table lists the most common error messages which can occur while working on the TLML Syntax in the Syntax editor of Language Objects, TLML Syntax Matches, Listeners, etc.
Error message | Example | Comment | More information |
---|---|---|---|
Condition option ":1" not allowed in this context | %LOB:1 | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior | Position option |
Condition option ":E" not allowed in this context | :e %LOB:E | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior | Exact option |
Condition option ":L" not allowed in this context | :L word:L | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior | Longest Match option |
Condition option ":O" not allowed in this context | word:o %LOB:O | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior | Optional Match option |
Incomplete condition | % %"NAME %$ %$"NAME @ @"NAME # #"NAME | This error covers a range of TLML syntax errors | TLML syntax rulesLanguage Object syntax % Annotation syntax %$ Topic syntax @ Dynamic syntax # |
Incomplete or unknown condition option | word: word: + x word:x | Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behavior, the syntax option is added to the TLML syntax by use of : (colon) plus the wanted option (:1 , :E , :L , :O ) | Syntax optionsSee Reserved characters to use colon as part of the syntax |
Missing condition operand | word / / word2 word + (word +) ! ` | word<br/> word | <br/> word |
Missing condition operator | (word1) word2 word1 word2 word1 (word2) %LOB1 %LOB2 %LOB %ENTITY | TLML Syntax needs operators between words, Language Objects, Entities and other syntax elements | Compound syntaxes |
Mixed operators without brackets | &word word + word2 / word3 (word + word2 / word3 ~ >> &= | Brackets are used to organize the use of different types of operators within a TLML Syntax; this error occurs because two or more operators are used without applying brackets to specify which parts of the syntax should be organized together | Compound syntaxesBracketed syntax |
Predicate script not allowed in this context | word:{script} | Predicate scripts allow to capture and/or condition on information coming from inputs and are attached to Bracketed syntax parts, Language Objects, Entities or input annotation references with the : (colon) and embedded inside curly braces {} | Predicate scripts |
Propagation script not allowed in this context | word^{script} | Propagation scripts allow to propagate NLU Variables to the top level syntax and can be attached to Bracketed syntax parts, Language Objects, Entities, input annotation references or directly after an attached predicate script by the use of the ^ (caret) symbol and embedded inside curly braces {} . | Propagation scripts |
Unclosed comments | word == comment | Comments inline TLML Syntax are written by the use of two equal symbols (== ) at the beginning and at the end of the comment | Comments |
Unclosed quoted word | "word word >> "& >> word2 | Quotation marks in TLML Syntax have to be always duplicated, so one at the beginning of the word and another at the end | TLML syntaxReserved characters |
Unclosed script | {script (word):{script (word)^{script | Script expression have to be enclosed in curly brackets {} when used in TLML syntax editors | Script syntaxNLU Variables and attached scripts |
Unmatched bracket | word + word2) / word3 word + (word2 word + word2) | Parentheses or brackets are used to group and organize syntax parts and are especially useful when writing Compound syntaxes also, they are a necessary mean when using more than one type of operators in a syntax to determine which parts of the syntax belong together, and for the syntax to be valid there need to be both an opening bracket and a closing bracket | Bracketed syntax |
Unrecognized input | (word)^ {script} | This error can cover, for example, whitespaces not allowed before opening braces of a predicate script | |
Wrong operand type for compound operator | %LOB § word word § %LOB %LOB§word | The Compound operator (| or § ) can only be used together with plain words (i.e. no use of Language Objects nor Entities is allowed) on both sides of the operator | Compound operator |