はじめに
対話型AIプラットフォーム
チャットボットの概要
自然言語処理(NLP)
ボットの概念と用語
クイックスタートガイド
プラットフォームへのアクセス
ボットビルダーの操作
リリースノート
最新バージョン(英語)
以前のバージョン(英語)
コンセプト
設計
ストーリーボード
ダイアログタスク
ダイアログタスクとは
ダイアログビルダー
ノードタイプ
インテントノード
ダイアログノード
エンティティノード
フォームノード
確認ノード
ロジックノード
ボットアクションノード
サービスノード
Webhookノード
スクリプトノード
グループノード
エージェント転送ノード
ユーザープロンプト
音声通話プロパティ
イベント ハンドラー
ナレッジグラフ
ナレッジグラフの抽出
ナレッジグラフの構築
ボットにナレッジグラフを追加
グラフの作成
ナレッジグラフの構築
既存のソースからFAQを構築
通知タスク
スモールトーク
デジタルスキル
デジタルフォーム
デジタルビュー
デジタルビューとは
パネル
ウィジェット
トレーニング
トレーニングとは
機械学習
機械学習とは
モデル検証
ファンダメンタルミーニング
ナレッジグラフ
示唆
ランキングおよび解決
NLPの詳細設定
NLPのガイドライン
インテリジェンス
インテリジェンスとは
コンテキスト
コンテキストインテント
割り込み
複数インテントの検出
エンティティの変更
デフォルトの会話
センチメント管理
トーン分析
テストとデバッグ
ボットと会話
発話テスト
バッチテスト
会話テスト
デプロイ
チャネル
公開
LLM and Generative AI
Introduction
LLM Integration
Kore.ai XO GPT Module
Prompts & Requests Library
Co-Pilot Features
Dynamic Conversations Features
分析
ボットの分析
NLPメトリクス
会話フロー
Usage Metrics
封じ込め測定
カスタムダッシュボード
カスタムダッシュボードとは
メタタグ
カスタムダッシュボードとウィジェット
ユニバーサルボット
ユニバーサルボットとは
ユニバーサルボットの定義
ユニバーサルボットの作成
ユニバーサルボットのトレーニング
ユニバーサルボットのカスタマイズ
他言語の有効化
ストア
プラントと使用
Overview
Usage Plans
Support Plans
Invoices
管理
ボット認証
複数言語対応ボット
個人を特定できる情報の編集
ボット変数の使用
IVRのシステム連携
一般設定
ボット管理
ハウツー
Integrations
Actions
Actions Overview
Asana
Configure
Templates
Azure OpenAI
Configure
Templates
BambooHR
Configure
Templates
Bitly
Configure
Templates
Confluence
Configure
Templates
DHL
Configure
Templates
Freshdesk
Configure
Templates
Freshservice
Configure
Templates
Google Maps
Configure
Templates
Here
Configure
Templates
HubSpot
Configure
Templates
JIRA
Configure
Templates
Microsoft Graph
Configure
Templates
Open AI
Configure
Templates
Salesforce
Configure
Templates
ServiceNow
Configure
Templates
Stripe
Configure
Templates
Shopify
Configure
Templates
Twilio
Configure
Templates
Zendesk
Configure
Templates
Agents
Agent Transfer Overview
Custom (BotKit)
Drift
Genesys
Intercom
NiceInContact
NiceInContact(User Hub)
Salesforce
ServiceNow
Configure Tokyo and Lower versions
Configure Utah and Higher versions
Unblu
External NLU Adapters
Overview
Dialogflow Engine
Test and Debug
会話スキルの設計
バンキングボットを作成
バンキングボット – 資金の振り替え
バンキングボット – 残高を更新
ナレッジグラフを構築
スマートアラートの予約方法
デジタルスキルの設計
デジタルフォームの設定方法
デジタルビューの設定方法
データテーブルのデータの追加方法
データテーブルのデータの更新方法
Add Data from Digital Forms
ボットのトレーニング
示唆の使用方法
インテントとエンティティのパターンの使用方法
コンテキスト切り替えの管理方法
ボットのデプロイ
エージェント転送の設定方法
ボット関数の使用方法
コンテンツ変数の使用方法
グローバル変数の使用方法
ボットの分析
カスタムダッシュボードの作成方法
カスタムタグを使ってフィルタリング
Data
Overview
Data Table
Table Views
App Definitions
Data as Service
Build a Travel Planning Assistant
Travel Assistant Overview
Create a Travel Virtual Assistant
Design Conversation Skills
Create an ‘Update Booking’ Task
Create a Change Flight Task
Build a Knowledge Graph
Schedule a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Train the Assistant
Use Traits
Use Patterns
Manage Context Switching
Deploy the Assistant
Use Bot Functions
Use Content Variables
Use Global Variables
Use Web SDK
Build a Banking Assistant
Migrate External Bots
Google Dialogflow Bot
APIs & SDKs
API Reference
API Introduction
Rate Limits
API List
koreUtil Libraries
SDK Reference
SDK Introduction
Web SDK
How the Web SDK Works
SDK Security
SDK Registration
Web Socket Connect and RTM
Tutorials
Widget SDK Tutorial
Web SDK Tutorial
BotKit SDK
BotKit SDK Deployment Guide
Installing the BotKit SDK
Using the BotKit SDK
SDK Events
SDK Functions
Tutorials
BotKit - Blue Prism
BotKit - Flight Search Sample VA
BotKit - Agent Transfer
  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.

メニュー