Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this document,

tocThis document has multiple references to How do I build Taxonomy document

Table of Contents
excludeRelated

Taxonomy Node

The Taxonomy node lets you use the taxonomy tree in Experience Manager with the flows in Experience Designer. There are three actions to choose from:

  • Get

  • Create

  • Upsert

Get action

Get action is used to retrieve Taxonomy data from the database. Taxonomy Node inputs leverage the mustache {{tag}} template language, which is applied to the node input either reference from msg.payload or msg

...

Taxonomy Id

The ID of the taxonomy tree should be given here. You can give an ID manually or can populate it dynamically populate the field using a mustache tag.

For example: {{msg.payload.voiceMenuId}}

...

Category Phrase

You can manually fill this field or make use of a mustache tag. The node searches the first-level categories in the taxonomy tree for a match. If found, it selects that taxonomy branch.

For example, if the Category Phrase is Poison, the category is saved in a voice session so when you search for treatment or symptoms, it remembers to search only the Poison branch. If nothing is found, it searches the rest of the taxonomy for a match.

...

Example Mustache Tag: {{msg.payload.request.intent.slots.category.value}}Note:

The category used in the mustache tag should be the same as the slot name used in the utterances in the topic intent.

For example, the auto-generated slot name for the taxonomy topics is First_Aid_Topics. The alternate slot name created to use within the intent is category, which is used in all the utterances. The same slot name (ie. category) is passed in the mustache tag in the Taxonomy node.

...

Session Management for Category - If a Category is found, the Taxonomy node stores the Category in the session and uses it in the next query if a category is not passed to it.

SubCategory Phrase

You can manually fill this field or make use of a mustache tag. The node Searches within the taxonomy branch mentioned in the “Category Phrase” field.

...

For example, the auto-generated slot name for this taxonomy subtopics is First_Aid_Subtopics. The alternate slot name created to use within the intent is subCategory, which is used in all the utterances. The same slot name (ie. subCategory) is passed in the mustache tag in the SubCategory Phrase field of the Taxonomy node.

...

WhatAskStart

The text provided in the “WhatAskStart” can be accessed with the properties “whatYouCanAskParentChild” and “whatYouCanAsk”.

...

Code Block
for other article{{plural}} on {{Category}}, you can say <break time="400ms"/>

...

WhatAskLoop

This field is used for speech synthesis of the branch titles that are suggested in the “WhatAskStart” field.

...

Code Block
<prosody volume="x-loud"> {{FirstMatchPhrase}} </prosody><break time="500ms"/>

...

Given below is the sample output payload, we used in Example flow 1:

...

WhatAskLoop – <amazon:effect name="whispered"> {{FirstMatchPhrase}} </amazon:effect> <break time='1000ms'/>

...

In the output payload,

whatYouCanAskParentChild” – This property value contains the immediate subtopics under the branch queried for.

...

Either of these parameters can be used in the say node as shown in the below screenshot to suggest the subtopics to the user.

...

Multi Category

This message will be sent to the output pin if multiple categories are found.

...

Code Block
There are {{length}}, main topics found, for <break time='300ms'/> {{Category}}, you can say <break time='500ms'/>

Multi Sub Category

This message will be sent to the output pin if multiple subcategories are found.

...

Code Block
There are {{length}}, sub topics found, for <break time='300ms'/> {{subCategory}}, you can say <break time='500ms'/>

Replace Words

A comma-delimited list of words to replace.

...

Note: The language processors sometimes generate misspelled words, or words not in your context, such as byte versus bite, joking versus choking

Create Action

Using the Create action, you can create taxonomy categories or subcategories using the Taxonomy node.

...

  • Taxonomy. Select a Taxonomy Tree that you created in the Experience Manager.

  • Payload. JSON code of the categories or subcategories you want to create in the Taxonomy Tree.

...

Code Block
{
  "data" : {
              "allowJump" : true,
              "voice"     : {
                              "sayText"  : "",
                              "rePrompt" : ""
                            },

              "chat"      : {
                              "chatText" : "",
                              "rePrompt" : ""
                            },

              "screen"   : {
                             "shortTitle" : "",
                             "longTitle"  : "",
                             "body"       : "",
                             "smallImage" : "",
                             "largeImage" : ""
                           },

              "buttons"  : {
                             "type"    : "dropdown",
                             "name"    : "buttons",
                             "choices" : []
                           },

              "title"    : "foods",
              "SayText"  : "",
              "RePrompt" : "",
              "parentId" : 858870919717
            }
}
Info

...

If a valid parentId is not given then, by default, it updates the Root node.

Upsert Action

Using Upsert action, you can update any existing taxonomy categories or subcategories. If no entries are found, the system will insert the queried values into the database.

...

  • Taxonomy. Select a taxonomy tree that you created in the Experience Manager.

  • Payload. JSON code of the categories or subcategories you want to create or upsert in the taxonomy tree.

Info

...

Upsert action searches the records and if nothing is found, it creates a new one.

Sample Payload format:

