はじめに
対話型AIプラットフォーム
チャットボットの概要
自然言語処理(NLP)
ボットの概念と用語
クイックスタートガイド
プラットフォームへのアクセス
ボットビルダーの操作
リリースノート
最新バージョン(英語)
以前のバージョン(英語)
廃止機能(英語)
コンセプト
設計
ストーリーボード
ダイアログタスク
ダイアログタスクとは
ダイアログビルダー
ノードタイプ
インテントノード
ダイアログノード
エンティティノード
フォームノード
確認ノード
ロジックノード
ボットアクションノード
サービスノード
Webhookノード
スクリプトノード
グループノード
エージェント転送ノード
ユーザープロンプト
音声通話プロパティ
イベント ハンドラー
ナレッジグラフ
ナレッジグラフの抽出
ナレッジグラフの構築
ボットにナレッジグラフを追加
グラフの作成
ナレッジグラフの構築
既存のソースからFAQを構築
特性、同義語、停止用語
変数ネームスペースの管理
更新
ノード間の質問と回答の移動
用語の編集と削除
質問と応答の編集
ナレッジグラフの分析
通知タスク
スモールトーク
デジタルスキル
デジタルフォーム
デジタルビュー
デジタルビューとは
パネル
ウィジェット
トレーニング
トレーニングとは
機械学習
機械学習とは
モデル検証
ファンダメンタルミーニング
ナレッジグラフ
示唆
ランキングおよび解決
NLPの詳細設定
NLPのガイドライン
インテリジェンス
インテリジェンスとは
コンテキスト
コンテキストインテント
割り込み
複数インテントの検出
エンティティの変更
デフォルトの会話
センチメント管理
トーン分析
テストとデバッグ
ボットと会話
発話テスト
バッチテスト
会話テスト
デプロイ
チャネル
公開
分析
ボットの分析
NLPメトリクス
会話フロー
Usage Metrics
封じ込め測定
カスタムダッシュボード
カスタムダッシュボードとは
メタタグ
カスタムダッシュボードとウィジェット
ユニバーサルボット
ユニバーサルボットとは
ユニバーサルボットの定義
ユニバーサルボットの作成
ユニバーサルボットのトレーニング
ユニバーサルボットのカスタマイズ
他言語の有効化
ストア
プラントと使用
Overview
Usage Plans
Support Plans
Invoices
管理
ボット認証
複数言語対応ボット
個人を特定できる情報の編集
ボット変数の使用
IVRのシステム連携
一般設定
ボット管理
ハウツー
会話スキルの設計
バンキングボットを作成
バンキングボット – 資金の振り替え
バンキングボット – 残高を更新
ナレッジグラフを構築
スマートアラートの予約方法
デジタルスキルの設計
デジタルフォームの設定方法
デジタルビューの設定方法
データテーブルのデータの追加方法
データテーブルのデータの更新方法
Add Data from Digital Forms
ボットのトレーニング
示唆の使用方法
インテントとエンティティのパターンの使用方法
コンテキスト切り替えの管理方法
ボットのデプロイ
エージェント転送の設定方法
ボット関数の使用方法
コンテンツ変数の使用方法
グローバル変数の使用方法
Web SDK Tutorial(英語)
Widget SDK Tutorial(英語)
ボットの分析
カスタムダッシュボードの作成方法
カスタムタグを使ってフィルタリング
管理
ボット管理者コンソール
ダッシュボード
ユーザーの管理
ユーザーの管理
グループの管理
ロール管理
ボット管理モジュール
登録
ユーザーの招待
招待状の一括送信
ユーザーデータのインポート
Active Directoryからユーザーを同期
セキュリティ/コンプライアンス
シングル サインオンの使用
セキュリティ設定
Billing(日本未対応)
  1. ホーム
  2. Docs
  3. Virtual Assistants
  4. How Tos
  5. Travel Planing Assistant
  6. Travel VA: Build a Knowledge Graph

Travel VA: Build a Knowledge Graph

This article shows you how to build and understand the working of a Knowledge Graph for your Virtual Assistant. It shows how to convert an FAQ into ontology, add tags, use terms, add alternate questions, synonyms, tags, and traits.

For details on the implementation process, please refer here.

Throughout this use case article, we will be building a Knowledge Graph for a Travel Planning Assistant. This article discusses both the basic setup of a Knowledge Graph, but also the solutions at hand for cases of ambiguity.

