Teneo Developers
Table of Contents
Was this page helpful?

Share to

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 messageExampleCommentMore 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 EntityBracketed syntax
Compound-operator may only be used with single words without options%LOB § wordword § %LOB%LOB§wordThe 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 operatorCompound operators
Condition option not allowed%LOB:1:e%LOB:E:Lword:Lword:o%LOB:OSyntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behaviorSyntax options
Condition predicate script / variable propagation script not allowedword^{script}word:{script}This covers problems with attached scriptsVariables and attached scripts
Condition terminated incorrectlyword+This indicates that the developer might have forgotten to add a word, Language Object or Entity after the operatorCompound syntaxes
First operand missing&word!§wordIndicates that the developer might have forgotten to add a word, Language Object or Entity between two operators or before the use of an operatorCompound syntaxes
Incomplete dynamic word condition#The syntax for this element is incompleteDynamic syntax
Incomplete successor or topic condition@The syntax for the successor or topic syntax is incompleteTopic syntax
Invalid number of quotes"wordword >> "& >> word2Quotation marks in TLML Syntax have to be always duplicated, so one at the beginning of the word and another at the endTLML syntax
Missing opening bracescript}Script expression have to be enclosed in curly brackets {} when used in TLML syntax editorsScript syntax
Missing opening parenthesisword + word2) / word3word + 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 bracketBracketed syntax
Missing or Invalid option valueword:word: + xword:xSyntax 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 presentLanguage Object syntax
Operator at invalid locationword / / word2word +(word +)word §word § / word2Indicates that the developer has forgotten to add a word, Language Object or Entity between two operators or before/after the use of an operatorCompound syntaxes
Operator expected(word1) word2word1 word2word1 (word2)%LOB1 %LOB2%LOB %ENTITYTLML Syntax needs operators between words, Language Objects, Entities and other syntax elementsCompound syntaxes
Parenthesis not closedword + (word2Parentheses 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 bracketBracketed syntax
Script terminated incorrectly{script(word):{script(word)^{scriptScript expression have to be enclosed in curly brackets {} when used in TLML syntax editorsScript syntax
Successor condition not supportedword$@42@0123@"123"The syntax for the successor is not supportedTLML syntaxTopic syntax
Unterminated condition commentword == commentComments inline TLML Syntax are written by the use of two equal symbols (==) at the beginning and at the end of the commentComments
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.

Syntax error in a Syntax Match Requirement

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 messageExampleCommentMore information
Condition option ":1" not allowed in this context%LOB:1Syntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behaviorPosition option
Condition option ":E" not allowed in this context:e%LOB:ESyntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behaviorExact option
Condition option ":L" not allowed in this context:Lword:LSyntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behaviorLongest Match option
Condition option ":O" not allowed in this contextword:o%LOB:OSyntax options can be attached to a TLML syntax and allow to modify a certain aspect of the syntax behaviorOptional Match option
Incomplete condition%%"NAME%$%$"NAME@@"NAME##"NAMEThis error covers a range of TLML syntax errorsTLML syntax rulesLanguage Object syntax %Annotation syntax %$Topic syntax @Dynamic syntax #
Incomplete or unknown condition optionword:word: + xword:xSyntax 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 operandword / / word2word +(word +)!`word<br/>word<br/>word
Missing condition operator(word1) word2word1 word2word1 (word2)%LOB1 %LOB2%LOB %ENTITYTLML Syntax needs operators between words, Language Objects, Entities and other syntax elementsCompound syntaxes
Mixed operators without brackets&wordword + 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 togetherCompound syntaxesBracketed syntax
Predicate script not allowed in this contextword:{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 contextword^{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 commentsword == commentComments inline TLML Syntax are written by the use of two equal symbols (==) at the beginning and at the end of the commentComments
Unclosed quoted word"wordword >> "& >> word2Quotation marks in TLML Syntax have to be always duplicated, so one at the beginning of the word and another at the endTLML syntaxReserved characters
Unclosed script{script(word):{script(word)^{scriptScript expression have to be enclosed in curly brackets {} when used in TLML syntax editorsScript syntaxNLU Variables and attached scripts
Unmatched bracketword + word2) / word3word + (word2word + 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 bracketBracketed 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 § wordword § %LOB%LOB§wordThe 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 operatorCompound operator