Code Block
{
  "data" : {
             "allowJump" : true,
             "voice"     : {
                             "sayText"  : "Taxonomy level one",
                             "rePrompt" : "Taxonomy level one"
                           },

             "chat"      : {
                             "chatText" : "Taxonomy level one",
                             "rePrompt" : "Taxonomy level one"
                           },

             "screen"    : {
                             "shortTitle" : "",
                             "longTitle"  : "",
                             "body"       : "",
                             "smallImage" : "",
                             "largeImage" : ""
                           },

             "buttons"   : {
                             "type"    : "dropdown",
                             "name"    : "buttons",
                             "choices" : []
                           },

             "title"     : "Taxonomy level one",
             "SayText"   : "",
             "RePrompt"  : "",
             "parentId"  : 349932564080
           }
}
Info

...

If a valid parentId is not given then, by default, it updates the Root node.

Output Payload

SayText

Code Block
msg.payload.orbita.taxonomy.SayText

Reprompt

Code Block
msg.payload.orbita.taxonomy.RePrompt

If there is more than one result, the following payload contains the concatenated result.

Code Block
msg.payload.orbita.taxonomy.concatenateResults 

Ideally, there is only one array of results. If more than one document had the same weighted results then there will be multiple arrays of results.

Code Block
msg.payload.orbita.taxonomy.maxArrayResults

The value of this payload will be true if the category was found.

Code Block
msg.payload.orbita.taxonomy.foundBranch

The weight of the match; if 0, no match found.

Code Block
msg.payload.orbita.taxonomy.maxValue

If true, a category was used to narrow the search.

Code Block
msg.payload.orbita.taxonomy.foundBranch

The following payload returns the current taxonomy Id, such as 591f5792e2386b8516977df1.

Code Block
msg.payload.orbita.taxonomy.TaxonomyId

The following payload returns the words used to search Subcategory.

Code Block
msg.payload.orbita.taxonomy.SubCategoryList

The following payload returns the words used to search Category.

Code Block
msg.payload.orbita.taxonomy.category

The following payload returns a list of all the titles under the selected branch.

Code Block
msg.payload.orbita.taxonomy.Taxonomy.BranchTitles 

The maxArrayResults will display an array of results found. Ideally, the .length property of this array should be 1.

Code Block
msg.payload.orbita.taxonomy.maxArrayResults

All the information about this node, which branch it belongs to, what are the child branches, how many child branches it has, are displayed in the following payload.

Code Block
msg.payload.orbita.taxonomy.nodeInformation

The following payload contains the information of the parent node without the children.

Code Block
msg.payload.orbita.taxonomy.nodeInformation.parentData

The following payload contains the information of the parent node including the children.

Code Block
 msg.payload.orbita.taxonomy.nodeInformation.nodeData

The following payload returns the node’s category.

Code Block
msg.payload.orbita.taxonomy.nodeInformation.nodeCategory

The titles of the parent node and children nodes related to the node that is found, but not sub-children.

Code Block
msg.payload.orbita.taxonomy.nodeInformation.ParentChildTitles

The following payload contains all the subcategory phrases in the Taxonomy. You should copy this to the "developer.amazon" custom slot SubCategoryList.

Code Block
msg.payload.orbita.taxonomy.SubCategoryList

The following payload returns all the titles in the first level of the taxonomy.

Code Block
msg.payload.orbita.taxonomy.rootTitles

The following payload returns all the categories in the taxonomy. You should copy this to the category slot.

Code Block
msg.payload.orbita.taxonomy.CategoryList

This is formatted content such as for other articles on hypothermia. You can say treatment, symptoms, or more information.

Code Block
msg.payload.orbita.taxonomy.whatYouCanAsk

This is formatted content; a limited list of navigation items to just the child nodes, (but not sub-child nodes) and parent (if it is not home). Example: for other articles on hypothermia, you can say treatment, symptoms, or more information.

Code Block
msg.payload.orbita.taxonomy.whatYouCanAskParentChild

...

Example flows in Experience Designer

In this section, there are two example flows to get you started with using the Taxonomy node in the Experience Designer. Also, find the attachment to get the JSON code of the two flows.

Example Flow 1

The following image shows the sample flow in the Experience Designer. The JSON code of the flow is attached to this document.

...

Slot Values and intents

If you enabled Auto Generate Slots when creating the taxonomy tree, then the topics and subtopics slots are created in the database automatically. The auto-generated slots are named Taxonomy_tree_name_Topic and Taxonomy_tree_name_Subtopic.

In this example, the taxonomy name is Test Info. The slots named Test_Info_Topic and Test_Info_Subtopic are auto-generated which can be used in the intents.

...

Example flow 2

Upon request, the following flow is used to list all the topics from the taxonomy tree. The JSON code of the flow is attached to this document.

...

Attachments
previewfalse
uploadfalse
oldfalse
patterns.*txt

Related Articles

Filter by label (Content by label)
showLabelsfalse
max5
sorttitle
showSpacefalse
cqllabel = "experience-designertaxonomy"