Static FAQ

Let us start by creating a static FAQ without an ontology.

To add a static FAQ, follow the below steps:

  1. Open the Travel Planning Assistant.
  2. Navigate to Build > Conversational Skills > Knowledge Graph.
  3. Click Create to create a Knowledge Graph.
  4. A Knowledge Graph with the name set to the Bot Name is created.
  5. Click Add Intent to start entering your FAQs.
  6. Select Intent type as FAQ.
  7. Add Question and Bot Response; then click Save.

  8. Click Add Intent on the top-right to add more FAQs.
  9. After you enter all the FAQs, click Train to train the Knowledge Graph.

  10. Click Talk to Bot at the bottom-right to check the response for the added FAQs.

Tags

Tags help filter the FAQs based upon the presence of some key phrases in the user utterance. This helps identify the intent more efficiently and prevents the assistant from providing users with irrelevant responses. We recommend that you add tags to every question, unless you have a large list of FAQs. In this case, you need to create an Ontology (see below for details). To add tags to an FAQ:

  1. Hover over the Question then click the edit (🖉) icon.
  2. In the add tag text box, you can find some suggestions by the Platform based on the phrases present in the question. You can pick one from the list or type your own custom tag.
  3. Train the assistant.
  4. Talk to the Bot, and use an utterance that points to the FAQ you added tags to. Formulate the request in different ways, to find potential tags to add. 

Ontology

For a better response, you must add tags for every question. But this solution is not feasible in case we have a big list of FAQs or questions with common tags. Ontologies help in this situation because they rely on key words and frequently occurring words/phrases to organize FAQs in groups and subgroups. 

Each group can be a node in the ontology. You can have multiple levels of the nodes forming a hierarchical structure. Moving the relevant FAQs (intents) to the nodes will associate that FAQ with the corresponding node name set as a tag.

Here is an example Ontology: 

  1. Reservation
    1. Make
      1. How do I pay for my booking?
    2. Update
      1. How do I update my booking?
    3. Cancel
      1. Can I cancel my reservation?

To create an ontology, follow the below steps:

  1. Hover over the Knowledge Graph name on the left pane and click + icon to Add Child Node. For example, we can add a node for questions related to international travel, and one for reservation related questions.
  2. Add.

  3. To add subgroups, hover over the node and use the corresponding + icon to add child nodes.

  4. Repeat the process for questions related to 
  5. To add questions to your newly created ontology, select them from your list of FAQs, then drag and drop them onto the relevant node. You will notice the path gets updated accordingly.

  6. Edit a question and see that the node name is added as a tag. This ensures that this question is qualified for a user utterance containing the term/node name.

    Note that the tags you added earlier are retained and you can delete them, whereas the node names cannot be deleted from the tags list.

  7. You can further add nodes to your Ontology. The illustration below shows you the Ontology that we will be working with moving forward.

  8. Train the Knowledge Graph and use Talk to Bot.
  9. There should not be any changes in the responses.

Term Usage

By default, the node names or terms are used in evaluating the path and coming up with a set of qualifying questions. You can tighten or relax this rule by either making the term mandatory in the utterance or marking the term/node as organizer respectively.

 

Use Case 1: You want to ensure that the intentions regarding Cancel Reservation must be considered only when the user asked a direct question regarding the topic.

To address this case, we mark the term Cancel  as Mandatory. This helps improve the assistant’s performance.

Steps:

  1. Hover over the node, in this case, cancel, and click on the settings icon.
  2. From the Settings section, select the Mandatory option from the dropdown next to the term name.
  3. Save and Train the Knowledge Collection.
  4. Now the questions under this node are considered only if the user utterance has the node name, cancel in this case.

 

Use Case 2: Consider the following FAQs that need to be added to the Knowledge Graph.

  • Contact
    • Who do I contact in case of an issue?
    • What is your helpline number?
  • Complaints
    • Where can I register my query/complaints?
  • Issues
    • How do I report a problem?

Though they do not have any phrases or terms in common, they are related to Customer Care. For ease of understanding, we can put them under a node by the same name and mark it as Organizer node, ensuring that the intents get qualified without the need to have the term phrase in the user utterance.

