Lexical resources

Teneo Lexical Resources (TLR for short) are large collections of pre-defined language objects. They come with Teneo and are available in many different languages. TLRs cover general language vocabulary and common phrases so that you do not have to model them yourself. They are hierarchically ordered with more complex language objects consisting of less complex language objects. This allows you to use words and expressions at your desired complexity level.


Many of the words covered by the TLRs are structured in a hierarchy with more general entities at the top and more specific entities at the bottom. This allows you to use the degree of granularity you need for your current bot. To give an example, sometimes it might be sufficient for you to know that the user is talking about an alcoholic drink, while in other cases it may be crucial to know the exact type of beer the user wants to order. Below we show a simplified part of the hierarchical structure used for drink-related vocabulary in the TLR.

Language object taxonomy

Common Phrases

Most TLRs do not only cover words but also common phrases consisting of several words. Often there are many different ways to express the same intention. This is where phrasal language objects come into play. Say that the user of your bot wants to buy a coffee. You may use the phrasal language object I_WANT.PHR in combination with the object for BUY.VB.LEX in your condition in order to capture a wide range of different varieties to express this intention. These are some examples covered by I_WANT.PHR:

I want / I would like to / I feel like / Is it possible to get / Could I have / Can I have / Let me have / I need to get / I would absolutely love to / I'd be keen to / Give me / I'm interested in / ...

How to use TLRs

TLRs always need to be assigned to a solution before you can use them in your dialog. You can assign them by selecting 'Resources' in the backpanel of your solution. Then click on 'Lexical', where you can assign the lexical resources displayed to you. An illustration of this process can be found here.

Adapt existing TLRs

Sometimes, you may want to adapt language objects included in the TLR. This may happen because the current project requires a broader or different coverage. If you want to modify a language object from a TLR, you have to make a local copy of it and store it in your solution. You can now modify this local copy as you need. At runtime, only this locally modified version of the language object will be used, as local language objects always have precedence over the language objects in the TLR.

You may wonder why you have to copy the language object before you modify it. Well, TLRs are complex collections of language objects and it could by risky to allow their direct modification. Naming the copy like the original language object ensures that the modifications you made will propagate up to other language objects in the TLRs that make use of the one you modified.

Was this page helpful?