(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-01
(45)【発行日】2022-12-09
(54)【発明の名称】自然言語構造を使用したデータ視覚化の詳細レベルの判定
(51)【国際特許分類】
G06F 16/2452 20190101AFI20221202BHJP
G06F 16/248 20190101ALI20221202BHJP
G06F 40/30 20200101ALI20221202BHJP
G06F 40/247 20200101ALI20221202BHJP
【FI】
G06F16/2452
G06F16/248
G06F40/30
G06F40/247
(21)【出願番号】P 2021518553
(86)(22)【出願日】2019-10-08
(86)【国際出願番号】 US2019055169
(87)【国際公開番号】W WO2020076811
(87)【国際公開日】2020-04-16
【審査請求日】2021-06-04
(32)【優先日】2018-10-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-12-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508311813
【氏名又は名称】タブロー ソフトウェア,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ジャラリ,アレックス
(72)【発明者】
【氏名】セトラー,ヴィディヤ,ラガヴァン
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】米国特許出願公開第2018/0203924(US,A1)
【文献】特表2022-500751(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
(57)【特許請求の範囲】
【請求項1】
自然言語表現の詳細レベルを判定するための方法であって、
ディスプレイ、1つ以上のプロセッサ、および前記1つ以上のプロセッサによる実行のために構成された1つ以上のプログラムを格納するメモリを有するコンピューティングデバイスにおいて、
前記ディスプレイ上にデータ視覚化インターフェースを表示することと、
データソースのユーザ選択を受信することと、
前記データソースに向けられた自然言語コマンドを指定するためのユーザ入力を受信することと、
前記自然言語コマンドを構文解析することによって、前記データソース内のデータフィールドの文脈自由文法およびセマンティックモデルに従って中間表現を形成することであって、前記自然言語コマンドで、
(i)第1の集計における集計タイプを指定する第1の用語、
(ii)前記セマンティックモデルで、前記第1の集計のために集計されるデータフィールドを指定する第2の用語、および
(iii)前記第1の集計のグループ化を判定するために、前記セマンティックモデルでデータフィールドを指定する1つ以上の用語、を識別することを含む、中間表現を形成することと、
前記データソースに従って、前記中間表現を、前記第1の集計を含む1つ以上のデータベースクエリに変換することと、
前記1つ以上のデータベースクエリを実行して、前記データソースから前記第1の集計に従って集計された1つ以上のデータセットを取得することと、
前記取得されたデータセットの更新されたデータ視覚化を生成および表示することと、を含む、方法。
【請求項2】
前記自然言語コマンドを構文解析することは、前記自然言語コマンドを複数のトークンに構文解析することを含む、請求項1に記載の方法。
【請求項3】
前記複数のトークンの各々について、
レキシコンで前記それぞれのトークンを検索して、前記それぞれのトークンに対応する概念を識別することをさらに含む、請求項2に記載の方法。
【請求項4】
前記自然言語コマンドは、複数の語を含み、前記自然言語コマンドを構文解析することは、
前記レキシコンを使用して、前記自然言語コマンド
のコンテキスト内で前記複数の語の各々の機能を判定することをさらに含み、
前記複数のトークンの各々は、前記自然言語コマンドにおいて2つ以上の隣接する語を組み合わせることによって形成される単一の語または句のいずれかを含む、請求項3に記載の方法。
【請求項5】
前記中間表現を形成することは、前記トークンに対応する前記概念を連結することを含む、請求項3または請求項4に記載の方法。
【請求項6】
前記それぞれのトークンに対応する概念を識別するために前記レキシコン内の各トークンを検索することは、
対応する概念を有していない1つ以上のトークンを識別することと、
対応する概念を有する前記複数のトークンを使用して前記中間表現を形成することと、をさらに含む、請求項3に記載の方法。
【請求項7】
前記レキシコンは、データソースレキシコンおよび文法レキシコンを含む、請求項3に記載の方法。
【請求項8】
前記データソースレキシコンは、前記データソース内の前記データフィールドに対応する複数のフィールドを含み、
前記複数のフィールドの各々は、1つ以上のエントリにマッピングされ、前記エントリの各々は、概念に対応する、請求項7に記載の方法。
【請求項9】
前記データソースレキシコンは、前記データソースの前記セマンティックモデルから生成され、
前記セマンティックモデルは、属性の名前、前記属性の値、および前記値に対応するメタデータを含む、請求項7または請求項8に記載の方法。
【請求項10】
前記データソースレキシコン内の前記複数のフィールドは、複数の同義語を含む、請求項8に記載の方法。
【請求項11】
前記複数の同義語は
、ユーザによって定義される第1のサブセットを含む、請求項10に記載の方法。
【請求項12】
前記複数の同義語は、前記コンピューティングデバイスによって事前定義された第2のサブセットを含む、請求項10または請求項11に記載の方法。
【請求項13】
前記中間表現を形成することは、前記文脈自由文法を管理する1つ以上の事前定義された文法規則を使用する、請求項1~12のいずれかに記載の方法。
【請求項14】
前記事前定義された文法規則は、制限、グループ、集計、フィルタリング、およびソートからなる群から選択された事前定義された表現タイプを含む、請求項13に記載の方法。
【請求項15】
前記自然言語コマンドを指定するためのユーザ入力を受信することは、前記データ視覚化インターフェースのユーザインターフェース制御を介して、前記ユーザ入力を受信することを含む、請求項1~14のいずれかに記載の方法。
【請求項16】
複数のデータソースのユーザ選択を受信することをさらに含み、
前記複数のデータソースの各々が前記データソースに固有のデータソースレキシコンに関連付けられている、請求項1~15のいずれかに記載の方法。
【請求項17】
前記データソースは、共通の文法レキシコンを共有する、請求項16に記載の方法。
【請求項18】
コンピューティングデバイスであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに結合されたメモリと、
ディスプレイと、
前記メモリに格納され、前記1つ以上のプロセッサによる実行のために構成された1つ以上のプログラムであって、請求項1~17のいずれかに記載の方法を実施するための命令を含む、1つ以上のプログラムと、を含む、コンピューティングデバイス。
【請求項19】
1つ以上のプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、コンピューティングデバイスによって実行されると、前記デバイスに請求項1~17のいずれかに記載の方法を実施させる命令を含む、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実装形態は、概して、データ視覚化に関し、より具体的には、ユーザが自然言語表現を使用してデータ視覚化と対話し、データを分析することを可能にするシステム、方法、およびユーザインターフェースに関する。
【背景技術】
【0002】
データ視覚化アプリケーションは、ユーザにデータセットを視覚的に理解させることができる。分布、傾向、外れ値、および他の要因を含むデータセットの視覚的分析は、ビジネス上の意思決定を行うために重要である。いくつかのデータセットは、非常に大きいかまたは複雑であり、多くのデータフィールドを含む。複数のデータを視覚化したダッシュボード、および視覚的な分析タスクに役立つ自然言語インターフェースを含めて、様々なツールを使用してデータを理解し、分析することに役立ち得る。
【0003】
自然言語インターフェースは、データ探索に役立つモダリティになりつつある。しかしながら、視覚的分析システムとの自然言語対話をサポートすることは、多くの場合困難である。例えば、ユーザは、言語的に単純または口語的な発話をタイピングする傾向があるが、視覚的分析システムは、基礎となるデータおよび分析機能に対してこれらの発話を実現するというより複雑なニュアンスを有する。統計的手法および機械学習手法を採用することはできるが、新しいデータベースごとに文法を手動で作成し、調整することは脆弱であり、法外な費用がかかる。加えて、特定のデータベースに提示された質問を構文解析するには、統計パーサーをそのデータベースに固有の質問のコーパスでトレーニングする必要がある。
【発明の概要】
【0004】
視覚的分析システムとの自然言語対話をサポートする改善されたシステムおよび方法が必要である。本開示は、自然言語の発話を、視覚的分析システム(例えば、データ視覚化アプリケーション)に対して実行することができる正式なクエリに解決する中間言語について説明する。中間言語は、単一のデータ視覚化で複数の集計レベルをさらにサポートする。したがって、中間言語は、ユーザの認知的負担を軽減し、より効率的なヒューマンマシンインターフェースを作り出す。
【0005】
いくつかの実装形態によると、方法は、ディスプレイと、1つ以上のプロセッサと、1つ以上のプロセッサによる実行のために構成された1つ以上のプログラムを格納するメモリと、を有する、コンピューティングデバイスで実行される。この方法は、ディスプレイ上に視覚化インターフェースを表示することを含む。この方法は、データソースのユーザ選択を受信することを含む。この方法は、データソースに向けられた自然言語コマンドを指定するためのユーザ入力を受信することをさらに含む。例えば、ユーザ入力は、データソースに関連付けられた1つ以上の語を含む。この方法は、自然言語コマンドで、(i)第1の集計における集計タイプを指定する第1の用語と、(ii)セマンティックモデルで、第1の集計のために集計されるデータフィールドを指定する第2の用語と、(iii)第1の集計のグループ化を判定するために、セマンティックモデルでデータフィールドを指定する1つ以上の用語と、を識別することを含む、自然言語コマンドを構文解析することによって、データソース内のデータフィールドの文脈自由文法およびセマンティックモデルに従って中間表現を形成することをさらに含む。コンピューティングデバイスは、データソースに従って、中間表現を、第1の集計を含む1つ以上のデータベースクエリに変換する。コンピューティングデバイスは、1つ以上のデータベースクエリを実行して、データソースから第1の集計に従って集計された1つ以上のデータセットを取得する。コンピューティングデバイスは、取得されたデータセットの更新されたデータ視覚化を生成および表示する。
【0006】
いくつかの実装形態において、変換は、中間表現を再帰的に使用して、異なる詳細レベルを有する更新されたデータ視覚化を作成することを含む。
【0007】
いくつかの実装形態において、自然言語コマンドを構文解析することは、自然言語コマンドを複数のトークンに構文解析することを含む。
【0008】
いくつかの実装形態において、複数のトークンの各々について、コンピューティングデバイスは、レキシコンでそれぞれのトークンを検索して、それぞれのトークンに対応する概念を識別する。
【0009】
いくつかの実装形態において、自然言語コマンドは、複数の語を含む。自然言語コマンドの構文解析は、レキシコンを使用して、自然言語コマンドのコンテキスト内で複数の語の各々の機能を判定することをさらに含む。複数のトークンの各々は、自然言語コマンドにおいて2つ以上の隣接する語を組み合わせることによって形成される単一の語または句のいずれかを含む。
【0010】
いくつかの実装形態において、中間表現を形成することは、トークンに対応する概念を連結することを含む。
【0011】
いくつかの実装形態において、それぞれのトークンに対応する概念を識別するためにレキシコン内の各トークンを検索することは、対応する概念を有していない1つ以上のトークンを識別することと、対応する概念を有する複数のトークンを使用して中間表現を形成することと、をさらに含む。
【0012】
いくつかの実装形態において、レキシコンは、データソースレキシコンおよび文法レキシコンを含む。
【0013】
いくつかの実装形態において、データソースレキシコンは、データソース内のデータフィールドに対応する複数のフィールドを含む。複数のフィールドの各々は、1つ以上のエントリにマッピングされる。エントリの各々は、概念に対応する。
【0014】
いくつかの実装形態において、データソースレキシコンは、データソースのセマンティックモデルから生成される。セマンティックモデルは、属性の名前、属性の値、および値に対応するメタデータを含む。
【0015】
いくつかの実装形態において、データソースレキシコン内の複数のフィールドは、複数の同義語を含む。
【0016】
いくつかの実装形態において、複数の同義語は、ユーザによって定義される第1のサブセットを含む。
【0017】
いくつかの実装形態において、複数の同義語は、コンピューティングデバイスによって事前定義された第2のサブセットを含む。
【0018】
いくつかの実装形態において、中間表現を形成することは、文脈自由文法を管理する1つ以上の事前定義された文法規則を使用する。
【0019】
いくつかの実装形態において、事前定義された文法規則は、表現タイプが制限、グループ、集計、フィルタリング、またはソートである複数の文法規則を含む。
【0020】
いくつかの実装形態において、自然言語コマンドを指定するためのユーザ入力を受信することは、データ視覚化インターフェースのユーザインターフェース制御を介して、ユーザ入力を受信することを含む。
【0021】
いくつかの実装形態において、この方法は、複数のデータソースのユーザ選択を受信することをさらに含み、各々がデータソースに固有のデータソースレキシコンに関連付けられている。
【0022】
いくつかの実装形態において、データソースは、共通の文法レキシコンを共有する。
【0023】
いくつかの実装形態において、コンピューティングデバイスは、1つ以上のプロセッサ、メモリ、ディスプレイ、およびメモリに格納された1つ以上のプログラムを含む。プログラムは、1つ以上のプロセッサによる実行のために構成される。1つ以上のプログラムは、本明細書に記載の方法のいずれかを実施するための命令を含む。
【0024】
いくつかの実装形態において、非一時的コンピュータ可読記憶媒体は、1つ以上のプロセッサ、メモリ、およびディスプレイを有するコンピューティングデバイスによる実行のために構成された1つ以上のプログラムを格納する。1つ以上のプログラムは、本明細書に記載の方法のいずれかを実施するための命令を含む。
【0025】
したがって、ユーザがデータ視覚化と容易に対話し、自然言語表現を使用してデータを分析することを可能にする方法、システム、およびグラフィカルユーザインターフェースが開示される。
【図面の簡単な説明】
【0026】
上記のシステム、方法、およびグラフィカルユーザインターフェース、ならびにデータ視覚化分析を提供する追加のシステム、方法、およびグラフィカルユーザインターフェースをより良好に理解するために、同様の参照番号が図全体を通して対応する部分を指す以下の図面と併せて、以下の発明を実施するための形態を参照されたい。
【0027】
【
図1】いくつかの実装形態で使用されるグラフィカルユーザインターフェースを示す。
【
図2A】いくつかの実装形態によるコンピューティングデバイスのブロック図である。
【
図2B】いくつかの実装形態によるデータソースレキシコンの構成要素を示すブロック図である。
【
図2C】いくつかの実装形態による文法レキシコンのサブモジュールを示すブロック図である。
【
図2D】いくつかの実装形態による分析表現を示すブロック図である。
【
図3A-3J】いくつかの実装形態による複数レベルの集計をサポートするための中間言語の使用を示す。
【
図4A-4D】いくつかの実装形態による自然言語表現の詳細レベルを判定するための方法のフローチャートを提供する。
【0028】
ここで、実装形態を参照すると、その例は、添付の図面に示されている。以下の説明では、本発明の徹底した理解を提供するために、数多くの特定の詳細が記載される。しかしながら、本発明がこれらの特定の詳細を必要とせずに実践され得ることは当業者には明らかであろう。
【0029】
実装形態の説明
本明細書に記載されている様々な方法およびデバイスは、軽量の中間言語を使用して、自然言語表現(自然言語入力、クエリ、または発話として知られる)から生成された中間論理クエリを表すことにより、データ視覚化プラットフォームでの自然言語インターフェースの有効性を改善する。本明細書でArkLangとも称される中間言語は、自然言語入力をデータベースに対して実行することができる正式なクエリに解決するように設計されている。自然言語入力は、辞書的にArkLangに変換される。入力の中間表現は、ArkLangで形成され、次いで、データソース(例えば、データベース)に対してクエリを発行するために視覚化クエリ言語を採用する一連の命令に変換(例えば、コンパイル)される。データ視覚化プラットフォームは、自然言語入力に応答して、取得したデータセットのデータ視覚化(または更新されたデータ視覚化)を自動的に生成し、および表示する。視覚化クエリ言語は、表、チャート、グラフ、マップ、時系列、および視覚化の表など、データの視覚的表現を記述するための正式な言語である。これらの異なるタイプの視覚的表現は、1つのフレームワークに統合され、クエリ、分析、および視覚化を結合する。したがって、視覚化クエリ言語は、ある視覚的表現から別の視覚的表現へ(例えば、リストビューからクロスタブ、チャートへ)の変換を容易にする。
【0030】
図1は、対話型データ分析のためのグラフィカルユーザインターフェース100を示す。ユーザインターフェース100は、いくつかの実装形態に従って、データタブ114および分析タブ116を含む。データタブ114が選択されると、ユーザインターフェース100は、データペインとも称されるスキーマ情報領域110を表示する。スキーマ情報領域110は、データ視覚化を構築するために選択、および使用され得る名前付きのデータ要素(例えば、フィールド名)を提供する。いくつかの実装形態において、フィールド名のリストは、ディメンションのグループ(例えば、カテゴリデータ)とメジャーのグループ(例えば、数値)とに分けられる。いくつかの実装形態はまた、パラメータのリストも含む。分析タブ116が選択されると、ユーザインターフェースは、データ要素(図示せず)の代わりに分析機能のリストを表示する。
【0031】
グラフィカルユーザインターフェース100はまた、データ視覚化領域112も含む。データ視覚化領域112は、列シェルフ領域120および行シェルフ領域122など複数のシェルフ領域を含む。これらは、列シェルフ120および行シェルフ122とも称される。本明細書に示されるように、データ視覚化領域112はまた、視覚的グラフィックを表示するための大きな空間を有する(本明細書ではデータ視覚化とも称される)。データ要素がまだ選択されていないため、空間は最初に視覚的なグラフィックを有しない。いくつかの実装形態において、データ視覚化領域112は、シートと称される複数の層を有する。いくつかの実装形態において、データ視覚化領域112は、データ視覚化フィルタのための領域126を含む。
【0032】
いくつかの実装形態において、グラフィカルユーザインターフェース100はまた、自然言語コマンドを受信するための自然言語入力ボックス124(コマンドボックスとも称される)を含む。ユーザは、コマンドボックスと対話してコマンドを提供することができる。例えば、ユーザは、ボックス124にコマンドをタイピングすることによって、自然言語コマンドを提供することができる。加えて、ユーザは、コマンドを提供するためにマイクロホン220に話しかけることによって、コマンドボックスと間接的に対話することができる。いくつかの実装形態において、データ要素は、最初に列シェルフ120および行シェルフ122に関連付けられる(例えば、スキーマ情報領域110から列シェルフ120および/または行シェルフ122へのドラッグアンドドロップ操作を使用して)。最初の関連付けの後、ユーザは、自然言語コマンド(例えば、自然言語ボックス124内)を使用して、表示されたデータの視覚化をさらに探索することができる。場合によっては、ユーザは、自然言語入力ボックス124を使用して最初の関連付けを作成し、その結果、1つ以上のデータ要素が列シェルフ120および行シェルフ122に配置される。例えば、ユーザは、データ要素Xとデータ要素Yとの間の関係を作成するためのコマンドを提供することができる。コマンドを受信することに応答して、列シェルフ120および行シェルフ122は、データ要素でポピュレートされ得る(例えば、列シェルフ120はデータ要素Xでポピュレートされ得、行シェルフ122はデータ要素Yでポピュレートされ得るか、またはその逆である)。
【0033】
図2Aは、いくつかの実装形態によるグラフィカルユーザインターフェース100を表示することができるコンピューティングデバイス200を示すブロック図である。コンピューティングデバイス200の様々な例には、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ならびにディスプレイおよびデータ視覚化アプリケーション230を実行することができるプロセッサを有する他のコンピューティングデバイスが挙げられる。コンピューティングデバイス200は、典型的には、1つ以上の処理ユニット(プロセッサまたはコア)202、1つ以上のネットワークまたは他の通信インターフェース204、メモリ206、およびこれらの構成要素を相互接続するための1つ以上の通信バス208を含む。通信バス208は、任意選択的に、システム構成要素間の通信を相互接続し、制御する回路(チップセットと呼ばれることもある)を含む。コンピューティングデバイス200は、ユーザインターフェース210を含む。ユーザインターフェース210は、典型的には、ディスプレイデバイス212を含む。いくつかの実装形態において、コンピューティングデバイス200は、キーボード、マウス、および/または他の入力ボタン216などの入力デバイスを含む。代替的に、または加えて、いくつかの実装形態において、ディスプレイデバイス212は、タッチセンシティブ面214を含み、その場合、ディスプレイデバイス212は、タッチセンシティブディスプレイである。いくつかの実装形態において、タッチセンシティブ面214は、様々なスワイプジェスチャ(例えば、垂直および/または水平方向の連続ジェスチャ)および/または他のジェスチャ(例えば、シングル/ダブルタップ)を検出するように構成されている。タッチセンシティブディスプレイ214を有するコンピューティングデバイスにおいて、物理キーボードは任意選択である(例えば、キーボード入力が必要なときにソフトキーボードが表示され得る)。ユーザインターフェース210はまた、スピーカー、またはスピーカー、イヤホン、またはヘッドホンに接続されたオーディオ出力接続などのオーディオ出力デバイス218を含む。さらに、いくつかのコンピューティングデバイス200は、キーボードを補足または交換するためにマイクロホンおよび音声認識を使用する。任意選択的に、コンピューティングデバイス200は、オーディオ(例えば、ユーザからのスピーチ)をキャプチャするためのオーディオ入力デバイス220(例えば、マイクロホン)を含む。
【0034】
いくつかの実装形態において、メモリ206は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含んでもよい。いくつかの実装形態において、メモリ206は、プロセッサ(複数可)202からリモートに位置する1つ以上の記憶デバイスを含む。メモリ206、または代替的にメモリ206内の不揮発性メモリデバイス(複数可)は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態において、メモリ206、またはメモリ206のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを格納する。
・様々な基本的なシステムサービスを処理し、ハードウェアに依存するタスクを実施するための手順を含むオペレーティングシステム222、
・コンピューティングデバイス200を、インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなど、1つ以上の通信インターフェース204(有線または無線)を介して他のコンピュータおよびデバイスに接続するために使用される通信モジュール224、
・ユーザがネットワークを介してリモートのコンピュータまたはデバイスと通信することを可能にするウェブブラウザ226(またはウェブページを表示することができる他のアプリケーション)、
・オーディオ入力デバイス220によってキャプチャされたオーディオを処理するためのオーディオ入力モジュール228(例えば、マイクロホンモジュール)。キャプチャされたオーディオは、リモートサーバに送信され、および/またはコンピューティングデバイス200上で実行されるアプリケーション(例えば、データ視覚化アプリケーション230)によって処理され得る。
・データ視覚化および関連機能を生成するためのデータ視覚化アプリケーション230。いくつかの実装形態において、データ視覚化アプリケーション230はまた、以下も含む。
○ユーザが視覚的グラフィックスを構築するためのグラフィカルユーザインターフェース100。いくつかの実装形態において、グラフィカルユーザインターフェースは、自然言語ボックス124(
図1)を介して、ユーザ入力を受信するためのユーザ入力モジュール234を含む。例えば、ユーザは、1つ以上のデータソース242(コンピューティングデバイス200に格納されるか、またはリモートで格納され得る)および/またはデータソース(複数可)からのデータフィールドを識別する自然言語コマンドまたは表現を自然言語ボックス124に入力する。いくつかの実装形態において、自然言語表現は、オーディオ入力デバイス220によってキャプチャされた音声発話である。選択されたフィールドは、視覚的グラフィックを定義するために使用される。次いで、データ視覚化アプリケーション230は、生成された視覚的グラフィックをユーザインターフェース100に表示する。いくつかの実装形態において、データ視覚化アプリケーション230は、スタンドアロンアプリケーション(例えば、デスクトップアプリケーション)として実行される。いくつかの実装形態において、データ視覚化アプリケーション230は、ウェブサーバによって提供されるウェブページを使用して、ウェブブラウザ226または別のアプリケーション内で以下を実行する。
○ユーザ入力(例えば、自然言語入力)を使用して、対応する視覚的グラフィック(「データ視覚化」または「データビズ」とも称される)を自動的に生成および表示するデータ視覚化生成モジュール236、
〇自然言語ボックス124を使用して受信した自然言語入力(例えば、コマンド)を処理(例えば、解釈)するための自然言語処理モジュール238。いくつかの実装形態において、自然言語処理モジュール238は、自然言語コマンドを(例えば、トークンに)構文解析し、コマンドを中間言語(例えば、ArkLang)に変換する。自然言語処理モジュール238は、自然言語処理モジュール238によって自然言語コマンドの中間表現を形成するために使用される分析表現239を含む。自然言語処理モジュール238はまた、データベースまたはデータソース242に対してクエリを発行し、データベースまたはデータソース242から1つ以上のデータセットを取得するために、視覚化クエリ言語を採用することによって、中間表現をデータベースクエリに変換(例えば、コンパイル)する。
・所望のデータ視覚化の特性を定義するために使用される視覚的仕様240。いくつかの実装形態において、ユーザが提供する情報(例えば、ユーザ入力)は、視覚的仕様として格納される。いくつかの実装形態において、視覚的仕様240は、ユーザから受信した以前の自然言語コマンド、または自然言語コマンドを介してユーザによって指定されたプロパティを含む。いくつかの実装形態において、視覚的仕様240は、異なる詳細レベルに基づく2つ以上の集計を含む。詳細レベルについてのさらなる情報は、2015年7月16日に出願された米国特許出願第14/801,750号、発明の名称「Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization」に見ることができ、その全体が参照により本明細書に組み込まれている。
・データ視覚化アプリケーション230によって使用される、ゼロ個以上のデータベースまたはデータソース242(例えば、第1のデータソース244および第2のデータソース246)。いくつかの実装形態において、データソースは、スプレッドシートファイル、CSVファイル、XMLファイル、フラットファイル、もしくはJSONファイルとして格納されるか、またはリレーショナルデータベースに格納される。例えば、ユーザは、1つ以上のデータベースまたはデータソース242(コンピューティングデバイス200に格納され得るか、またはリモートに格納され得る)を選択し、データソース(複数可)からデータフィールドを選択し、選択されたフィールドを使用して視覚的グラフィックを定義する。
・各々がそれぞれのデータベースまたはデータソース242から直接導出される、ゼロ個以上のセマンティックモデル248(例えば、第1のセマンティックモデル248-1および第2のセマンティックモデル248-2)。セマンティックモデル248は、データベーススキーマを表し、属性に関するメタデータを含む。いくつかの実装形態において、セマンティックモデル248は、属性の代替ラベルまたは同義語のメタデータも含む。セマンティックモデル248は、データタイプ(例えば、「テキスト」、「日付」、「地理空間」、「ブール」、および「数値」)、属性(例えば、米ドルなどの通貨タイプ)、およびそれぞれのデータベースまたはデータソース242のデータフィールドのセマンティックロール(例えば、地理空間属性の「都市」ロール)を含む。いくつかの実装形態において、セマンティックモデル248はまた、各属性の統計値(例えば、データ分布、範囲制限、平均、およびカーディナリティ)をキャプチャする。いくつかの実装形態において、セマンティックモデル248は、多くのクエリ言語(例えば、平均、フィルタ、ソート)に見られる分析概念258のセットを含む文法レキシコン250で拡張されている。いくつかの実装形態において、セマンティックモデル248はまた、メジャーである属性(例えば、測定、集計、または数学演算に使用することができる属性)とディメンション(例えば、カウント以外では集計することができないフィールド)とを区別する。したがって、セマンティックモデル248は、顕著な属性および値を推論し、選択するのに役立つ。
・中間表現を形成するための分析表現239をサポートするために使用される分析概念258(
図2Bを参照)を含む文法レキシコン250、および
・各々がそれぞれのデータベースまたはデータソース242に関連付けられている、ゼロ個以上のデータソースレキシコン252(例えば、第1のデータソースレキシコン254および第2のデータソースレキシコン256)。データソースレキシコンの構成要素の詳細は、
図2Bに記載されている。
【0035】
図2Bは、いくつかの実装形態による、第1のデータソースレキシコン254の構成要素を示すブロック図である。第1のデータソースレキシコン254は、第1のデータソース244の1つ以上の表の名前に対応する表名274、第1のデータソース244の複数のデータフィールド276、および他のデータベースオブジェクト288を含む。各データフィールド276は、以下を含む。
・整数、文字列、日付、または浮動小数点数値などのデータタイプ278、
・データフィールドを解釈するために使用される1つ以上の概念280。例えば、データフィールド「Michael」は、「文字列」、「名前」、「性別(例えば、男性)」、「歌手」、「バスケットボールプレーヤ」、および/または「シェフ」などの概念を使用して解釈され得る。いくつかの実装形態において、1つ以上の概念がエラスティック検索から導出される。
・システムによって定義される1つ以上の同義語282。例えば、データフィールド「average」は、「mean」や「avg」などの同義語を含み得る。
・ユーザによって定義される1つ以上のエイリアス284。例えば、データフィールド「goods」は、「widgets」、「bananas」、および「my favorite field」などのエイリアスを含み得る。
・データ値286(例えば、カーディナリティの低い文字列フィールドの場合)。
【0036】
いくつかの実装形態において、データソースレキシコン254は、他のデータベースオブジェクト288も含む。
【0037】
図2Cは、いくつかの実装形態による文法レキシコン250の構成要素を示すブロック図である。いくつかの実装形態において、文法レキシコンは、分析表現239の形成をサポートする分析概念258を含む。分析概念258は、以下を含む。
・データベース属性の有限のセットであるフィールド260の概念。フィールドの概念の例には、「sales」および「product category」が挙げられる。
・データベース値の有限のセットである値262の概念。値の概念の例には、「$100」および「Avery Leckman」が挙げられる。
・複数の行の値を一緒にグループ化して、数学演算に基づいて単一の値を形成する演算子の有限のセットである、集計264の概念。集計の概念の例には、「average」、「median」、「count」、「distinct count」が挙げられる。
・データをデータ視覚化で示されるカテゴリに分割する演算子の有限のセットである、グループ266の概念。グループの概念の例には、「by」フィールドが挙げられる。
・フィールドのドメインのサブセットを返す演算子の有限のセットである、フィルタ268の概念。フィルタの概念の例「filter to」、「at least」、「between」、「at most」。
・フィールドのドメインのサブセットを返す演算子の有限のセット(フィルタ268に類似)であり、最大n行に制限し、1≦n≦Nであり、Nは、ドメイン内の行の総数である、制限270の概念。制限の概念の例には、「top」および「bottom」が挙げられる。
・データ行を順番に配置する演算子の有限のセットである、ソート272の概念。ソートの概念の例には、「ascending」、「descending」、および「alphabetical」が挙げられる。
【0038】
ArkLangは、対応するデータベースを表すセマンティックモデルのセット(例えば、セマンティックモデル248)、文脈自由文法(CFG)、およびセマンティック制約のセットから生成することができる。いくつかの実装形態において、ArkLangの方言は、特定のセマンティックモデルを修正し、文脈自由文法とセマンティックヒューリスティックの固定セットとを活用することによって生成することができる、構文的に有効で意味的に意味のあるすべての分析表現のセットである。
【0039】
いくつかの実装形態において、正準表現が分析表現239に割り当てられ(例えば、自然言語処理モジュール238によって)、自然言語クエリに固有の曖昧な構文解析の急増の問題に対処する。正準構造は、パーサーの観点から明確であり、自然言語処理モジュール238は、複数の構文解析間で迅速に選択して中間表現を形成することができる。
【0040】
図2Dは、いくつかの実装形態による、自然言語処理モジュール238の分析表現239を示すブロック図である。ArkLangの方言での正準形とともに、分析表現は以下を含む。
・集計表現290:これらは、正準形[agg att]であり、ここでagg∈Aggregationsであり、attは属性である。集計表現の例は、「average Sales」であり、ここで「average」はagg、および「Sales」はattである。
・グループ表現292:これらは、正準形[grp att]であり、ここでgrp∈Groupsであり、attは属性である。グループ表現の例は、「by Region」であり、ここで「by」はgrp、および「Region」はattである。
・フィルタ表現294:これらは、正準形[att filter val]であり、ここでattは属性であり、filter∈Filters、およびval∈Valuesである。フィルタ表現の例は、「Customer Name starts with John」であり、ここで「Customer」はatt、「starts with」はfilter、および「John」はvalである。
・制限表現296:これらは、正準形[limit val ge ae]であり、ここでlimit∈Limits、val∈Values、ge∈グループ表現、およびae∈集計表現である。制限表現の例は、「top 5 Wineries by sum of Sales」であり、ここで「top」はlimit、「5」はval、「Wineries」はgroup byの属性、および「sum of Sales」は集計表現である。
・ソート表現298:これらは、正準形[sort ge ae]であり、ここでsort∈Sorts、ge∈グループ表現、およびae∈集計表現である。ソート表現の例は、「sort Products in ascending order by sum of Profit」であり、ここで「ascending order」はsort、「Products」はgroup byの属性、および「sum of Profit」は集計表現である。
【0041】
いくつかの実装形態において、コンピューティングデバイス200は、ユーザが入力ボックス124にタイピングし始めたときに複数の候補オプションを含むドロップダウンメニューを表示するオートコンプリートモジュール、および自然言語コマンドとデータフィールド(図示せず)との間の構文的および意味的な曖昧さを解決する曖昧さモジュールなど他のモジュールも含む。これらのサブモジュールの詳細は、2018年9月18日に出願された米国特許出願第16/134,892号、発明の名称「Analyzing Natural Language Expressions in a Data Visualization User Interface」に記載されており、その全体が参照により本明細書に組み込まれる。
【0042】
図2は、コンピューティングデバイス200を示しているが、
図2は、本明細書で説明されている実装形態の構造的概略としてではなく、存在し得る様々な特徴の機能的説明としてより意図されている。実際には、当業者によって認識されるように、別々に示されたアイテムを組み合わせることができ、いくつかのアイテムを分離することができる。
【0043】
図3A~
図3Jは、例示的なデータソース、ならびに中間言語を背景として使用して、ユーザが入力した自然言語コマンドに応答して、視覚的表現の自動生成および表示を示す。中間言語を使用したコマンド処理に関するさらなる詳細については、
図4で説明される。
【0044】
図3Aは、それぞれの年のバスケットボールチームのプレーヤ、およびそれぞれの年のチーム別の勝利数を説明する例示的なデータソース310(例えば、
図2Aのデータベースまたはデータソース242)を示す。この例では、データソース310は、データ列に格納された複数のデータ値を含むデータ構造(例えば、スプレッドシート)である。いくつかの実装形態において、データソース310は、生の(例えば、元のまたはフォーマットされていない)データソースである。この例では、データソースフィールドは集計されていない(Wins列を除く)。いくつかの実装形態において、集計されていないデータソースフィールドを参照する分析表現(例えば、分析表現239)が、基礎となる表の各行について計算される。言い換えれば、表現の次元は行レベルであり、「詳細レベル(LOD)0」として知られている。
【0045】
図3Bは、元のデータソース310から生成された集計データソース320を示す。集計されたデータソース320は、集計されたデータ列「年別のチーム」を含む。集計されたデータソース320のフィールドは、各行のチームおよび年のフィールドを集計(例えば、グループ化)することによって導出される。集計されたデータソース320の次元は、「詳細レベル(LOD)1」である。言い換えれば、LOD1は、単一レベルの集計を表し、集計されたデータソース320は、行レベルのデータから導出された表である。
【0046】
図3Cは、グラフィカルユーザインターフェース100とのユーザ対話を示す。この例では、ユーザは、コマンドボックス124に自然言語表現(例えば、自然言語コマンド)312「チーム別の勝利の合計」を入力する。典型的に、自然言語表現は、データソース(例えば、データソース310)からのデータフィールドを識別する1つ以上の用語を含む。用語は、ディメンション(例えば、カテゴリデータ)またはメジャー(例えば、数値)であり得る。例で示されているように、自然言語入力は、典型的に、2つ以上の用語を含む。
【0047】
図3Dは、ユーザによって入力された自然言語表現312に応答して、グラフィカルユーザインターフェース100に自動的に生成および表示されるデータ視覚化330(例えば、水平棒グラフ)を示す。列シェルフ120および行シェルフ122はそれぞれ、自動生成されたフィールド「SUM(Wins)」332および「Team」334を含む。言い換えれば、データ視覚化330は、一方の軸(例えば、x軸)上の測定値(「wins」の数)および他方の軸(例えば、y軸)上のディメンション(「Team」)の集計(「sum」)の視覚的表現である。この場合、データ視覚化330に関連付けられた次元は、詳細レベル(LOD)1である。
【0048】
図3Eは、自然言語表現342「経時的なチーム別の勝利の合計」に応答して自動的に生成されるデータ視覚化340(例えば、水平棒グラフ)を示す。
図3Dと
図3Eとの間を比較すると、列シェルフ120のフィールドは両方の場合で同じである(SUM(Wins)332)のに対し、
図3Eの行シェルフ122は、フィールド「Team」334と「Year」344とを含む(すなわち、1つの追加フィールド「Year」を含む)ことを示す。データ視覚化340は、y軸が「Team」および「Year」のディメンションを含み、その年のチーム別の勝利の合計の内訳を示すという点で、
図3Dとは異なる。データ視覚化340に関連付けられた次元は、詳細レベル(LOD)1である。
【0049】
図3Fは、自然言語表現「平均勝利、heatにフィルタリング」352に応答して自動的に生成されるデータ視覚化350(例えば、水平棒グラフ)を示す。列シェルフ120は、自動生成されたフィールド「AVG(Wins)」356を含む。追加的に、フィルタ領域126は、「Team:heat」のためのフィルタが含まれていることを示している。データ視覚化350は、1つの軸(例えば、x軸)上の測定値(「wins」の数)の集計(「average」)を示す。y軸は、フィルタリングされたチームの「heat」に対応する単一の水平バーを示す。いくつかの実装形態において、データ視覚化領域112はまた、ユーザがフィルタリングしたいチームを手動で選択することを可能にするウィンドウ354を表示する。データ視覚化フィルタのさらなる詳細は、2015年7月16日に出願された米国特許出願第14/801,750号、発明の名称「Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization」に記載されており、その全体が参照により本明細書に組み込まれる。
【0050】
図3Fのデータ視覚化は、各年の勝利数を見てチーム平均を計算することを示す。「生の」データソースがTeam、Year、およびWinsのデータフィールドを含む場合、この平均は、LOD1を表す。これは、単一の集計を使用して計算することができるためである(例えば、SELECT Teamの計算と同様に、AVERAGE(Wins)FROM Data_Source GROUP BY Team)。一方、生のデータソースがプレイされた個々のゲームである場合、各チームの年間合計を取得するための第1の集計(LOD1の計算)があり、第2の集計は、第1の集計に基づいているので、年別の平均の計算はLOD2の計算である。例えば、生のデータソースがフィールドTeam、Gate_Date、およびWinner(ブールフィールド)を有する場合、第1の集計の計算は、SELECT Team、YEAR(Game_Date)AS Year、COUNT(*)AS Wins FROM Games WHERE Winner=1 GROPUP BY Team,YEAR(Game_Date)の計算に類似している。
【0051】
図3Gは、グラフィカルユーザインターフェース100上でユーザによって入力された、「1人以上のプレーヤの合計数を伴う年別のチーム別の勝利」という自然言語表現362を示す。
【0052】
いくつかの実装形態において、第2の集計(例えば、詳細レベル(LOD)2)をLOD1の表から導出することができる。
図3Hは、
図3Aの元のデータソース310から生成された詳細レベル(LOD)1を備えた集計データソース360を示す。データソース360は、データ列「年別のチーム」と、「勝利の合計」および「プレーヤの数」の集計列と、を含む。
図3Iは、集計データソース360から導出された(例えば、生成された)集計データソース370を示し、2回集計されたデータ列「年別のチーム別の勝利の合計別」を含む。すなわち、データ列「年別のチーム」および「勝利の合計」は、最初に集計されて、データフィールド「(55、(Bulls、1991))」、「(58、(Heat、2010))」、および「(55、(Heat、2011))」を形成する。年別に各チームに1人のプレーヤがおり、55勝が2人(チーム、年)いるため、(チーム、年)の55勝のプレーヤの数は2人である。したがって、データフィールドは、(例えば、55勝のプレーヤの数を合計することによって)再び集計されて、
図3Iのデータソース370を形成する。したがって、集計されたデータソース370は、第2の詳細レベル(LOD2)を有し、2回集計されたデータ列「年別のチーム別の勝利の合計別」を含む。いくつかの実装形態において、表計算およびLOD計算を使用して、複数の集計(例えば、LOD2)が実現される。
【0053】
図3Jは、自然言語表現362に応答して自動的に生成および表示され、データソース370の視覚的表現であるデータ視覚化380を示す。
【0054】
図4A~
図4Dは、いくつかの実装形態による自然言語表現の詳細レベルを判定する(402)ための方法400のフローチャートを提供する。方法400は、プロセスとも称される。
【0055】
いくつかの実装形態において、中間言語(ArkLangとも称される)により、汎用データベースに自然言語クエリを発行するプロセスが容易になる。いくつかの実装形態において、視覚化応答を生成するための自然言語入力から視覚化クエリ言語(VizQL)コマンドへの変換は、以下のアルゴリズムを使用する。
・入力:自然言語トークンのシーケンス
・出力:VizQLクエリ表現(複数可)
・fを、各自然言語の語をArkLangの概念(例えば、「average」の概念)にマッピングする変換関数とする。
・gを、ArkLangの分析表現をVizQLにマッピングする(トップダウン再帰)変換関数とする。
・次いで、hは、自然言語表現をVizQLにマッピングするfとgとの合成として定義される。
・自然言語からArkLangへの語彙翻訳を実施する。例えば、f(mean)=f(avg)=「average」およびf(wine prices)=「Price」。
・文脈自由文法と文法規則のセットとを活用して、結果として変換された用語をArkLang方言に構文解析する。例えば、「average」∈Aggregations、およびワイン価格∈Fieldsなので、[average,Price]∈集計表現となり、
・ArkLangセンテンスをVizQLコマンドにコンパイルし、そのコマンドをデータベースに対して発行する。例えば、変換g([average、Price])を実施する。
【0056】
方法400は、ディスプレイ212、1つ以上のプロセッサ202、およびメモリ206を有する(404)コンピューティングデバイス200で実施される(404)。メモリ206は、1つ以上のプロセッサ202による実行のために構成された1つ以上のプログラムを格納する(406)。いくつかの実装形態において、
図4A~
図4Dに示される動作は、メモリ206または他の非一時的コンピュータ可読記憶媒体に記憶された命令に対応する。コンピュータ可読記憶媒体は、磁気もしくは光ディスク記憶デバイス、フラッシュメモリなどのソリッドステート記憶デバイス、または他の不揮発性メモリデバイスを含み得る。コンピュータ可読記憶媒体に格納された命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または1つ以上のプロセッサによって解釈される他の命令フォーマットのうちの1つ以上を含み得る。方法400のいくつかの動作を組み合わせてもよく、および/またはいくつかの動作の順序を変更してもよい。
【0057】
コンピューティングデバイス200は、ディスプレイ212上にデータ視覚化インターフェース100を表示する(408)。
【0058】
コンピューティングデバイス200は、データソースのユーザ選択を受信する(410)。例えば、コンピューティングデバイスは、
図3Aに示されるように、データソース310のユーザ選択を受信する。
【0059】
コンピューティングデバイスは、データソース(例えば、データベースまたはデータソース242またはデータソース310)に向けられた自然言語コマンドを指定するためのユーザ入力を受信する(412)。いくつかの実装形態において、ユーザ入力は、データソースに関連付けられた1つ以上のフィールドを含む。例えば、ユーザ入力は、複数の語および/または数字を含む。
【0060】
いくつかの実装形態において、コンピューティングデバイス200は、データ視覚化インターフェースのユーザインターフェース制御を介して、ユーザ入力を受信する(414)。例えば、コンピューティングデバイスは、グラフィカルユーザインターフェース100のコマンドボックス124を介してユーザ入力を受信する。いくつかの実装形態において、ユーザは、ユーザ入力を入力する(例えば、入力する)ことができる。いくつかの実装形態において、ユーザ入力は、オーディオ入力デバイス220によってキャプチャされた音声発話である。
【0061】
コンピューティングデバイスは、自然言語コマンドで、(i)第1の集計における集計タイプを指定する第1の用語と、(ii)セマンティックモデル248で、第1の集計のために集計されるデータフィールドを指定する第2の用語と、(iii)第1の集計のグループ化を判定するために、セマンティックモデルでデータフィールドを指定する1つ以上の用語と、を識別することを含む、自然言語コマンドを構文解析することによって、データソース内のデータフィールドの文脈自由文法およびセマンティックモデル248に従って(例えば、自然言語処理モジュール238を使用して)中間表現を形成する(416)。
【0062】
いくつかの実装形態において、自然言語コマンドの構文解析のために構文解析アルゴリズムCocke-Kasami-Younger(CKY)が使用される。CKYアルゴリズムは、文脈自由文法でボトムアップ構文解析と動的計画法とを採用している。基礎となるCKYパーサーへの入力は、データベースクエリの基礎となる分析機能に見られる基本的なデータベース操作に対応する分析表現に基づいて、構文述語と意味述語との両方で拡張された生成規則を備えたこの文脈自由文法である。
【0063】
いくつかの実装形態において、自然言語コマンドを構文解析することは、自然言語コマンドを複数のトークンに構文解析する(418)ことを含む。
図3Cの例を参照すると、自然言語コマンド312は、「チーム別の勝利の合計」という語の文字列を含む。いくつかの実装形態において、トークンの各々は、語の文字列内の語である。例えば、自然言語処理モジュール238は、コマンド312を5つのトークン「sum」、「of」、「wins」、「by」、および「team」に構文解析する。
【0064】
いくつかの実装形態において、複数のトークンの各々について、コンピューティングデバイス200は、レキシコンでそれぞれのトークンを検索して(420)、それぞれのトークンに対応する概念を識別する。
図3の例では、コンピューティングデバイス200は、データソース310に対応する文法レキシコン250およびデータソースレキシコン252を検索して、それぞれのトークンに対応する概念を識別する。例えば、トークン「wins」および「team」は、データソースのフィールドに対応しているため、それらの概念はデータソースレキシコンで識別される可能性がある。一方、トークン「sum」および「of」は、文法レキシコン250で定義された集計264の概念およびグループ266の概念に関連付けられている。
【0065】
いくつかの実装形態において、自然言語コマンドは、複数の語を含む(422)。コンピューティングデバイス200は、レキシコンを使用して、自然言語コマンドのコンテキスト内で複数の語の各々の機能を判定する。複数のトークンの各々は、自然言語コマンドにおいて2つ以上の隣接する語を組み合わせることによって形成される単一の語または句のいずれかを含む。
【0066】
上記のように、
図3Cの自然言語コマンドは、5つのトークンに構文解析されている。いくつかの実装形態において、コンピューティングデバイス200は、トークンの1つ以上(例えば、「of」および「by」)がそれ自体では意味がないと判定する。この場合、コンピューティングデバイス200は、機能的に意味のないトークンをその直前または直後の語(例えば、トークン)と組み合わせてそれぞれの句を生成することによって、1つ以上の新しいトークンを形成する。この例では、コンピューティングデバイスは、「の合計」、「の勝利」、「別の勝利」、および「チーム別」の新しいトークン/句を形成する。コンピューティングデバイス200は、最初の2つの句が機能的に意味がないと再度判定し得、したがって、「by」の直前および後続の語を組み合わせて、「勝利の合計」という句を形成する。
【0067】
いくつかの実装形態において、中間表現を形成することは、トークンに対応する概念を連結する(424)ことを含む。表5は、いくつかの実装形態(例えば、自然言語処理モジュール238によって生成される)による、
図3C、
図3E、
図3F、および
図3Gの自然言語コマンドの中間表現を示す表500を示す。
【0068】
いくつかの実装形態において、コンピューティングデバイス200は、対応する概念を有していない1つ以上のトークンを識別し(426)、対応する概念を有する複数のトークンを使用して中間表現を形成する。言い換えれば、1つ以上の識別されたトークンが除外されて(すなわち、使用されない)、中間表現が形成される。
【0069】
いくつかの実装形態において、レキシコンは、データソースレキシコンおよび文法レキシコン250を含む(428)。いくつかの実装形態において、データソースレキシコンは、データベースに対応するレキシコンの一意の部分である。例えば、第1のデータソースレキシコン254は、第1のデータソース244に対応するレキシコンの一意の部分である。文法レキシコン250は、文脈自由文法に対応する事前定義された部分である。
【0070】
いくつかの実装形態において、コンピューティングデバイス200は、文脈自由文法を管理する1つ以上の事前定義された文法規則を使用して中間表現を形成する(430)。いくつかの実装形態において、事前定義された文法規則がBackus-Naur記法で指定されている。
【0071】
いくつかの実装形態において、各事前定義された文法規則は、事前定義された表現タイプ(例えば、分析表現239)を有する(432)。いくつかの実装形態において、事前定義された表現のタイプは、制限、グループ化、集計、フィルタリング、およびソートである。言い換えれば、形成される中間表現は、文脈自由文法の構文的に実行可能な表現である。
【0072】
いくつかの実装形態において、データソースレキシコン(例えば、第1のデータソースレキシコン254)は、データソース内のデータフィールド276に対応する複数のフィールドを含む(434)。複数のフィールドの各々は、1つ以上のエントリにマッピングされ(例えば、エラスティック検索を使用して)、エントリの各々は、概念280に対応する。
【0073】
いくつかの実装形態において、データソースレキシコンの複数のフィールドは、複数の同義語を含む(436)。
【0074】
いくつかの実装形態において、複数の同義語は、ユーザによって定義される第1のサブセットを含む(438)。いくつかの実装形態において、第1のサブセットは、エイリアス284を含む。
【0075】
いくつかの実装形態において、複数の同義語は、コンピューティングデバイス200によって事前定義された第2のサブセットを含む(440)。いくつかの実装形態において、第2のサブセットは、同義語282を含む。いくつかの実装形態において、同義語は、サードパーティのソース(例えば、マップサービス)からコンピューティングシステム200によって取得される。いくつかの実装形態において、第2のサブセットは、名前の略語を含む(例えば、カリフォルニアの「CA」)。
【0076】
いくつかの実装形態において、データソースレキシコン(例えば、第1のデータソースレキシコン254)は、データソースのセマンティックモデル248から生成される(442)。セマンティックモデル248は、属性の名前、属性の値、および値に対応するメタデータを含む。
【0077】
コンピューティングデバイスは、データソースに従って、中間表現を、第1の集計を含む1つ以上のデータベースクエリに変換する(444)。いくつかの実装形態において、変換は、
図3G~
図3Jおよび表500の中間表現に示すように、中間表現を再帰的に使用して、異なる詳細レベル(例えば、LOD2)を有する更新されたデータの視覚化を作成することを含む。
【0078】
コンピューティングデバイスは、1つ以上のデータベースクエリを実行して、データソースから第1の集計に従って集計された1つ以上のデータセットを取得する(446)。
【0079】
コンピューティングデバイスは、取得されたデータセットの更新されたデータ視覚化を生成および表示する(448)。
【0080】
いくつかの実装形態において、方法400は、複数の(例えば、別個の)データソースのユーザ選択を受信すること(450)をさらに含み、各々がデータソースに固有のデータソースレキシコンに関連付けられている。例えば、この方法は、第1のデータソース244および第2のデータソース246のユーザ選択を受信することを含む。第1のデータソース244は、第1のデータソース244に固有の第1のデータソースレキシコン254に関連付けられている。第2のデータソース246は、第2のデータソース256に固有の第2のデータソースレキシコン256に関連付けられている。
【0081】
いくつかの実装形態において、データソース244および246は、共通の文法レキシコン250を共有する(452)。
【0082】
上述の識別された実行可能モジュール、アプリケーション、または手順のセットの各々は、前述のメモリデバイスの1つ以上に格納され得、上述の機能を実施するための命令のセットに対応する。上述の識別されたモジュールまたはプログラム(すなわち、命令のセット)は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実装形態において組み合わされるか、または別様に再配置され得る。いくつかの実装形態において、メモリ214は、上述の識別されたモジュールおよびデータ構造のサブセットを格納する。さらに、メモリ214は、上述されていない追加のモジュールまたはデータ構造を格納し得る。
【0083】
本明細書で本発明の説明に使用される専門用語は、特定の実装形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本発明の説明および添付の特許請求の範囲で使用される場合、単数形「a」、「an」、および「the」は、特に文脈が明示しない限り、複数形も含むことが意図される。本明細書で使用される「および/または」という用語は、1つ以上の関連するリストされたアイテムのありとあらゆる可能な組み合わせを指し、それらを包含することも理解されよう。本明細書で使用される場合、「含む」および/または「含んでいる」という用語は、述べられた特徴、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つ以上の他の特徴、ステップ、動作、要素、構成要素、および/またはそれらの群の存在または追加を排除しないことがさらに理解されよう。
前述の記載は、説明の目的で、特定の実装形態を参照して記載されてきた。しかしながら、上記の例示的な論議は、網羅的であること、または本発明を開示された正確な形態に限定することを意図していない。上記の教示を考慮して、多くの修正および変形が可能である。実装形態は、本発明の原理およびその実際の応用を最もよく解説するために選択および記載され、それにより、当業者は、本発明および企図される特定の用途に好適な様々な修正を伴う様々な実装形態を最大限に利用できる。