Annotations Reference

Annotations can be considered 'labels' that are attached to inputs. A word, word sequence, sentence, or full input can have multiple annotations that you can use in language conditions. Teneo enriches inputs with various annotations right out of the box. This reference page describes which predefined annotations are available, what they can be used for and for which languages they are available. For more details on annotations and how to use them, go here.

If you want to see how an input is annotated, enter the input in the Try Out window and open the Input section. You will find all annotations that were added to the input in the Annotation section below the input. Hovering over an annotation will display additional information that is stored in annotation variables.

Language specific

Every language has its own part-of-speech tags and are available in the documentations. Here's a list for each of the languages.

Language Part-of-speech Tags Named Entity Recognizers Tags
Chinese Mandarin Documentation None
Danish Documentation None
Dutch Documentation None
English Documentation Documentation
French Documentation Documentation
German Documentation Documentation
Italian Documentation Documentation
Japanese Documentation Documentation
Korean Coming Soon Coming Soon
Spanish Documentation Documentation
Swedish Documentation Documentation
Turkish Documentation Documentation

Part-of-speech tags

The machine learned part-of-speech tagger (or POS tagger) that comes with Teneo attaches one or more part-of-speech tags to each word in the input. POS taggers are available for Chinese, Danish, Dutch, English, French, German, Italian, Japanese, Korean, Spanish, Swedish, and Turkish. Here's a list of examples.

Condition Description
%$3RDPERSON.POS Verbs in third person
%$ADJ.POS Adjectives
%$ADV.POS Adverb
%$BRACKET.POS Brackets {}()[]
%$CARDINAL.POS Cardinal numbers
%$CC.POS Coordinating conjunctions
%$COMPARATIVE.POS Comparative adverbs and adjectives
%$DET.POS Determiners
%$EX.POS Existential 'there'
%$FOREIGN.POS Foreign words
%$GERUND.POS Gerund verbs
%$INF.POS Verbs in infinite tense
%$INTERJ.POS Interjections
%$INTERROG.POS Interrogative (question) words, function words used to begin a wh- question, like what, who, when
%$LS.POS List item markers
%$MODAL.POS Modal verbs
%$NN.POS Nouns
%$PARTICIPLE.POS Verbs in past participle
%$PARTICLE.POS Particles
%$PAST.POS Verbs in past tense
%$PERS.POS Personal pronouns
%$PL.POS Nouns in plural
%$POSITIVE.POS Positive adverbs and adjectives
%$POSS.POS Nouns and pronouns expressing possession
%$PREDET.POS Predeterminers
%$PREP.POS Prepositions
%$PRESENT.POS Verbs in the present tense
%$PRON.POS Pronouns
%$PROPER.POS Proper nouns
%$PUNCT.POS Punctuations such as .,:!"
%$SG.POS Singular nouns
%$SUPERLATIVE.POS Superlatives
%$SYM.POS Symbols
%$VB.POS Verbs

Many of the POS tags are made available as Language Objects with the extension .ANNOT. While you can use POS tags directly in your condition, it is better use equivalent language objects instead. The ANNOT language objects can, for example, group multiple similar POS tags.

Named Entities