Steps:

  1. Create a node called Customer Care.
  2. Create the above three nodes as child nodes to this new node.
  3. Hover over the node, in this case, Customer Care, and click on the settings icon.
  4. From the Settings page, select the Organizer option.
  5. Save and Train the Knowledge Collection.
  6. Now the questions under this node are considered even if the user utterance does not include the node name.

Synonyms

Use Case: If you test the VA for How do I make a booking?, while your Knowledge Graph contains How do I make a reservation? you might get a suggestive match that is not definitive. The reason is that the assistant does not understand booking as being the same as reservation.
Solution: Synonyms

To add synonyms, follow the below steps:

  1. Hover over the reservation node and click the settings icon.
  2. In the Path Level Synonyms, add booking. Path level synonyms are useful in such cases because they apply to all nodes.
  3. Save and Train the VA.
  4. Talk to Bot and use the same query How do I make a booking?
  5. Similarly, we can define Knowledge Graph Synonym if it is applicable to the entire knowledge graph.

Alternate Questions

Some questions have multiple ways the user can approach them.

  • Is there a way to see my reservation details from my laptop?
  • Is there a mobile app that I can use to access my reservation?

Both of these questions pertain to one intent: How do I access my reservation online?. But instead of adding all these Q&As as intents and repeat the response and the settings, if any, you can add these questions as alternate questions.

To add alternate questions, follow the below steps:

  1. Hover over the question, in this case, How do I access my booking online? and click the edit icon.
  2. In the Add alternate question enter the question.
  3. Add the queries mentioned above.

  4. Save, Train, and Talk to the Bot.
  5. Entering any of the above three questions will yield the same response as the question How do I access my reservation online?

Task Execution

Consider the query How do I check my flight status?. If the VA has a task that can give the balance, we can direct the user to it, instead of asking the user to use the utterance to trigger the task.

To trigger a task, follow the below steps:

  1. Before proceeding, ensure that you have a Dialog Task defined for Check Flight Status. Let us consider a dummy dialog that displays a message. Learn more on adding tasks by reading Using the Dialog Builder.
  2. Click Add Intent How do I check my flight status?
  3. Set Intent to Task.

  4. From the drop-down list select the Check Flight Status Dialog Task.
  5. Save and Train the Knowledge Graph.
  6. Talk to bot with the utterance How do I check my flight status? will trigger the Check flight status task.

Ontology Tags 

Use Case: When asking the VA: Does your airline support mobile checkin? the response might be: Did you mean How do I check in online?.

The reason for this might be that: Does your airline support mobile checkin? is a very close match to How do I check in online?. You can avoid such situations by adding a tag (i.e.: mobile)  and marking it as mandatory to the alternate question Does your airline support mobile checkin?.

Solution: Custom Tags

To add tags, follow the below steps:

  1. Edit the question How do I check in online?
  2. For the alternate question: Does your airline support mobile checkin?
    1. Add the tag mobile

    2. Click the tag to open the Tag Settings, then set Tag Usage to Mandatory.
    3. Click Done.
  3. Save and Train the VA.
  4. Now Talk to the Bot and see the response.

Traits

Use Case: I lost my boarding pass, how do I get another boarding pass?

You will get the response for How do I get a boarding pass?

While this is a valid response it is not the right one. Ideally, since the user said I lost my boarding pass, the assistant must direct the user to information that helps them regenerate their boarding pass.

Solution: Traits. Traits are used to get additional information from the user utterance and direct the user to a better solution.

To add traits, follow the below steps:

  1. From the more option next to the Train button, select the Manage Traits option.

    1. Click New Trait to create a New Trait.
    2. Give a Trait Type and add Traits to it. Here, let us consider Issues as Trait Type and lostpass as Trait.
    3. Add lost my boarding pass as the utterance that triggers this trait. (Do not forget to hit enter after you add the utterance).
    4. Save and Train the trait.

  2. Apply Trait
    1. From the ontology, go to the Issues node Settings page.
    2. Add lostpassas Trait (pick from the drop-down list).
    3. Save and Train the Knowledge Graph.
    4. Talk to the Bot and try the same question. Now you will get the expected response.

In this document you have seen various settings for building and managing a Knowledge Graph. For details regarding the implementation and functionality of Knowledge Graph, please refer to this document.

Travel VA: Build a Knowledge Graph

This article shows you how to build and understand the working of a Knowledge Graph for your Virtual Assistant. It shows how to convert an FAQ into ontology, add tags, use terms, add alternate questions, synonyms, tags, and traits.

