Language Objects
A Language Object is a reusable container for grouping words, sentences or other Language Objects, Entities, and Annotations. The scope of a Language Object can be as wide or narrow as needed, and it may contain a list of synonyms, figures of speech, idioms, thematically related words or simply the different conjugations of a verb or noun.
This section covers the following topics:
Concept
A Language Object is a reusable container for grouping words, sentences or other Language Objects, Entities, and Annotations. The scope of a Language Object can be as wide or narrow as needed, and it may contain a list of synonyms, figures of speech, idioms, thematically related words or simply the different conjugations of a verb or noun.
The simplest one-word Language Objects may look like this:
DOG.NN.LEXand cover the formsdog / dog's / dogs / dogs'DOG.NN.SYNand cover the forms%DOG.NN.LEX / %HOUND.NN.LEX / %MUTT.NN.LEX / %POOCH.NN.LEX
Whereas a multi-word Language Object can look like this:
DOG.MULand cover the following:%SMALL.ADJ.SYN + %DOG.NN.SYN
The syntax used is written in Teneo Linguistic Modeling Language (TLML). The different words or references must be separated by operators to indicate how they relate to each other. Furthermore, referenced Language Objects should be preceded by %.
Entities are a special kind of Language Object that cover a collection of related words or phrases. They cover a broader concept than a lexical Language Object.
Available Language Objects
From a solution, users have access to the following collections of Language Objects:
- Language Object located in the solution, and
- Language Objects available in any lexical resource assigned to the solution
Language Objects located in the solution are under full control of the Teneo Studio user and these can be managed and modified in any way; Language Objects from a lexical resource (e.g. Teneo Lexical Resources) can be viewed and used in TLML syntaxes but not modified.
Teneo Lexical Resources cover general language expressions and common phrases, but if domain-specific words are needed, the user can easily create missing Language Objects; see How to create to read more. Once created, the Language Objects can be used in the current solution and re-used in other solutions as well.
Naming Conventions
The Language Objects that come with the pre-built language resources follow a naming convention. When naming a Language Object, it is recommended to follow the naming conventions used by the Teneo Lexical Resources and the requisites below:
- the name must be unique within the solution
- the name is written in upper-case Lower cased characters are automatically upper cased by Teneo
- the name cannot contain any reserved characters. Any special characters or blank spaces are automatically converted into underscore by Teneo
- the name cannot end with
.ENTITY
If a Language Object in the solution shares its name with a Language Object in an assigned lexical resource, the Language Object located in the solution is always chosen by Engine over the Language Object in the assigned lexical resource.
Types of Language Objects
An extensive table of the Language Object types, and part of speech tags used, can be found here.
Variables
NLU Variables can hold a specific value, like a string, Boolean, List, Map (key/value pair) or number. The name of a variable should be short, unique and meaningful, and written in camelCase; see naming conventions.
As an example, in the English Lexical Resource, the COUNTRY.ENTITY returns the variables sCountry, sCapital and sCountryCode, where all entries set a corresponding value, i.e. CANADA.NN.LEX sets the variable sCountry to Canada, the variable sCapital to Ottawa and the variable sCountryCode to CA.
LO Variables are deprecated as of Teneo Platform 7.0 and users are encouraged to use NLU Variables instead.
Examples
The Examples added to Language Objects are used to generate the most optimal TLML Syntax in triggers and transitions when implementing TLML Match.
Read more about Examples here.
How To
Open
- Teneo Studio Desktop
- Teneo Studio Web
To open a Language Object in read only mode, either:
- Double-click the wanted Language Object in the Solution Explorer view.
- Select the Language Object and click Open in the top ribbon.
- Right-click the Language Object and select Open in the context menu.
In the Syntax editor, double-click the name to open a referenced Language Object in read only mode. In the Entries editor, left-click and select Open to open a referenced Language Object in read only mode.
Language Objects and Entities referenced from an assigned Lexical Resource always open in read-only mode.
Open an existing Language Object by following these steps:
- In the Solution dashboard, navigate to the Language Objects section.
- Select the folder where the Language Object is stored.
- Select the Language Object by clicking its name.
Create
- Teneo Studio Desktop
- Teneo Studio Web
To create a new Language Object, simply follow these steps:
- Go to the Solution Explorer in the main Teneo Studio window (Home tab).
- Optionally select the folder, or create a new folder, where the Language Object should be added
- In the top ribbon, click on the Language Object button in the New area.
- The Language Object window opens on the Properties tab. Add the Name of the Language Object. Optionally, add an Alias and a Description.
- Click the green Play icon or the back arrow in the top left corner.
- Now, add the TLML syntax of the Language Object in the Syntax editor.
- Optionally, add NLU Variables, LO Variables and/or Examples (available in the right-hand side panels).
- Remember to Save to preserve all the modifications.
Need to create several Language Objects (or Entities)? Consider using Bulk Import.
To create a new Language Object, follow these steps:
- If in a folder, click the Create button and select Create new language object (pictured, right).
- If in the Language Object list, click the Create new language object button (pictured, left).