Teneo comes with machine learned Named Entity Recognizers (NER's) for English, French, German, Italian, Japanese, Spanish, Swedish, and Turkish. Here's a list of examples:

Condition Description Examples
%$ADDRESS.NER Street names and street numbers when applicable I live on 2967 Washington st.
What time does the office on Birch avenue open?
I recently moved to 23 Main street.
%$CULTURAL_GROUP.NER Nationalities, ethnic groups, religious groups, etc. Do you accept students from German universities?
I need to order special food on the flight, I am Muslim.
Mum is cooking great Arabic food.
%$DATE.NER Full dates (year, month, day) I was born on April 7th, 1991.
The ticket was issued 23 Jan 2017.
I have been a customer since 14-03-2015.
%$EMAIL.NER Email addresses E-mail it to john.doe@artificial-
My email is tester at yahoo dot com
%$EVENT.NER Events, national holidays, treaties, awards/prices, etc. Who won the Oscar's last night?
Where are you celebrating Christmas this year?
The treaty of Versailles was signed in 1919.
%$FACILITY.NER Buildings, airports, train stations, public transport lines, hospitals, etc. I want to fly from Newark to LAX.
Have you ever visited the Empire state building?
What year was the Brooklyn Bridge built?
%$FICTIONAL_FIGURE.NER Fictional figures, cartoons, etc. Who do you think you are, Superman?
He was wearing a black coat, a bit like Batman’s.
I don't believe in Santa Claus.
%$GEOGRAPHY.NER Non-political geographical entities: mountains, bodies of water, planets, moons, suns, etc. How many rings does Saturn have in total?
Who was the first one to climb Mount Everest?
How big is the Sahara Desert?
%$IP.NER IP addresses Connect to
%$KNOWN_FIGURE.NER Known, public (non-fictional) figures Barack Obama was the President of the United States for 8 years.
I am a big fan of Meryl Streep.
Play a song from Justin Bieber.
%$KNOWN_GROUP.NER Known groups and bands Play a nice song by The Beatles.
I liked the latest Coldplay album.
Another song from Metallica please.
%$LANGUAGE.NER Languages Do you have this document in Swedish?
Translate ‘hello’ to Hindi.
I speak thee languages: Polish, English and Urdu.
%$LOCATION.NER Geopolitical locations (humans made the borders), including: continents, countries, states, counties, cities, neighborhoods, etc. I was born in California.
I want to fly from Paris to London.
What time does the ferry to Staten Island depart?
%$MED_CHEM.NER Medical/chemicals: chemical substances, named diseases, and drugs Is there a vaccine for Malaria?
Who really discovered the Penicillin? Find me information about Iodine.
%$MISC.NER Miscellaneous: named entities that fit none of the other categories The Tyrannosaurus Rex could be over 6 meters high.
What happened to Obamacare?
What is the Erasmus programme?
%$ORGANIZATION.NER Organizations: companies or a division of a company, universities, schools, embassies, religious organizations, political parties, etc. I work at Apple.
What is the e-mail address to
I studied at Harvard University.
%$PERSON.NER Names of persons, including titles and surnames if present My name is Mrs Johnsson.
The ticket is booked in the name
Joanne Stevens.
Send a text to John please.
%$PRODUCT.NER Product or brand names or organization names used as products in the context I drive a BMW.
How much is the new iPhone X?
Can you open Facebook and make a post for me?
%$SPORTS.NER Sports teams, sports organizations, sporting events Miami Dolphins is a good team!
I want to watch the winter Olympics.
Who won the FIFA world cup?
%$UNIQUE_IDENTIFIER.NER Unique identifiers: product numbers, phone numbers, user names, member numbers, etc. My phone number is 123-44 43 33.
I have a bonus card with number ebb123523111.
When will 103-121-111 be in stock again?
%$UNIT.NER Established units with value, including but not limited to: duration, age, temperature, percentage, information (bits) weight, volume, speed, length, currency My phone has 64 GB.
This flight has cost me almost $600.
We have more than 750 miles to go.
%$URL.NER URLs (also partial / truncated URLs) Open
Go to page
Take me to cnn dot com
%$WORK_OF_ART.NER Works of art: songs, albums, movies, books, video games, etc. Do you read the Bible?
Play Dimond’s with Rihanna.
Download Frankenstein movie.
%$ZIP_CODE.NER Zip codes My zip is V0G 1Y0.
My address is 24 Main street 23212 New York.

Many of the NER's are made available as entities with the extension .ENTITY. While you can use the NER tags directly in your condition, it is often better use the entity instead of the annotation, since entities can combine NER's and entities to provide best coverage.


While using the LUIS^Teneo approach, entities created inside LUIS will come with a LUIS prefix.

Condition Description
%$LUIS_MONEY.ENTITY Money is a pre-built entity in LUIS. Currencies like Dollar and Euro are included together with the amount, e.g. 15 euros or 1 dollar.


For European languages, Arabic numbers like 42 or 3.14 in the user input are annotated.

Condition Description
%$NUMBER Numbers in the user input like 42 or 3.14. The annotated number is available as an annotation variable numericValue.

In addition to the %$NUMBER annotation, the language object %NUMBER.ENTITY provides a way to recognize both Arabic numbers as well as verbalized numbers (one, two, fifteen etc) and normalize them to numeric values in an NLU variable 'nNumber'. For example, when using %NUMBER.ENTITY, the verbalized number 'twelve' will have an NLU variable 'nNumber' of 12. Because of this, in most cases, using the entity instead of the annotation is preferred.

Language detection

The Language Detector in Teneo can detect 45 languages, regardless of the solution language. The annotation is added to each sentence of an input.

Condition Description
%$AR.LANG Arabic
%$BG.LANG Bulgarian
%$BN.LANG Bengali
%$CA.LANG Catalan
%$CS.LANG Czech
%$DA.LANG Danish
%$DE.LANG German
%$EL.LANG Greek
%$EN.LANG English
%$EO.LANG Esperanto
%$ES.LANG Spanish
%$ET.LANG Estonian
%$EU.LANG Basque
%$FA.LANG Persian
%$FI.LANG Finnish
%$FR.LANG French
%$HE.LANG Hebrew
%$HI.LANG Hindi
%$HU.LANG Hungarian
%$ID_MS.LANG Indonesian-Malay
%$IS.LANG Icelandic
%$IT.LANG Italian
%$JA.LANG Japanese
%$KO.LANG Korean
%$LT.LANG Lithuanian
%$LV.LANG Latvian
%$MK.LANG Macedonian
%$NL.LANG Dutch
%$NO.LANG Norwegian
%$PL.LANG Polish
%$PT.LANG Portuguese
%$RO.LANG Romanian
%$RU.LANG Russian
%$SK.LANG Slovak
%$SL.LANG Slovenian
%$SR_HR.LANG Serbian-Croatian-Bosnian
%$SV.LANG Swedish
%$TA.LANG Tamil
%$TE.LANG Telugu
%$TH.LANG Thai
%$TL.LANG Tagalog
%$TR.LANG Turkish
%$UR.LANG Urdu
%$VI.LANG Vietnamese
%$ZH.LANG Chinese

Intent annotations

User inputs that are processed by Teneo can have two intent annotations. The intent annotations use the names of the classes defined in the Trigger inside the solution. Which intent annotations are added depends on the classes that are matched to the user input.

Condition Description Example Condition
%$[Intent Name].INTENT An user input will have one or more INTENT annotations, depending on confidence levels of the matched intents. Returns lob.confidence showing the confidence level. %$HOW_ARE_YOU.INTENT:{lob.confidence>0.70}
%$[Intent Name].TOP_INTENT A user input will have only one TOP_INTENT annotation. This is the intent with the highest confidence level. Returns lob.confidence showing the confidence level. %$HOW_ARE_YOU.TOP_INTENT:{lob.confidence>0.95}

System annotations

System annotations are available regardless of the language.

Condition Description
%$_INIT If a request was sent to Teneo without a session id, a new session will be started and the %$_INIT annotation is added to the input. This annotation is used in the trigger of the 'Greeting message' flow.
%$_TIMEOUT If the request contained a session id that has expired or was unrecognized a new session is started and the %$_TIMEOUT annotation is added to the input. This annotation is used in the trigger of the 'The user continues conversation after Timeout' flow.
%$_EMPTY The input contained no text. This annotation is used in the 'The user gives an empty input' flow.
%$_QUESTION A question mark appears in the input.
%$_EXCLAMATION An exclamation mark (!) appears in the input.
%$_DBLQUOTE A quotation mark (") appears in the input.
%$_QUOTE Single quotation marks (') appear in the input.
%$_BRACKETPAIR A pair of brackets () or [], appear in the input.
%$_NONSENSE The input includes nonsense text such as 'asdf', 'xxxxx', etc.
%$_BINARY The input consists of 0s and 1s.
%$_QT3 Triple question marks (???) appear in the input.
%$_EM3 Triple exclamation marks (!!!) appear in the input.

Note that either the %$_TIMEOUT or %$_INIT annotation will be added to an input, as they cannot both exist at the same time.

Was this page helpful?