For details on the implementation process, please refer here.

Throughout this use case article, we will be building a Knowledge Graph for a Travel Planning Assistant. This article discusses both the basic setup of a Knowledge Graph, but also the solutions at hand for cases of ambiguity.

Static FAQ

Let us start by creating a static FAQ without an ontology.

To add a static FAQ, follow the below steps:

  1. Open the Travel Planning Assistant.
  2. Navigate to Build > Conversational Skills > Knowledge Graph.
  3. Click Create to create a Knowledge Graph.
  4. A Knowledge Graph with the name set to the Bot Name is created.
  5. Click Add Intent to start entering your FAQs.
  6. Select Intent type as FAQ.
  7. Add Question and Bot Response; then click Save.

  8. Click Add Intent on the top-right to add more FAQs.
  9. After you enter all the FAQs, click Train to train the Knowledge Graph.

  10. Click Talk to Bot at the bottom-right to check the response for the added FAQs.

Tags

Tags help filter the FAQs based upon the presence of some key phrases in the user utterance. This helps identify the intent more efficiently and prevents the assistant from providing users with irrelevant responses. We recommend that you add tags to every question, unless you have a large list of FAQs. In this case, you need to create an Ontology (see below for details). To add tags to an FAQ:

  1. Hover over the Question then click the edit (🖉) icon.
  2. In the add tag text box, you can find some suggestions by the Platform based on the phrases present in the question. You can pick one from the list or type your own custom tag.
  3. Train the assistant.
  4. Talk to the Bot, and use an utterance that points to the FAQ you added tags to. Formulate the request in different ways, to find potential tags to add. 

Ontology

For a better response, you must add tags for every question. But this solution is not feasible in case we have a big list of FAQs or questions with common tags. Ontologies help in this situation because they rely on key words and frequently occurring words/phrases to organize FAQs in groups and subgroups. 

Each group can be a node in the ontology. You can have multiple levels of the nodes forming a hierarchical structure. Moving the relevant FAQs (intents) to the nodes will associate that FAQ with the corresponding node name set as a tag.

Here is an example Ontology: 

  1. Reservation
    1. Make
      1. How do I pay for my booking?
    2. Update
      1. How do I update my booking?
    3. Cancel
      1. Can I cancel my reservation?

To create an ontology, follow the below steps:

  1. Hover over the Knowledge Graph name on the left pane and click + icon to Add Child Node. For example, we can add a node for questions related to international travel, and one for reservation related questions.
  2. Add.

  3. To add subgroups, hover over the node and use the corresponding + icon to add child nodes.

  4. Repeat the process for questions related to 
  5. To add questions to your newly created ontology, select them from your list of FAQs, then drag and drop them onto the relevant node. You will notice the path gets updated accordingly.

  6. Edit a question and see that the node name is added as a tag. This ensures that this question is qualified for a user utterance containing the term/node name.

    Note that the tags you added earlier are retained and you can delete them, whereas the node names cannot be deleted from the tags list.

  7. You can further add nodes to your Ontology. The illustration below shows you the Ontology that we will be working with moving forward.

  8. Train the Knowledge Graph and use Talk to Bot.
  9. There should not be any changes in the responses.

Term Usage

By default, the node names or terms are used in evaluating the path and coming up with a set of qualifying questions. You can tighten or relax this rule by either making the term mandatory in the utterance or marking the term/node as organizer respectively.

 

Use Case 1: You want to ensure that the intentions regarding Cancel Reservation must be considered only when the user asked a direct question regarding the topic.

To address this case, we mark the term Cancel  as Mandatory. This helps improve the assistant’s performance.

Steps:

  1. Hover over the node, in this case, cancel, and click on the settings icon.
  2. From the Settings section, select the Mandatory option from the dropdown next to the term name.
  3. Save and Train the Knowledge Collection.
  4. Now the questions under this node are considered only if the user utterance has the node name, cancel in this case.

 

Use Case 2: Consider the following FAQs that need to be added to the Knowledge Graph.

  • Contact
    • Who do I contact in case of an issue?
    • What is your helpline number?
  • Complaints
    • Where can I register my query/complaints?
  • Issues
    • How do I report a problem?

Though they do not have any phrases or terms in common, they are related to Customer Care. For ease of understanding, we can put them under a node by the same name and mark it as Organizer node, ensuring that the intents get qualified without the need to have the term phrase in the user utterance.

