IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ タブロー ソフトウェア,エルエルシーの特許一覧

特表2023-535533データ解析のための会話型自然言語インタフェース
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-18
(54)【発明の名称】データ解析のための会話型自然言語インタフェース
(51)【国際特許分類】
   G06F 16/90 20190101AFI20230810BHJP
   G06F 16/904 20190101ALI20230810BHJP
【FI】
G06F16/90 100
G06F16/904
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022572684
(86)(22)【出願日】2021-07-08
(85)【翻訳文提出日】2023-01-25
(86)【国際出願番号】 US2021040919
(87)【国際公開番号】W WO2022026149
(87)【国際公開日】2022-02-03
(31)【優先権主張番号】16/940,267
(32)【優先日】2020-07-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521550194
【氏名又は名称】タブロー ソフトウェア,エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】アタラー,ライアン,アンドリュー
(72)【発明者】
【氏名】ブリンクマン,ジャレッド
(72)【発明者】
【氏名】チェン,ソフィア
(72)【発明者】
【氏名】デューン,スヤン
(72)【発明者】
【氏名】アノヌエヴォ,ユキコ,イシダ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175EA01
5B175GC03
5B175JA02
(57)【要約】
計算システムは、データソースを識別する第1の入力をメッセージングシステムから受信する。計算システムは、データソースに関係する自然言語コマンドを指定する第2の入力をメッセージングシステムから受信する。システムは、データソースから第1のデータビジュアライゼーションを構築するためのパラメータの組に第2の入力を変換する。システムは、データビジュアライゼーションサーバによって提供される1つ又は複数のAPI関数を呼び出し、及び計算システムは、データソースからのデータフィールドの第1の部分集合を含む第1のデータビジュアライゼーションをデータビジュアライゼーションサーバから受信する。システムは、第1のデータビジュアライゼーションの表現を生成し、及びメッセージングシステムにその表現を送信し、メッセージングシステムは、それを受けて、電子装置上で表示するためにその表現を装置に送信する。
【選択図】図6B
【特許請求の範囲】
【請求項1】
メッセージングシステム及びデータビジュアライゼーションサーバと通信可能に接続されるコンピュータシステムにおいて実行される方法であって、前記メッセージングシステムは、電子装置と通信可能に接続され、及び前記コンピュータシステムは、1つ又は複数のプロセッサと、前記1つ又は複数のプロセッサによって実行されるように構成される1つ又は複数のプログラムを記憶するメモリとを有し、前記方法は、
データソースを識別する第1の入力を前記メッセージングシステムから受信すること、
前記データソースに関係する自然言語コマンドを指定する第2の入力を前記メッセージングシステムから受信すること、
前記データソースから第1のデータビジュアライゼーションを構築するためのパラメータの組に前記第2の入力を変換すること、
前記データビジュアライゼーションサーバによって提供される1つ又は複数のAPI関数を呼び出すこと、
前記API関数を呼び出すことに応答して、前記データソースからのデータフィールドの第1の部分集合を含む第1のデータビジュアライゼーションを前記データビジュアライゼーションサーバから受信すること、
前記第1のデータビジュアライゼーションの第1の表現を生成すること、及び
前記メッセージングシステムに前記第1の表現を送信することであって、前記メッセージングシステムは、前記電子装置上で表示するために前記第1の表現を前記電子装置に送信するように構成される、送信すること
を含む、方法。
【請求項2】
前記第2の入力をパラメータの組に変換することは、
前記電子装置と前記コンピュータシステムとの間の対話状態を取得することであって、前記対話状態は、前記データソースに関する前記電子装置と前記コンピュータシステムとの間の解析会話の複数の特性を含む、取得すること、及び
前記取得された対話状態に従って前記第2の入力を前記パラメータの組に変換すること
を含む、請求項1に記載の方法。
【請求項3】
前記第1の入力前に、前記電子装置と前記コンピュータシステムとの間の前記解析会話を開始する初期入力を前記メッセージングシステムから受信すること、及び
初期対話状態を確立する、前記解析会話のためのデータエントリを記憶すること
を更に含む、請求項2に記載の方法。
【請求項4】
前記第1のデータビジュアライゼーションの前記第1の表現及び前記パラメータの組を記憶することを更に含む、請求項1に記載の方法。
【請求項5】
前記パラメータの組は、既定の中間言語における表現として記憶される、請求項4に記載の方法。
【請求項6】
前記第1及び第2の入力は、前記コンピュータシステムによって提供されるAPIに対する呼び出しとして受信される、請求項1に記載の方法。
【請求項7】
前記API呼び出しは、前記メッセージングシステムによって生成され、及び前記メッセージングシステムと前記電子装置との間の対話を表す、請求項6に記載の方法。
【請求項8】
前記第1のデータビジュアライゼーションの前記第1の表現は、前記データビジュアライゼーションの画像ファイルである、請求項1に記載の方法。
【請求項9】
前記データソースを識別する前記第1の入力を受信した後、前記データソースに関係する複数の質問候補を生成し、及び前記メッセージングシステムに伝送すること
を更に含み、前記第2の入力は、前記複数の質問候補のうちの1つのユーザ選択を含む、請求項1に記載の方法。
【請求項10】
前記第1のデータビジュアライゼーションは、所定の複数のデータビジュアライゼーションタイプのうちの第1のデータビジュアライゼーションタイプを有し、前記方法は、
前記複数のデータビジュアライゼーションタイプのうちの第2のデータビジュアライゼーションタイプを要求する第3の入力を前記メッセージングシステムから受信すること、
前記第3の入力に応答して、
前記第2のデータビジュアライゼーションタイプを要求するために、前記データビジュアライゼーションサーバによって提供される前記API関数の1つ又は複数を呼び出すこと、
前記第2のデータビジュアライゼーションタイプを有する第2のデータビジュアライゼーションを前記データビジュアライゼーションサーバから受信することであって、前記第2のデータビジュアライゼーションは、前記データソースからの前記データフィールドの第1の部分集合を含む、受信すること、
前記第2のデータビジュアライゼーションの第2の表現を生成すること、及び
前記メッセージングシステムに前記第2の表現を送信すること
を更に含む、請求項1に記載の方法。
【請求項11】
前記第1のデータビジュアライゼーションを共有するための要求を指定する第3の入力を前記メッセージングシステムから受信すること、
前記第3の入力に応答して、
前記第3の入力をコマンドに変換すること、
前記コマンドを前記データビジュアライゼーションサーバに送信すること、
前記第1のデータビジュアライゼーションへのリンクを前記データビジュアライゼーションサーバから受信すること、及び
前記メッセージングシステムに前記リンクを送信すること
を更に含み、
前記メッセージングシステムは、前記電子装置上で表示するために前記リンクを前記電子装置に送信するように構成され、及び
前記電子装置は、前記リンクのユーザ選択時、前記第1のデータビジュアライゼーションを取得し、及び前記電子装置のブラウザを介して前記第1のデータビジュアライゼーションを表示するように構成される、請求項1に記載の方法。
【請求項12】
前記データソースの前記データフィールドの第1の部分集合は、第1のデータフィールドを含み、前記方法は、
前記第1のデータフィールドの選択を第2のデータフィールドの選択で置換することを指定する第3の入力を前記メッセージングシステムから受信すること、
前記第3の入力に応答して、
前記第1のデータフィールドの選択を前記第2のデータフィールドの選択で置換するために、前記データビジュアライゼーションサーバによって提供される前記API関数の1つ又は複数を呼び出すこと、
データフィールドの第2の部分集合を含む第2のデータビジュアライゼーションを前記データビジュアライゼーションサーバから受信することであって、前記データフィールドの第2の部分集合は、前記第2のデータフィールドを含み、及び前記第1のデータフィールドを含まない、受信すること、
前記第2のデータビジュアライゼーションの第2の表現を生成すること、及び
前記メッセージングシステムに前記第2の表現を送信すること
を更に含む、請求項1に記載の方法。
【請求項13】
前記データフィールドの第1の部分集合は、第1の複数の別個のデータ値を有する第1のデータフィールドを含み、前記方法は、
前記データソースからのデータ行を、前記第1のデータフィールドのデータ値が第1のデータ値と一致する行の部分集合にフィルタすることを指定する第3の入力を前記メッセージングシステムから受信すること、
前記第3の入力に応答して、
前記データ行を前記行の部分集合にフィルタするために、前記データビジュアライゼーションサーバによって提供される1つ又は複数のAPI関数を呼び出すこと、
第2のデータビジュアライゼーションを前記データビジュアライゼーションサーバから受信することであって、前記第2のデータビジュアライゼーションは、前記第1のデータフィールドの前記第1のデータ値を表すデータマークを含み、及び前記第1の複数の値のうち、前記第1のデータ値以外のデータ値に対応するデータマークを省く、受信すること、
前記第2のデータビジュアライゼーションの第2の表現を生成すること、及び
前記メッセージングシステムに前記第2の表現を送信すること
を更に含む、請求項1に記載の方法。
【請求項14】
前記第1のデータビジュアライゼーションは、画像である、請求項1に記載の方法。
【請求項15】
前記第1のデータビジュアライゼーションは、画像へのリンクである、請求項1に記載の方法。
【請求項16】
前記メッセージングシステムに前記第1の表現を送信することは、前記第1のデータビジュアライゼーションの画像へのリンクを含むメッセージペイロードを有するメッセージを送信することを含む、請求項1に記載の方法。
【請求項17】
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサに結合されるメモリと
を含むコンピュータシステムであって、前記メモリは、前記1つ又は複数のプロセッサによって実行されるように構成される1つ又は複数のプログラムを記憶し、
前記コンピュータシステムは、メッセージングシステム及びデータビジュアライゼーションサーバと通信可能に接続され、及び前記メッセージングシステムは、電子装置と通信可能に接続され、及び
前記1つ又は複数のプログラムは、
データソースを識別する第1の入力を前記メッセージングシステムから受信すること、
前記データソースに関係する自然言語コマンドを指定する第2の入力を前記メッセージングシステムから受信すること、
前記データソースから第1のデータビジュアライゼーションを構築するためのパラメータの組に前記第2の入力を変換すること、
前記データビジュアライゼーションサーバによって提供される1つ又は複数のAPI関数を呼び出すこと、
前記API関数を呼び出すことに応答して、前記データソースからのデータフィールドの第1の部分集合を含む第1のデータビジュアライゼーションを前記データビジュアライゼーションサーバから受信すること、
前記第1のデータビジュアライゼーションの第1の表現を生成すること、及び
前記メッセージングシステムに前記第1の表現を送信することであって、前記メッセージングシステムは、前記電子装置上で表示するために前記第1の表現を前記電子装置に送信するように構成される、送信すること
を行うための命令を含む、コンピュータシステム。
【請求項18】
前記第2の入力をパラメータの組に変換することは、
前記電子装置と前記コンピュータシステムとの間の対話状態を取得することであって、前記対話状態は、前記データソースに関する前記電子装置と前記コンピュータシステムとの間の解析会話の複数の特性を含む、取得すること、及び
前記取得された対話状態に従って前記第2の入力を前記パラメータの組に変換すること
を含む、請求項17に記載のコンピュータシステム。
【請求項19】
前記1つ又は複数のプログラムは、
前記第1の入力前に、前記電子装置と前記コンピュータシステムとの間の前記解析会話を開始する初期入力を前記メッセージングシステムから受信すること、及び
初期対話状態を確立する、前記解析会話のためのデータエントリを記憶すること
を行うための命令を更に含む、請求項18に記載のコンピュータシステム。
【請求項20】
1つ又は複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ又は複数のプログラムは、1つ又は複数のプロセッサ、メモリ並びにリモートメッセージングシステム及びデータビジュアライゼーションサーバへの通信接続を有する計算システムによって実行されるとき、
データソースを識別する第1の入力を前記メッセージングシステムから受信すること、
前記データソースに関係する自然言語コマンドを指定する第2の入力を前記メッセージングシステムから受信すること、
前記データソースから第1のデータビジュアライゼーションを構築するためのパラメータの組に前記第2の入力を変換すること、
前記データビジュアライゼーションサーバによって提供される1つ又は複数のAPI関数を呼び出すこと、
前記API関数を呼び出すことに応答して、前記データソースからのデータフィールドの第1の部分集合を含む第1のデータビジュアライゼーションを前記データビジュアライゼーションサーバから受信すること、
前記第1のデータビジュアライゼーションの第1の表現を生成すること、及び
前記メッセージングシステムに前記第1の表現を送信することであって、前記メッセージングシステムは、電子装置上で表示するために前記第1の表現を前記電子装置に送信するように構成される、送信すること
を含む動作を前記計算システムに実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
[0001] 本願は、参照によりその全体が本明細書に援用される、2020年7月27日に出願された「Conversational Natural Language Interfaces for Data Analysis」という名称の米国特許出願公開第16/940,267号の継続出願である。
【0002】
[0002] 本願は、それぞれ参照によりその全体が本明細書に援用される以下の出願に関係する:
・(i)現在の米国特許第10,515,121号である、2017年4月12日に出願された「Systems and Methods of Using Natural Language Processing for Visual Analysis of a Data Set」という名称の米国特許出願公開第15/486,265号、
・(ii)2017年11月6日に出願された「Systems and Methods of Using Natural Language Processing for Visual Analysis of a Data Set」という名称の米国特許出願公開第15/804,991号、
・(iii)2018年5月11日に出願された「Applying Natural Language Pragmatics in a Data Visualization User Interface」という名称の米国特許出願公開第15/978,062号、
・(iv)2018年5月11日に出願された「Data Visualization User Interface Using Cohesion of Sequential Natural Language Commands」という名称の米国特許出願公開第15/978,066号、
・(v)2018年5月11日に出願された「Updating Displayed Data Visualizations According to Identified Conversation Centers in Natural Language Commands」という名称の米国特許出願公開第15/978,067号、
・(vi)2018年12月13日に出願された「Identifying Intent in Visual Analytical Conversations」という名称の米国特許出願公開第16/219,406号、
・(vii)2018年9月18日に出願された「Analyzing Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/134,892号、
・(viii)2018年9月18日に出願された「Natural Language Interface for Building Data Visualizations, Including Cascading Edits to Filter Expressions」という名称の米国特許出願公開第16/134,907号、
・(ix)2018年10月21日に出願された「Determining Levels of Detail for Data Visualizations Using Natural Language Constructs」という名称の米国特許出願公開第16/166,125号、
・(x)2018年12月27日に出願された「Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface」という名称の米国特許出願公開第16/234,470号、
・(xi)2019年10月14日に出願された「Incremental Updates to Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/601,437号、
・(xii)2019年11月11日に出願された「Using Refinement Widgets for Data Fields Referenced by Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/680,431号、
・(xiii)2015年7月16日に出願された「Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization」という名称の米国特許出願公開第14/801,750号、
・(xiv)2019年11月12日に出願された「Using Natural Language Expressions to Define Data Visualization Calculations that Span Across Multiple Rows of Data from a Database」という名称の米国特許出願公開第16/681,754号。
【0003】
技術分野
[0003] 開示される実装形態は、概して、データビジュアライゼーションに関し、より詳細には、ユーザがデータビジュアライゼーションと対話し、及び自然言語表現を使用してデータを解析することを可能にするシステム、方法及びインスタントメッセージングシステムのためのユーザインタフェースに関する。
【背景技術】
【0004】
背景
[0004] データビジュアライゼーションアプリケーションは、ユーザがデータセットを視覚的に理解することを可能にする。分布、傾向、外れ値及び他の因子を含むデータセットのビジュアル解析は、経営的意思決定を行うために重要である。一部のデータセットは、非常に大きいか又は複雑であり、多くのデータフィールドを含む。視覚的な解析タスクを補助する複数のデータビジュアライゼーション及び自然言語インタフェースを有するダッシュボードを含む様々なツールを使用して、データの理解及び解析を促進することができる。
【0005】
概要
[0005] データビジュアライゼーションを含むデータ解析は、経営的意思決定を行うために重要である。データビジュアライゼーションを生成するために自然言語表現を使用することは、フィールドを更新し、及びデータをどのようにフィルタするかを変更することを含む、データビジュアライゼーションの特徴へのより優れたアクセス可能性をユーザに与える。自然言語インタフェースは、ユーザが、殆ど又は全く訓練なしに、貴重なデータビジュアライゼーションを作り出すことを可能にする。同時に、典型的な職場の設定では、ユーザは、チャットアプリケーション及び/又は顧客関係管理(CRM)インタフェース等の通信及び共同作業ツールにも依拠する。
【発明の概要】
【0006】
[0006] ユーザの既存の環境及び/又はツールにおいてデータ解析をサポートする改善されたシステム及び方法が求められている。本開示は、自然言語入力を使用して、データのグラフィカルビューを操作し、生成するためのより効率的な方法及びインタフェースを提供するために、データビジュアライゼーションプラットフォームを既存の又は将来開発される職場ツール(例えば、チャットアプリケーション)とどのように統合できるかを記載する。かかる方法及びインタフェースは、ユーザにとってデータ解析を可能な限りアクセス可能にする。かかる方法及びインタフェースは、ユーザに対する認知的負担も減らし、より効率的な人間-機械インタフェースをもたらす。電池で動作する装置では、かかる方法及びインタフェースは、電力を節約し、充電の間隔を長くする。かかる方法及びインタフェースは、データを視覚化するための従来の方法を補足又は置換することができる。本明細書の説明及び図面に照らして、他の実装形態及び利点が当業者に明らかになり得る。
【0007】
[0007] 一部の実装形態によれば、メッセージングシステム及びデータビジュアライゼーションサーバ(例えば、データビジュアライゼーションサーバシステム)と通信可能に接続されるコンピュータシステムにおいて方法が実行される。メッセージングシステムは、電子装置と通信可能に接続される。コンピュータシステムは、1つ又は複数のプロセッサと、メモリとを有する。メモリは、1つ又は複数のプロセッサによって実行されるように構成される1つ又は複数のプログラムを記憶する。コンピュータシステムは、データソースを識別する第1の入力をメッセージングシステムから受信する。コンピュータシステムは、データソースに関係する自然言語コマンドを指定する第2の入力をメッセージングシステムから受信する。コンピュータシステムは、データソースから第1のデータビジュアライゼーションを構築するためのパラメータの組に第2の入力を変換する。コンピュータシステムは、データビジュアライゼーションサーバによって提供される1つ又は複数のAPI関数を呼び出す。API関数を呼び出すことに応答して、コンピュータシステムは、データソースからのデータフィールドの第1の部分集合を含む第1のデータビジュアライゼーションをデータビジュアライゼーションサーバから受信する。コンピュータシステムは、第1のデータビジュアライゼーションの第1の表現を生成する。コンピュータシステムは、メッセージングシステムに第1の表現を送信する。メッセージングシステムは、電子装置上で表示するために第1の表現を電子装置に送信するように構成される。
【0008】
[0008] 一部の実装形態では、第2の入力をパラメータの組に変換することは、電子装置とコンピュータシステムとの間の対話状態を取得することを含む。対話状態は、データソースに関する電子装置とコンピュータシステムとの間の解析会話の複数の特性を含む。コンピュータシステムは、取得された対話状態に従って第2の入力をパラメータの組に変換する。一部の例では、第1の入力前に、コンピュータシステムは、電子装置とコンピュータシステムとの間の解析会話を開始する初期入力をメッセージングシステムから受信する。コンピュータシステムは、初期対話状態を確立する、解析会話のためのデータエントリを記憶する。
【0009】
[0009] 一部の例では、コンピュータシステムは、第1のデータビジュアライゼーションの第1の表現及びパラメータの組を記憶する。一部の例では、パラメータの組は、既定の中間言語(例えば、ArkLang)における表現として記憶される。
【0010】
[0010] 一部の実装形態では、第1及び第2の入力は、コンピュータシステムによって提供されるAPIに対する呼び出しによって受信される。一部の例では、API呼び出しは、メッセージングシステムによって生成され、及びメッセージングシステムと電子装置との間の対話を表す。
【0011】
[0011] 一部の実装形態では、第1のデータビジュアライゼーションの第1の表現は、データビジュアライゼーションの画像ファイルである。
【0012】
[0012] 一部の実装形態では、この方法は、データソースを識別する第1の入力を受信した後、データソースに関係する複数の質問候補を生成し、及びメッセージングシステムに伝送することを更に含む。第2の入力は、複数の質問候補のうちの1つのユーザ選択を含む。
【0013】
[0013] 一部の実装形態では、第1のデータビジュアライゼーションは、所定の複数のデータビジュアライゼーションタイプのうちの第1のデータビジュアライゼーションタイプを有する。コンピュータシステムは、複数のデータビジュアライゼーションタイプのうちの第2のデータビジュアライゼーションタイプを要求する第3の入力をメッセージングシステムから更に受信する。第3の入力に応答して、コンピュータシステムは、第2のデータビジュアライゼーションタイプを要求するために、データビジュアライゼーションサーバによって提供されるAPI関数の1つ又は複数を呼び出す。コンピュータシステムは、第2のデータビジュアライゼーションタイプを有する第2のデータビジュアライゼーションをデータビジュアライゼーションサーバから受信する。第2のデータビジュアライゼーションは、データソースからのデータフィールドの第1の部分集合を含む。コンピュータシステムは、第2のデータビジュアライゼーションの第2の表現を生成する。コンピュータシステムは、メッセージングシステムに第2の表現を送信する。
【0014】
[0014] 一部の実装形態では、この方法は、第1のデータビジュアライゼーションを共有するための要求を指定する第3の入力をメッセージングシステムから受信することを更に含む。第3の入力に応答して、コンピュータシステムは、第3の入力をコマンドに変換する。コンピュータシステムは、そのコマンドをデータビジュアライゼーションサーバに送信する。コンピュータシステムは、第1のデータビジュアライゼーションへのリンクをデータビジュアライゼーションサーバから受信する。コンピュータシステムは、メッセージングシステムにリンクを送信する。メッセージングシステムは、電子装置上で表示するためにリンクを電子装置に送信するように構成される。電子装置は、リンクのユーザ選択時、第1のデータビジュアライゼーションを取得し、及び電子装置のブラウザを介して第1のデータビジュアライゼーションを表示するように構成される。
【0015】
[0015] 一部の実装形態では、データソースからのデータフィールドの第1の部分集合は、第1のデータフィールドを含む。コンピュータシステムは、第1のデータフィールドの選択を第2のデータフィールドの選択で置換することを指定する第3の入力をメッセージングシステムから受信する(例えば、第2のデータフィールドは、データフィールドの第1の部分集合内にない)。第3の入力に応答して、コンピュータシステムは、第1のデータフィールドの選択を第2のデータフィールドの選択で置換するために、データビジュアライゼーションサーバによって提供されるAPI関数の1つ又は複数を呼び出す。コンピュータシステムは、データフィールドの第2の部分集合を含む第2のデータビジュアライゼーションをデータビジュアライゼーションサーバから受信する。データフィールドの第2の部分集合は、第2のデータフィールドを含み、及び第1のデータフィールドを含まない。コンピュータシステムは、第2のデータビジュアライゼーションの第2の表現を生成する。コンピュータシステムは、メッセージングシステムに第2の表現を送信する。
【0016】
[0016] 一部の実装形態では、データフィールドの第1の部分集合は、第1の複数の別個の値を有する第1のデータフィールドを含む。この方法は、データソースからのデータ行を、第1のデータフィールドのデータ値が第1のデータ値と一致する行の部分集合にフィルタすることを指定する第3の入力をメッセージングシステムから受信することを更に含む。第3の入力に応答して、コンピュータシステムは、データ行を行の部分集合にフィルタするために、データビジュアライゼーションサーバによって提供されるAPI関数の1つ又は複数を呼び出す。コンピュータシステムは、第2のデータビジュアライゼーションをデータビジュアライゼーションサーバから受信する。第2のデータビジュアライゼーションは、第1のデータフィールドの第1のデータ値を表すデータマークを含み、及び第1の複数の値のうち、第1のデータ値以外のデータ値に対応するデータマークを省く。コンピュータシステムは、第2のデータビジュアライゼーションの第2の表現を生成する。コンピュータシステムは、メッセージングシステムに第2の表現を送信する。
【0017】
[0017] 一部の実装形態では、第1のデータビジュアライゼーションは、画像である。
【0018】
[0018] 一部の実装形態では、第1のデータビジュアライゼーションは、画像へのリンクである。
【0019】
[0019] 一部の実装形態では、メッセージングサービスに第1の表現を送信することは、第1のデータビジュアライゼーションの画像へのリンクを含むメッセージペイロードを有するメッセージを送信することを含む。
【0020】
[0020] 一部の実装形態では、コンピュータシステムは、1つ又は複数のプロセッサと、メモリと、メモリ内に記憶される1つ又は複数のプログラムとを含む。プログラムは、1つ又は複数のプロセッサによって実行されるように構成される。1つ又は複数のプログラムは、本明細書に記載の方法の何れかを実行するための命令を含む。
【0021】
[0021] 一部の実装形態では、非一時的コンピュータ可読記憶媒体は、1つ又は複数のプロセッサ及びメモリを有するコンピュータシステムによって実行されるように構成される1つ又は複数のプログラムを記憶する。1つ又は複数のプログラムは、本明細書に記載の方法の何れかを実行するための命令を含む。
【0022】
[0022] 従って、ユーザが容易にデータビジュアライゼーションと対話し、及び自然言語表現を使用してデータを解析することを可能にする方法、システム及びグラフィカルユーザインタフェースが開示される。
【0023】
図面の簡単な説明
[0023] 上述のシステム、方法及びグラフィカルユーザインタフェース並びにデータビジュアライゼーション解析を提供する追加のシステム、方法及びグラフィカルユーザインタフェースのよりよい理解のために、以下の図面と組み合わせて以下の実装形態の説明を参照すべきであり、図面において、同様の参照番号は、図全体を通して対応する部分を指す。
【図面の簡単な説明】
【0024】
図1】[0024]一部の実装形態による環境の一例を示す。
図2A】[0025]一部の実装形態による動作順序の一例を示す。
図2B】[0025]一部の実装形態による動作順序の一例を示す。
図3】[0026]一部の実装形態によるコンピュータシステムのブロック図である。
図4】[0027]一部の実装形態による電子装置のブロック図である。
図5】[0028]一部の実装形態によるデータビジュアライゼーションサーバのブロック図である。
図6A】[0029]一部の実装形態による対話型データ解析のためのグラフィカルユーザインタフェースを示す。
図6B】[0029]一部の実装形態による対話型データ解析のためのグラフィカルユーザインタフェースを示す。
図7A】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図7B】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図7C】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図7D】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図7E】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図7F】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図7G】[0030]一部の実装形態による、電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8A】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8B】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8C】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8D】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8E】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8F】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8G】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8H】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8I】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8J】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8K】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8L】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8M】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8N】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8O】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8P】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8Q】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8R】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8S】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8T】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8U】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8V】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8W】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8X】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8Y】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8Z】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AA】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AB】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AC】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AD】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AE】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AF】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図8AG】[0031]一部の実装形態による、データソースに基づく電子装置とコンピュータシステムとの間の対話に関する一連のスクリーンショットを示す。
図9A】[0032]一部の実装形態による、電子装置のウェブブラウザを使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
図9B】[0032]一部の実装形態による、電子装置のウェブブラウザを使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
図9C】[0032]一部の実装形態による、電子装置のウェブブラウザを使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
図9D】[0032]一部の実装形態による、電子装置のウェブブラウザを使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
図9E】[0032]一部の実装形態による、電子装置のウェブブラウザを使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
図9F】[0032]一部の実装形態による、電子装置のウェブブラウザを使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
図10A】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
図10B】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
図10C】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
図10D】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
図10E】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
図10F】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
図10G】[0033]一部の実装形態による、データ解析のための会話型自然言語インタフェースに関する方法のフローチャートを示す。
【発明を実施するための形態】
【0025】
[0034] ここで、添付図面にその例を示す実装形態を参照する。以下の説明では、本発明の完全な理解を与えるために多くの具体的詳細を記載している。しかし、本発明は、それらの具体的な詳細を必要とすることなしに実践され得ることが当業者に明らかになる。
【0026】
実装形態の説明
[0035] 本明細書で開示する一部の方法及び装置は、データビジュアライゼーションプラットフォームとメッセージングアプリケーションとの間でインタフェースするコンピュータシステムにより、データビジュアライゼーションプラットフォームをユーザのメッセージング(例えば、インスタントメッセージング又はチャット)アプリケーションと統合することによってデータビジュアライゼーションの方法及びシステムを改善する。ユーザは、メッセージングアプリケーションを使用して、コンピュータシステムとインスタントメッセージをやり取りすることによってコンピュータシステムと対話する。コンピュータシステムは、ユーザによる自然言語入力を変換し、データビジュアライゼーションプラットフォームをクエリし、データビジュアライゼーションプラットフォームは、メッセージングアプリケーションのインタフェース上で表示するためのデータビジュアライゼーションを作成する。本明細書で開示する一部の方法及び装置は、ユーザによる自然言語入力に基づいて、既存のデータビジュアライゼーションを自動で更新することによってもデータビジュアライゼーションの方法及びシステムを改善する。
【0027】
環境
[0036] 図1は、一部の実装形態による環境100の一例を示す。環境100は、1つ又は複数の電子装置102を含む。一部の実装形態では、電子装置102は、ディスプレイを含む。例えば、電子装置102は、ディスプレイを有するデスクトップコンピュータ、ディスプレイを有するラップトップコンピュータ、携帯電話、タブレット、ウェアラブルデバイス(例えば、ウォッチ)、表示支援装置及び/又は表示画面を有する他の装置であり得る。
【0028】
[0037] 一部の実装形態では、電子装置102は、1つ又は複数のアプリケーションを含み、及びかかるアプリケーションを実行し得る。一部の実装形態では、アプリケーションは、電子装置102が、同様のメッセージングアプリケーションを同じく含む他の電子装置と通信ネットワーク120(例えば、ローカルエリアネットワーク及び/又はインターネット)によってメッセージ(例えば、インスタントメッセージ、チャットメッセージ、音声及び/又は映像メッセージ)を送受信すること、ファイルを共有すること、及び/又は音声及び/又は映像をストリームすることを可能にするメッセージングアプリケーションを含む。一部の実装形態では、メッセージングアプリケーションは、図1に示すスラックアプリケーション106、顧客関係管理(CRM)アプリケーション110及び/又はチャットアプリケーション114の1つ又は複数を含み得る。一部の実装形態では、メッセージングアプリケーションは、コンテンツ及びファイルの共有が可能なGoogle(商標)Chat、Microsoft(商標)Teams及び/又は他のプロバイダからのメッセージングアプリケーション等のアプリケーションを含み得る。
【0029】
[0038] 一部の実装形態では、メッセージングアプリケーションを実行する電子装置102は、メッセージングアプリケーションのサーバに通信可能に接続される。図1では、電子装置102-1は、スラックサーバ108(例えば、スラックサーバシステム)に通信可能に接続される。スラックアプリケーション106は、電子装置102-1とスラックサーバ108との間の対話(例えば、メッセージ、チャット、コマンド、要求及び/又はファイル)を伝送及び受信する。同様に、CRMアプリケーション110を含む電子装置102-2は、CRMサーバ112に通信可能に接続され、チャットアプリケーション114を含む電子装置102-3は、チャットサーバ116に通信可能に接続される。一部の実装形態では、スラックサーバ108、CRMサーバ112及びチャットサーバ116のそれぞれは、「メッセージングサーバ」としても知られる。別の言い方をすれば、メッセージングサーバは、メッセージングアプリケーションのサーバである。
【0030】
[0039] 一部の実装形態では、メッセージングサーバは、対応するメッセージングサービスにも通信可能に接続される。例えば、図1は、スラックサーバ108が通信ネットワーク120を介してスラックサービス130に通信可能に接続されることを示す。通信ネットワーク120はまた、CRMサーバ112をCRMサービス132に接続し、チャットサーバ116をチャットサービス134に接続する。一部の実装形態では、スラックサービス130、CRMサービス132及びチャットサービス134のそれぞれは、「メッセージングサービス」としても知られる。一部の実装形態では、メッセージングサービスは、メッセージングサービスを提供するシステムの一部であり得る。一部の実装形態では、メッセージングシステムを形成するために、メッセージングサービスの機能を、対応するメッセージングサーバの機能と組み合わせることができる。
【0031】
[0040] 一部の実装形態では、メッセージングアプリケーションを実行する電子装置102は、メッセージングサービスと直接対話する(例えば、メッセージングサーバをバイパスする)ことができる。
【0032】
[0041] 一部の実装形態において及び図1に示すように、チャットアプリケーションプログラミングインタフェース(API)142及び会話記憶域144(例えば、データベース)を含むコンピュータシステム140にメッセージングサービスのそれぞれが通信可能に接続される。コンピュータシステム140は、自然言語処理インタフェース162、データビジュアライゼーションプラットフォーム164及び1つ又は複数のデータソース166を含むデータビジュアライゼーションサーバ160(例えば、データビジュアライゼーションサーバシステム)にも通信可能に接続される。これらのコンポーネントの機能については、図2A図2B図3及び図5に関してより詳細に論じる。
【0033】
[0042] 一部の実装形態では、コンピュータシステム140は、データビジュアライゼーションサーバ160の一部である(データビジュアライゼーションサーバ160に統合される)。
【0034】
[0043] 図1の破線によって示すように、一部の実装形態では、電子装置102は、(例えば、メッセージングサーバ、メッセージングサービス及びコンピュータシステム140をバイパスすることによって)データビジュアライゼーションサーバ160と直接対話することができる。図2B図8AF図8AG及び図9に関してより詳細に説明するように、一部の実装形態では、データビジュアライゼーションサーバ160のウェブインタフェース(例えば、データビジュアライゼーションウェブアプリケーション522、図5)に電子装置102を導く電子装置102上で実行されるウェブブラウザ(例えば、ウェブブラウザ428、図4)により、直接通信が可能にされる。
【0035】
[0044] 本開示の一部の実装形態によれば、コンピュータシステム140(例えば、チャットAPI142)は、メッセージングアプリケーションを介して電子装置102のユーザにビジュアル解析を提供するために、データビジュアライゼーションサーバ160と、電子装置102上で実行されるメッセージングアプリケーションとの間でインタフェースする。高レベルでは、コンピュータシステム140は、メッセージングシステム(例えば、メッセージングサービス)からイベント(例えば、対話)を受信する。一部の実装形態では、イベントは、メッセージングアプリケーションとのユーザ対話を含み、及び自然言語表現を含む。コンピュータシステム140(例えば、チャットAPI142)は、イベントを変換し、データビジュアライゼーションサーバ160に1つ又は複数のクエリを発行する。自然言語処理インタフェース162は、自然言語表現を解釈する。データビジュアライゼーションプラットフォーム162は、データソースを識別し、(例えば、自然言語処理インタフェース162からの解釈に基づいて)データビジュアライゼーションを生成する。データビジュアライゼーションサーバ160は、1つ又は複数のクエリに応答して、コンピュータシステム140にデータビジュアライゼーションを返す。コンピュータシステム140は、メッセージングアプリケーション内で表示するために(例えば、メッセージングシステムを介して)データビジュアライゼーションを電子装置102に送信する。一部の実装形態では、コンピュータシステム140は、データビジュアライゼーションの1つ又は複数の表現を生成し、その表現をメッセージングアプリケーション内で表示するために電子装置102に送信する。コンピュータシステム140は、メッセージングサービス(例えば、電子装置102)とデータビジュアライゼーションサーバ160との間の対話状態を更に記憶する。
【0036】
プロセスフロー
[0045] 図2A及び図2Bは、一部の実装形態による電子装置102、メッセージングシステム(例えば、メッセージングサービス及び/又はコンビネーションメッセージングサーバ及びサービスシステム)、コンピュータシステム140及びデータビジュアライゼーションサーバ160間のプロセスフローを示す。
【0037】
[0046] 図2Aは、初期設定及びデータソース選択段階中の例示的なプロセスフロー200を示す。
【0038】
[0047] 一部の実装形態では、電子装置102のユーザは、メッセージングアプリケーション(例えば、図4のメッセージングアプリケーション430、図1のスラックアプリケーション106、CRMアプリケーション110及び/又はチャットアプリケーション114)を使用して、初期設定イベントを入力する(202)。一部の実装形態では、初期設定イベントは、メッセージングアプリケーション上のデータビジュアライゼーション解析のためにデータビジュアライゼーションサーバ160との対話を開始する。一部の実装形態では、初期設定イベントは、ユーザからの初期会話メッセージを含み、及び自然言語表現を含む。例えば、図6Aでは、ユーザは、メッセージングアプリケーションのユーザインタフェース700内に「こんにちは」と入力する。
【0039】
[0048] その入力に応答して、電子装置102は、メッセージングサービス(例えば、スラックサービス130、CRMサービス132及び/又はチャットサービス134)に初期設定イベントを送信する(204)。
【0040】
[0049] メッセージングサービスは、初期設定イベントを処理する(206)。一部の実装形態では、メッセージングサービスは、イベントを1つ又は複数のAPI呼び出しに変換する(208)。メッセージングサービスは、コンピュータシステム140にAPI呼び出しを送信する(210)。
【0041】
[0050] コンピュータシステム140(例えば、チャットAPI142)は、更なるAPI呼び出しを適切なアクションに変換する(212)。
【0042】
[0051] コンピュータシステム140(例えば、チャットAPI142)は、初期設定応答を生成する(214)。コンピュータシステム140は、対話(例えば、コンピュータシステム140と電子装置102との間の対話)の状態もデータベース(例えば、会話記憶域144)内に記憶する(216)。一部の実装形態では、対話の状態を記憶することは、初期設定イベントを表すデータエントリをデータベース内に作成することを含む。
【0043】
[0052] コンピュータシステム140(例えば、チャットAPI142)は、メッセージングサービスに初期設定応答を返し(218A)、メッセージングサービスは、電子装置102上で表示する(220)ために初期設定応答を(例えば、メッセージングサーバを介して)電子装置102に伝送する(218B)。これは、図7Cに示されている。図7Cに同じく示すように、一部の実装形態では、初期設定応答は、1つ又は複数のデータソース(例えば、データソース166)からユーザがデータソースを選択するための選択肢を含む。
【0044】
[0053] 一部の実装形態において及び図7Dに示すように、電子装置102は、データソースを識別する(例えば、選択する)ユーザ入力を受信する(222)。電子装置102は、メッセージングサービスにユーザ入力を送信する(224)。
【0045】
[0054] メッセージングサービスは、ユーザ入力を処理する(226)。一部の実装形態では、メッセージングサービスは、ユーザ入力を1つ又は複数のAPI呼び出しに変換する(228)。メッセージングサービスは、コンピュータシステム140(例えば、チャットAPI142)にAPI呼び出しを送信する(230)。
【0046】
[0055] コンピュータシステム140(例えば、チャットAPI142)は、API呼び出しをアクションに変換する(232)。
【0047】
[0056] コンピュータシステム140(例えば、チャットAPI142)は、データビジュアライゼーションサーバ160(例えば、データビジュアライゼーションプラットフォーム164)に対して、アクションに関する1つ又は複数のクエリを発行する(233)。
【0048】
[0057] データビジュアライゼーションプラットフォーム164は、データソースを識別し(234)、識別したデータソースに関する情報(例えば、メタデータ)を取得する(234)。
【0049】
[0058] データビジュアライゼーションプラットフォーム164は、コンピュータシステム140に対して、データソースに関する情報(例えば、データソースの識別及び/又はメタデータ)を返す(236)。
【0050】
[0059] コンピュータシステム140は、データソースの識別及び/又はメタデータを会話記憶域144内に記憶する(238)。
【0051】
[0060] 図2Bは、一部の実装形態による、電子装置102によって識別されているデータソースと対話するための例示的なプロセスフロー240を示す。
【0052】
[0061] 電子装置102は、データソースとの対話を含むユーザ入力(例えば、対話イベント)を受信する(242)。
【0053】
[0062] 一部の実装形態では、ユーザ入力は、自然言語表現(例えば、入力又はコマンド)を含む。一部の実装形態では、データソースとの対話は、データソースに関する1つ又は複数の質問候補を尋ねること(例えば、図7F)、データソースのデータフィールドを使用してデータビジュアライゼーションを生成すること(例えば、図7G)、データソースのデータフィールドをクエリすること(例えば、図8I図8O)、データビジュアライゼーションタイプを変更すること(例えば、図8D)、データビジュアライゼーション内の集約及び/又はグループ化を修正すること(例えば、図8AF)、データビジュアライゼーション内のフィルタを追加、除去及び/又は置換すること(例えば、図8A図8C)、データビジュアライゼーション内のデータフィールド(例えば、測定及び/又はディメンションデータフィールド)を追加、除去及び/又は置換すること、データソースに関する新たなクエリを開始すること(例えば、図8Gに示す「クリア」)、データソースに関する代替的解釈を表示すること(例えば、図8P)並びにデータビジュアライゼーションを共有すること(例えば、図8AG)を含む。
【0054】
[0063] 一部の実装形態では、それぞれ参照によりその全体が本明細書に援用される、2017年4月12日に出願された「Systems and Methods of Using Natural Language Processing for Visual Analysis of a Data Set」という名称の米国特許出願公開第15/486,265号、2017年11月6日に出願された「Systems and Methods of Using Natural Language Processing for Visual Analysis of a Data Set」という名称の米国特許出願公開第15/804,991号、2018年12月27日に出願された「Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface」という名称の米国特許出願公開第16/234,470号、2019年10月14日に出願された「Incremental Updates to Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/601,437号、2019年11月11日に出願された「Using Refinement Widgets for Data Fields Referenced by Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/680,431号及び2015年7月16日に出願された「Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization」という名称の米国特許出願公開第14/801,750号に記載されるように、データソースとの対話は、コンピュータ装置上で実行されるデータビジュアライゼーションアプリケーションを使用して実現可能な対話を含む。
【0055】
[0064] 電子装置102は、メッセージングサービスに対話イベントを送信する(244)。
【0056】
[0065] 一部の実装形態では、メッセージングサービスは、対話イベントを1つ又は複数のAPI呼び出しに変換する(246)。メッセージングサービスは、コンピュータシステム140(例えば、チャットAPI142)にAPI呼び出しを送信する(248)。
【0057】
[0066] チャットAPI142は、1つ又は複数のAPI呼び出しをアクションに変換する(250)。
【0058】
[0067] チャットAPI142は、データビジュアライゼーションシステム160(例えば、自然言語処理インタフェース162及びデータビジュアライゼーションプラットフォーム164)に対して、アクションに関する1つ又は複数のクエリを発行する(252)。一部の実装形態では、1つ又は複数のクエリを発行することは、データビジュアライゼーションサーバ160によって提供されるAPI関数を呼び出すことを含む。
【0059】
[0068] 自然言語処理インタフェース162は、対話イベント内の自然言語入力を解釈する(256)。一部の実装形態では、自然言語入力を解決するために、自然言語処理インタフェース162は、中間言語(例えば、ArkLang)によって課される統語的及び意味制約を使用する。中間言語の更なる詳細は、それぞれ参照によりその全体が本明細書に援用される、2018年10月21日に出願された「Determining Levels of Detail for Data Visualizations Using Natural Language Constructs」という名称の米国特許出願公開第16/166,125号及び2019年11月12日に出願された「Using Natural Language Expressions to Define Data Visualization Calculations that Span Across Multiple Rows of Data from a Database」という名称の米国特許出願公開第16/681,754号に見出すことができる。
【0060】
[0069] 一部の実装形態では、自然言語処理インタフェース162は、自然言語入力から中間表現も生成する。一部の実装形態では、中間表現は、中間言語における正規形式を含む。中間言語は、データビジュアライゼーションを生成するためにデータビジュアライゼーションプラットフォーム164によって処理されるクエリに自然言語入力を変換する。
【0061】
[0070] 自然言語処理インタフェース162は、自然言語解釈を返す(258)。一部の実装形態では、自然言語処理インタフェース162は、データビジュアライゼーションを生成するためにデータビジュアライゼーションプラットフォーム164によって処理されるクエリにも自然言語入力を(例えば、中間表現を使用して)変換する。
【0062】
[0071] データビジュアライゼーションプラットフォーム164は、解釈に基づいてデータソースをクエリする(260)。データビジュアライゼーションプラットフォーム164は、データビジュアライゼーションを生成する(262)。
【0063】
[0072] 一部の実装形態では、データビジュアライゼーションプラットフォーム164は、コンピュータシステム140に生成済みのデータビジュアライゼーションを返し(264)、コンピュータシステム140は、それを受けて、電子装置102上で表示するために生成済みのデータビジュアライゼーションを(例えば、メッセージングサービスによって)電子装置102に送信する。
【0064】
[0073] 一部の実装形態では、データビジュアライゼーションを生成した後、データビジュアライゼーションサーバ160は、(例えば、図5に示すビジュアライゼーション表現生成モジュール536を使用して)データビジュアライゼーションの表現を生成する。データビジュアライゼーションサーバ160は、コンピュータシステム140に表現を返し、コンピュータシステム140は、メッセージングサービスによってその表現を電子装置102に送信する。
【0065】
[0074] 一部の実装形態では、データビジュアライゼーションの表現は、データビジュアライゼーションの画像を含む。一部の実装形態では、表現は、データビジュアライゼーションの画像ファイルである(例えば、画像ファイルは、.png、.tiff又は.jpgファイルである)。一部の実装形態では、データビジュアライゼーションの表現は、データビジュアライゼーションの画像へのリンクを含む。
【0066】
[0075] 一部の実装形態では、表現を送信することは、データビジュアライゼーションの画像又はデータビジュアライゼーションの画像へのリンクを含むメッセージペイロードを有するメッセージを送信することを含む。
【0067】
[0076] 一部の実装形態では、データビジュアライゼーションプラットフォーム164は、コンピュータシステム140に生成済みのデータビジュアライゼーションを返す(264)。コンピュータシステム140は、(例えば、ビジュアライゼーション表現ジェネレータ346を使用して)データビジュアライゼーションの表現を生成する(266)。コンピュータシステム140は、メッセージングサービスに表現を返し(270A)、メッセージングサービスは、それを受けて、電子装置102上で表示する(272)ために表現を電子装置102に送信する(270B)。
【0068】
[0077] 一部の実装形態では、コンピュータシステム140は、対話状態も記憶する(268)。一部の実装形態では、かかる記憶は、データビジュアライゼーション、データビジュアライゼーションの表現、ビジュアライゼーションを生成するために使用されるデータフィールド、中間表現、フィルタ、集約、グループ化及び/又は集約データフィールドを記憶することを含む。
【0069】
[0078] 一部の実装形態において並びに図8AF及び図8AGに示すように、ステップ242でのユーザ入力は、データビジュアライゼーションを共有するための要求を含む。この例では、データビジュアライゼーションプラットフォーム164は、(例えば、データビジュアライゼーション自体を生成することに加えて)データビジュアライゼーションへのリンクを生成する(274)。データビジュアライゼーションプラットフォーム164は、コンピュータシステム140にビジュアライゼーションのリンクを返し(例えば、伝送し)(276A)、コンピュータシステム140は、電子装置102上で表示する(280)ためにリンクを(例えば、メッセージングサービスによって(276B))電子装置102に伝送する(276C)。
【0070】
[0079] 一部の実装形態では、電子装置102は、リンクの選択(282)を含むユーザ入力を受信する。ユーザ選択に応答して、電子装置102は、電子装置102上のブラウザ(例えば、ウェブブラウザ428、図4)を介してデータビジュアライゼーションを取得する(284)。この例では、ユーザは、ブラウザを介してデータビジュアライゼーションプラットフォーム164と直接対話する。データビジュアライゼーションプラットフォーム164は、ユーザ対話に基づいて更新されたデータビジュアライゼーションを生成することができる(286)。データビジュアライゼーションプラットフォームは、電子装置102のブラウザ上で表示する(290)ための更新されたデータビジュアライゼーションを返す(288)。
【0071】
アーキテクチャ
[0080] この節では、コンピュータシステム140、電子装置102及びデータビジュアライゼーションサーバ160の例示的アーキテクチャを記載する。一部の実装形態では、このアーキテクチャにおいて記載する要素は、図1及び図2の要素及びフローに関係する。
【0072】
[0081] 図3は、一部の実装形態によるコンピュータシステム140の一例を示すブロック図である。
【0073】
[0082] コンピュータシステム140は、典型的には、1つ又は複数の処理装置(プロセッサ又はコア、CPU)302と、1つ又は複数のネットワーク又は他の通信インタフェース304と、メモリ314と、それらのコンポーネントを相互接続するための1つ又は複数の通信バス312とを含む(チップセットと呼ぶ場合もある)。コンピュータシステム140は、任意選択的に、ユーザインタフェース306を含み得る。ユーザインタフェース306は、ディスプレイ308並びにキーボード、マウス及び/又は他の入力ボタン等の1つ又は複数の入力装置310を含み得る。
【0074】
[0083] メモリ314は、DRAM、SRAM、DDR RAM又は他のランダムアクセスソリッドステートメモリ装置等の高速ランダムアクセスメモリを含み、任意選択的に1つ又は複数の磁気ディスク記憶装置、1つ又は複数の光ディスク記憶装置、1つ又は複数のフラッシュメモリ装置又は他の1つ若しくは複数の不揮発性ソリッドステート記憶装置等の不揮発性メモリを含む。メモリ314は、1つ又は複数の処理装置から離れて位置する1つ又は複数の記憶装置を任意選択的に含む。メモリ314又は代わりにメモリ314内の不揮発性メモリは、非一時的コンピュータ可読記憶媒体を含む。一部の実装形態では、メモリ314又はメモリ314の非一時的コンピュータ可読記憶媒体は、以下のプログラム、モジュール及びデータ構造又はその部分集合若しくは拡張集合を記憶する:
・様々な基本システムサービスを扱い、及びハードウェア依存タスクを実行するための手続きを含むオペレーティングシステム316、
・1つ又は複数のネットワークインタフェース304(有線又は無線)及びインターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市圏ネットワーク等の通信ネットワーク120を介してコンピュータシステム140を他の装置(例えば、スラックサービス130、CRMサービス130、チャットサービス134等のメッセージングサービス及びデータビジュアライゼーションサーバ160)に接続するためのネットワーク通信モジュール318、
図1及び図2に記載した1つ又は複数のメッセージングサービスからイベント(例えば、API呼び出し)を受信するためのチャットAPI142。一部の実装形態では、チャットAPI142は、会話の状態を管理し、API呼び出しを適切なアクションに変換し、1つ又は複数のアクション(例えば、図8に記載する「クリア」及び「取消」アクション)を行う。一部の実装形態では、チャットAPI142は、付録Aに記載するアクションの一覧をサポートする。
・コンピュータシステム140とメッセージングサービスとの間の通信(例えば、対話又はイベント)のためのメッセージングインタフェース320。一部の実装形態では、メッセージングインタフェース320は、
○スラックサービス130と対話するためのスラックインタフェース322、
○CRMサービス132と対話するためのCRMインタフェース324、及び
○チャットサービス134と対話するためのチャットインタフェース326
を含む。
・コンピュータシステム140(例えば、チャットAPI142)とメッセージングサービスとの間の対話の状態及びデータを記憶するための会話記憶域144。一部の実装形態では、メッセージングサービスの種類によってデータがグループ化され、各メッセージングサービス内でデータが電子装置(例えば、電子装置102)によって更に編成される。一部の実装形態では、会話記憶域144は、以下を含む。
○チャットAPI142と、スラックアプリケーション106を実行している電子装置102との間の対話からのデータを含むスラックデータ328。図3の例では、電子装置102-1のためのスラックデータ328は、チャットAPI140と電子装置102-1との間の対話状態330を含む。対話状態330は、1つ又は複数のデータソース(例えば、電子装置102によって識別されるデータソース)の識別(331)、データソース内のデータフィールドの識別(332)及びユーザクエリ333を更に含む。一部の実装形態では、これは、電子装置102によって識別されているデータフィールド及びデータビジュアライゼーション、(例えば、自然言語処理インタフェース162からの)自然言語解釈334、データビジュアライゼーション336及び/又は画像338及びリンク340を含むその表現を生成するために使用されるデータフィールドを含む。一部の実装形態では、自然言語解釈334は、中間言語(例えば、ArkLang)を使用して自然言語処理インタフェース162によって生成される中間表現を含む。チャットAPI142と電子装置102との間に複数の対話がある一部の実装形態では、対話の日付及び/又は時間に応じてスラックデータ328が更にグループ化され得る。
○チャットAPI142と、CRMアプリケーション110を実行している1つ又は複数の電子装置102との間の対話からのデータを含むCRMデータ342。一部の実装形態では、CRMデータ342は、スラックデータ328のものと類似したデータ構造を含む。
○チャットAPI142と、チャットアプリケーション114を実行している1つ又は複数の電子装置102との間の対話からのデータを含むチャットデータ344。一部の実装形態では、チャットデータ344は、スラックデータ328のものと類似したデータ構造を含む。
・データビジュアライゼーションサーバ160から受信したデータビジュアライゼーションの表現を生成し、生成した表現を電子装置上で表示するためにメッセージングシステムに送信するビジュアライゼーション表現ジェネレータ346。一部の実装形態では、データビジュアライゼーションの表現は、データビジュアライゼーションの画像ファイルである(例えば、画像ファイルは、.png、.tiff又は.jpgファイルである)。一部の実装形態では、データビジュアライゼーションの表現は、画像へのリンクを含む。一部の実装形態では、データビジュアライゼーションの表現は、データビジュアライゼーションへのリンク(例えば、URLリンク)である。
【0075】
[0084] 上記で識別した要素のそれぞれは、先に述べたメモリ装置の1つ又は複数内に記憶することができ、上記の機能を実行するための命令の組に対応する。上記で識別したモジュール又はプログラム(即ち命令集合)は、別個のソフトウェアプログラム、手続き、モジュール又はデータ構造として実装する必要はなく、従って、様々な実装形態において、これらのモジュールの様々な部分集合を組み合わせるか又は他に再構成することができる。一部の実装形態では、メモリ314は、上記で識別したモジュール及びデータ構造の部分集合を任意選択的に記憶する。更に、メモリ314は、上記で記載していない追加のモジュール及びデータ構造を任意選択的に記憶する。
【0076】
[0085] 図3は、コンピュータシステム140を示すが、図3は、本明細書に記載する実装形態の構造上の概略図ではなく、存在し得る様々な特徴の機能的説明であることをより意図する。実際には、当業者によって認識されるように、別々に示したアイテムを組み合わせることができ、一部のアイテムを分けることができる。
【0077】
[0086] 図4は、一部の実装形態による電子装置102の一例を示すブロック図である。電子装置102の様々な例は、ディスプレイ及びアプリケーション(例えば、メッセージングアプリケーション)を実行可能なプロセッサを有するデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、表示支援装置、ウェアラブルデバイス及び他の計算装置を含む。電子装置は、典型的には、1つ又は複数の処理装置(プロセッサ又はコア)402と、1つ又は複数のネットワーク又は他の通信インタフェース404と、メモリ406と、それらのコンポーネントを相互接続するための1つ又は複数の通信バス408とを含む。通信バス408は、システムコンポーネント間の通信を相互接続し、制御する回路(チップセットと呼ぶ場合もある)を任意選択的に含む。
【0078】
[0087] 電子装置102は、ユーザインタフェース410を含む。ユーザインタフェース410は、典型的には、表示装置412(例えば、表示画面)を含む。一部の実装形態では、電子装置102は、キーボード、マウス及び/又は他の入力ボタン416等の入力装置を含む。代わりに又は加えて、一部の実装形態では、表示装置412は、タッチセンス面414を含み、その場合、表示装置412は、タッチセンスディスプレイである。一部の実装形態では、タッチセンス面414は、様々なスワイプジェスチャ(例えば、垂直方向及び/又は水平方向の継続的ジェスチャ)及び/又は他のジェスチャ(例えば、シングルタップ/ダブルタップ)を検出するように構成される。タッチセンスディスプレイ414を有する電子装置では、物理的キーボードは、任意選択的である(例えば、キーボード入力が必要であるときにソフトキーボードが表示され得る)。ユーザインタフェース410は、スピーカ又はスピーカ、イヤホン若しくはヘッドホンに接続される音声出力接続等の音声出力装置418も含む。更に、一部の電子装置102は、キーボードを補足又は置換するためにマイクロホン及び音声認識を使用する。一部の実装形態では、電子装置102は、音声(例えば、ユーザの会話)を捕捉するための音声入力装置420(例えば、マイクロホン)を含む。
【0079】
[0088] 一部の実装形態では、メモリ406は、DRAM、SRAM、DDR RAM又は他のランダムアクセスソリッドステートメモリ装置等の高速ランダムアクセスメモリを含む。一部の実装形態では、メモリ406は、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置又は他の不揮発性ソリッドステート記憶装置等の不揮発性メモリを含む。一部の実装形態では、メモリ406は、プロセッサ202から離れて位置する1つ又は複数の記憶装置を含む。メモリ406又は代わりにメモリ406内の不揮発性メモリ装置は、非一時的コンピュータ可読記憶媒体を含む。一部の実装形態では、メモリ406又はメモリ406のコンピュータ可読記憶媒体は、以下のプログラム、モジュール及びデータ構造又はその部分集合若しくは拡張集合を記憶する:
・様々な基本システムサービスを扱い、及びハードウェア依存タスクを実行するための手続きを含むオペレーティングシステム422、
・インターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市圏ネットワーク等の1つ又は複数の通信インタフェース404(有線又は無線)を介して電子装置102を他のコンピュータ及び装置に接続するために使用される通信モジュール424、
・音声入力装置420によって捕捉される音声を処理するための音声入力モジュール425(例えば、マイクロホンモジュール)。捕捉音声は、リモートサーバに送信され得、及び/又は計算装置200上で実行されるアプリケーション(例えば、スラックアプリケーション106)によって処理され得る。
・以下を含むアプリケーション426:
○ユーザがネットワーク上でリモートコンピュータ又は装置と通信することを可能にするウェブブラウザ428(又はウェブページを表示可能な他のアプリケーション)、及び
○メッセージングアプリケーション430(例えば、図1のスラックアプリケーション106、CRMアプリケーション110、及び/又はチャットアプリケーション114、及び/又は電子装置102のユーザが直接のメッセージング、ファイル共有、ライブストリーミング、及び/又はトピック及び/又はグループごとに編成されるチャットルーム(例えば、チャネル)への参加を介して他のユーザと通信することを可能にする任意のメッセージングアプリケーション)。一部の実装形態では、メッセージングアプリケーション430は、独立型アプリケーション(例えば、モバイル装置上で実行されるように設計されるモバイルアプリケーション)として実行される。一部の実装形態では、メッセージングアプリケーション430は、ウェブサーバによって提供されるウェブページを使用して、ウェブブラウザ428又は別のアプリケーション内で実行される。
【0080】
[0089] 上記で識別した実行可能モジュール、アプリケーション又は手続き集合のそれぞれは、メモリ装置の1つ又は複数内に記憶することができ、上記の機能を実行するための命令の組に対応する。上記で識別したモジュール又はプログラム(即ち命令集合)は、別個のソフトウェアプログラム、手続き又はモジュールとして実装する必要はなく、従って、様々な実装形態において、これらのモジュールの様々な部分集合を組み合わせるか又は他に再構成することができる。一部の実装形態では、メモリ206は、上記で識別したモジュール及びデータ構造の部分集合を記憶する。更に、メモリ206は、上記で記載していない追加のモジュール又はデータ構造を記憶し得る。
【0081】
[0090] 図4は、電子装置102を示すが、図4は、本明細書に記載する実装形態の構造上の概略図ではなく、存在し得る様々な特徴の機能的説明であることをより意図する。実際には、当業者によって認識されるように、別々に示したアイテムを組み合わせることができ、一部のアイテムを分けることができる。
【0082】
[0091] 図5は、一部の実装形態による、データビジュアライゼーションサーバ160の一例を示すブロック図である。データビジュアライゼーションサーバ160は、1つ又は複数のデータベース/データソース166をホストすることができるか、又は様々な実行可能アプリケーション若しくはモジュールを提供することができる。データビジュアライゼーションサーバ160は、典型的には、1つ又は複数の処理装置/コア(CPU)502、1つ又は複数のネットワークインタフェース504、メモリ514及びそれらのコンポーネントを相互接続するための1つ又は複数の通信バス512を含む。一部の実装形態では、データビジュアライゼーションサーバ160は、表示装置508並びにキーボード及びマウス等の1つ又は複数の入力装置510を含むユーザインタフェース506を含む。一部の実装形態では、通信バス512は、システムコンポーネント間の通信を相互接続し、制御する回路(チップセットと呼ぶ場合がある)を含み得る。
【0083】
[0092] 一部の実装形態では、メモリ514は、DRAM、SRAM、DDR RAM又は他のランダムアクセスソリッドステートメモリ装置等の高速ランダムアクセスメモリを含み、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置又は他の不揮発性ソリッドステート記憶装置等の不揮発性メモリを含み得る。一部の実装形態では、メモリ514は、CPU502から離れて位置する1つ又は複数の記憶装置を含む。メモリ514又は代わりにメモリ514内の不揮発性メモリ装置は、非一時的コンピュータ可読記憶媒体を含む。
【0084】
[0093] 一部の実装形態では、メモリ514又はメモリ514のコンピュータ可読記憶媒体は、以下のプログラム、モジュール及びデータ構造又はその部分集合を記憶する:
・様々な基本システムサービスを扱い、及びハードウェア依存タスクを実行するための手続きを含むオペレーティングシステム516、
・1つ又は複数の通信ネットワークインタフェース504(有線又は無線)及びインターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市圏ネットワーク等の1つ又は複数の通信ネットワークを介してデータビジュアライゼーションサーバ160を他のコンピュータに接続するために使用されるネットワーク通信モジュール518、
・ユーザからウェブ要求を受信し、応答のウェブページ又は他の資源を提供することによって応答するウェブサーバ520(HTTPサーバ等)、
・ユーザの電子装置102上のウェブブラウザ428によってダウンロードされ、実行され得るデータビジュアライゼーションウェブアプリケーション522。概して、データビジュアライゼーションウェブアプリケーション522は、デスクトップのデータビジュアライゼーションアプリケーション(例えば、図6A及び図6Bにおける及び本願が参照により援用する特許出願に記載のデータビジュアライゼーションアプリケーション600)と同じ機能を有するが、ネットワークの接続性を有する任意の位置における任意の装置からのアクセスの柔軟性を提供し、インストール及び保守を必要としない。一部の実装形態では、データビジュアライゼーションウェブアプリケーション522は、特定のタスクを実行するための様々なソフトウェアモジュールを含む。一部の実装形態では、ウェブアプリケーション522は、ウェブアプリケーション522の全ての側面のためのユーザインタフェースを提供するユーザインタフェースモジュール524を含む。一部の実装形態では、ウェブアプリケーション522は、1つ又は複数のデータソース542からデータを取得するためのクエリを構築し実行するデータ取得モジュール526を含む。データソース542は、データビジュアライゼーションサーバ160上にローカルに又は外部データベース内に記憶され得る。一部の実装形態では、2つ以上のデータソースからのデータをブレンドすることができる。一部の実装形態では、データ取得モジュール526は、クエリを構築するためにビジュアル仕様538を使用する。一部の実装形態では、データビジュアライゼーションウェブアプリケーション522は、データビジュアライゼーションコンパイラ及びデータビジュアライゼーション仮想マシン(不図示)も含む。
・コンピュータシステム140によって与えられるクエリを受信し、パーズする自然言語処理インタフェース162。一部の実装形態では、クエリは、電子装置102のユーザによって(例えば、スラックアプリケーション106を介して)与えられる自然言語入力を含む。一部の実装形態では、自然言語処理インタフェース162は、集約表現、グループ表現、フィルタ表現、制限表現及び/又はソート表現等の解析表現528を識別することができる。これらの解析表現については、参照によりその全体が本明細書に援用される、2019年10月14日に出願された「Incremental Updates to Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/601,437号及び2019年11月11日に出願された「Using Refinement Widgets for Data Fields Referenced by Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/680,431号により詳細に記載されている。
・自然言語処理インタフェース162は、特定の用語及び/又はフレーズがどのように関係する(例えば、依存する)かを決定するためにデータベース/データソース542内の依存関係を探索する依存関係決定モジュール530も含み得る。
・一部の実装形態では、自然言語処理インタフェース162は、フィルタ生成モジュール532を含み、フィルタ生成モジュール532は、ユーザによって修正されているフィールドに1つ又は複数のフィルタが関係するかどうかを判定する。フィルタ生成モジュール532は、ユーザ選択に基づいて1つ又は複数のフィルタを生成する。
・以下を含むデータビジュアライゼーションプラットフォーム164:
○ユーザ入力(例えば、自然言語入力)を使用して対応するビジュアルグラフィック(「データビジュアライゼーション」又は「データviz」と呼ぶこともある)を自動で生成し、表示するデータビジュアライゼーション生成モジュール534、
○データビジュアライゼーションの表現を生成し、生成済みの表現をコンピュータシステム140に送信するビジュアル表現生成モジュール536(任意選択的)。コンピュータシステム140は、その表現を(例えば、スラックサービス130及びスラックサーバ108によって)電子装置に送信するように構成される。一部の実装形態では、データビジュアライゼーションの表現は、データビジュアライゼーションの画像ファイルである(例えば、画像ファイルは、.png、.tiff又は.jpgファイルである)。一部の実装形態では、データビジュアライゼーションの表現は、画像へのリンクを含む。一部の実装形態では、データビジュアライゼーションの表現は、データビジュアライゼーションへのリンク(例えば、URLリンク)である。
○所望のデータビジュアライゼーションの特性を定めるために使用されるビジュアル仕様538。一部の実装形態では、コンピュータシステム140が(例えば、ユーザ入力を介して)提供する情報は、ビジュアル仕様として記憶される。一部の実装形態では、ビジュアル仕様538は、ユーザ又はユーザによって指定されるプロパティから自然言語コマンドによって受信された過去の自然言語コマンドを含む。一部の例では、ビジュアル仕様538は、異なる詳細度に基づく2つ以上の集約を含む。詳細度に関する更なる情報は、それぞれ参照によりその全体が本明細書に援用される、2015年7月16日に出願された「Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization」という名称の米国特許出願公開第14/801,750号及び2018年10月21日に出願された「Determining Levels of Detail for Data Visualizations Using Natural Language Constructs」という名称の米国特許出願公開第16/166,125号に見出すことができる。
・ゼロ以上のデータベース又はデータソース542。一部の実装形態では、データソースは、スプレッドシートファイル、CSVファイル、XMLファイル、フラットファイル若しくはJSONファイルとして記憶されるか、又はリレーショナルデータベース内に記憶される。例えば、ユーザは、(データビジュアライゼーションサーバ160上に記憶され得るか又はリモートで記憶され得る)1つ又は複数のデータベース又はデータソース542を選択し、データソースからデータフィールドを選択し、選択したフィールドを使用してビジュアルグラフィックを定める。
【0085】
[0094] 一部の実装形態では、データビジュアライゼーションサーバ160は、推論モジュール(不図示)を更に含み、推論モジュールは、データベース又はデータソース258を対象とした未指定の(例えば、省略された情報)又は不明瞭な(例えば、漠然とした)自然言語コマンド(例えば、表現又は発言)を、1つ又は複数の推論規則を使用して解決するために使用される。推論モジュールに関する更なる情報は、参照によりその全体が本明細書に援用される、2018年12月27日に出願された「Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface」という名称の米国特許出願公開第16/234,470号に見出すことができる。
【0086】
[0095] 一部の実装形態では、自然言語クエリに固有の不明瞭な構文パーズが拡散する問題に対処するために、(例えば、自然言語処理モジュール236によって)解析表現528に正規表現が割り当てられる。正規構造は、パーサの観点から不明瞭であり、自然言語処理モジュール238は、中間表現を形成するための複数の構文パーズの中から迅速に選択することができる。正規表現に関する更なる情報は、参照によりその全体が本明細書に援用される、2018年12月27日に出願された「Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface」という名称の米国特許出願公開第16/234,470号に見出すことができる。
【0087】
[0096] 図6A及び図6Bは、一部の実装形態による対話型データ解析のためのグラフィカルユーザインタフェース600を示す。一部の実装形態では、グラフィカルユーザインタフェース600は、データビジュアライゼーションアプリケーションのためのインタフェースであり、データビジュアライゼーションアプリケーションは、ユーザの計算装置上にインストールされるデスクトップデータビジュアライゼーションアプリケーション又は計算装置のウェブブラウザからアクセスされるウェブベースのデータビジュアライゼーションアプリケーション(例えば、データビジュアライゼーションウェブアプリケーション522)であり得る。
【0088】
[0097] 図6Aの例では、ユーザインタフェース600は、データタブ614及び解析タブ616を含む。データタブ614が選択されると、ユーザインタフェース600は、データペインとも呼ばれるスキーマ情報領域610を表示する。スキーマ情報領域610は、データビジュアライゼーションを構築するために選択され、使用され得る名前付きデータ要素(例えば、フィールド名)を提供する。一部の実装形態では、フィールド名の一覧は、ディメンション群(例えば、カテゴリデータ)及び測定群(例えば、数量)に分けられる。一部の実装形態は、パラメータの一覧も含む。解析タブ616が選択されると、ユーザインタフェース600は、データ要素の代わりに解析関数の一覧を表示する(不図示)。
【0089】
[0098] 図6Aに更に示すように、グラフィカルユーザインタフェース600は、データビジュアライゼーション領域612も含む。データビジュアライゼーション領域612は、列シェルフ領域620及び行シェルフ領域622等の複数のシェルフ領域を含む。これらは、列シェルフ620及び行シェルフ622とも呼ばれる。この図面で示すように、データビジュアライゼーション領域612は、ビジュアルグラフィック(本明細書ではデータビジュアライゼーションとも呼ぶ)を表示するための広い空間も有する。データ要素は、依然として選択されていないため、この空間は、ビジュアルグラフィックを最初に有しない。一部の実装形態では、データビジュアライゼーション領域612は、シートと呼ばれる複数のレイヤを有する。一部の実装形態では、データビジュアライゼーション領域612は、データビジュアライゼーションフィルタのための領域626を含む。
【0090】
[0099] 一部の実装形態では、グラフィカルユーザインタフェース600は、自然言語コマンドを受け付けるための自然言語入力ボックス624(コマンドボックスとも呼ぶ)も含む。ユーザは、このコマンドボックスと対話してコマンドを与えることができる。例えば、ユーザは、ボックス624内にタイプ入力することにより、自然言語コマンドを与えることができる。加えて、ユーザは、コマンドを与えるためにマイクロホン(例えば、計算装置のマイクロホン)に向かって話すことにより、コマンドボックスと間接的に対話することができる。一部の実装形態では、(例えば、スキーマ情報領域610から列シェルフ620及び/又は行シェルフ622へのドラッグアンドドロップ操作を使用して)データ要素が最初に列シェルフ620及び行シェルフ622に関連付けられる。最初の関連付け後、ユーザは、(例えば、自然言語入力ボックス624内の)自然言語コマンドを使用し、表示されたデータビジュアライゼーションを更に探索することができる。一部の例では、ユーザは、自然言語入力ボックス624を使用して最初の関連付けを作成し、そのように作成することは、1つ又は複数のデータ要素が列シェルフ620上及び行シェルフ622上に配置されることをもたらす。例えば、ユーザは、データ要素Xとデータ要素Yとの間の関係を作成するためのコマンドを与えることができる。コマンドを受信することに応答して、列シェルフ620及び行シェルフ622にデータ要素を投入することができる(例えば、列シェルフ620にデータ要素Xを投入することができ、行シェルフ622にデータ要素Yを投入することができるか又はその逆も同様である)。
【0091】
[00100] 図6Bは、一部の実装形態によるグラフィカルユーザインタフェース600の別の図を示す。図6Bの例では、ユーザインタフェース600は、データソース(例えば、データソース166)のデータフィールドの一覧630を表示する。データビジュアライゼーション領域612は、データソースと対話する際、ユーザを支援するための提案632(例えば、ガイドライン、ヒント、ポインタ及び/又は可能なクエリ)を表示する。一部の実装形態では、データフィールドの一覧630内のデータフィールドをユーザが選択する(例えば、ユーザがデータフィールド634の「量」を選択する)ことに応答して、データビジュアライゼーション領域612は、ユーザの理解を更に促進するためのデータフィールド634の詳細を含むパネル636を表示する。
【0092】
[00101] 本開示の一部の実装形態によれば、(例えば、図1図2及び図4に記載の)電子装置102は、図6A及び図6Bに関して記載したデータビジュアライゼーションアプリケーションを含まない。一部の実装形態では(例えば、電子装置102が携帯電話又はウェアラブルデバイスを含む場合)、電子装置102のフォームファクタ(例えば、限られた画面のサイズ)も、ユーザインタフェース600及びユーザインタフェース600に関連するツールにアクセスすることを困難にする。一部の実装形態では、電子装置102がデータビジュアライゼーションアプリケーションを含まなくても、電子装置102は、図1及び図2に関して記載したメッセージングアプリケーション等のアプリケーションにより、対話型データ解析を依然として行うことができる。
【0093】
[00102] これらの原理に照らして、ここで、特定の実装形態を検討する。
【0094】
実装形態
[00103] 図7A図7Gは、一部の実装形態による、電子装置102とコンピュータシステム140との間の対話に関する一連のスクリーンショットを示す。
【0095】
[00104] 図7Aは、電子装置102上で表示されるユーザインタフェース700を示す。一部の実装形態では、ユーザインタフェース700は、電子装置102上で実行されるメッセージングアプリケーション(例えば、図1のスラックアプリケーション106、CRMアプリケーション110及び/又はチャットアプリケーション114又は他のメッセージングアプリケーション)のインタフェースである。
【0096】
[00105] 図7Aの例では、電子装置102によって他の電子装置(例えば、対応するメッセージングアプリケーションを実行している装置)に送信され、及び/又は電子装置102によって他の装置から受信されているメッセージの部分一覧702をユーザインタフェース700が表示する。一部の実装形態において及び図7Aに示すように、メッセージは、時系列順に配置され、直近に送信又は受信されたメッセージは、一覧702の一番下に表示される。一部の実装形態では、一覧702内のメッセージを新しい順に配置することができ、直近に送信又は受信されたメッセージが一覧702の一番上に表示される。一部の実装形態において及び図7Aに示すように、一覧702上のメッセージのそれぞれは、電子装置102のユーザと別のエンティティとの間の(例えば、別のユーザ、サービス、チャットボット又はユーザ群及び/又はサービス群との間の)会話のスレッドを含む。例えば、図7Aのメッセージ702-1は、85件の回答を含むスレッドである。
【0097】
[00106] 一部の実装形態では、一覧702は、図1及び図2に示すスラックサービス130、CRMサービス132及び/又はチャットサービス134等のメッセージングサービス又は他のメッセージングサービスによる電子装置102と、コンピュータシステム140(例えば、コンピュータシステム140のボット)との間の対話を含む1つ又は複数のメッセージを含む。一部の実装形態では、ユーザは、入力ボックス704内にメッセージを構成する(例えば、タイプ入力する)ことにより、ユーザインタフェース700と対話することができる。一部の実装形態では、ユーザは、自然言語コマンドを与えるために電子装置120のマイクロホン(例えば、音声入力装置420)に向かって話すことにより、入力ボックス704と間接的に対話することもできる。図7Aの例では、ユーザは、「こんにちは」という自然言語コマンド(例えば、自然言語表現)を入力する。
【0098】
[00107] 図7Bは、ユーザ入力に応答したユーザインタフェース700の更新された図を示す。図7Bの例では、ユーザは、コンピュータシステム140と初めて対話しており、従って「こんにちは」の自然言語コマンドが新たな会話スレッド710(図7C)を開始する(例えば、図2Aの初期設定イベント202)。
【0099】
[00108] 一部の実装形態では、ユーザインタフェース700にデータビジュアライゼーション解析が表示されることを可能にするために、会話スレッドは、ユーザとコンピュータシステム140との間の対話を表す。一部の実装形態では、コンピュータシステム140が通信可能に接続されるデータビジュアライゼーションサーバ160により、データビジュアライゼーション解析が提供される。
【0100】
[00109] 再び図7Bを参照すると、ユーザとコンピュータシステム140との間の対話は、新たなメッセージ702-2を表示させる。図7Bは、「スレッドの表示」の選択肢上をユーザがポイントしていること(706)も示す。図7Cに示すように、「スレッドの表示」をユーザが選択することに応答して、メッセージ702-2に対応する会話スレッド710がユーザインタフェース700上で表示される。一部の実装形態において及び図7Cに示すように、会話スレッド710は、メッセージの履歴702と同時にユーザインタフェース700内に表示される。一部の実装形態では、「スレッドの表示」の選択肢をユーザが選択することに応答して、ユーザインタフェース700は、メッセージの一覧702の代わりに会話スレッド710を表示する。
【0101】
[00110] 図7Cは、「こんにちは」というユーザ入力に応答して自動で生成され、ユーザインタフェース700上に表示されるメッセージ712を更に示す。メッセージ712は、ユーザが1つ又は複数のデータソース(例えば、データソース166)からデータソースを選択するための選択肢714を含む。会話スレッド710は、スレッドに応答するための入力ボックス716並びにユーザが(例えば、会話スレッドに応答する代わりに)ダイレクトメッセージとして応答を送信するための選択肢718も含む。
【0102】
[00111] 図7Dは、選択肢714をユーザが選択することに応答して表示されるドロップダウンメニュー720を示す。この例では、ユーザは、「大型スーパー」のデータソースを選択する。
【0103】
[00112] 図7Eは、「大型スーパー」のデータソースをユーザが選択することに応答して、コンピュータシステム140(例えば、チャットAPI142)によって自動で生成され、ユーザインタフェース700上で表示される第1のメッセージ722及び第2のメッセージ724を示す。メッセージ722は、データソース選択の確認を含む。メッセージ724は、データソース内のデータフィールドの数(例えば、「27個のフィールド」)、データソース内のデータフィールド(例えば、「発送までの予定された期間」及び「発送までの実際の期間」)及び質問候補(例えば、クエリ)を含む。ユーザインタフェース700は、質問候補のそれぞれの隣にアフォーダンス726も表示する。一部の実装形態では、それぞれのアフォーダンス726をユーザが選択することは、質問に対応するビジュアライゼーション(例えば、データビジュアライゼーション又はデータビジュアライゼーションの表現)がユーザインタフェース700上で表示されることを引き起こす。一部の実装形態において及び図7Eに示すように、メッセージ724は、ユーザが(例えば、入力ボックス716内にコマンドを入力することによって)コンピュータシステム140に発行し得るコマンドに関する提案も含み得る。図7Eは、コンピュータシステム140からの応答の結果としてメッセージ702-2内の回答数が(例えば、図7Bの「1件の回答」から図7Eの「2件の回答」に)更新されていることをユーザインタフェース700が表示することも示す。
【0104】
[00113] 図7Fは、「州ごとの売上合計、カテゴリを家具にフィルタする」という質問候補に対応する、図7Eのアフォーダンス726-1のユーザ選択(728)を示す。
【0105】
[00114] 一部の実装形態では、コンピュータシステム140(例えば、チャットAPI142)は、ユーザ入力に応答して返答(例えば、肯定応答)を自動で生成するように構成される。例えば、図7Fでは、コンピュータシステム140がユーザ選択を処理するためにデータビジュアライゼーションサーバ160と対話する間、ユーザインタフェース700は、メッセージ730(例えば、「しばらくお待ちください、データを高速処理しています...」)を表示する。
【0106】
[00115] 図7Gは、図7Eのアフォーダンス726-1をユーザが選択することに応答して生成され、ユーザインタフェース700上で表示されるビジュアライゼーション732を示す。この例では、ビジュアライゼーション732は、米国の地図である。地図は、州ごとにそれぞれの色を含み、色は、州の家具販売の合計を表す。
【0107】
[00116] 一部の実装形態では、ビジュアライゼーション732は、(例えば、図1の環境100内に示すようにコンピュータシステム140、メッセージングサービス及びメッセージングサーバを介して)電子装置102に送信される、データビジュアライゼーションサーバ160によって生成される実際のデータビジュアライゼーションである。
【0108】
[00117] 一部の実装形態では、ビジュアライゼーション732は、実際のデータビジュアライゼーションの表現である。例えば、表現は、データビジュアライゼーションの画像、データビジュアライゼーションの(例えば、.png、.tiff、.bmp、.jpg、.gif又は.pdfファイル形式の)画像ファイル及び/又はデータビジュアライゼーションの画像へのリンクであり得る。
【0109】
[00118] ビジュアライゼーション732が実際のデータビジュアライゼーションの表現である例では、表現は、データビジュアライゼーションサーバ160によって(例えば、ビジュアライゼーション表現生成538を使用して)又はコンピュータシステム140によって(例えば、ビジュアライゼーション表現ジェネレータ346を使用して)生成され得る。
【0110】
[00119] 再び図7Gを参照すると、一部の実装形態では、ユーザインタフェース700は、ビジュアライゼーション732を定める1つ又は複数のフレーズ733(例えば、「州ごと及び地域ごとの売上合計、カテゴリを家具にフィルタする」)もビジュアライゼーション732と共に表示する。図7Gに示すように、ビジュアライゼーション732は、ユーザが感情アイコンを追加することを可能にするアフォーダンス(736)、重要としてビジュアライゼーション732をラベル付けすることを可能にするアフォーダンス(738)及び/又はビジュアライゼーション732を電子装置102上及び/又はクラウド上に記憶すること及び/又はビジュアライゼーション732を他のユーザと共有すること等の1つ又は複数の既定のアクションを実行することを可能にするアフォーダンス(740)も含む。
【0111】
[00120] 図8A図8AGは、一部の実装形態による、図7で選択されたデータソースに基づく電子装置102とコンピュータシステム140との間の対話に関する一連のスクリーンショットを示す。
【0112】
[00121] 図8Aは、ユーザインタフェース700とのユーザ対話を示す。この例では、ユーザは、入力ボックス716内に「西部地域にフィルタする」という自然言語表現802を入力する。
【0113】
[00122] 図8Bは、図8Aの「送信」アフォーダンス804をユーザが選択することに応答して、図8Aの自然言語表現802が(例えば、図1のメッセージングサーバ及びメッセージングサービスを介して)チャットAPI142に送信されることを示す。自然言語表現802は、メッセージ806として会話スレッド710にも追加される。
【0114】
[00123] 図8Cは、自然言語表現802に応答したメッセージ808(例えば、「分かりました、地域を西部にフィルタすることを追加します」)及びビジュアライゼーション810の表示を示す。この例では、ビジュアライゼーション810は、ビジュアライゼーション732の拡大版であり、米国の西部地域の地図を示す。
【0115】
[00124] 図2A及び図2Bに関して先に述べたように、コンピュータシステム140は、電子装置102とデータビジュアライゼーションシステム160との間の対話状態を表すデータを(例えば、会話記憶域144内に)記憶する。図3でも述べたように、データは、データビジュアライゼーションシステム160によって生成されているデータソース、データフィールド及びデータビジュアライゼーションの識別を含み得る。ここでは、コンピュータシステム140(例えば、チャットAPI142)は、クエリの元のコンテキスト(図7Fの「州ごとの売上合計、カテゴリを家具にフィルタする」)を保ち、「西部」地域へのフィルタを追加することによってビジュアライゼーション732を適宜調節する。
【0116】
[00125] 図8Dは、ユーザインタフェース700との別のユーザ対話を示す。この例では、ユーザは、入力ボックス716内に自然言語コマンド812(例えば、「棒グラフとして」)を入力する。
【0117】
[00126] 図8Eは、図8Dの自然言語入力812に応答してコンピュータシステム140によって自動で生成され、ユーザインタフェース700上で表示されるメッセージ814(例えば、「OK、棒グラフとして追加します」)を示す。ユーザインタフェース700は、更新されたビジュアライゼーション816(例えば、棒グラフ)も表示する。この例では、棒グラフ816のデータバーのそれぞれは、米国の「西部」地域内の州である。データバーは、家具の販売合計に基づいて降順に配置される。
【0118】
[00127] 一部の実装形態では、ビジュアライゼーション816とのユーザの対話(例えば、ユーザのタッチ)は、ユーザインタフェース700上での「ズーム」アフォーダンス818の表示を引き起こす。一部の実装形態では、ビジュアライゼーション816は、画像である。ユーザは、(例えば、自らの指で画像をタッチし、指を外向きに動かすか又はアフォーダンス818をクリックすることによって)画像をズームして、図8Fに示すようなビジュアライゼーション816のより細かい詳細の一部を見ることができる。
【0119】
[00128] 図8Gは、ユーザインタフェース700との別のユーザ対話を示す。この例では、ユーザは、新たなクエリを開始するために入力ボックス716内に自然言語コマンド820(例えば、「クリア」)を入力する。図8Hは、自然言語コマンド820に応答して、チャットAPI142が「新たな質問に答える準備ができた」ことを示すメッセージ822をユーザインタフェース700が表示することを示す。
【0120】
[00129] 図8Iは、ユーザインタフェース700との別のユーザ対話を示す(例えば、ユーザが「フィールドの列挙」という自然言語コマンド824を入力する)。
【0121】
[00130] 図8Jは、自然言語コマンド824に応答して、ユーザインタフェースが「大型スーパー」のデータソース内のデータフィールドの一覧826を表示することを示す。
【0122】
[00131] 図8Kは、ユーザが自然言語コマンド828(例えば、「製品名を示してください」)を入力することを示す。図8Lは、自然言語コマンド828に応答して、ユーザインタフェース700が、「製品名」のデータフィールドの最上位値を含むメッセージ830を表示することを示す。この例では、自然言語処理インタフェース162は、自然言語コマンド828内の「製品名」というフレーズをデータソース内のデータフィールド(例えば、図8Lのデータフィールド832)として解釈する。自然言語処理インタフェース162は、自然言語コマンド828内の「示してください」という言葉を「より詳細を提供すること」として更に解釈する。一部の実装形態では、文字列フィールド(例えば、カテゴリデータを有する「製品名」等のディメンションデータフィールド)の場合、データビジュアライゼーションサーバ160は、「製品名」のデータフィールドに関する更なる詳細として含められるデータフィールドの最上位データ値(例えば、「ステープル封筒」、「イージーステープル紙」及び「ステープル」等のデータ値を返すことができる。
【0123】
[00132] 図8Mは、図8Lの「更に表示する」選択肢834をユーザが選択することに応答して、ユーザインタフェース700が「製品名」のデータフィールドに関するより多くの情報(例えば、より多くのデータ値)を表示することを示す。
【0124】
[00133] 図8Nは、ユーザインタフェース700との別のユーザ対話を示す。この例では、ユーザは、自然言語コマンド836(例えば、「利益を示してください」)を入力する。
【0125】
[00134] 図8Oは、自然言語コマンド836に応答して、ユーザインタフェース700が、「利益」のデータフィールドに関する(例えば、最小から最大までの)値域を含むメッセージ838を表示することを示す。一部の実装形態では、自然言語入力が数値データフィールド(例えば、数量を伴う測定)を含むという(例えば、自然言語処理インタフェース162による)判定に応じて、データビジュアライゼーションサーバ160は、数値データフィールドに対応する値域を返すことができる。
【0126】
[00135] 図8Pは、ユーザインタフェース700との別のユーザ対話を示す。この例では、ユーザは、自然言語コマンド840(例えば、「ステープルの利益率」)を入力する。
【0127】
[00136] 図8Qは、自然言語コマンド840に応答して、ユーザインタフェース700がビジュアライゼーション841を表示することを示す。この例では、ビジュアライゼーション841は、「利益」をy軸に有し、「発送日の年」をx軸に有する折れ線グラフである。ビジュアライゼーション841は、この線グラフが「製品名」のデータフィールド内の「ステープル」のデータ値を表すことを示唆するフレーズ842(例えば、「発送日の年ごとの利益合計、製品名をステープルにフィルタする」)を含む。
【0128】
[00137] 一部の実装形態では、ユーザが望む通りにデータビジュアライゼーションサーバ160が質問を解釈しない場合がある。例えば、図8Qでは、フレーズ842が「発送日の年」を意味するように、データビジュアライゼーションサーバ160がユーザ入力840を解釈したことを示唆するが、ユーザは、実際には他のことを望んでいる可能性がある。一部の実装形態では、ユーザが期待していることと異なる解釈をコンピュータシステム140が返す場合、ユーザは、図8Rに示すように自然言語コマンド844(例えば、「そうではありません」)を入力することができる。
【0129】
[00138] 図8Sは、自然言語コマンド844に応答してユーザインタフェース700が代替的な解釈846を表示することを示し、解釈のそれぞれは、解釈を選択するための対応するアフォーダンス848を含む。ユーザインタフェース700は、解釈の1つを選択するための要求850もユーザに表示する。
【0130】
[00139] 図8Tは、解釈846-2(例えば、「注文日の年ごとの利益合計、製品名をステープルにフィルタする」)に対応するアフォーダンス848-2をユーザが選択すること(852)を示す。
【0131】
[00140] 図8Uは、アフォーダンス848-2をユーザが選択することに応答してユーザインタフェース700内に表示される更新されたビジュアライゼーション854を示す。この例では、ビジュアライゼーション854は、注文の年ごとのステープルの利益の線グラフである。この線グラフは、「利益」をy軸に含み、「注文日の年」をx軸に含む。
【0132】
[00141] 図8Vは、ユーザインタフェース700とのユーザ対話を示す。この例では、ユーザは、入力ボックス716内に自然言語入力856(例えば、「代わりに月ごと」)を入力する。
【0133】
[00142] 図8Wは、自然言語入力856に応答して、ビジュアライゼーション854内の「注文日の年」が「注文日の月」によって置換されることを示すメッセージ858をユーザインタフェース700が表示することを示す。ユーザインタフェース700は、更新されたビジュアライゼーション860も表示する。この例では、ビジュアライゼーション860は、注文日の月に基づくステープルの利益の線グラフである。ビジュアライゼーション860は、「利益」をy軸に含み、「注文日の月」をx軸に含む。この例では、ステープルの利益を、(例えば、ビジュアライゼーション854内の)年ではなく、月に応じて集約することにより、データビジュアライゼーションサーバ160は、ビジュアライゼーション860に対応するデータビジュアライゼーションを生成する。
【0134】
[00143] 図8Xは、ユーザインタフェース700との別のユーザ対話を示す。この例では、ユーザは、自然言語コマンド862(例えば、「取消」)を入力する。
【0135】
[00144] 図8Yは、自然言語コマンド862に応答して、ユーザインタフェース700がビジュアライゼーション860前のビジュアライゼーションに対応するビジュアライゼーション854を表示することを示す。
【0136】
[00145] 図8Zは、新たなクエリを開始するためのユーザ入力864(例えば、「クリア」)を示す。
【0137】
[00146] 図8AAは、ユーザ入力866(例えば、「前月比の利益」)を示す。
【0138】
[00147] 図8ABは、ユーザ入力866に応答して、ユーザインタフェース700がビジュアライゼーション868を表示することを示す。この例では、フレーズ870によって示すように、ビジュアライゼーション868は、「注文日にわたる利益合計の前月比の差」の線グラフである。ビジュアライゼーション870は、「利益の差」をy軸に含み、「注文日の月」をx軸に含む。
【0139】
[00148] 図8ACは、ユーザが入力ボックス716内に自然言語入力872(例えば、「2017年3月~2018年9月」)を入力することを示す。
【0140】
[00149] 図8ADは、自然言語入力872に応答して、ユーザインタフェース700が、更新されたビジュアライゼーション874を表示することを示し、更新されたビジュアライゼーション874では、x軸は、2017年3月から2018年9月までの月に修正(例えば、フィルタ)されている。
【0141】
[00150] 図8AE及び図8AFは、ユーザ入力876(例えば、「カテゴリごと」)を示し、ユーザ入力876に応答して、ユーザインタフェース700は、ビジュアライゼーション878を表示する。この例では、「カテゴリ」のデータフィールドをデータ値によってグループ化するものとして、自然言語処理インタフェース164は、「カテゴリごと」を解釈する(例えば、テクノロジ、家具及び事務用品)。ビジュアライゼーション878は、「テクノロジ」、「家具」及び「事務用品」のデータ値に対応する3本の線で構成される折れ線グラフを含む。
【0142】
[00151] 図8AFは、ビジュアライゼーション878を共有するための要求を示す「共有」という言葉880をユーザが入力ボックス716内に入力することも示す。一部の実装形態では、この要求に応答して、ユーザインタフェース700は、図8AGに示すように、リンク884を含むメッセージ882を返す。一部の実装形態では、リンク884をユーザが選択することに応答して、電子装置102は、ウェブブラウザ(例えば、ウェブブラウザ428)を開き、データビジュアライゼーションサーバ160のウェブインタフェース(例えば、データビジュアライゼーションウェブアプリケーション522)にユーザを導き、メッセージングサーバ、メッセージングサービス及びコンピュータシステム140との通信チャネルをバイパスする。
【0143】
[00152] 図9A図9Fは、一部の実装形態による、電子装置102のウェブブラウザ428を使用してデータビジュアライゼーションと対話するための一連のスクリーンショットを示す。
【0144】
[00153] 図9Aは、一部の実装形態による、図5のデータビジュアライゼーションウェブ522のためのグラフィカルユーザインタフェース900を示す。一部の実装形態では、電子装置102のユーザは、電子装置102上のウェブブラウザ(例えば、ウェブブラウザ428)を使用してグラフィカルユーザインタフェース900にアクセスすることができる。図9Aの例では、メッセージングユーザアプリケーション700内のリンク(例えば、図8AG内のリンク884)をユーザが選択すること(例えば、クリックすること)に応答して、ユーザのグラフィカルインタフェース900が表示される。
【0145】
[00154] 一部の実装形態では、ユーザインタフェース900は、データビジュアライゼーション領域902を含む。図9Aの例では、データビジュアライゼーション領域902は、「テクノロジ」、「事務用品」及び「家具」の3本の線グラフを含むデータビジュアライゼーション904(例えば、線グラフ)を表示する。線グラフ904は、「利益の差」をy軸に含み、「注文日の月(2017)」をx軸に含む。折れ線グラフ904は、図8AF内のビジュアライゼーション878の実際のデータビジュアライゼーションである。
【0146】
[00155] 再び図9Aを参照すると、一部の実装形態では、グラフィカルユーザインタフェース900は、「大型スーパー」のデータソースの名前付きデータ要素(例えば、フィールド名)を提供するスキーマ情報領域906を含む。ユーザインタフェース900は、ユーザから自然言語入力(例えば、コマンド)を受け付けるためのコマンドボックス908も含む。グラフィカルユーザインタフェース900は、コマンドボックス908とは別個の(例えば、その上の)領域910内にデータビジュアライゼーション904を定めるフレーズ912も表示する。
【0147】
[00156] 一部の実装形態では、ユーザは、既存のデータビジュアライゼーションのデータフィールドを修正(例えば、追加、削除又は置換)するために、フレーズ912と直接対話することができる。例えば、図9Bでは、ユーザは、フレーズ912-3(例えば、「2017年3月から2018年9月までの間の注文日を有する」)内の「3月」という言葉を選択する(914)(例えば、クリックする)。一部の実装形態では、ユーザの対話に応答して、グラフィカルユーザインタフェース900は、第1の選択肢918及び第2の選択肢920を含むドロップダウンメニュー916を表示する。一部の実装形態では、ドロップダウンメニューから選択肢を選択する代わりに、図9Cから図9Dへの遷移において示すように、ユーザは、例えば、フレーズ内の言葉を選択し(922)、新たな言葉をタイプ入力することによって)フレーズを手動で修正することができる。一部の実装形態では、図9E及び図9Fに示すように、ユーザは、データビジュアライゼーションのデータマークと対話することもできる。
【0148】
[00157] データフィールドの洗練に関する更なる詳細は、参照によりその全体が本明細書に援用される、2019年11月11日に出願された「Using Refinement Widgets for Data Fields Referenced by Natural Language Expressions in a Data Visualization User Interface」という名称の米国特許出願公開第16/680,431号に記載されている。
【0149】
[00158] 図10A図10Gは、データ解析のための会話型自然言語インタフェースに関する方法1000のフローチャートを示す。方法1000は、プロセスとも呼ばれる。
【0150】
[00159] 方法1000は、コンピュータシステム140において実行される(1002)。コンピュータシステム140は、1つ又は複数のプロセッサ302及びメモリ314を有する(1004)。コンピュータシステム140は、メッセージングシステム及びデータビジュアライゼーションサーバ160と通信可能に接続される(1006)。一部の実装形態では、メッセージングシステムは、メッセージングサービスを含む(例えば、スラックサービス130、CRMサービス132及び/又はチャットサービス134のサービス)を含む。一部の実装形態では、メッセージングシステムは、メッセージングサービス及びメッセージングサーバを含む(例えば、メッセージングシステムはチャットサービス134及びチャットサーバ116を含む)。
【0151】
[00160] 再び図10Aを参照すると、メッセージングシステムは、電子装置102と通信可能に接続される(1008)。メモリ314は、1つ又は複数のプロセッサ302によって実行されるように構成される1つ又は複数のプログラムを記憶する(1010)。一部の実装形態では、図2A図2B図7A図9Fに示す動作は、コンピュータシステム140のメモリ314又は他の非一時的コンピュータ可読記憶媒体内に記憶される命令に対応する。コンピュータ可読記憶媒体は、磁気又は光ディスク記憶装置、フラッシュメモリ等のソリッドステート記憶装置又は他の不揮発性メモリ装置を含み得る。コンピュータ可読記憶媒体上に記憶される命令は、ソースコード、アセンブリ言語コード、オブジェクトコード又は1つ若しくは複数のプロセッサによって解釈される他の命令形式の1つ又は複数を含み得る。方法1000内の一部の動作は、組み合わされ得、及び/又は一部の動作の順序は、変更され得る。
【0152】
[00161] 一部の実装形態では、電子装置とコンピュータシステムとの間の解析会話を開始する初期入力をコンピュータシステム140がメッセージングシステムから受信される(1044)。一部の実装形態では、コンピュータシステムは、初期対話状態を確立する、解析会話のためのデータエントリを記憶する(1046)。
【0153】
[00162] コンピュータシステム140は、データソースを識別する第1の入力をメッセージングシステムから受信する(1012)。
【0154】
[00163] コンピュータシステム140は、データソースに関係する自然言語コマンドを指定する第2の入力をメッセージングシステムから受信する(1016)。
【0155】
[00164] 一部の実装形態では、第1及び第2の入力は、コンピュータシステム140によって提供されるAPI(例えば、チャットAPI142)への呼び出しによって受信される(1018)。
【0156】
[00165] 一部の例では、API呼び出しは、メッセージングシステムによって生成され、及びメッセージングシステムと電子装置102との間の対話を表す(1020)。
【0157】
[00166] コンピュータシステム140は、データソースから第1のデータビジュアライゼーションを構築するためのパラメータの組に第2の入力を変換する(1022)。一部の実装形態では、コンピュータシステムは、電子装置とコンピュータシステムとの間の対話状態を取得する(1023)。対話状態は、データソースに関する電子装置とコンピュータシステムとの間の解析会話の複数の特性を含む(1023)。一部の実装形態では、コンピュータは、次いで、取得された対話状態に従って第2の入力をパラメータの組に変換する(1024)。
【0158】
[00167] コンピュータシステム140は、データビジュアライゼーションサーバ160によって提供される1つ又は複数のAPI関数を呼び出す(1025)。
【0159】
[00168] API関数を呼び出すことに応答して、コンピュータシステム140は、データソースのデータフィールドの第1の部分集合を含む第1のデータビジュアライゼーションをデータビジュアライゼーションサーバ160から受信する(1026)。
【0160】
[00169] 一部の実装形態では、第1のデータビジュアライゼーションは、画像である(1028)。
【0161】
[00170] 一部の実装形態では、第1のデータビジュアライゼーションは、画像へのリンクである(1030)。
【0162】
[00171] コンピュータシステム140は、(例えば、ビジュアライゼーション表現ジェネレータ346を使用して)第1のデータビジュアライゼーションの第1の表現を生成する(1032)。一部の実装形態では、第1のデータビジュアライゼーションの第1の表現は、(例えば、ビジュアライゼーション表現生成534を使用して)データビジュアライゼーションサーバ160によって生成される。一部の実装形態では、第1のデータビジュアライゼーションの第1の表現は、データビジュアライゼーションの画像ファイルである(1034)。例えば、画像ファイルは、.png、.tiff、.bmp、.jpg、.gif又は.pdfファイル形式であり得る。
【0163】
[00172] コンピュータシステム140は、メッセージングシステムに第1の表現を送信する(1036)。メッセージングシステムは、電子装置102上で表示するために第1の表現を電子装置102に送信するように構成される。これは、例えば、図8A図8E及び図8Q図8Xに示されている。一部の実装形態では、第1の表現は、電子装置102上で実行されるメッセージングアプリケーションのインタフェース上で表示される。一部の実装形態では、メッセージングシステムに第1の表現を送信することは、第1のデータビジュアライゼーションの画像へのリンクを含むメッセージペイロードを有するメッセージを送信することを含む(1038)。
【0164】
[00173] 一部の実装形態では、コンピュータシステム140は、コンピュータシステム140と通信可能に接続されるデータベース内において、電子装置104とデータソースとの間の現在の対話状態を記憶する(1040)。現在の対話状態を取得することは、データベースから現在の対話状態を取得することを含む(1042)。例えば、コンピュータシステム140は、現在の対話状態を会話記憶域144内に記憶する。
【0165】
[00174] 一部の例では、第1の表現を生成した後、コンピュータシステム140は、第1のデータビジュアライゼーションの第1の表現及びパラメータの組をデータベース内に記憶する(1048)。一部の実装形態では、パラメータの組は、ユーザによって識別され、及び/又はデータビジュアライゼーションを生成するために使用されているデータソースのデータフィールド、データビジュアライゼーションを作成するか、又は既存のデータビジュアライゼーションを修正するために使用されているパラメータ(例えば、フィルタ、集約及び/又はグループ化演算子)、自然言語解釈334及び中間言語(例えば、ArkLang)を使用して自然言語処理インタフェース162によって生成される中間表現の1つ又は複数を含む。
【0166】
[00175] 一部の例では、パラメータの組は、既定の中間言語における表現として記憶される(1050)。
【0167】
[00176] 一部の実装形態では、データソースを識別する第1の入力を受信した後、コンピュータシステム140は、データソースに関係する複数の質問候補を生成し、及びメッセージングシステムに伝送する(1052)。第2の入力は、複数の質問候補のうちの1つのユーザ選択を含む(1054)。これを図7F及び図7Gに示す。
【0168】
[00177] 一部の実装形態では、第1のデータビジュアライゼーションは、所定の複数のデータビジュアライゼーションタイプのうちの第1のデータビジュアライゼーションタイプを有する(1056)。コンピュータシステム140は、複数のデータビジュアライゼーションタイプのうちの第2のデータビジュアライゼーションタイプを要求する第3の入力をメッセージングシステムから受信する(1058)。第3の入力に応答して(1060)、コンピュータシステム140は、第2のデータビジュアライゼーションタイプを要求するために、データビジュアライゼーションサーバ160によって提供されるAPI関数の1つ又は複数を呼び出す。コンピュータシステム140は、第2のデータビジュアライゼーションタイプを有する第2のデータビジュアライゼーションをデータビジュアライゼーションサーバ160から受信する(1064)。第2のデータビジュアライゼーションは、データソースのデータフィールドの第1の部分集合を含む。コンピュータシステム140は、第2のデータビジュアライゼーションの第2の表現を生成する(1066)。コンピュータシステム140は、メッセージングシステムに第2の表現を送信する(1068)。これを図8D及び図8Eに示す。
【0169】
[00178] 一部の実装形態では、コンピュータシステム140は、第1のデータビジュアライゼーションを共有するための要求を指定する第3の入力をメッセージングシステムから受信する(1070)。第3の入力に応答して(1072)、コンピュータシステム140は、第3の入力をコマンドに変換する(1074)。コンピュータシステム140は、そのコマンドをデータビジュアライゼーションサーバ160に送信する(1076)。コンピュータシステム140は、第1のデータビジュアライゼーションへのリンクをデータビジュアライゼーションサーバ160から受信する(1078)。コンピュータシステム140は、メッセージングシステムにリンクを送信する(1080)。メッセージングシステムは、電子装置102上で表示するためにリンクを電子装置102に送信するように構成される(1082)。電子装置102は、リンクのユーザ選択時、第1のデータビジュアライゼーションを取得し、及び電子装置のブラウザを介して第1のデータビジュアライゼーションを表示するように構成される(1084)。これを図8AF図8AG及び図9Aを示す。
【0170】
[00179] 一部の実装形態では、データソースのデータフィールドの第1の部分集合は、第1のデータフィールドを含む(1086)。コンピュータシステム140は、第1のデータフィールドの選択を第2のデータフィールドの選択で置換するための第3の入力をメッセージングシステムから受信する(1088)(例えば、第2のデータフィールドは、データフィールドの第1の部分集合内にない)。第3の入力に応答して(1090)、コンピュータシステム140は、第1のデータフィールドの選択を第2のデータフィールドの選択で置換するために、データビジュアライゼーションサーバ160によって提供されるAPI関数の1つ又は複数を呼び出す(1092)。コンピュータシステム140は、データフィールドの第2の部分集合を含む第2のデータビジュアライゼーションをデータビジュアライゼーションサーバ160から受信する(1094)。データフィールドの第2の部分集合は、第2のデータフィールドを含み、及び第1のデータフィールドを含まない(1096)。コンピュータシステム140は、第2のデータビジュアライゼーションの第2の表現を生成する(1098)。コンピュータシステム140は、メッセージングシステムに第2の表現を送信する(10100)。これを図8U図8V及び図8Wに示す。
【0171】
[00180] 一部の実装形態では、データフィールドの第1の部分集合は、第1の複数の別個の値を有する第1のデータフィールドを含む(10102)。方法1000は、データソースからのデータ行を、第1のデータフィールドのデータ値が第1のデータ値と一致する行の部分集合にフィルタすることを指定する第3の入力をメッセージングシステムから受信することを更に含む(10104)。第3の入力に応答して(10106)、コンピュータシステム140は、データ行を行の部分集合にフィルタするために、データビジュアライゼーションサーバ160によって提供されるAPI関数の1つ又は複数を呼び出す(10108)。コンピュータシステム140は、第2のデータビジュアライゼーションをサーバ160から受信する(10110)。第2のデータビジュアライゼーションは、第1のデータフィールドの第1のデータ値を表すデータマークを含み、及び第1の複数の値のうち、第1のデータ値以外のデータ値に対応するデータマークを省く(10112)。コンピュータシステム140は、第2のデータビジュアライゼーションの第2の表現を生成する(10114)。コンピュータシステム140は、メッセージングシステムに第2の表現を送信する(10116)。これを図8A図8Cに示す。
【0172】
[00181] 上記で識別した実行可能モジュール、アプリケーション又は手続き集合のそれぞれは、先に述べたメモリ装置の1つ又は複数内に記憶することができ、上記の機能を実行するための命令の組に対応する。上記で識別したモジュール又はプログラム(即ち命令集合)は、別個のソフトウェアプログラム、手続き又はモジュールとして実装する必要はなく、従って、様々な実装形態において、これらのモジュールの様々な部分集合を組み合わせるか又は他に再構成することができる。一部の実装形態では、メモリ206は、上記で識別したモジュール及びデータ構造の部分集合を記憶する。更に、メモリ206は、上記で記載していない追加のモジュール又はデータ構造を記憶し得る。
【0173】
[00182] 本明細書の本発明の説明で使用した用語は、特定の実装形態を説明するためのものに過ぎず、本発明を限定することを意図しない。本発明の説明及び添付の特許請求の範囲内で使用するとき、単数形「1つの(a)」、「1つの(an)」及び「その」は、文脈が明らかに異なる場合を除いて複数形も含むことを意図する。本明細書で使用するとき、「及び/又は」という用語は、列挙した関連アイテムの1つ又は複数の任意の及び全てのあり得る組み合わせを指し、かかる組み合わせを包含することも理解されるであろう。本明細書で使用するとき、「含む」及び/又は「含んでいる」という用語は、述べられた特徴、ステップ、動作、要素及び/又はコンポーネントの存在を指定するが、1つ又は複数の他の特徴、ステップ、動作、要素、コンポーネント及び/又はその群の存在又は追加を除外するものではないことが更に理解されるであろう。
【0174】
[00183] 上記の説明は、特定の実装形態に関して説明目的で記載してきた。しかし、上記の例示的な解説は、網羅的であることも、本発明を開示した正確な形態に限定することも意図しない。上記の教示に照らして多くの修正形態及び改変形態が可能である。実装形態は、本発明の原理及びその実用的応用を最もよく説明し、それにより考えられる特定の用途に適した様々な修正形態と共に当業者が本発明及び様々な実装形態を最良に利用できるようにするために選択及び説明された。