- The Create New Language Object opens, write the Language Object name and, optionally, a Language Object description.
- Lastly, click Create Language Object.
Edit
- Teneo Studio Desktop
- Teneo Studio Web
After opening the Language Object in edit mode, the user is able to work on the Language Object.
To open a Language Object in edit mode, either:
- Activate edit in the opened Language Object by clicking Edit in the top ribbon of the Language Object.
- Press the Alt key while double-clicking the wanted Language Object in the Solution Explorer view.
- Select the Language Object and click Edit in the top ribbon.
- Right-click the Language Object and select Edit in the context menu.
Looking for tips on how to write the TLML Syntax or details about Variables? Check out the TLML Syntax editor or visit the section on how to add variablesfor more information on editing.
In the Syntax editor, press Alt while clicking the referenced Language Object to open it in edit mode. In the Entries editor, left-click and select Edit to open referenced Language Object in edit mode.
Editing a Language Object is done by simply clicking in the Syntax editor to start writing the TLML syntax; variables can be added or edited by opening the Variables panel (>> icon in the left side of the Syntax editor).
Updating the name of a Language Object is done by clicking the name in the top ribbon and performing any needed modifications inline; alternatively click Info to update the name and the description.
Looking for tips on how to write the TLML Syntax or details about Variables?
Check out the TLML Syntax editor or visit the section on how to add variables for more information on editing.
Save
- Teneo Studio Desktop
- Teneo Studio Web
To save a Language Object with a comment follow these steps:
- Click Save in the top ribbon of the Language Object.
- In the dialogue box (optionally) write a comment.
- Click OK.
To save directly and bypass the comment, press the Alt key while clicking the Save button.
To save a Language Object, follow these steps:
- Click Save in the top right corner of the window Note that the Save button is only visible when changes have been performed
- Optionally, add a comment
- Click Save to confirm the save action or Cancel to abort the save
Successful save is confirmed with a "Document saved successfully!" message; by clicking elsewhere in the browser window the message is closed.
Close
- Teneo Studio Desktop
- Teneo Studio Web
To close a Language Object, either:
- Click the X in the top, right corner of the Language Object window.
- Click the Close button available in the top ribbon.
- In the Language Object backstage, click Close in the left-side menu.
Should there be unsaved changes, Teneo Studio prompts the user to Save or Close without saving.
To close a Language Object in Teneo Studio Web:
- Remember to Save if any changes were performed in the Language Object to preserve them; Teneo Studio will prompt the user to save if unsaved changes are detected.
- Simply navigate back by using the back arrow of the browser.
Delete
- Teneo Studio Desktop
- Teneo Studio Web
To delete a Language Object from the solution, follow these steps:
-
Select the Language Object in the Solution Explorer.
-
In the top ribbon of Teneo Studio, click Delete.
-
A confirmation message will be displayed, click Delete again.
If the Language Object is in use, an Item in Use message will appear, click Select All to delete anyhow or Continue to cancel deletion (the user can also click the X in the box to cancel the deletion).
For more information, please see Delete documents.
To delete a Language Object from the solution, follow these steps:
- Navigate to the folder where the Language Object is saved.
- Hovering over the Language Object, an icon of a recycle bin appears in the right side of the browser window. Click it.
- The user will be prompted to confirm the deletion of the Language Object:
- Click Delete to perform a usage check before deletion.
- Click Delete without usage check to delete directly.
- Click Cancel to cancel the action.
Note that deletion of a Language Object currently cannot be undone in Teneo Studio Web. For this action, please refer to the Recycle Bin available in Teneo Studio Desktop.
Add Variable
- Teneo Studio Desktop
- Teneo Studio Web
LO Variables are deprecated as of Teneo Platform 7.0 and users are encouraged to use NLU Variables instead.
To add a Variable to the Language Object, follow these steps:
- If not open, click NLU Variables or LO Variables in the right side of the window to open the panel.
- Under NLU Variables or LO Variables click Add.
- Write the Variable Name.
- Specify the Evaluation Script.
- Remember to Save the Language Object to preserve the changes.
_USED_WORDS allows you to return the words from the user input that matched the TLML syntax of the Language Object and implies that the value will be dynamically set to the matched word(s)
LO Variables are deprecated as of Teneo Platform 7.0 and users are encouraged to use NLU Variables instead.
To add a Variable to the Language Object, follow the below steps:
- In the left side of the Language Object, click the >> (double greater-than sign) to open the Variables panel.
- Click the Plus icon to add a new variable.
- Give the variable a name.
- Add the variable value.
- Remember to Save the Language Object to preserve the changes.
Delete Variable
- Teneo Studio Desktop
- Teneo Studio Web
To delete a Variable from the Language Object, follow these steps:
- In the Language Object window, expand the Variables tab in the right side of the view.
- Select the variable to delete and click Delete.
- Remember to Save the Language Object to preserve the changes.
To delete a Variable from the Language Object, follow these steps:
- On the left side of the Language Object, click the >> (double greater-than sign) to open the Variables panel.
- Hover over the variable to delete. An X appears on the right; click it to delete the variable.
- Remember to Save the Language Object to preserve the changes.
UI
Language Object Window
- Teneo Studio Desktop
- Teneo Studio Web
This page provides an introduction to the Language Object window and the main options when working with Language Objects in Teneo Studio.