Steps:

  1. Create a node called Customer Care.
  2. Create the above three nodes as child nodes to this new node.
  3. Hover over the node, in this case, Customer Care, and click on the settings icon.
  4. From the Settings page, select the Organizer option.
  5. Save and Train the Knowledge Collection.
  6. Now the questions under this node are considered even if the user utterance does not include the node name.

Synonyms

Use Case: If you test the VA for How do I make a booking?, while your Knowledge Graph contains How do I make a reservation? you might get a suggestive match that is not definitive. The reason is that the assistant does not understand booking as being the same as reservation.
Solution: Synonyms

To add synonyms, follow the below steps:

  1. Hover over the reservation node and click the settings icon.
  2. In the Path Level Synonyms, add booking. Path level synonyms are useful in such cases because they apply to all nodes.
  3. Save and Train the VA.
  4. Talk to Bot and use the same query How do I make a booking?
  5. Similarly, we can define Knowledge Graph Synonym if it is applicable to the entire knowledge graph.

Alternate Questions

Some questions have multiple ways the user can approach them.

  • Is there a way to see my reservation details from my laptop?
  • Is there a mobile app that I can use to access my reservation?

Both of these questions pertain to one intent: How do I access my reservation online?. But instead of adding all these Q&As as intents and repeat the response and the settings, if any, you can add these questions as alternate questions.

To add alternate questions, follow the below steps:

  1. Hover over the question, in this case, How do I access my booking online? and click the edit icon.
  2. In the Add alternate question enter the question.
  3. Add the queries mentioned above.

  4. Save, Train, and Talk to the Bot.
  5. Entering any of the above three questions will yield the same response as the question How do I access my reservation online?

Task Execution

Consider the query How do I check my flight status?. If the VA has a task that can give the balance, we can direct the user to it, instead of asking the user to use the utterance to trigger the task.

To trigger a task, follow the below steps:

  1. Before proceeding, ensure that you have a Dialog Task defined for Check Flight Status. Let us consider a dummy dialog that displays a message. Learn more on adding tasks by reading Using the Dialog Builder.
  2. Click Add Intent How do I check my flight status?
  3. Set Intent to Task.

  4. From the drop-down list select the Check Flight Status Dialog Task.
  5. Save and Train the Knowledge Graph.
  6. Talk to bot with the utterance How do I check my flight status? will trigger the Check flight status task.

Ontology Tags 

Use Case: When asking the VA: Does your airline support mobile checkin? the response might be: Did you mean How do I check in online?.

The reason for this might be that: Does your airline support mobile checkin? is a very close match to How do I check in online?. You can avoid such situations by adding a tag (i.e.: mobile)  and marking it as mandatory to the alternate question Does your airline support mobile checkin?.

Solution: Custom Tags

To add tags, follow the below steps:

  1. Edit the question How do I check in online?
  2. For the alternate question: Does your airline support mobile checkin?
    1. Add the tag mobile

    2. Click the tag to open the Tag Settings, then set Tag Usage to Mandatory.
    3. Click Done.
  3. Save and Train the VA.
  4. Now Talk to the Bot and see the response.

Traits

Use Case: I lost my boarding pass, how do I get another boarding pass?

You will get the response for How do I get a boarding pass?

While this is a valid response it is not the right one. Ideally, since the user said I lost my boarding pass, the assistant must direct the user to information that helps them regenerate their boarding pass.

Solution: Traits. Traits are used to get additional information from the user utterance and direct the user to a better solution.

To add traits, follow the below steps:

  1. From the more option next to the Train button, select the Manage Traits option.

    1. Click New Trait to create a New Trait.
    2. Give a Trait Type and add Traits to it. Here, let us consider Issues as Trait Type and lostpass as Trait.
    3. Add lost my boarding pass as the utterance that triggers this trait. (Do not forget to hit enter after you add the utterance).
    4. Save and Train the trait.

  2. Apply Trait
    1. From the ontology, go to the Issues node Settings page.
    2. Add lostpassas Trait (pick from the drop-down list).
    3. Save and Train the Knowledge Graph.
    4. Talk to the Bot and try the same question. Now you will get the expected response.

In this document you have seen various settings for building and managing a Knowledge Graph. For details regarding the implementation and functionality of Knowledge Graph, please refer to this document.

メニュー