データ解析のための会話型自然言語インタフェース
付録A
func (s *Server) processMessage(
ctx emitter.MessageContext,
e *events.MessageEvent,
) (recoveredErr error) {
// ...

switch strings.ToLower(e.Text) {
case “hello”, “hey there”, “yo”, “howdy”:
err := s.slackServiceEmitter.Greeting(ctx)
// ...

case “nice”, “that’s awesome”, “awesome”, “good work”, “nice job”, “great”, “thanks”, “thank you”, “you’re the best”:
err := s.slackServiceEmitter.GratitudeResponse(ctx)
// ...

/******
* ALTERNATIVE INTERPRETATIONS
*/
case “wrong”, “correction”, “not quite”, “not what i meant”, “that’s not what i meant”, “try again”, “alternatives”, “other options”, “alternative interpretations”:
// ...
options, err := s.chatAPI.GetInterpretationOptions(ctx.ConversationID)
// ...
err = s.slackServiceEmitter.SendInterpretationOptions(ctx, options)
// ...

/******
* CLEAR
*/
case “clear”, “start over”, “reset”, “clean slate”, “new question”:
// ...
err = s.chatAPI.Clear(ctx.ConversationID)
// ...
err = s.slackServiceEmitter.SendMessage(ctx, “Ready to answer a new question!”)
// ...

/******
* DESCRIBE DATASOURCE
*/
case “describe datasource”, “describe data source”, “describe”, “help”, “help me”, “what can I do?”:
err := s.describeDatasource(ctx)
// ...

/******
* LIST FIELDS
*/
case “list fields”:
// ...
fields, err := s.chatAPI.ListFields(ctx.ConversationID)
// ...
err = s.slackServiceEmitter.ListFields(ctx, fields)
// ...

/******
* LIST DATASOURCES
*/
case “list data sources”, “list datasources”, “change data source”, “change datasource”, “select data source”, “select datasource”:
return s.listDatasources(ctx, false)

/******
* SHARE
*/
case “share”, “link”, “share link”, “give me a link”, “ask data”, “go to ask data”, “view in ask data”:
// ...
url, questionTitle, err := s.chatAPI.Share(ctx.ConversationID)
// ...
err = s.slackServiceEmitter.SendShareLink(ctx, url, questionTitle)
// ...

/******
* UNDO
*/
case “undo”, “oops”, “undo that”, “rewind”:
// ...
questionState, err := s.chatAPI.Undo(ctx.ConversationID)
// ...
err = s.slackServiceEmitter.SendMessage(ctx, “No problem! Let’s rewind.”)
// ...
err = s.slackServiceEmitter.SendAnswer(ctx, questionState)
// ...

default:

/******
* DESCRIBE FIELD
*/
if strings.HasPrefix(e.Text, “describe ”) {
// ...
parts := strings.Split(e.Text, “describe ”)
if len(parts) == 0 {
err := s.slackServiceEmitter.SendMessage(ctx, “Sorry, what field?”)
// ...
}
fieldDesc, found, err := s.chatAPI.DescribeField(ctx.ConversationID, parts[1])
// ...
err = s.slackServiceEmitter.DescribeField(ctx, fieldDesc)
// ...
}

/******
* CONVERSE
*/
// ...
err = s.slackServiceEmitter.PendingNotification(ctx)
// ...
questionState, interpreted, err := s.chatAPI.Converse(
ctx.ConversationID,
e.Text,
)
// ...
if interpreted {
err = s.slackServiceEmitter.SendAnswer(ctx, questionState)
// ...
} else {
err = s.slackServiceEmitter.QueryMisunderstood(ctx)
// ...
}
}
return nil
}
図1
図2A
図2B
図3
図4
図5
図6A
図6B
図7A
図7B
図7C
図7D
図7E
図7F
図7G
図8A
図8B
図8C
図8D
図8E
図8F
図8G
図8H
図8I
図8J
図8K
図8L
図8M
図8N
図8O
図8P
図8Q
図8R
図8S
図8T
図8U
図8V
図8W
図8X
図8Y
図8Z
図8AA
図8AB
図8AC
図8AD
図8AE
図8AF
図8AG
図9A
図9B
図9C
図9D
図9E
図9F
図10A
図10B
図10C
図10D
図10E
図10F
図10G
【国際調査報告】