| Section | Description | Related Pages |
|---|---|---|
| Used by panel | Provides information about where the Language Object is referenced; click any of the listed documents to navigate to it. | |
| Top ribbon | Displays options for modifying Language Object. | Top ribbon |
| Syntax editor | Allows to write the TLML Syntax of the Language Object. | Syntax editor TLML Manual |
| NLU Variables | Allows to add NLU Variables to the Language Object. | Add or Edit Variables TLML Variables |
| LO Variables | Language Object Variables are deprecated as of Teneo Platform 7.0 and users are encouraged to use NLU Variables instead | Variables |
| Examples | Allows to write examples which the Language Object's scope should cover. | Examples |
Top ribbon
Furthermore, the Top ribbon offers the following options:

| Section | Description | Related Pages |
|---|---|---|
| Home tab | Opens the syntax editor for a Language Object in the Language Object window. | Language Object Window |
| Language Object tab | Opens the Properties section for a Language Object in the backstage view. | Backstage view |
| Close | Close the Language Object window. | Close |
| Save | Save the Language Object in the current state; clicking the lower part of the button allows the user to save the Language Object with or without a comment. | Save |
| Enable / Disable | Enable or disable the Language Object. | Enable of Disable documents |
| Undo / Redo | Undo/redo changes performed in the Language Object. | |
| Set / Unset | Set or unset the current version of the Language Object as stable. | Version flag |
| Include / Exclude | Include or exclude the Language Object from branching when working in a Localization setup. | Localization setup |
Backstage view
The backstage view of a Language Object can be accessed by selecting the Language Object tab.

| Backstage | Description | Related Pages |
|---|---|---|
| Save | Save the Language Object in the current state; clicking the lower part of the button allows the user to save the Language Object with or without a comment. | |
| Properties | Allows to edit the name and alias of the Language Object, add a description or view the Id and location. | |
| History | Lists the history of versions created each time the Language Object was saved, comments added at save are displayed here Open a previous version by clicking the version number; restore a previous version by opening a specific version and clicking Restore in the top ribbon. | Version history |
| Metadata | Allows to define metadata values for the Language Object. | Metadata |
| Close | Close the Language Object window. | Close |
This page provides an introduction to the Language Object window and the main options when working with Language Objects in Teneo Studio.

| Section | Description | Related Pages |
|---|---|---|
| Language Object name | Displays the path and name of selected Language Object. | Naming conventions |
| Info | Displays information on Language Object. | |
| Save | Save current state of Language Object. Only visible when changes have been performed. | Save |
| Variables | Displays NLU variables and LO variables used in Language Object. | Variables |
| Syntax Editor | Allows to write the TLML Syntax of the Language Object. | Syntax editor TLML Manual |
| Tryout | Allows to test Language Objects in a conversation. | Tryout |
Language Objects Overview
- Teneo Studio Desktop
- Teneo Studio Web
Language Objects can be defined in different folders within the solution.

Language Objects can be defined in different folders within the solution.

Practical Examples
Creating a Language Object
In this practical example, we will show you how to create Language Objects that define specific strings or reference other Language Objects. We will also walk you through creating an Entity that references several Language Objects.
- Teneo Studio Desktop
- Teneo Studio Web
This is what a simple Language Object may look like. It only covers the strings "decaf" and "decaffeinated".

This is what a simple Language Object may look like. It only covers the strings "decaf" and "decaffeinated".
However, to get more extensive coverage, you can use Language Objects within a Language Object. The following example would expressions such as "soy milk" and its synonyms, depending on the content of each Language Object declared.
- Teneo Studio Desktop
- Teneo Studio Web

This is how you can create a Language Object like in the example above:
-
Go to the folder where you would like to store your Language Objects. If desired, you can create a subfolder to store them in, for example, one called
Milk alternatives. -
Click on Language Object in the 'New' section in the top ribbon bar.
-
Call the Language Object
SOY_MILK.MUL. -
Click on the back arrow in the top left to go to the main Language Object window and add the condition:
%SOY.NN.LEX >> %MILK.NN.LEX. -
Save the Language Object.
The new Language Object consists of multiple words, and thus bears the suffix "MUL".
- Navigate to the folder where you would like to store the Language Objects. If desired you can create a subfolder to store them in, for example, one called
Milk alternatives. - Create a new Language Object.
- Call the Language Object
SOY_MILK.MUL. - Click on the back arrow in the top left to go to the condition window and add the syntax:
%SOY.NN.LEX >> %MILK.NN.LEX. - Save the Language Object.
The new Language Object consists of multiple words, and thus bears the suffix "MUL".
Using Language Objects in an Entity
- Teneo Studio Desktop
- Teneo Studio Web
Creating an Entity that uses the Language Objects can help to cover a broad concept. This is how you can create an Entity for different milk alternatives:
- In the main solution window, click on Entity in the 'New' in top ribbon bar. This will create a new Entity.
- Call the entity
MILK_ALTERNATIVES(the suffix 'ENTITY' will be added automatically). - Paste the following entries and select 'First row is variable names':
| Entry | description |
|---|---|
| %CONDENSED_MILK.MUL | condensed milk |
| %LACTOSE_FREE_MILK.MUL | lactose free milk |
| %SOY_MILK.MUL | soy milk |
- Save the Entity.
We now have an Entity that recognizes the milk alternatives!
Creating an Entity that uses the Language Objects can help to cover a broad concept. This is how you can create an Entity for different milk alternatives:
-
Navigate back to the previous folder and this time, create an Entity.
-
Call the entity
MILK_ALTERNATIVES(the suffix 'ENTITY' will be added automatically). -
Click on 'Add String Variable' and name it 'description'
-
Add following entries and select 'First row is variable names':
Entry description %CONDENSED_MILK.MUL condensed milk %LACTOSE_FREE_MILK.MUL lactose free milk %SOY_MILK.MUL soy milk -
Save the entity.
We now have an Entity that recognizes the milk alternatives!
Tips and Tricks
Find Language Objects
This page will illustrate three ways of finding Language Objects and they all apply to Language Objects that come with Lexical Resources and the ones you have created yourself.
In Teneo, you can find Language Objects using:
- The auto-complete function
- Marking and searching
- The search interface
Auto-complete Typing
If you already know that a certain Language Object exists and you (at least vaguely) remember its name, you can simply start typing the Language Object's name using TLML Syntax. Just remember that all language object names start with ''%''.
Once you have typed a few letters, press Ctrl + Space. This opens a drop-down menu that displays all available language objects (from both the Lexical Resources and your locally created ones) that start with the letters you have typed so far.
If the list of proposed Language Objects is too wide, simply continue typing the Language Object name and the list will narrow down. You can hover over each proposed Language Object in order to know what it covers without having to open it. This helps you to decide whether it is the right candidate for your current purpose.
Once you found the desired Language Object, simply click on it and it will be added to the condition.
Mark and Search
This is how you use mark and search:
-
Type one or more words using TLML Syntax.
-
Mark the word(s) and press Ctrl + Space.
-
Hover over the Language Objects in the result list to find the one that fits best.
-
Select the desired Language Object from the result list.
This search strategy is similar to the first one, but it is more flexible and powerful:
- You don't need to type '%'.
- You can type more than one word (well suited to find more complex Language Objects like phrases).
- What you type matches not only Language Object names but also the words the Language Objects cover.
The Search Interface
You can easily look for a specific Language Object in the search interface available in the top ribbon of your solution.
Read more about the search function here.