(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-16
(54)【発明の名称】機能的に独立した視覚的コンテナを有するデータビジュアライゼーション分析キャンバス
(51)【国際特許分類】
G06F 3/0481 20220101AFI20240409BHJP
【FI】
G06F3/0481
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023555732
(86)(22)【出願日】2022-03-31
(85)【翻訳文提出日】2023-11-07
(86)【国際出願番号】 US2022022878
(87)【国際公開番号】W WO2022212736
(87)【国際公開日】2022-10-06
(32)【優先日】2021-12-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-31
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-01-31
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-01-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521550194
【氏名又は名称】タブロー ソフトウェア,エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ウィルデン,アリソン,アン
(72)【発明者】
【氏名】カリス,ダーク
(72)【発明者】
【氏名】セトラー,ヴィディヤ,ラガヴァン
(72)【発明者】
【氏名】デグチャル,ロディオン
(72)【発明者】
【氏名】ケ,ジョナサン,ディー.
(72)【発明者】
【氏名】リペロプーロス,フィリッポス
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA26
5E555BA02
5E555BA04
5E555BB02
5E555BB04
5E555BC17
5E555CB08
5E555CB34
5E555CC03
5E555DB03
5E555DB18
5E555DB51
5E555DC19
5E555DC25
5E555DC35
5E555FA00
(57)【要約】
コンピュータシステムにおいて、ディスプレイ上にグラフィカルユーザインタフェースが表示される。グラフィカルユーザインタフェースは、(a)データフィールドアイコンを表示するスキーマ領域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの対応するデータフィールドを表す、スキーマ領域と、(b)キャンバス領域とを含む。スキーマ区域からデータフィールドアイコンを選択し、それをキャンバス区域上に布置するユーザ入力を受信したことに応答して、キャンバス区域上にブロックカードが表示される。ブロックカードは、(i)行ベースの配列、列ベースの配列、又はインライン配列を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)1つ以上の視覚的エンコーディングと、を指示するユーザインタフェースアフォーダンスを含む。ブロックカードに指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、そのデータソースのデータビジュアライゼーションを生成して表示される。
【特許請求の範囲】
【請求項1】
データの視覚的探索のための方法であって、
1つ以上のプロセッサと、ディスプレイと、前記1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、
(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)キャンバス区域とを含むグラフィカルユーザインタフェースを前記ディスプレイ上に表示することと、
前記スキーマ区域から第1のデータフィールドアイコンを選択して、前記第1のデータフィールドアイコンを前記キャンバス区域上に布置する第1のユーザ入力を受信することと、
前記第1のユーザ入力を受信したことに応答して、
前記キャンバス区域上にブロックカードを表示することであって、前記ブロックカードが(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)前記第1のデータフィールドアイコンによって表現される第1のデータフィールドのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングを指示する複数のユーザインタフェースアフォーダンスを含む、ことと、
前記ブロックカード上に指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、前記データソースのデータビジュアライゼーションを生成して表示することと、
を含む、方法。
【請求項2】
前記ブロックカード上に指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、前記データソースの前記データビジュアライゼーションを生成して表示することが、
前記ブロックカード上の前記視覚的エンコーディングを指定するディメンションデータフィールドに従って詳細レベルを定義することと、
前記ブロックカードについて、各メジャーデータフィールドの集計を指定するクエリを、前記詳細レベルにある前記ディメンションデータフィールドに従って生成することと、
前記クエリを実行して前記データソースからタプルのセットを取り出すことであって、データフィールドアイコンが視覚的エンコーディングを指定する前記データフィールドの各々を各タプルが含み、前記メジャーデータフィールドの各々が、前記詳細レベルに従って集計されることと、
各視覚的マークが1つの取り出されたタプルに対応する、前記データビジュアライゼーションを生成することと、
を含む、請求項1に記載の方法。
【請求項3】
前記ブロックカードが第1のブロックカードであり、前記方法が、
前記スキーマ区域から第2のデータフィールドアイコンを選択する第2のユーザ入力を受信することと、
前記第2のユーザ入力を受信したことに応答して、
前記第1のブロックカード上にドロップ目標を表示することであって、前記第1のブロックカード上の各ドロップ目標が、前記第2のデータフィールドアイコンとの関連付けのために選択され得る各自の視覚的エンコーディングを指定することと、
前記第1のブロックカードに隣接してドロップ目標を表示することであって、各隣接ドロップ目標が、前記ブロックカードに関連する子ブロックカード又は親ブロックカードを作成するための別個の選択肢を指定することと、
ユーザが前記第2のデータフィールドアイコンを(i)前記第1のブロックカードのための前記ドロップ目標のうちの1つ、又は(ii)前記隣接ドロップ目標のうちの1つの上に布置したことに応答して、更新されたデータビジュアライゼーションを生成して表示することであって、レイアウトタイプ、マークタイプ、及び視覚的エンコーディングが、前記ユーザが前記第2のデータフィールドアイコンを布置したことに従って判定されることと、
を更に含む、請求項1又は2に記載の方法。
【請求項4】
前記第2のデータフィールドアイコンが、前記第1のブロックカード上の前記ドロップ目標のうちの1つの上に布置され、それによって、前記第2のデータフィールドアイコンに対応する第2のデータフィールドに基づいて視覚的エンコーディングが追加される、請求項3に記載の方法。
【請求項5】
前記第2のデータフィールドアイコンが、前記隣接ドロップ目標のうちの1つの上に布置され、それによって、前記第1のブロックカードの親又は子である第2のブロックカードが形成され、前記更新されたデータビジュアライゼーションを生成することが、前記第1のブロックカード上に指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングと、前記第2のブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングとに従ってデータビジュアライゼーションを生成することを含む、請求項3に記載の方法。
【請求項6】
前記第2のブロックカードが前記第1のブロックカードの子であり、前記更新されたデータビジュアライゼーションを生成することが、
(i)前記第1のブロックカード上の前記視覚的エンコーディングを指定するディメンションデータフィールドに従って、第1の詳細レベルを定義することと、
(i)前記第1のブロックカード上の前記視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)前記第2のブロックカード上の前記視覚的エンコーディングを指定するディメンションデータフィールドに従って、第2の詳細レベルを定義することと、
前記第1のブロックカードについて、前記第1のブロックカードに関連付けられた各メジャーデータフィールドの集計を指定する第1のクエリを、前記第1の詳細レベルにある前記ディメンションデータフィールドに従って生成することと、
前記第2のブロックカードについて、前記第2のブロックカードに関連付けられた各メジャーデータフィールドの集計を指定する第2のクエリを、前記第2の詳細レベルにある前記ディメンションデータフィールドに従って生成することと、
前記第1のクエリを実行して、前記データソースからタプルの第1のセットを取り出すことと、
前記第2のクエリを実行して、前記データソースからタプルの第2のセットを取り出すことと、
タプルの前記第1のセットの各々を表現する各自の第1の視覚的マークと、前記第2のタプルセットの各々を表現する各自の第2の視覚的マークとを含む、前記更新されたデータビジュアライゼーションを生成することと、
を含む、請求項5に記載の方法。
【請求項7】
前記更新されたデータビジュアライゼーションを生成することが、前記第1のブロックカードに基づいて第1のデータビジュアライゼーション部分を生成することと、前記第2のブロックカードに基づいて第2のデータビジュアライゼーション部分を生成することとを含み、前記更新されたデータビジュアライゼーションが、前記第1のデータビジュアライゼーション部分と前記第2のデータビジュアライゼーション部分との連結を含む、請求項5又は6に記載の方法。
【請求項8】
ユーザが前記第2のデータフィールドアイコンを前記隣接ドロップ目標のうちの1つの上に布置すると、
前記第1のブロックカードと前記第2のブロックカードとの間の階層関係を表現する視覚インジケータを表示すること、
を更に含む、請求項5~7のいずれか一項に記載の方法。
【請求項9】
前記キャンバス区域上の前記第1のブロックカードと前記第2のブロックカードとの互いに対する視覚的位置決めが、前記データビジュアライゼーション内の前記第1のブロックカードの視覚的マークと前記第2のブロックカードの視覚的マークとの相対的な布置を判定する、請求項5~8のいずれか一項に記載の方法。
【請求項10】
前記第2のデータフィールドアイコンが布置された前記隣接ドロップ目標が前記第1のブロックカードの右又は前記第1のブロックカードの下方に位置するという判定に従って、(i)前記第1のブロックカードに関連付けられたディメンションデータフィールド及び(ii)前記第2のブロックカードに関連付けられたディメンションデータフィールドに従って、前記第2のブロックカードに関連付けられたメジャーデータフィールドを自動的に集計すること、
を含む、請求項5~9のいずれか一項に記載の方法。
【請求項11】
前記第2のデータフィールドが布置された前記隣接ドロップ目標が前記第1のブロックカードの左又は前記第1のブロックカードの上方に位置するという判定に従って、(i)前記第2のブロックカードに関連付けられたディメンションデータフィールド及び(ii)前記第1のブロックカードに関連付けられたディメンションデータフィールドに従って、前記第1のブロックカードに関連付けられたメジャーデータフィールドを自動的に集計すること、
を含む、請求項5~10のいずれか一項に記載の方法。
【請求項12】
前記ブロックカードに隣接して表示される前記ドロップ目標は、前記第2のデータフィールドアイコンがディメンションデータフィールドを表現するのか、又はメジャーデータフィールドを表現するのかに基づいて判定される、請求項3~11のいずれか一項に記載の方法。
【請求項13】
前記第2のデータフィールドアイコンがディメンションデータフィールドを表現するという判定に従って、前記ブロックカードに隣接する前記ドロップ目標が、行レイアウトタイプを指定する第1のドロップ目標と、列レイアウトタイプを指定する第2のドロップ目標とを含む、請求項3~12のいずれか一項に記載の方法。
【請求項14】
前記第2のデータフィールドアイコンがメジャーデータフィールドを表現するという判定に従って、インラインレイアウトタイプを指定するドロップ目標を表示すること、請求項3~13のいずれか一項に記載の方法。
【請求項15】
前記ブロックカードが第1のブロックカードであり、前記方法が、
前記スキーマ区域から第3のデータフィールドアイコンを選択する第3のユーザ入力を受信することと、
前記第3のユーザ入力を受信したことに応答して、
前記第1のブロックカード上にドロップ目標を表示することであって、前記第1のブロックカード上の各ドロップ目標が、前記第3のデータフィールドアイコンとの関連付けのために選択され得る各自の視覚的エンコーディングを指定することと、
前記第1のブロックカードに隣接してドロップ目標を表示することであって、各隣接ドロップ目標が、前記ブロックカードに関連する子ブロックカード又は親ブロックカードを作成するための別個の選択肢を指定することと、
ユーザが前記第3のデータフィールドアイコンを、前記表示されたドロップ目標のいずれかの外側の前記キャンバス区域上の占有されていないエリア上に布置したことに応答して、
前記第1のブロックカードを含む他のブロックカードから独立した第3のブロックカードを、前記第3のデータフィールドアイコンによって表現される第3のデータフィールドのデータ値に従って生成することと、
前記第3のブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、第2のデータビジュアライゼーションを生成して表示することであって、前記第2のデータビジュアライゼーションは、前記第1のデータビジュアライゼーションとは別々であり、前記第1のデータビジュアライゼーションと同時に表示されることと、
を更に含む、請求項1~14のいずれか一項に記載の方法。
【請求項16】
前記第1のユーザ入力が、ドラッグ&ドロップジェスチャである、請求項1~15のいずれか一項に記載の方法。
【請求項17】
前記第1のユーザ入力が第1の部分及び第2の部分を含み、前記第1の部分が前記第1のデータフィールドアイコンを選択し、前記第2の部分が前記第1のデータフィールドアイコンを前記キャンバス区域上に布置する、請求項1~15のいずれか一項に記載の方法。
【請求項18】
前記ブロックカードが、デフォルトレイアウトタイプ、デフォルトマークタイプ、及び1つ以上のデフォルト視覚的エンコーディングを自動的に割り当てられる、請求項1~17のいずれか一項に記載の方法。
【請求項19】
前記複数のユーザアフォーダンスが、
前記ブロックカードの前記レイアウトタイプを示す第1のユーザ選択可能なユーザインタフェース要素と、
前記ブロックカードの前記マークタイプを示す第2のユーザ選択可能なユーザインタフェース要素と、
各々が各自の視覚的エンコーディングを示す複数の追加のユーザインタフェース要素と、
を含む、請求項1~18のいずれか一項に記載の方法。
【請求項20】
コンピュータシステムであって、
表示生成構成要素と、
1つ以上の入力デバイスと、
1つ以上のプロセッサと、
1つ以上のプログラムを記憶するメモリと、を含み、前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムが、
(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)キャンバス区域とを含むグラフィカルユーザインタフェースを前記ディスプレイ上に表示し、
前記スキーマ区域から第1のデータフィールドアイコンを選択して、前記第1のデータフィールドアイコンを前記キャンバス区域上に布置する第1のユーザ入力を受信し、
前記第1のユーザ入力を受信したことに応答して、
前記キャンバス区域上にブロックカードを表示し、前記ブロックカードが(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)前記第1のデータフィールドアイコンによって表現される第1のデータフィールドのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングを指示する複数のユーザインタフェースアフォーダンスを含み、
前記ブロックカード上に指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、前記データソースのデータビジュアライゼーションを生成して表示する、
ための命令を含む、コンピュータシステム。
【請求項21】
1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、表示生成構成要素及び1つ以上の入力デバイスを有するコンピュータシステムによって実行されると、前記デバイスに、
(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)キャンバス区域とを含むグラフィカルユーザインタフェースを前記ディスプレイ上に表示させ、
前記スキーマ区域から第1のデータフィールドアイコンを選択して、前記第1のデータフィールドアイコンを前記キャンバス区域上に布置する第1のユーザ入力を受信させ、
前記第1のユーザ入力を受信したことに応答して、
前記キャンバス区域上にブロックカードを表示させ、前記ブロックカードが(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)前記第1のデータフィールドアイコンによって表現される第1のデータフィールドのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングを指示する複数のユーザインタフェースアフォーダンスを含み、
前記ブロックカード上に指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、前記データソースのデータビジュアライゼーションを生成して表示する、
コンピュータ可読記憶媒体。
【請求項22】
コンピュータシステムであって、
表示生成構成要素と、
1つ以上の入力デバイスと、
1つ以上のプロセッサと、
1つ以上のプログラムを記憶するメモリと、を含み、前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムが、請求項1~19に記載の方法のいずれかを遂行するための命令を含む、コンピュータシステム。
【請求項23】
1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、表示生成構成要素及び1つ以上の入力デバイスを有するコンピュータシステムによって実行されると、前記デバイスに請求項1~19に記載の方法のいずれかを遂行させる命令を含む、コンピュータ可読記憶媒体。
【請求項24】
データビジュアライゼーションを生成する方法であって、
1つ以上のプロセッサと、ディスプレイと、前記1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、
(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)複数のブロックカードを含むキャンバス区域であって、各ブロックカードが、(i)行ベースの配置、(ii)列ベースの配置、又は(iii)インライン配置のうちの1つである各自のレイアウトタイプを指定し、各ブロックカードは、ユーザが1つ以上の各自のデータフィールドアイコンを前記キャンバス区域上に布置したことに応答して生成される、キャンバス区域と、を含むグラフィカルユーザインタフェースを前記ディスプレイ上に表示することと、
各ブロックカードについて、前記各自のブロックカードに関連付けられたデータフィールドのデータのタプルを取り出すために、前記各自のデータベースクエリを生成して実行することと、
取り出された各タプルについて、各自の行インデックス及び各自の列インデックスを含む各自の2次元グリッド位置を計算することと、
取り出された各タプルが前記各自の計算されたグリッド位置に表示される視覚的マークとして表現されるデータビジュアライゼーションを生成して表示することと、
を含む、方法。
【請求項25】
取り出された各タプルについて、前記各自の2次元グリッド位置を計算することが、ブロックオブジェクトの有向非巡回グラフを形成することを含み、各ブロックオブジェクトは、(i)各自の表示されたブロックカード、(ii)ルート行オブジェクト、又は(iii)ルート列オブジェクトに対応し、前記グラフ内の各リンクは、前記キャンバス区域上のブロックカードの各自の対の空間位置によって判定される、ブロックカードの各自の対の間の各自の階層関係、又は、あるブロックカードと前記ルート行オブジェクト若しくは前記ルート列オブジェクトとの間の関係のいずれかを表現する、請求項24に記載の方法。
【請求項26】
取り出された各タプルについて、前記各自の2次元グリッド位置を計算することが、
前記ルート列オブジェクトを除去し、前記ルート行オブジェクトからのリンク及び前記行ベースの配置を有するブロックカードに対応するブロックオブジェクトからのリンクのみを保持することによって、前記有向非巡回グラフから行ブロックツリーを生成することと、
行タプルツリーであって、そのノードが単一のルート行ノードと、前記取り出されたタプルの各々に対応する各自のノードとを含む行タプルツリーを生成し、N
1がルート行ノードであり、かつN
2が、前記ルート行オブジェクトの子であるブロックオブジェクトについて取り出されたタプルに対応する場合、又は、N
1及びN
2が、取り出されたタプルT
1及びT
2に対応し、
前記タプルT
1及びT
2が、ブロックオブジェクトB
1及びB
2について取り出されたものであり、
前記ブロックオブジェクトB
1が、前記行ブロックツリー内で前記ブロックオブジェクトB
2の親であり、
前記タプルT
1及びT
2が、それらの共有するディメンションデータフィールドの各々について同じデータ値を有する場合、前記行タプルツリー内のN
1及びN
2の各対の間に各自のリンクを形成することと、
前記行タプルツリー構造を深さ優先順序でトラバースすることによって各タプルに行インデックスを割り当てることと、
を更に含む、請求項24~25のいずれか一項に記載の方法。
【請求項27】
前記行タプルツリーを前記深さ優先順序でトラバースすることが、前記行ブロックツリー内のブロックオブジェクトの順序付け、各タプル内のディメンションデータフィールドのデータ値の順序付け、及び任意のユーザ指定のソート順序に従って、前記取り出されたタプルをソートすることを更に含む、請求項26のいずれか一項に記載の方法。
【請求項28】
前記取り出された各タプルについて、前記各自の2次元グリッド位置を計算することが、
前記ルート行オブジェクトを除去し、前記ルート列オブジェクトからのリンク及び前記列ベースの配置を有するブロックカードに対応するブロックオブジェクトからのリンクのみを保持することによって、前記有向非巡回グラフから列ブロックツリーを生成することと、
列タプルツリーであって、そのノードが単一のルート列ノードと、前記取り出されたタプルの各々に対応する各自のノードとを含む列タプルツリーを生成し、N
1がルート列ノードであり、かつN
2が、前記ルート列オブジェクトの子であるブロックオブジェクトについて取り出されたタプルに対応する場合、又は、
N
1及びN
2が、取り出されたタプルT
1及びT
2に対応し、前記タプルT
1及びT
2が、ブロックオブジェクトB
1及びB
2について取り出されたものであり、前記ブロックオブジェクトB
1が前記列ブロックツリー内で前記ブロックオブジェクトB
2の親であり、前記タプルT
1及びT
2が、それらの共有するディメンションデータフィールドの各々について同じデータ値を有する場合、前記列タプルツリー内のN
1及びN
2の各対の間に各自のリンクを形成することと、前記列タプルツリーを深さ優先順序でトラバースすることによって、各タプルに列インデックスを割り当てることと、
を更に含む、請求項25~27のいずれか一項に記載の方法。
【請求項29】
前記列タプルツリーを前記深さ優先順序でトラバースすることが、前記列ブロックツリー内のブロックオブジェクトの順序付け、各タプル内のディメンションデータフィールドのデータ値の順序付け、及び任意のユーザ指定のソート順序に従って、前記取り出されたタプルをソートすることを更に含む、請求項28に記載の方法。
【請求項30】
各タプルが視覚的マークとして表現される前記データビジュアライゼーションを生成することが、
前記行ベースの配置又は前記列ベースの配置のレイアウトタイプを有する各ブロックカードについて、前記各自のブロックカードについて取り出された各タプルを異なるグリッド位置に割り当てることを更に含む、請求項24~29のいずれか一項に記載の方法。
【請求項31】
各タプルが視覚的マークとして表現される前記データビジュアライゼーションを生成することが、
前記インライン配置のレイアウトタイプを有する各ブロックカードについて、前記各自のブロックカードについて取り出された前記タプルの全てを各自の単一のグリッド位置に割り当てることを更に含む、請求項24~30のいずれか一項に記載の方法。
【請求項32】
各ブロックカードが、前記データビジュアライゼーションの1つの各自の視覚的構成要素についてのデータを取り出すクエリを生成する、請求項24~31のいずれか一項に記載の方法。
【請求項33】
データフィールドアイコンを前記キャンバス区域上に布置するユーザ入力を受信し、それによって、第1のブロックカードを更新又は作成することと、
前記ユーザ入力に応答して、前記第1のブロックカード以外のブロックカードに対応するクエリを実行することなく、前記第1のブロックカードに対応する生成されたクエリを実行することと、
を更に含む、請求項32に記載の方法。
【請求項34】
前記第1のブロックカードに対応する前記生成されたクエリを実行したことに応答して、前記第1のブロックカード以外のブロックカードについて既に生成されている視覚的構成要素を更新することなく、前記データビジュアライゼーション内に新たな視覚的構成要素を生成する、又は前記データビジュアライゼーション内に現在表示されている視覚的構成要素を更新すること、
を更に含む、請求項33に記載の方法。
【請求項35】
第1のブロックカードが、マークタイプと、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルを指定する1つ以上の視覚的エンコーディングとを指定し、前記第1のブロックカードについて取り出された各タプルは、前記指定されたマークタイプを有する視覚的マークに対応する、請求項24~34のいずれか一項に記載の方法。
【請求項36】
前記複数のブロックカードの各ブロックカードについて、
前記ブロックカード内の前記1つ以上の視覚的エンコーディングを指定するディメンションデータフィールドに従って、前記ブロックカードについての第1の詳細レベルを判定することと、
(i)前記ブロックカード内の前記1つ以上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)前記ブロックカードの任意の祖先ブロックカード内の視覚的エンコーディングを指定するディメンションデータフィールドに従って、前記ブロックカードについての第2の詳細レベルを判定することと、
を更に含む、請求項24~35のいずれか一項に記載の方法。
【請求項37】
各ブロックカードについて、前記各自のデータベースクエリを実行することが、前記各自のブロックカードに関連付けられた各メジャーデータフィールドを、前記第2の詳細レベルにある前記ディメンションデータフィールドに従って集計することを含む、請求項36に記載の方法。
【請求項38】
前記キャンバス上での前記複数のブロックカードの互いに対する布置により、前記複数のブロックカード間の階層関係を判定する、請求項24~37のいずれか一項に記載の方法。
【請求項39】
前記キャンバス上での前記複数のブロックカードの互いに対する布置により、隣接関係グラフを形成し、前記ブロックオブジェクトの有向非巡回グラフが前記隣接関係グラフに基づく、請求項25~37のいずれか一項に記載の方法。
【請求項40】
コンピュータシステムであって、
表示生成構成要素と、
1つ以上の入力デバイスと、
1つ以上のプロセッサと、
1つ以上のプログラムを記憶するメモリと、を含み、前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムが、
(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)複数のブロックカードを含むキャンバス区域であって、各ブロックカードが、(i)行ベースの配置、(ii)列ベースの配置、又は(iii)インライン配置のうちの1つである各自のレイアウトタイプを指定し、各ブロックカードは、ユーザが1つ以上の各自のデータフィールドアイコンを前記キャンバス区域上に布置したことに応答して生成される、キャンバス区域と、を含むグラフィカルユーザインタフェースを前記ディスプレイ上に表示し、
各ブロックカードについて、前記各自のブロックカードに関連付けられたデータフィールドのデータのタプルを取り出すために、前記各自のデータベースクエリを生成して実行し、
取り出された各タプルについて、各自の行インデックス及び各自の列インデックスを含む各自の2次元グリッド位置を計算し、
取り出された各タプルが前記各自の計算されたグリッド位置に表示される視覚的マークとして表現される、データビジュアライゼーションを生成して表示する、
のための命令を含む、
コンピュータシステム。
【請求項41】
1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、表示生成構成要素及び1つ以上の入力デバイスを有するコンピュータシステムによって実行されると、前記デバイスに、
(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)複数のブロックカードを含むキャンバス区域であって、各ブロックカードが、(i)行ベースの配置、(ii)列ベースの配置、又は(iii)インライン配置のうちの1つである各自のレイアウトタイプを指定し、各ブロックカードは、ユーザが1つ以上の各自のデータフィールドアイコンを前記キャンバス区域上に布置したことに応答して生成される、キャンバス区域と、を含むグラフィカルユーザインタフェースを前記ディスプレイ上に表示させ、
各ブロックカードについて、前記各自のブロックカードに関連付けられたデータフィールドのデータのタプルを取り出すために、前記各自のデータベースクエリを生成して実行させ、
取り出された各タプルについて、各自の行インデックス及び各自の列インデックスを含む各自の2次元グリッド位置を計算させ、
取り出された各タプルが前記各自の計算されたグリッド位置に表示される視覚的マークとして表現されるデータビジュアライゼーションを生成して表示させる、
コンピュータ可読記憶媒体。
【請求項42】
コンピュータシステムであって、
表示生成構成要素と、
1つ以上の入力デバイスと、
1つ以上のプロセッサと、
1つ以上のプログラムを記憶するメモリと、を含み、前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムが、請求項24~39に記載の方法のいずれかを遂行するための命令を含む、
コンピュータシステム。
【請求項43】
1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、表示生成構成要素及び1つ以上の入力デバイスを有するコンピュータシステムによって実行されると、前記デバイスに請求項24~39に記載の方法のいずれかを遂行させる命令を含む、コンピュータ可読記憶媒体。
【請求項44】
データの視覚的探索のための方法であって、
1つ以上のプロセッサと、ディスプレイと、前記1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、
ユーザがデータフィールドアイコンをキャンバス区域上に布置したことに従って、複数の相互に関連するブロックオブジェクト明細を生成することであって、各データフィールドアイコンは、複数のデータフィールドアイコンを表示するスキーマ区域から選択され、各データフィールドアイコンは、ユーザ選択のデータソースからの各自のデータフィールドを表現し、各ブロックオブジェクト明細は、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)ユーザ選択のデータフィールドアイコンのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングとを含むことと、
各ブロックオブジェクト明細について、
前記各自のブロックオブジェクト明細について前記視覚的エンコーディングを指定する前記ユーザ選択のデータフィールドアイコンに従って、各自のクエリを生成することと、
前記各自のクエリを実行して、前記データソースからタプルの各自のセットを取り出すことであって、各タプルが、前記各自のブロックオブジェクト明細について前記視覚的エンコーディングを指定する前記ユーザ選択のデータフィールドアイコンに対応するデータフィールドのデータ値を含むことと、
前記各ブロックオブジェクト明細内で指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、データビジュアライゼーションを生成することであって、前記タプルの各自のセットの各々の中の各タプルが、前記データビジュアライゼーション内に視覚的マークとして表現されることと、
を含む、方法。
【請求項45】
前記各自のクエリを生成することが、前記各自のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールドに従って、詳細レベルを定義することを含み、
前記各自のクエリを実行することが、前記各自のブロックオブジェクト明細内の各メジャーデータフィールドを、前記詳細レベルにある前記ディメンションデータフィールドに従って集計することを含む、
請求項44に記載の方法。
【請求項46】
第1のクエリが第1のブロックオブジェクト明細に対応し、第2のクエリが第2のブロックオブジェクト明細に対応し、前記第1のブロックオブジェクト明細が、前記第2のブロックオブジェクト明細に対応する第2のブロックオブジェクトの親ブロックオブジェクトである第1のブロックオブジェクトに対応し、前記第1のブロックオブジェクト明細及び前記第2のブロックオブジェクト明細の各々について各自のクエリを生成することが、
前記第1のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールドに従って、第1の詳細レベルを定義することと、
(i)前記第1のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールド及び(ii)前記第2のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールドに従って、第2の詳細レベルを定義することと、
前記第1のブロックオブジェクト明細について、前記第1のブロックオブジェクト明細に関連付けられた各メジャーデータフィールドの集計を指定する第1のクエリを、前記第1の詳細レベルにある前記ディメンションデータフィールドに従って生成することと、
前記第2のブロックオブジェクト明細について、前記第2のブロックオブジェクト明細に関連付けられた各メジャーデータフィールドの集計を指定する第2のクエリを、前記第2の詳細レベルにある前記ディメンションデータフィールドに従って生成することと、
を含む、請求項44に記載の方法。
【請求項47】
複数の相互に関連するブロックオブジェクトを生成することが、ユーザが第1のデータフィールドアイコンを前記キャンバス区域上に布置したことに従って、第1のブロックオブジェクト明細を生成することであって、前記第1のブロックオブジェクト明細に指定されたレイアウトタイプ、マークタイプ、及び1つ以上の視覚エンコーディングは、当初、前記第1のデータフィールドアイコンに関連付けられた第1のデータフィールドの値に従って、前記コンピュータシステムによって判定されることと、
ユーザが第2のデータフィールドアイコンをキャンバス区域上に布置したことに従って、第2のブロックオブジェクト明細を生成することであって、前記第2のブロックオブジェクト明細に指定されたレイアウトタイプ、マークタイプ、及び1つ以上の視覚エンコーディングは当初、前記第2のデータフィールドアイコンに関連付けられた第2のデータフィールドの値に従って、前記コンピュータシステムによって判定されることと、
を含む、請求項44又は45のいずれか一項に記載の方法。
【請求項48】
各ブロックオブジェクト明細が、前記キャンバス区域内の各自のユーザインタフェースブロックカードによって表現され、前記各自のユーザインタフェースブロックカードが、
前記各自のユーザインタフェースブロックカードのレイアウトタイプを指示する選択可能なユーザインタフェース要素、
前記各自のユーザインタフェースブロックカードのマークタイプを指示する選択可能なユーザインタフェース要素、及び
前記各自のブロックオブジェクト明細の前記1つ以上の視覚的エンコーディングを示す複数のユーザインタフェース要素、
を表示する、
請求項44~47のいずれか一項に記載の方法。
【請求項49】
各ブロックオブジェクト明細が、前記データビジュアライゼーション内の各自の視覚的構成要素を判定し、前記各自のビジュアライゼーション構成要素が、前記データビジュアライゼーション内の他の視覚的構成要素から独立して更新することができる、請求項44~48のいずれか一項に記載の方法。
【請求項50】
各ブロックオブジェクト明細について、
前記ブロックオブジェクト明細内の1つ以上の視覚的エンコーディングを指定するディメンションデータフィールドに従って、前記ブロックオブジェクト明細についての第1の詳細レベルを判定することと、
(i)前記ブロックオブジェクト明細内の前記1つ以上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)任意の祖先ブロックオブジェクト明細内の視覚的エンコーディングを指定するディメンションデータフィールドに従って、前記ブロックオブジェクト明細の第2の詳細レベルを判定することと、
を更に含む、請求項44~49のいずれか一項に記載の方法。
【請求項51】
前記各自のブロックオブジェクト明細内の1つ以上の視覚的エンコーディングを指定する各メジャーデータフィールドを識別することを更に含み、
前記各自のクエリを実行することが、前記特定されたメジャーデータフィールドの各々を、前記第2の詳細レベルにある前記ディメンションデータフィールドに従って集計することを含む、
請求項50に記載の方法。
【請求項52】
前記データビジュアライゼーションが、表ベースのチャート、サンキーダイアグラム、及び地図ベースの図からなる群から選択されるタイプを有する、請求項44~51のいずれか一項に記載の方法。
【請求項53】
コンピュータシステムであって、
表示生成構成要素と、
1つ以上の入力デバイスと、
1つ以上のプロセッサと、
1つ以上のプログラムを記憶するメモリと、を含み、前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムが、
ユーザがデータフィールドアイコンをキャンバス区域上に布置したことに従って、複数の相互に関連するブロックオブジェクト明細を生成し、各データフィールドアイコンは、複数のデータフィールドアイコンを表示するスキーマ区域から選択され、各データフィールドアイコンは、ユーザ選択のデータソースからの各自のデータフィールドを表現し、各ブロックオブジェクト明細は、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)ユーザ選択のデータフィールドアイコンのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングと、を含み、
各ブロックオブジェクト明細について、
前記各自のブロックオブジェクト明細について前記視覚的エンコーディングを指定する前記ユーザ選択のデータフィールドアイコンに従って、各自のクエリを生成し、
前記各自のクエリを実行して、前記データソースからタプルの各自のセットを取り出し、各タプルが、前記各自のブロックオブジェクト明細について前記視覚的エンコーディングを指定する前記ユーザ選択のデータフィールドアイコンに対応する各自のデータフィールドのデータ値を含み、
前記各ブロックオブジェクト明細内で指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、データビジュアライゼーションを生成し、前記タプルの各自のセットの各々の中の各タプルが、前記データビジュアライゼーション内に視覚的マークとして表現される、
ための命令を含む、
コンピュータシステム。
【請求項54】
1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、表示生成構成要素及び1つ以上の入力デバイスを有するコンピュータシステムによって実行されると、前記デバイスに、
ユーザがデータフィールドアイコンをキャンバス区域上に布置したことに従って、複数の相互に関連するブロックオブジェクト明細を生成させ、各データフィールドアイコンは、複数のデータフィールドアイコンを表示するスキーマ区域から選択され、各データフィールドアイコンは、ユーザ選択のデータソースからの各自のデータフィールドを表現し、各ブロックオブジェクト明細は、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)ユーザ選択のデータフィールドアイコンのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングと、を含み、
各ブロックオブジェクト明細について、
前記各自のブロックオブジェクト明細について前記視覚的エンコーディングを指定する前記ユーザ選択のデータフィールドアイコンに従って、各自のクエリを生成させ、
前記各自のクエリを実行して、前記データソースからタプルの各自のセットを取り出させ、各タプルが、前記各自のブロックオブジェクト明細について前記視覚的エンコーディングを指定する前記ユーザ選択のデータフィールドアイコンに対応する各自のデータフィールドのデータ値を含み、
前記各ブロックオブジェクト明細内で指定された前記レイアウトタイプ、前記マークタイプ、及び前記視覚的エンコーディングに従って、データビジュアライゼーションを生成させ、前記タプルの各自のセットの各々の中の各タプルが、前記データビジュアライゼーション内に視覚的マークとして表現される、
である、コンピュータ可読記憶媒体。
【請求項55】
コンピュータシステムであって、
表示生成構成要素と、
1つ以上の入力デバイスと、
1つ以上のプロセッサと、
1つ以上のプログラムを記憶するメモリと、を含み、前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムが、請求項44~52に記載の方法のいずれかを遂行するための命令を含む、
コンピュータシステム。
【請求項56】
1つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、表示生成構成要素及び1つ以上の入力デバイスを有するコンピュータシステムによって実行されると、前記デバイスに請求項44~52に記載の方法のいずれかを遂行させる命令を含む、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本出願は、(1)2021年3月31日に出願された「Blocks:Creating Expressive Chart Through Direct manipulation」と題する米国仮特許出願第63/169,139号、(2)2021年12月17日に出願された「Generating Expressive Data Visualization by Interacting With Data Fields Representations」と題する米国仮特許出願第63/291,335号、及び(3)2022年1月29日に出願された「Data Visualization Analytical Canvas with Functionally Independent Visual Containers」と題する米国仮特許出願第63/304,611号に対する優先権を主張する、2022年1月31日に出願された「Data Visualization Analytical Canvas with Functionally Independent Visual Containers」と題する米国特許出願第17/589,690号の継続出願であり、これらは各々、参照によりその全体が本明細書に組み込まれる。
【0002】
本出願は、2022年1月31日に出願された、その全体が参照により本明細書に組み込まれる「Generating Data Visualizations with Visual Data Marks Having Individually Calculated Grid Positions」と題する米国特許出願第17/589,696号に関連する。
【0003】
本出願は、2022年1月31日に出願された、その全体が参照により本明細書に組み込まれる「Generating Data Visualizations with Displayed Visual Data Marks Representing Aggregated Data at Multiple Levels of Detail」と題する米国実用特許出願第17/589,718号に関連する。
【0004】
本開示の実施形態は、概して、データビジュアライゼーションに関し、より具体的には、データを分析するためにユーザがデータビジュアライゼーションと対話できるようにするシステム、方法、及びユーザインタフェースに関する。
【背景技術】
【0005】
データビジュアライゼーションアプリケーションによって、ユーザはビジネス上の意思決定のために重要な、分布、傾向、異常値、及び他の要因を含むデータセットを視覚的に理解できるようになる。一部のデータセットは非常に大きく、又は非常に複雑であり、多くのデータフィールドを含む。大きなデータセットを分析するための分析作業フローは、通常、データビューを徐々に精緻化することによってデータを反復的に調査し、それによってデータ内の様々な傾向及びパターンを発見することを伴う。データを視覚的に調査及び分析するための分析作業フローをユーザが表現及び実行するのを助けるために使用され得る、様々な視覚分析ツールが存在する。
【0006】
そのようなツールが存在してもなお、表現力のあるデータビジュアライゼーションを作成することは困難な作業である。例えば、ユーザは通常、データビジュアライゼーション及び/又は統計の十分な知識を有していなければならない。ほとんどのツールは、非専門家が使用することは困難である。これらのツールのうちいくつかは、表現力に富み、ユーザがプログラムによってチャートを作成できる(例えば、宣言型文法により、開発者がライブラリ及びAPIを使用して目標のビジュアライゼーションを指定できるようになる)が、他のツールは、容易に学習でき、単純なチャートの作成に使用するにはより効率的だが(例えば、チャートピッカー)、表現性のサポートが限られている、あるいは複雑なビジュアライゼーションを構築するためには冗長な回避策が必要になる(例えば、所望のチャート及び/又は分析作業フローがシステムデフォルトと競合することがある)。
【発明の概要】
【0007】
したがって、表現力のあるチャートを作成する能力を提供しながらも、単純なドラッグ&ドロップ技法によって非専門家が容易に使用できる視覚的データ分析ツールが必要とされている。例えば、直接操作モデル(例えば、データフィールドを表現する「ピル」などのユーザインタフェースオブジェクトのドラッグ&ドロップ)の使いやすさを維持しながら、様々な粒度レベルでデータを分析することが必要とされる。ユーザがよりリッチなビジュアライゼーションを構築しようとするにつれて、ドラッグ&ドロップインタフェースによって得られる使いやすさを同時に維持しながらも、複数の詳細レベルで情報を表示することに対する更なる制御の必要性が生じる。更に、レイアウト及びエンコーディングの柔軟性が必要とされている。
【0008】
上記の識別された、データの視覚的分析ツールに関連付けられる必要性は、本明細書で開示されるデバイス、方法、及びシステムによって対処される。
【0009】
いくつかの実施形態によれば、ある方法が、ディスプレイを備える電子デバイスにおいて実行する。例えば、電子デバイスは、スマートフォン、タブレット、ノートブックコンピュータ、又はデスクトップコンピュータであり得る。この方法は、ディスプレイ上にグラフィカルユーザインタフェースを表示することを含む。ディスプレイは、(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)キャンバス区域とを含む。この方法は、スキーマ区域から第1のデータフィールドアイコンを選択して、第1のデータフィールドアイコンをキャンバス区域上に布置する第1のユーザ入力を受信することを更に含む。この方法は、第1のユーザ入力を受信したことに応答して、キャンバス区域上にブロックカードを表示することを更に含み、ブロックカードは、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)第1のデータフィールドアイコンによって表現される第1のデータフィールドのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングと、を指示する複数のユーザインタフェースアフォーダンスを含む。この方法は更に、ブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、そのデータソースのデータビジュアライゼーションを生成して表示することを含む。
【0010】
いくつかの実施形態によれば、ある方法が、ディスプレイを備える電子デバイスにおいて実行する。この方法は、(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)複数のブロックカードを含むキャンバス区域であって、各ブロックカードが、(i)行ベースの配置、(ii)列ベースの配置、又は(iii)インライン配置のうちの1つである各自のレイアウトタイプを指定するキャンバス区域と、を含むグラフィカルユーザインタフェースをディスプレイ上に表示することを含み、各ブロックカードは、ユーザが1つ以上の各自のデータフィールドアイコンをキャンバス区域上に布置したことに応答して生成される。この方法は、各ブロックカードについて、各自のブロックカードに関連付けられたデータフィールドのデータのタプルを取り出すために、各自のデータベースクエリを生成して実行することを更に含む。この方法は、取り出された各タプルについて、各自の行インデックス及び各自の列インデックスを含む各自の2次元グリッド位置を計算することを更に含む。この方法は更に、取り出された各タプルが各自の計算されたグリッド位置に表示される視覚的マークとして表現されるデータビジュアライゼーションを生成して表示することを含む。
【0011】
いくつかの実施形態によれば、ある方法が、ディスプレイを備える電子デバイスにおいて実行する。この方法は、ユーザがデータフィールドアイコンをキャンバス区域上に布置したことに従って、複数の相互に関連するブロックオブジェクト明細を生成することを含み、各データフィールドアイコンは、複数のデータフィールドアイコンを表示するスキーマ区域から選択され、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現し、各ブロックオブジェクト明細は、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)ユーザ選択のデータフィールドアイコンのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングと、を含む。この方法は、各ブロックオブジェクト明細について、各自のブロックオブジェクト明細について視覚的エンコーディングを指定するユーザ選択のデータフィールドアイコンに従って、各自のクエリを生成することと、各自のクエリを実行して、データソースからタプルの各自のセットを取り出すことであって、各タプルが、各自のブロックオブジェクト明細について視覚的エンコーディングを指定するユーザ選択のデータフィールドアイコンに対応するデータフィールドのデータ値を含む、ことと、を更に含む。この方法は、各ブロックオブジェクト明細内で指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、データビジュアライゼーションを生成することを更に含み、タプルの各自のセットの各々の中の各タプルは、データビジュアライゼーションの中で視覚的マークとして表現される。
【0012】
いくつかの実施形態によれば、電子デバイスは、表示生成構成要素(例えば、タッチスクリーン、ディスプレイ、ヘッドマウントデバイスのディスプレイなど)と、1つ以上の入力デバイスと、1つ以上のプロセッサと、1つ以上のプログラムを記憶するメモリとを含み、1つ以上のプログラムは1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、本明細書に記載の方法のいずれかの動作を遂行する、又は、その動作の遂行を引き起こす命令を含む。いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体がそこに命令を記憶しており、その命令は、表示生成構成要素(例えば、ディスプレイ、タッチスクリーン、ヘッドマウントデバイスのディスプレイなど)を有する電子デバイスによって実行されると、本明細書に記載の方法のいずれかの動作をデバイスに遂行させる、又はその動作の遂行を引き起こす。いくつかの実施形態によれば、ディスプレイと、メモリと、メモリに記憶された1つ以上のプログラムを実行する1つ以上のプロセッサとを備える電子デバイス上のグラフィカルユーザインタフェースは、本明細書に記載の方法のいずれかで表示される要素のうちの1つ以上を含んでおり、要素は、本明細書に記載の方法のいずれにも記載されるように、入力に応答して更新される。いくつかの実施形態によれば、電子デバイスが、表示生成構成要素(例えば、ディスプレイ、タッチスクリーンディスプレイ、ヘッドマウントデバイスのディスプレイなど)と、任意選択でタッチ感応面と、本明細書に記載の方法のいずれかの動作を遂行する、又はその動作の遂行を引き起こす手段と、を含む。いくつかの実施形態によれば、表示生成構成要素(例えば、ディスプレイ、タッチスクリーン、ヘッドマウントデバイスのディスプレイなど)を備える電子デバイスで使用するための情報処理装置が、本明細書で説明する方法のいずれかの動作を遂行する、又はその動作の遂行を引き起こす手段を含む。
【0013】
したがって、複数の関連するデータビジュアライゼーションとユーザが容易に対話できるようにする方法、システム及びグラフィカルユーザインタフェースが開示される。
【図面の簡単な説明】
【0014】
前述のシステム、方法、及びグラフィカルユーザインタフェース、並びにデータビジュアライゼーション分析を提供する追加のシステム、方法、及びグラフィカルユーザインタフェースをよりよく理解するために、以下の図面と併せて、下記の発明を実施するための形態を参照されたい。図面において、同様の参照番号は図全体を通して対応する部分を指している。
【
図1A】対話型データ分析及びチャート作成のためのグラフィカルユーザインタフェースを示す。
【
図1B】いくつかの実施形態による、ブロックオブジェクトのブロック明細を示す。
【
図1C】いくつかの実施形態による、2つの接続されているブロックオブジェクト及び、各自のブロックオブジェクト明細の例を示す。
【
図2】いくつかの実施形態による、生成されたデータビジュアライゼーションを含む、ブロック群グラフィカルユーザインタフェースを表示することができるコンピューティングデバイスを示すブロック図である。
【
図3A】いくつかの実施形態による、例示的なブロック群システムを示す。
【
図3B】いくつかの実施形態による、接続されているブロックカード及び対応する部分的な出力ビジュアラーゼーションを含む例示的なブロック群ユーザインタフェースを表す。
【
図3C】いくつかの実施形態による、隣接関係から変換された親子グラフと、その親子グラフに基づいて生成された行ブロックツリー及び列ブロックツリーを示す図。
【
図4A】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4B】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4C】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4D】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4E】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4F】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4G】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4H】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4I】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図4J】いくつかの実施形態による、対話型グラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5A】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5B】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5C】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5D】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5E】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5F】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5G】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5H】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5I】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図5J】いくつかの実施形態による、同一のユーザインタフェース内に2つ以上のデータビジュアライゼーションを含む、対話型グラフィカルユーザインタフェース内のデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【
図6A】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図6B】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図6C】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図6D】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図7A】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図7B】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図7C】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図8A】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【
図8B】いくつかの実施形態による、データビジュアライゼーションを生成して表示するためのシステム、方法、及びユーザインタフェースのフローチャートである。
【0015】
ここで実施形態について言及し、その例を添付の図面に図示する。以下の説明では、本発明の完全な理解を提供するために、多数の特定の詳細が記載される。しかしながら、本発明がこれらの特定の詳細なしに実施され得ることは当業者には明らかであろう。
【発明を実施するための形態】
【0016】
視覚的分析のツールの1つのツールは、Tableau Software,Inc.が提供するTableauである。Tableauは、データビジュアライゼーションの構成要素及び属性を指定するための高レベルの形式論であるVizQL(商標)を提供する。対話型分析のためのTableauのグラフィカルユーザインタフェースを
図1Aに示す。
【0017】
図1Aは、対話型データ分析及びチャート作成のためのグラフィカルユーザインタフェース100を示す。いくつかの実施形態によれば、ユーザインタフェース100は、データタブ114及び分析タブ116を含む。データタブ114が選択されると、ユーザインタフェース100は、データペインとも呼ばれるスキーマ情報区域110を表示する。スキーマ情報区域110は、データビジュアライゼーションを構築するために選択及び使用され得る、名前付きデータ要素(例えば、フィールド名)を提供する。いくつかの実施形態では、スキーマ情報区域110に含まれるデータフィールドは、メジャー又はディメンションのうちの1つにデフォルト設定される。例えば、カテゴリデータを表現するデータフィールド、例えば文字列データフィールドはディメンションとして扱われ、データフィールドの様々な値はカテゴリとして使用される。また、利益又は売上などの数値データを表現するデータフィールドは、システムによって、SUM、average、meanなどの関数を任意選択で使用して集計されるフィールドであるメジャーとして扱われる。ただし、ユーザは、文字列フィールドを、通常はディメンションにデフォルト設定されているものからメジャーへ、又はその逆に切り替えることもできる。例えば、範囲内の販売取引を分析するために、ユーザは、$1000未満、$1000~$10,000、$10,000~$20,000、...、及び$50,000超などの数値範囲のカテゴリを作成してもよい。また、ユーザは、各個別の値をそれ自体でカテゴリとして扱ってもよい。データフィールドをメジャーに切り替える別の例は、関数MINを文字列データフィールド「顧客名」に適用することによって、そのフィールドを変更することによるものである。いくつかの実施形態はまた、パラメータのリストも含む。分析タブ116が選択されると、ユーザインタフェースは、データ要素ではなく分析関数のリストを表示する(図示せず)。
【0018】
基礎となる形式論VizQL(商標)は、ユーザ対話又はグラフィカルユーザインタフェース100内のユーザインタフェースオブジェクトの直接操作を通じてチャート作成の表現をサポートし、その際、関心対象(例えば、スキーマ情報区域110内の名前付きデータフィールド)の見え方が自動的に複合言語構文に変換され、それによって、表現力及び使いやすさを促進する。例えば、ユーザはドラッグ&ドロップ操作によって、区域110内の名前付きデータフィールド表現をデータビジュアライゼーションの視覚的属性にマッピングすることによりチャートを構築することができる。ここに示すように、グラフィカルユーザインタフェース100はデータビジュアライゼーション区域112を含み、この区域は視覚的グラフィックを表示するための大きな空間を有する。データ要素がまだ選択されていないため、この空間には当初、視覚的グラフィックがない。
【0019】
データビジュアライゼーション区域112は、列シェルフ区域120及び行シェルフ区域122などの複数のシェルフ区域を更に含む。グラフィカルユーザインタフェース100は、列シェルフ区域120及び行シェルフ区域120に加えて、マークカード区域124にグループ化される視覚的エンコーディングのためのシェルフも含む。視覚的エンコーディングはマークタイプを指定し、データフィールドを、指定されたマークの視覚的特性へとエンコードする。そのような視覚的エンコーディングの例として、形状、サイズ、色、色相、テクスチャなどが挙げられるが、これらに限定されない。マークタイプとして、取り出されたデータのタプルを示すライン、棒、エリア、正方形、円、テキスト、地図、パイ、ガントバー、ポリゴン、密度マーク、及び他の形状が挙げられるが、これらに限定されない。
【0020】
グラフィカルユーザインタフェース100において、ユーザは、データフィールドを表現するユーザインタフェース要素、例えば「ピル」を選択して、グラフィカルユーザインタフェース100内の特定の目標である、シェルフ区域120、122、及びマーク区域124のうちの1つ以上に布置する。ユーザ対話のこのプロセスは、直接操作と呼ばれる。様々な「ピル」を選択して、シェルフ区域120及び121並びにマーク区域124上に布置することによって、使用されるデータ(例えば、どのデータがデータソースから取り出されるか)、並びに最終ビジュアライゼーションの構造及び視覚的属性が制御される。
【0021】
ビジュアライゼーションに使用されるデータに関して、基礎となる形式論VizQL(商標)は、データフィールドが選択されてシェルフ120及び122並びにマーク区域124上に布置されたことに基づいてクエリを生成する際に、集計の有無を使用する。集計のないデータフィールドはディメンションと呼ばれ(例えば、様々なカテゴリなど)、一方でメジャーとは、全てのディメンションのセットによって定義されるグループ内で集計されるフィールドであり、このセットは詳細レベル(LOD)とも呼ばれる。例えば、メジャーは、利益又は売上などの、全てのカテゴリにわたる定量的な値である。VizQL(商標)では、クエリは、(1)行シェルフ120及び(2)列シェルフ122、並びに(3)マーク区域124の3つ全ての上のデータフィールドの布置を使用して定義される。例えば、行シェルフ122からのディメンションのみを含む詳細レベルでメジャーの値を判定するのではなく、メジャーは全てのディメンションによって定義されるグループ内で集計される。よって、ビジュアライゼーション全体についてグローバルにではなく、データビジュアライゼーションの特定の部分について異なる詳細レベルでメジャーを集計し、視覚的エンコーディングを適用することが必要とされている。したがって、複数の粒度レベルの集計を含むクエリに対する回答を単一のビジュアライゼーション内に表示することが必要とされており、複数の粒度レベルには複数の異なる視覚的エンコーディングが必要な場合もある。Tableau及びVizQL(商標)は、メジャーが集計される詳細レベルを、いわゆるLOD表現を介して制御する能力を提供する。ところが、ユーザは、ユーザは自分の分析作業フローから離れざるを得ない計算エディタを使ってLOD計算されたフィールドを定義する必要がある。計算エディタを使用することは、直接操作モデルから逸脱しており、また、計算エディタで使用される式を理解する必要もある。したがって、直接操作モデル(例えば、データフィールドを表現する「ピル」などのユーザインタフェースオブジェクトのドラッグ&ドロップ)の使いやすさを維持しながら、様々な粒度レベルでデータを分析することが必要とされる。
【0022】
データビジュアライゼーションの構造に関して、行シェルフ120及び列シェルフ122はグローバルである。言い換えれば、スキーマ区域110からのデータフィールド表現が行シェルフ122上に布置されたときには、ビジュアライゼーション全体にわたって水平の帯が作成され、また、データフィールド表現が列シェルフ120上に布置されたときには、ビジュアライゼーション全体にわたって垂直の帯が作成される。そのような形式論では、スパークラインのあるリッチな表などの、入れ子構造の関係が必要な埋め込みマイクロチャートを有する表現力のあるビジュアライゼーションを作成するためのサポートは限られたものである。行シェルフ120及び列シェルフ12のグローバルな性質に起因して、直接操作(例えば、表形式データビジュアライゼーションのセル内にスパークラインを表示すること)を通して入れ子構造の関係を構築するためのサポートは限られる。
【0023】
更に、最終ビジュアライゼーションのレイアウトに関して、行シェルフ区域120及び列シェルフ区域122上に布置されたデータフィールドは、最終ビジュアライゼーション内に、離散的データであれば「ヘッダ」を画定し、連続的データであれば「軸」を画定する。マークカード124は、そのビジュアライゼーションのマークのタイプと、サイズ、形状、及び色などの対応する視覚的エンコーディングとを指定する。ヘッダはビジュアライゼーションの全体的なレイアウトを画定するが、マークの作成にはマークカード124に布置されたフィールドのみが関与するので、Tableauではヘッダを視覚的にエンコードすることはできない。ところが、Tableauでは、マークはヘッダによって形成されるグリッド内に配置されなければならない。例えば、最上位階層がテキストではなくシンボルで示される階層テーブルを有することは不可能である(例えば、ヘッダはマークではないので、様々な形状にエンコードすることができない)。よって、ヘッダをエンコードする能力及び/又は異なる詳細レベルでエンコーディングを適用する能力など、レイアウト及びエンコーディングの柔軟性が必要とされる。
【0024】
したがって、上記で説明したように、VizQL(商標)形式論は、ユーザが直接操作を通じてチャートを作成することを可能にするが、対話的、反復的、かつ表現力のあるチャートの作成を可能にする直接操作モデルの使いやすさを同時に維持しながらも、入れ子構造の関係を作成し、異なる詳細レベルで集計及びエンコードを行い、最終ビジュアライゼーションのレイアウトよりも高い制御をユーザに提供する(例えば、システムデフォルトとは異なるチャートを作成することによって、より高い表現力を提供する)ことが必要とされる。現在、ユーザは、不便で、面倒で、かつ/又は直接操作モデルに反した回避策を実装する。これらの方法には、(i)ダッシュボード上に複数のビジュアライゼーションを構成して1つに見えるようにすること、(ii)最終ビジュアライゼーションの要素のレイアウト又は書式を判定するために複雑な計算を書くこと、(iii)単一の値のみを有する軸を作成すること、(iv)計算エディタを使ってLOD表現を作成することなどがあるが、これらに限定されない。LOD表現によって、複数の粒度レベルを伴う回答質問を単一のビジュアライゼーションに表示するためのより高い制御がユーザに提供されるが、LOD計算フィールドは通常、ユーザが計算エディタ内で定義する必要があり、Tableau式の構文のある程度の理解が要求される。よって、ユーザは、メニュー、エディタを開き、かつ/又は技術情報を理解することを要求され、これは面倒で、かつ/又は直接操作による対話型で反復的な視覚的分析が中断されることになる。その結果、ユーザは多くの場合、リッチな表を含む複雑なビジュアライゼーションを生成するのにかなりの時間を費やす。Tableauではメジャー集計の詳細レベルを制御する計算がサポートされているが、これらの計算結果を作成しても、任意の詳細レベルで視覚的にエンコードする能力は得られず、また、ユーザは自分の分析作業フローから離れざるを得ない。したがって、ユーザがよりリッチなビジュアライゼーションを構築しようとするにつれて、ドラッグ&ドロップインタフェース及びデータ駆動型フローによって得られる使いやすさを同時に維持しながらも、複数の詳細レベルで情報を表示することについて更なる制御の必要性が生じる。
【0025】
上述の制限は、VizQLを土台にして構築され、かつ直接操作の枠組みに合致する新しい形式論(ブロック群形式論と呼ばれる)に基づく新しいシステム(ブロック群システムと呼ばれる)により解決され、ここでは新しい分析実体(ブロックオブジェクト又はブロックと呼ばれる)がインタフェース内で直接操作される(例えば、データフィールドが選択され、例えば、ドラッグ&ドロップ動作を介してキャンバス区域上に布置される)。ブロックは、対話型ユーザインタフェースの分析キャンバス区域上にブロックカードとして表現され、ブロック群形式論に従って表現に変換される。
【0026】
この形式論の中核単位は、ブロック又はブロックオブジェクトと呼ばれる分析実体である。
図1Bは、いくつかの実施形態による、ブロックオブジェクト160のブロック明細150を示す。いくつかの実施形態では、各ブロックオブジェクトはブロック明細150に準拠する。いくつかの実施形態では、各ブロックオブジェクトは、ブロック名162、レイアウトタイプ164、マークタイプ166、エンコーディング167、及び、任意選択で子168という属性を含む。いくつかの実施形態では、任意選択で、ある数のブロックオブジェクトが階層構造(例えば、ブロックオブジェクト間の親子関係によって形成されるツリー構造)で接続されている。接続されているブロックオブジェクトは、グローバルな行及び列の表現ではなくローカルな表現に変換される。
【0027】
いくつかの実施形態では、ブロックオブジェクト160は、ブロック名162、レイアウトタイプ値164、マークタイプ値166、1つ以上のエンコーディング167、及び任意選択で子ブロックオブジェクト168に関連付けられている。ブロック名162は、ブロックオブジェクト160の一意の識別子である。いくつかの実施形態では、ブロック名162は、数字、文字、又は数字と文字の両方を含むことができ、任意の一意の値を有する。いくつかの実施形態では、ブロックオブジェクト160は、フィールドインスタンス明細170に準拠する1つ以上のデータフィールドのインスタンスに関連付けられている。例えば、各フィールドインスタンス109bはフィールドインスタンス明細170に準拠する。エンコーディング167で使用されている各フィールドインスタンス109bはエンコーディング明細190に準拠し、したがって、エンコーディングタイプ190aに関連付けられている。エンコーディングタイプ190aはエンコーディングタイプ明細186に準拠する。
【0028】
いくつかの実施形態では、同じデータフィールドの異なるインスタンスを、異なるブロックオブジェクトに関連付けてもよく、又は同じブロックオブジェクトに関連付けてもよい。いくつかの実施形態では、同じデータフィールドの複数のインスタンスを、エンコーディング明細190に準拠する異なるエンコーディングに関連付けることができる。ブロックオブジェクト160の各データフィールドインスタンスは、特定のフィールド名174に関連付けられ、任意選択で集計172に関連付けられている。フィールド名174の値は、データソース内の対応するデータフィールドに基づく。集計172の値は、各自のデータフィールドのデータソースによってサポートされる集計関数によって定義される、又はそれに依存する。いくつかの実施形態では、集計172が指定されているデータフィールドインスタンスは、メジャーとして使用される。集計のない他のフィールドインスタンスはディメンションとして使用される。
【0029】
いくつかの実施形態では、ブロックオブジェクト160は、ブロックオブジェクト160によって定義された詳細レベルにおける、そのデータソースの単一のクエリを表現し、ブロックオブジェクト160の各自のクエリの結果、最終データビジュアライゼーション内に視覚的構成要素が生成される。いくつかの実施形態では、ブロックオブジェクト160のローカル詳細レベルは、1つ以上のエンコーディング167によって定義される。具体的には、ブロックオブジェクト160のローカル詳細レベルは、ブロックオブジェクト160の1つ以上のエンコーディング167によって使用される全てのディメンションのセットの和集合である。ブロックオブジェクト160の完全詳細レベルは、そのブロックオブジェクトのローカルLODと、その祖先の全てのローカルLODとの和集合である。したがって、ブロックオブジェクト160によって定義される詳細レベルは、ビジュアライゼーション全体についてグローバルに(例えば、ビジュアライゼーション全体に適用される行シェルフ及び列シェルフに基づいて)定義されるわけではない。いくつかの実施形態では、ブロックオブジェクト160によって使用されるメジャーの全ては、特定のブロックオブジェクト160のフルLODにおいて(例えば、データビジュアライゼーション全体について定義される詳細レベルではなく)集計/評価される。これにより、様々な詳細レベルでクエリ及びビジュアライゼーションを生成する際の柔軟性を高めることができる。
【0030】
いくつかの実施形態では、ブロックオブジェクト間の親子関係は、有向非巡回グラフ(DAG)を形成する。いくつかの実施形態では、ブロックオブジェクト160は、属性「子ブロック」180によって定義される1つ以上の子ブロックオブジェクトの親ブロックオブジェクトであることができる。子168に割り当てられた子ブロックオブジェクトは、対応する子ブロックが属する1つ以上の子グループ180aを指定する子明細180に準拠する。各自の子オブジェクトが属する、複数の子ブロックオブジェクトからなる特定のグループは、子グループ明細182に準拠する。したがって、ブロック群形式論は、複数のブロックオブジェクトからなる単一の接続された有向非巡回グラフ(DAG)に基づくデータビジュアライゼーションを定義し、これにより、ビジュアライゼーション内での属性間の入れ子関係が可能になる。
【0031】
いくつかの実施形態では、ブロックオブジェクト160のLODを定義することに加えて、1つ以上のエンコーディング167はクエリ結果を視覚的エンコーディング及び空間エンコーディングにマッピングする。特定のブロック上でエンコードされる各フィールドインスタンス109bは、色186a、サイズ186b、形状186c、テキスト186d、x軸186e、y軸186f、ソート昇順186g、ソート降順186h、及びデータ詳細186iなどの異なるタイプの1つ以上のエンコーディングにマッピングされてもよい。いくつかの実施形態では、ソート昇順186g、ソート降順186h、及びデータ詳細186iのエンコーディングタイプを除いて、各エンコーディングタイプ186a~186fがブロックオブジェクト160内に出現するのは多くても1回である。いくつかの実施形態では、ソート昇順186g及びソート降順186hは、ブロックオブジェクト160のクエリ結果の順序を制御し、結局は、最終ビジュアライゼーション内でクエリ結果がレンダリングされる順序を制御する。更に、ビジュアライゼーション構成要素のレベルで(例えば、VizQLにおいてのように、グローバルな表表現の一部としてではなく)x軸186e及びy軸186fでメジャーデータフィールドをエンコードする手段を提供することによって、ブロック群形式論は、任意の詳細レベルで視覚的エンコーディングを使用し、メジャーを評価する(例えば、分析フローを中断させる回避策を必要とせずに、表ビジュアライゼーション内にスパークライン及び他のマイクロチャートを構築する)能力を提供する。
【0032】
いくつかの実施形態では、ブロックオブジェクト160は、対応するクエリ結果セット内の各タプルについて、自身のマークタイプ166のマークを1つずつレンダリングする。マークタイプ166の値は、マークタイプ明細185に準拠する。いくつかの実施形態では、マークタイプは、テキストマークタイプ185a、形状マークタイプ185b、円マークタイプ185c、ラインマークタイプ185d、及び棒マークタイプ185eなどの様々なタイプを含む。いくつかの実施形態では、マークタイプは、視覚的データマークの形状を指定する。
【0033】
いくつかの実施形態では、レイアウトタイプ164は、ブロックオブジェクト160に関連付けられたマークがデータビジュアライゼーション内でどのように空間的にレイアウトされるか(例えば、データビジュアライゼーション内のマークの位置)を判定する。いくつかの実施形態では、レイアウトタイプ164はレイアウトタイプ明細175に準拠する。レイアウトタイプ164の値は、行レイアウトタイプ175a、列レイアウトタイプ175b、及びインラインレイアウトタイプ175cを含む。いくつかの実施形態では、行レイアウトタイプ175aを有するブロックオブジェクト160は、自身の領域内の各値のために行を作成し、各行は単一のマークを含む。例えば、行レイアウトタイプ175a及びテキストマークタイプ185aを有するブロックオブジェクトは、各自の関連付けられた領域内の各値のためにテキスト文字列を表示する行を生成する。いくつかの実施形態では、列レイアウトタイプ175bを有するブロックオブジェクト160は、自身の領域内の各値のために列を作成し、各列は列ごとに単一のマークを含む。いくつかの実施形態では、インラインレイアウトタイプ175cを有するブロックオブジェクト160は、セルなどの単一の共有空間内に自分のマークをレンダリングする。いくつかの実施形態では、インラインレイアウトタイプ175により、散布図、ライングラフ、エリアチャート、地図、埋め込みマイクロチャートなどの作成が容易になる。いくつかの実施形態では、ブロック形式論は表形式のチャートの作成に限定されず、サンキーダイアグラム及び合成地図などの他の形式の複雑なビジュアライゼーションをサポートすることができる。
【0034】
図1Cは、いくつかの実施形態による、接続されているブロックオブジェクト「C」及び「N」並びに各自のブロック明細1022及び1024の例を示す。ブロックオブジェクト「C」及び「N」は、いくつかの実施形態によれば、対話型ユーザインタフェース1010内のブロックカード1012及び1014によって表現される。ブロックカード1012及び1014は、データペインから選択されたデータフィールドの表現が分析キャンバス区域1010上に布置されたことに応答して生成される、対話型グラフィカルユーザインタフェースオブジェクトである。ブロックオブジェクト「C」及び「N」の指定された特性に基づいて、データビジュアライゼーション1020が生成される。ブロックカード1012及び1014は、ブロックオブジェクト「C」及び「N」のために選択された特性及びエンコーディングを視覚的に表現する。例えば、ブロックカード1012はブロックオブジェクト「C」が「行」レイアウトタイプ1012bを有することを示し、例えば、
図1Bでは、属性「レイアウトタイプ」164に、値「行」175aが割り当てられている。よって、ブロックオブジェクト「C」は、データビジュアライゼーション1020に示されるような行ベースの配置を有する視覚的構成要素1025を生成する。更に、ブロックカード1012はブロックオブジェクト「C」が「テキスト」マークタイプ1012aを有することを示し、例えば、
図1Bでは属性「マークタイプ」166に、値「テキスト」185aが割り当てられている。よって、ブロックオブジェクト「C」の各自の領域内の各値について1行のテキスト文字列が、データビジュアライゼーション1020内に表示される。例えば、「テキスト」1012c上に視覚的にエンコードされた、各自の領域を表現するディメンション「クラス」1012dは、データフィールド「クラス」1012dの領域内に3つの値、すなわち、クラス値「1」、「2」、及び「3」を含み、よって、各クラス値について1つの行が生成され(例えば、行1025a、行1025b、及び行1025c)、各行は取り出された3つのマークの各々を表現し、ブロック「C」のために生成された対応するテキスト文字列を含む。
【0035】
いくつかの実施形態では、ブロックカード1012とブロックカード1014の間の矢印1015(又はシェブロンアイコン)は、ブロック「C」とブロック「N」の間の関係を表現する。例えば、矢印1015は、ブロックオブジェクト「C」がブロックオブジェクト「N」の親であることを表現する。ブロック明細1022は、同様に、ブロック「C」が1つの子ブロックと親子関係で関連付けられており、その子ブロックがブロック「N」であることを示し、例えば、子168にブロック「N」が割り当てられている。
【0036】
いくつかの実施形態では、ブロックカード1014は、ブロック「N」の属性を視覚的に表現する。例えば、ブロックカード1014は、ブロックオブジェクト「N」がインラインレイアウトタイプ1014aを有することを示し、例えば、
図1Bでは属性「レイアウトタイプ」164に値「インライン」175cが割り当てられている。いくつかの実施形態では、各ブロックオブジェクトは視覚的構成要素を生成するので、ブロックオブジェクト「N」は視覚的構成要素1026を生成する。ブロック「N」はインラインレイアウトタイプの子ブロックなので、ブロック「N」のマークが、それぞれ行1025a~1025c内で入れ子になる。例えば、親ブロック「C」は行ベースの配置を定義するので、ブロック「N」のために生成されたマークは行ベースの配置に従う。更に、ブロックカード1014は、ブロックオブジェクト「N」が「棒」マークタイプ1014dを有することを示し、例えば、
図1Bでは属性「マークタイプ」166に値「棒」185eが割り当てられている。したがって、各行1025a~1025cについて棒グラフが作成される。メジャーであるデータフィールド「NumberSurvived(生存者数)」(例えば、生き残った人数)が、X軸上にエンコードされる。言い換えれば、フィールド「NumberSurvived」のインスタンスには、
図1Bに示すように、エンコーディングタイプ「X軸」186eが割り当てられている。ブロックオブジェクト「N」には追加のディメンションが追加されていないので、メジャー「NumberSurvived」は、ディメンション「クラス」1012dによって定義される詳細レベルで集計され、データビジュアライゼーション1020に示すように行ごとに単一の棒がレンダリングされて、例えば各クラスについて1つの棒がレンダリングされ、例えば各クラス値について1つの棒がレンダリングされる。
【0037】
いくつかの実施形態では、対話型ユーザインタフェース内のブロックオブジェクト及び各自のブロックカードのレイアウト(例えば、複数のブロックオブジェクトの互いに対する位置)は、ブロックオブジェクト間の関係を判定するだけでなく、データビジュアライゼーション内の視覚的構成要素のレイアウトも判定する。例えば、ブロックオブジェクト「B」を表現する別のブロックカードの上方に布置された対応するブロックカードによって表現されるブロックオブジェクト「A」は、ブロックオブジェクト「B」に基づいて生成される別の視覚的構成要素の上方に布置又は表示される、ブロックオブジェクト「A」に対応する視覚的構成要素を生成してレンダリングする。いくつかの実施形態では、各自のブロックオブジェクトの右又は下方に布置されたブロックオブジェクトは、その各自の複数ブロックオブジェクトの子ブロックであると自動的に判定される。例えば、ブロックオブジェクト「N」はブロックオブジェクト「C」の右に布置されているので、ブロックオブジェクト「N」はブロック「C」の子であると判定される。いくつかの実施形態では、ブロックオブジェクト「C」と「N」との間に表示されるシェブロンアイコン又は矢印1015は、ブロック「C」と「N」の間の入れ子関係の方向を示す。更に、視覚的構成要素1025の右に隣接して視覚的構成要素1026が表示される。いくつかの実施形態では、インラインレイアウトタイプを有するブロックオブジェクトは、子である関連するブロックを有することはできない。よって、インラインレイアウトタイプを有するブロックオブジェクトの下又は右に布置されるブロックオブジェクトは、インラインレイアウトタイプを有する、各自のブロックオブジェクトの親ブロックの子ブロックであると定義又は判定される。
【0038】
いくつかの実施形態では、子ブロックオブジェクトは、それらの親ブロックの位置に関してインタフェース内にレイアウトされる。例えば、各自のブロックの親ブロックオブジェクトが行レイアウトタイプであるときには、同じ行を共有する子ブロックのセットは、同じ子グループ(
図1Bの子グループ182など)に属する。同様に、各自のブロックオブジェクトの親ブロックオブジェクトが列レイアウトタイプであるときには、同じ列を共有する子ブロックのセットは、同じ子グループに属する。
【0039】
本明細書に記載のブロック群形式論及び方法は、ユーザインタフェース内のブロックオブジェクトの直接操作を通じたレイアウト及び条件付き書式によって、ユーザ制御(例えば、表現力)の向上及び柔軟性の向上を提供する。更に、このブロック群システム及びブロック群形式論は、例えば、エディタを開いてフィールドを計算するために分析作業フローを中断する必要なく、最終ビジュアライゼーションの構造に対してより粒度の細かい制御を提供する。
【0040】
図2は、いくつかの実施形態による、グラフィカルユーザインタフェース2060を表示することができるコンピューティングデバイス200を示すブロック図である。コンピューティングデバイス200の様々な例として、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、並びに、ディスプレイ及びデータビジュアライゼーションアプリケーション222を実行することができるプロセッサを有する他のコンピューティングデバイスが挙げられる。コンピューティングデバイス200は通常、メモリ214に記憶されたモジュール、プログラム、及び/又は命令を実行し、それによって処理動作を遂行するための1つ以上の処理ユニット/コア(CPU)202と、1つ以上のネットワーク又は他の通信インタフェース204と、メモリ214と、これらの構成要素を相互接続するための1つ以上の通信バス212と、を含む。通信バス212は、システム構成要素間を相互接続し、それらの間の通信を制御する回路を含んでもよい。
【0041】
コンピューティングデバイス200は、ディスプレイデバイス208と、1つ以上の入力デバイス又は機構210とを備える、ユーザインタフェース206を含む。いくつかの実施形態では、入力デバイス/機構はキーボードを含む。いくつかの実施形態では、入力デバイス/機構は、ディスプレイデバイス208に必要に応じて表示される「ソフト」キーボードを含み、ユーザが、ディスプレイ208に表示される「キーを押す」ことを可能にする。いくつかの実施形態では、ディスプレイ208及び入力デバイス/機構310は、タッチスクリーンディスプレイ(タッチ感応ディスプレイとも称される)を備える。
【0042】
いくつかの実施形態では、メモリ214は、DRAM、SRAM、DDR RAM、又は他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含む。いくつかの実施形態では、メモリ214は、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体記憶デバイスなどの不揮発性メモリを含む。いくつかの実施形態では、メモリ214は、CPU(単数又は複数)302から遠隔に位置する1つ以上の記憶デバイスを含む。メモリ214、又は、代替的にメモリ214内の不揮発性メモリデバイス(単数又は複数)は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実施形態では、メモリ214、又はメモリ214のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。
・オペレーティングシステム216。様々な基本システムサービスを取り扱い、ハードウェア依存タスクを遂行するための手順を含む。
・通信モジュール218。1つ以上の通信ネットワークインタフェース204(有線又は無線)と、インターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどのような1つ以上の通信ネットワークとを介して、コンピューティングデバイス200を他のコンピュータ及びデバイスに接続するために使用される。
・ウェブブラウザ220(又はウェブページを表示することができる他のアプリケーション)。ユーザがネットワークを介して遠隔のコンピュータ又はデバイスと通信することが可能になる。
・データビジュアライゼーションアプリケーション222。ユーザが視覚的グラフィックを構築するためのグラフィカルユーザインタフェース206を提供する。例えば、ユーザは、1つ以上のデータソース240(コンピューティングデバイス200に記憶されていてもよく、又は遠隔に記憶されていてもよい)を選択し、データソース(単数又は複数)からデータフィールドを選択し、選択されたフィールドを使用して視覚的グラフィックを定義する。いくつかの実施形態では、ユーザが提供する情報は、視覚的明細228として記憶される。データビジュアライゼーションアプリケーション222は、データビジュアライゼーション生成モジュール226を含み、これは、ユーザ入力(例えば、視覚的明細228)を受信し、対応する視覚的グラフィック(「データビジュアライゼーション」又は「データビズ(data viz)」とも呼ばれる)を生成する。次に、データビジュアライゼーションアプリケーション222は、生成された視覚的グラフィックをユーザインタフェース206に表示する。いくつかの実施形態では、データビジュアライゼーションアプリケーション222は、スタンドアロンアプリケーション(例えば、デスクトップアプリケーション)として実行する。いくつかの実施形態では、データビジュアライゼーションアプリケーション222は、ウェブサーバによって提供されるウェブページを使用して、ウェブブラウザ20又は別のアプリケーション内で実行する。
・ゼロ個以上のデータベース又はデータソース240(例えば、第1のデータソース240-1及び第2のデータソース240-2)。データビジュアライゼーションアプリケーション222によって使用される。いくつかの実施形態では、データソースは、スプレッドシートファイル、CSVファイル、XMLファイル、若しくはフラットファイルとして記憶されている、又はリレーショナルデータベースに記憶されている。
【0043】
上記の識別された実行可能モジュール、アプリケーション、又は手順のセットの各々は、前述のメモリデバイスのうちの1つ以上に記憶され得、上述された機能を遂行するための命令のセットに対応する。上記の識別されたモジュール又はプログラム(すなわち、命令のセット)は、別々のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において組み合わされるか、又は別様に再配置されてもよい。いくつかの実施形態では、メモリ214は、上記で識別されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ214は、上述されていない追加のモジュール又はデータ構造を記憶してもよい。
【0044】
図2は、コンピューティングデバイス300を示しているが、
図2は、本明細書で説明されている実施形態の構造的概略としてというよりも、存在し得る様々な特徴の機能的説明を意図している。実際には、当業者によって認識されるように、別々に示された項目を組み合わせることが可能であり、いくつかの項目は分離することができる。
【0045】
図3は、いくつかの実施形態によるブロック群システム350を示す。ブロック群システム350のフロントエンド355はブロック群インタフェース360(例えば、対話型グラフィカルユーザインタフェース206)を含み、これは、ブロック群インタフェース360内のブロックカードによって表現される接続されているブロックオブジェクトに基づく分析作業フローを構築するためのものである。いくつかの実施形態では、ブロック群システム450は、対応するブロックカードによって表現される対応するブロック明細を含むブロックオブジェクトを作成し、結果として得られる出力ビジュアライゼーション370などのデータビジュアライゼーションを表示(又は閲覧)するためのインタフェースをフロントエンド355に提供する。いくつかの実施形態では、ブロック群インタフェース360及び出力ビジュアライゼーション370は、ウェブブラウザで実行するReactベースのTypeScriptモジュールを使用して実装される。他の実施形態では、異なるライブラリ及びプログラミング言語が使用される。いくつかの実施形態では、ブロック群インタフェース360及び出力ビジュアライゼーション370を含むフロントエンド355は、クエリ実行プロセス380及び行&列割り当てプロセス390を実装するバックエンド375と、Hypertext Transfer Protocol Secure(HTTPS)を介して通信する。他の実施形態では、フロントエンド355とバックエンド375の間の通信に、異なる通信プロトコルが使用されてもよい。いくつかの実施形態では、バックエンド375は、Pythonプログラミングフレームワークに基づくデータ分析ライブラリを使用して実装される。他の実施形態では、異なるライブラリ及びプログラミング言語が使用されてもよい。いくつかの実施形態では、バックエンド375は、Tableau Serverデータソースに接続して、それにより、リッチなデータモデルへのアクセスを得ることができる。
【0046】
いくつかの実施形態では、ユーザは、データフィールド表現を分析キャンバス上に布置することによって、ある数のブロックカードを追加して接続することにより、分析作業フローを構築する。例えば、ブロックインタフェース360は、ある数のブロックカード362~368を含む分析キャンバス区域を含み、各ブロックカードは、
図1Bのブロック明細150などの各自のブロック明細に変換される。ブロックカード362は、ブロックオブジェクト「R」を表現し、ブロックカード362は、ブロックオブジェクト「S」を表現し、ブロックカード366は、ブロックオブジェクト「C」を表現し、ブロックカード362は、ブロックオブジェクト「P」を表現する。いくつかの実施形態では、ブロックカード362~368の各ブロックカードを使用して、複数のデータフィールドエンコーディングが単一の詳細レベル(LOD)で定義される。いくつかの実施形態では、ブロック明細は、1つ以上のディメンション及び/又は各自のブロックオブジェクトによって判定される詳細レベル(例えば、各自のブロックオブジェクトのローカル詳細レベルと、各自のブロックオブジェクトの全ての祖先のローカル詳細レベルとの和集合)で集計された1つ以上のメジャーと、1つ以上の視覚的エンコーディングと、行ベースの配置、列ベースの配置、又はインライン配置のうちの1つを指定するレイアウトタイプと、任意選択で1つ以上のフィルタと、任意選択でソート順序と、を含む。
【0047】
いくつかの実施形態では、バックエンド375で遂行されるクエリ実行フェーズ380の間に、各ブロックオブジェクトについて、対応するブロック明細に基づいてクエリが発行される。例えば、ブロックカード362によって表現されるブロックオブジェクト「R」についてブロッククエリが発行され、ブロックカード366によって表現されるブロックオブジェクト「C」についてブロッククエリが発行され、ブロックカード368によって表現されるブロックオブジェクト「P」についてブロッククエリが発行される。ブロッククエリはデータソース305上で実行され、データソースは遠隔にあってもよく、又は同じコンピュータシステム上に記憶されていてもよい。各ブロッククエリの出力はブロック結果セットであり、ブロック結果セットは、データソース305から取り出された対応するタプル及び各自のエンコード結果を含む。例えば、ブロックオブジェクト「R」について結果表362-1が生成され、ブロックオブジェクト「S」について結果表364-1が生成され、ブロックオブジェクト「C」について結果表366-1が生成され、ブロックオブジェクト「P」について結果表368-1が生成されるなど、各クエリに基づいて、異なるスキーマを有する表が生成される。
【0048】
次のフェーズでは、いくつかの実施形態によれば、行&列割り当てプロセス390をバックエンド375で実行することによって、最終データビジュアライゼーションの構造及びレイアウトが判定される。行&列割り当てプロセス390は、結果表362-1、364-1、366-1、及び368-1に含まれる各タプルに、単一のグリッドの1つの行インデックス及び1つの列インデックスを割り当てる。いくつかの実施形態では、それらの行インデックス及び列インデックスは、データビジュアライゼーションのレイアウトを表現するグリッド(例えば、そのグリッド内にそれぞれ固有の位置を有するセルの集合)を形成する。いくつかの実施形態では、ブロック群インタフェース360内には表示されない暗示的に作成された2つのルートブロックオブジェクトが存在し、例えば、その2つのルートブロックを視覚的に表現するブロックカードはブロック群インタフェース360内にない。いくつかの実施形態では、2つのルートブロックは、行ルートブロックオブジェクト(例えば、行レイアウトタイプを有するルートブロックオブジェクト)及び列ルートブロックオブジェクト(例えば、列レイアウトタイプを有するルートブロックオブジェクト)である。いくつかの実施形態では、行レイアウトタイプである、明示的ブロックオブジェクト(暗示的ではない)の子ではないブロックオブジェクトはいずれも、行ルートブロックオブジェクトの子である。列レイアウトタイプの、明示的ブロックオブジェクトの子ではないブロックはいずれも、列ルートブロックオブジェクトの子である。言い換えれば、親を持たないブロックオブジェクトいずれも、行ルートブロックオブジェクト及び列ルートブロックオブジェクトの子である。いくつかの実施形態では、暗示的に作成されたルートブロックオブジェクトは、行&列インデックスを計算するための開始点として使用される。
【0049】
各タプルが視覚的マークとして、割り当てられた行&列インデックスに従って表現される出力ビジュアライゼーション370が生成される。いくつかの実施形態では、グリッド行&列割り当てプロセス390は、表362-1、364-1、366-1、及び368-1に含まれるタプルに対応する、ある数のマークを分配する。いくつかの実施形態では、出力ビジュアライゼーション370は、フロントエンド355で同じユーザインタフェース内、例えば、ブロック群インタフェース360に隣接するか、その近くの場所に表示される。
【0050】
図3Bは、いくつかの実施形態による、接続されているブロックカード3002~3008及び対応する部分的な出力ビジュアライゼーション3020を含む例示的なブロック群ユーザインタフェース3010を表し、この出力ビジュアライゼーションは、(
図3Aに関連して説明した)クエリ実行プロセス380及び行&列割り当てプロセス390に従って生成される。ブロック群システム350は、行&列割り当てプロセス390の前にクエリ実行プロセス380を遂行する。いくつかの実施形態では、複数のクエリはまず、継承されたLODによってソートされるので、同じ親を有する全てのタプルが各自のクエリ結果内に共に保持される。その後、任意選択で、ユーザによって指定される任意のソートが適用される。いくつかの実施形態では、返される各タプルには、グローバルな一意のタプル識別子が割り当てられている。各自のクエリは、詳細レベル(ローカルのディメンション及び継承されたディメンション)、並びに、ブロック群ユーザインタフェース内の各ブロックカードについての各ブロック明細に定義されたメジャー及びソートに基づいて生成される。例えば、以下の表1は、詳細レベル(ローカルのディメンション及び継承されたディメンション)、並びに、ブロック群ユーザインタフェース3010内の各ブロックカード3002~3008について定義されたメジャー及びソートを示す。
【0051】
【0052】
いくつかの実施形態では、ブロックR(ブロックカード3002によって表現される)、ブロックB(ブロックカード3004によって表現される)、ブロックC(ブロックカード3006によって表現される)、及びブロックG(ブロックカード3008によって表現される)にそれぞれ基づいて生成された各クエリについて返されるタプルは、以下の表2、表3、表4、及び表5に示される。例えば、以下の表2は、ブロックRについて生成されたクエリに基づいて返されたタプルを表す。ディメンション「地域」はテキストでエンコードされ、得られたタプルは、
図3Bに示されたデータビジュアライゼーション3020に示されるように、ディメンション「地域(Region)」内の各地域(例えば、「欧州及び中央アジア」、「アメリカ」、「東アジア及び太平洋」、「中東及び北アフリカ」、「サハラ以南アフリカ」、及び「南アジア」)のテキストマークを返す。例えば、地域「欧州及び中央アジア」のテキストマーク3022、地域「アメリカ」のテキストマーク3024、及び地域「東アジア及び太平洋」のテキストマーク3026など、各地域について行が表示される(表2に列挙されたそれ以外の地域は、簡略化のために
図3Bには示されていない)。更に、地域ごとのGDPに基づくソート順序をユーザが適用しているので、地域ごとのGDPが計算される。例えば、得られたタプル(例えば、R1~R6)は、地域ごとのGDPによってソートされ、例えば、表2に示すように、欧州及び中央アジアは最高のGDP(R1)を有しているのでソート順序で最初となり、南アジアは最低のGDP(R6)を有するのでソート順序で最後となる。いくつかの実施形態では、各タプルR1~R6の得られる位置は、行&列割り当てプロセス390に従って判定される。
【0053】
【0054】
以下の表3は、ブロックBについて生成されたクエリに基づいて返されたタプルを表し、メジャー「GDP」もディメンション「地域」によって集計される(例えば、集約される)。得られたタプルは棒グラフマークとしてエンコードされ、
図3Bのデータビジュアライゼーション3020に、各地域に対応する棒が表示される。例えば、棒3028が地域「欧州&中央アジア」についての地域ごとのGDPを表現するマークであり、棒3030が「アメリカ」についての地域ごとのGDPを表現するマークであり、マーク3032が「東アジア&太平洋」についての地域ごとのGDPを表現するなど、地域ごとのGDPを表す棒が各地域について表示される。ブロックBはブロックRの子として、Rのディメンション数を継承するので、各棒は、その地域を表現する各々の行について表示される。更に、ブロックBはブロックRの子として、ブロックRのディメンション数を継承するので、ブロックRに適用されるソート順序は、地域ごとの各GDPの棒がデータビジュアライゼーション3020に表示される順序でもある。
【0055】
【0056】
以下の表4は、ブロックCについて生成されたクエリに基づいて返されたタプルを表し、メジャー「GDP」は国ごとに集計され(例えば、集約され)、国はテキストでエンコードされ、タプルは、所与の地域内の全ての国について国のGDPに基づいて全てのタプルをソートする、ユーザが定義したソートによって順序付けられている。ディメンション「国」はテキストでエンコードされるので、返された得られたタプルは、
図3Bのデータビジュアライゼーション3020に示されるように、所与の地域内の各国のテキストマークとして表現される。例えば、各国について列が表示され、例えば、地域「欧州&中央アジア」)について、国「ドイツ」のテキストマーク3034、国「イタリア」テキストマーク3036、及び国「フランス」のテキストマーク3038が表示される(表4に列挙されたそれ以外の国は、簡略化のために
図3Bには示されていない)。更に、各国のGDPに基づくソート順序をユーザが適用しているので、各国のGDPが計算される。例えば、得られたタプル(例えば、C1~C50)は、所与の地域内の各国のGDPによってソートされ、例えば、米国はアメリカでは最高のGDP(C1)を有し、よって表2に示されるアメリカについてのソート順序で最初となり、ペルーは最低のGDP(C8)を有するのでアメリカについてのソート順序では最後となる(例えば、タプルC1~C8のソート。オーストラリアは、東アジア及び太平洋では最高のGDP(C9)を有し、よって表2に示される東アジア及び太平洋についてのソート順序で最初となり、ミャンマーは最低のGDP(C18)を有するので東アジア及び太平洋についてのソート順序で最後となる(タプルC9~C18のソート)。いくつかの実施形態では、各タプルC1~C50の得られる位置は、行&列割り当てプロセス390に従って判定される。
【0057】
【0058】
以下の表5は、ブロックGについて生成されたクエリに基づいて返されたタプルを表現し、ここでは、メジャー「GDP」は国ごとに集計され(例えば、集約され)、国ごとのGDPはテキストでエンコードされる。国ごとに計算されたメジャー「GDP」はテキストでエンコードされるので、得られたタプルは、
図3Bのデータビジュアライゼーション3020に示されるように、所与の地域内の各国のテキストマークとして表現される。例えば、列によって表現される各国について、計算されたGDPがテキストマークとして表示され、例えば、国「ドイツ」にはテキストマーク3040(「36,953」)が表示され、国「イタリア」にはテキストマーク3042(「36,073」)が表示され、国「フランス」にはテキストマーク3044(「34,774」)が表示される(表5に列挙されたそれ以外の国のGDPは、簡略化のために
図3Bには示されていない)。いくつかの実施形態では、各タプルG1~G50の得られる位置は、行&列割り当てプロセス390に従って判定される。
【0059】
【0060】
いくつかの実施形態では、各ブロックカードについて生成されたクエリが実行されて、タプルを有する得られた表(例えば、表2~5)が返された後、ブロックシステムは、行&列割り当てプロセス390に従って、各タプルを最終データビジュアライゼーション内の各自の位置に割り当てる。
【0061】
いくつかの実施形態では、
図3Bのブロックカード3002~3008などの、ブロック群インタフェース内のブロックカードは、隣接関係グラフを形成する。例えば、隣接関係グラフ3001及び3001’は、ブロック群ユーザインタフェース3010についての同じ隣接関係グラフを表し、3001はグラフィカル表現、3001’はテキスト表現である。いくつかの実施形態では、隣接関係グラフは、ブロック群ユーザインタフェース3010内のブロック間の関係を表現する親子グラフに使用されて変換され、システムによって暗示的に作成された暗示的な行ルートブロック及び列ルートブロックにより、有向非巡回グラフであることが保証される。親子グラフは、行&列割り当てプロセス390で使用される。例えば、ブロック群インタフェース3010内のブロック3002~3008の位置に基づいて判定された隣接関係グラフ3001は、
図3Cに示す親子グラフ3050に変換される。いくつかの実施形態では、親子グラフ3050を作成することは、行&列割り当てプロセスの予備ステップである。いくつかの実施形態では、各ブロックは、行及び列の親を有する。いくつかの実施形態では、ユーザが定義した親が存在しない場合、暗示的な行ブロック又は列ブロックが各自の親として割り当てられる。例えば、ブロックRは親を有さず、したがって、行ルートブロック及び列ルートブロックがブロックRに親として割り当てられる。いくつかの実施形態では、子は順序付けられる。いくつかの実施形態では、同じ順序位置に複数の子が存在する。
【0062】
図3Cは、隣接関係グラフ3001又は3001’から変換された親子グラフ3050を示す。いくつかの実施形態では、変換は、隣接関係グラフの左上から始まり、幅優先探索で進行する。例えば、変換アルゴリズムは、暗示的に作成された2つのルートブロック(ユーザインタフェースには表示されない)、例えば、それぞれ行レイアウトタイプ及び列レイアウトタイプの各々である行ルートブロック及び列ルートブロックの子ブロックとして、ブロックRを割り当てることで開始する。変換アルゴリズムは、以下のステップを遂行することによって親子グラフを構築することに進む。2つのブロック、すなわち第1のブロックB1と第2のブロックB2との間の右方向のリンク(例えば、B1がB2の左側にある場合、左から右へ)については、Pの後ろの順序位置に、ブロックB1がインラインブロックである場合、ブロックB2を第1のブロックB1の行親の子として追加し、第2のブロックB2が第1のブロックB1が占める順序位置を共有し、また、第2のブロックB1を第1のブロックB1の列親の子として追加する。ブロックB1が行ブロックである場合、Pの後ろの順序位置に、第2のブロックB2を第1のブロックB1の子ブロックとして追加し、また、第2のブロックB1を第1のブロックB1の列親の子として追加する。隣接関係グラフにおいて2つのブロック、すなわち第1のブロックB1と第2のブロックB2との間の下方向のリンク(例えば、B1がB2の上方にある)については、Pの後ろの順序位置に、ブロックB1がインラインブロックである場合、第2のブロックB2を第1のブロックB1の行親の子として追加し、また、第2のブロックB1を第1のブロックB1の列親の子として追加する。ブロックB1が列ブロックである場合、Pの後ろの順序位置に、第2のブロックB2を第1のブロックB1の子として追加し、第2のブロックB1を第1のブロックB1の行親の子として追加する。
【0063】
いくつかの実施形態では、親子グラフ3050の親子関係のテキスト記述3055が
図3Cに示されている。
【0064】
行&列割り当てプロセス390は、ブロック群ユーザインタフェース内に構築されたブロックに基づいて生成された親子グラフから、行ツリー及び列ツリーを構築することで開始する。例えば、ブロックカード3002~3008を含むブロック群ユーザインタフェース3010の親子グラフ3050から、行ツリー3060及び列ツリー365が構築される。いくつかの実施形態では、行ツリーは、行ブロックからそれらの子へのリンクのみを考慮し、他のリンクを除外することによって、親子グラフから構築される。このツリーが存在し、接続されており、暗示的な行ルートブロックに単一のルートを有することが、ブロック群インタフェース3010によって保証される。例えば、行ツリーのルートノードは暗示的なルートノードであり、追加される第1のリンクは、暗示的なルートノードから子ブロックRへのリンクである。次に、子ブロックB及びCが同じ順序位置に追加される(例えば、B及びCのタプルがそれぞれ同じ行に表示される)。また、子ブロックGがブロックRの子として追加される。行ブロックであるブロックGには指定された親がないので、ブロックGは、ブロックCの親行ブロックを割り当てられ、これは、ブロックBがインラインブロックなのでブロックRである。いくつかの実施形態では、列ツリーは、列ブロックからそれらの子へのリンクのみを考慮し、他のリンクを除外することによって、親子グラフから構築される。このツリーが存在し、接続されており、暗示的な列ルートブロックに単一のルートを有することが、ブロック群インタフェース3010により保証される。ブロックCは、親子グラフ3050内の唯一の列ブロックである。ブロックR、B及びCは、暗示的な列ルートブロックの子ブロックである。ブロックCのみが列ブロックであるので、列ツリーに追加される唯一の他の子はブロックCの子であり、これはブロックGである。
【0065】
行&列割り当てプロセスの次のフェーズにおいて、行タプルツリー及び列タプルツリーが生成され、各タプルはノードである。ブロック群ユーザインタフェース内の各ブロックは複数のタプルを含むので、ディメンションを使用して、子ブロックからの各タプルが親ブロック内の特定のタプルに接続される。例えば、プロセスは、同じディメンション値を有する行ツリー内の親ブロック内の各タプルのためのタプル識別子、及び列ツリー内の親ブロック内の各タプルのためのタプル識別子を追加する。
【0066】
例えば、以下の表6~表9は、いくつかの実施形態にしたがって、行タプルツリー及び列タプルツリーを生成するために、子ブロックからの各タプルが親ブロック内の各タプルに、行ツリー3060及び列ツリー3065に基づいてどのように接続されているかを示す。親子グラフ3050の場合、ブロックRは、行ルート及び列ルートのみの子であり、したがって、どのタプルも、その親として行ルート及び列ルートを有する。以下の表6は、ブロックRを、それぞれ行ツリー3060及び列ツリー3065内の親ブロックである暗示的(図示されない)ブロック、ルート行及びルート列に接続することを示す。
【0067】
【0068】
以下の表7は、ブロックBを、行ツリー3060内の行親であるブロックR及び列ツリー3065内の列親であるルート列(図示せず)ブロックに接続することを示す。例えば、行ツリー3060では、ブロックBはブロックRの子である。したがって、ブロックBからの各タプルの行親は、地域について同じ値を有する、ブロックRからのタプルの識別子である。列ツリー3065では、ブロックBは列ルートの子であり、したがって、全てのタプルは、以下の表7に示すように、親として列ルートを有する。
【0069】
【0070】
以下の表8は、ブロックCを、行ツリー3060内の行親であるブロックR及び列ツリー3065内の列親であるルート列(図示せず)ブロックに接続することを示す。例えば、行ツリー3060では、ブロックCは行ブロックRの子である。したがって、ブロックC内の各タプルの行親は、地域について同じ値を有する、ブロックRからのタプルの識別子である。列ツリー3065では、ブロックCは列ルートの子であり、したがって、全てのタプルは、以下の表8に示すように、それらの親列ブロックとして列ルートを有する。
【0071】
【0072】
以下の表9は、ブロックGを、行ツリー3060内の行親ブロックR及び列ツリー3065内の列親ブロックCに接続することを示す。例えば、行ツリー3060では、ブロックGはブロックRの子である。したがって、ブロックG内の各タプルの行親は、地域について同じ値を有する、ブロックRからのタプルの識別子である。列ツリー3065では、ブロックGはブロックCの子である。したがって、以下の表9に示すように、ブロックG内の各タプルの行親は、地域及び国について同じ値を有する、ブロックCからのタプルの識別子である。
【0073】
【0074】
いくつかの実施形態では、行&列割り当てプロセス390は、行タプルツリーを深さ優先順序でトラバースすることによって各タプルに行インデックスを割り当て、深さ優先順序で列タプルツリーをトラバースすることによって各タプルに列インデックスが割り当てられる。行タプルツリー又は列タプルツリー内の葉タプルには単一の行インデックスが割り当てられ、内部のノードは、全ての葉のうち最小の行インデックス及び最大の行インデックスをタプルに記録する。いくつかの実施形態では、プロセスが行及び列インデックスを割り当てる前に事前ソートが遂行される。例えば、行&列割り当てプロセス390は、各タプルの子を、まず、それらに対応するブロックが行ツリー内で子として出現する順序でソートし、次に各ブロックについて、行ディメンションの順序、及びもしあればユーザ指定のソートの順序でソートする。同様に、列ツリーの場合、プロセス390は、各タプルの子を、まず、それらに対応するブロックが列ツリー内で子として出現する順序でソートし、次に各ブロックについて、列ディメンションの順序、及びもしあればユーザ指定のソートの順序でソートする。いくつかの実施形態では、事前ソートではなく、それぞれ行タプルツリー及び列タプルツリーで、深さ優先トラバーサルの順序を制御することによってソートが遂行される。言い換えれば、ソートは、行インデックス及び列インデックスを割り当てることと並行して遂行される。
【0075】
例えば、表10は、事前ソートが遂行されない場合の、行タプルツリー及び列タプル内の各タプルに行及び列インデックスを割り当てるプロセスの擬似コードを示す。
【0076】
【0077】
表11は、行&列割り当てプロセス390に従って(例えば、上述の表10のプロセスに従って)、行タプルツリー内の各タプルに割り当てられるインデックスを示す。例えば、「最小行」及び「最大行」の列は、行タプルツリーにおいて深さ優先探索を使用してトラバースされる各タプルに割り当てられるインデックスを表す。簡潔にするために、表11は「欧州及び中央アジア」及び「アメリカ」についてのデータを含み、他の地域についてのデータは省略されている。
【0078】
【0079】
表12は、行&列割り当てプロセス390に従って、列タプルツリー内の各タプルに割り当てられるインデックスを示す。例えば、「最小行」及び「最大行」の列は、列タプルツリーにおいて深さ優先探索を使用してトラバースされる各タプルに割り当てられるインデックスを表す。簡潔にするために、表12は「欧州及び中央アジア」及び「アメリカ」についてのデータを含み、他の地域についてのデータは省略されている。
【0080】
【0081】
ユーザインタフェース及び関連プロセス
次に、ユーザインタフェース(「UI」)及び関連プロセスの実施形態に注目する。これらは、電子デバイス200などの電子デバイス上で実装され得る。
【0082】
図4A~
図4Jは、いくつかの実施形態による、ブロック群形式論に基づく対話型ユーザグラフィカルユーザインタフェースを使用してデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
図5A~
図5Gは、いくつかの実施形態による、ブロック群形式論に基づく同じ対話型ユーザグラフィカルユーザインタフェース上に2つのデータビジュアライゼーションを構築して表示するための例示的なユーザインタフェースを示す。
【0083】
図4Aは、直接操作による対話型データ分析及びチャート作成のための対話型グラフィカルユーザインタフェース400を示す。Tableauと同様に、グラフィカルユーザインタフェース400は、選択されたデータソースの、ある数のデータフィールド表現が含まれる、データペイン区域410(又はスキーマ区域)を含む。例えば、データペイン区域410は、選択されたデータソース412、及びデータフィールド表現(例えば、ピルなどの選択可能なユーザインタフェース要素の形態で表現される、名前データフィールド)の集合415を含む。データフィールド表現421~429の各々は、データビジュアライゼーションを構築するために選択及び使用され得る、ユーザインタフェース要素又はユーザインタフェースアフォーダンスである。いくつかの実施形態では、データフィールド表現421~429は、ピル又はデータフィールドアイコンとも呼ばれる。いくつかの実施形態では、対話型グラフィカルユーザインタフェース400は、データフィールドをエンコードするために、例えば、Tableauで使用される直接操作モデルと一致する視覚的なドラッグ&ドロップ技法を提供する。いくつかの実施形態では、
図1Aの列シェルフ120及び行シェルフ122などの固定シェルフに基づくグラフィカルユーザインタフェース100の代わりに、対話型グラフィカルユーザインタフェース400は、任意の数の接続されているブロックオブジェクトの作成をサポートする分析キャンバス区域440を有する。
【0084】
いくつかの実施形態では、集合415に含まれるデータフィールド表現又はピルは、接続されているデータソース412からのデータモデルに基づく、又はそのデータモデルから導出される。いくつかの実施形態では、Tableauと同様に、データフィールド表現の集合415は、ディメンションである、ある数のデータフィールド、例えばデータフィールド421~434、427、428、429、430、435、437~439と、メジャーである、ある数のデータフィールド、例えばデータフィールド425~426、431~434、436と、を含む。対話型ユーザインタフェース400は、分析キャンバス区域440を更に含む。データソース412を照会し、データビジュアライゼーションを構築するために、データペイン区域410から1つ以上のデータフィールド表現421~439が選択されて、分析キャンバス区域440上に布置される。いくつかの実施形態では、ディメンション421~434、427、428、429、430、435、437~439を使用して詳細レベル(又は、集計されるグループ)を定義することができ、各自のディメンションによって定義される詳細レベル(LODとも呼ばれる)で集計することによって、メジャー425~426、431~434、及び236を計算することができる。いくつかの実施形態では、どのデータフィールド表現がメジャーであり、どのデータフィールド表現がディメンションであるかを示すために、ディメンション421~434、427、428、429、430、435、437~439は、例えば別の色を使用して、メジャー425~426、431~434から視覚的に区別される。
【0085】
いくつかの実施形態では、分析キャンバス区域440上の占有されていない場所にピルデータ410をドラッグアウトすると、ブロックカードによって表現されるブロックオブジェクトがグラフィカルユーザインタフェース400上に作成される。いくつかの実施形態では、コンピュータシステムは、ピルが表現する対応するデータフィールドのメタデータに基づいて、ブロックオブジェクトのエンコーディング、マークタイプ、及びレイアウトタイプのデフォルト値を割り当てる。例えば、
図4Aで「カテゴリ」という名前のディメンションを表現するピル421が選択され、
図4Bに示すように、分析キャンバス区域440を横切ってドラッグされる。
図4Bは、ピル421が分析キャンバス区域440上に布置又はドロップされる前の、分析キャンバス区域440上でドラッグされているピル421を示す。
【0086】
いくつかの実施形態では、
図4Cは、ピル421をドロップすると、コンピュータシステムが自動的に(更なるユーザ入力なしに)ブロックカード450を生成し、このブロックカードは、次に、クエリを生成して実行するために使用されるブロックオブジェクト明細に変換され、クエリの結果に基づいて視覚的構成要素460が生成されることを示す。いくつかの実施形態では、システムは、デフォルトで、「行」のレイアウトタイプ、「テキスト」のマークタイプを有し、データフィールド「カテゴリ」がテキストでエンコードされたブロックオブジェクト明細を生成する。いくつかの実施形態では、対応するブロックオブジェクトのレイアウトタイプ442及びマークタイプ444が、ブロックカード450の最上部の帯に表示される。いくつかの実施形態では、レイアウトタイプ442は、行ベースの配置、列ベースの配置、又はインライン配置を含むレイアウトタイプを指示するために使用できるユーザインタフェースアフォーダンスである。いくつかの実施形態では、マークタイプ444は、最終ビジュアライゼーション内に表示される視覚的データマークの形状を指定するマークタイプを指示するために使用できるユーザインタフェースアフォーダンスである。ブロックオブジェクトの各自のエンコーディングがブロックカード450内に示されている。例えば、データフィールド「カテゴリ」のテキストでのエンコーディングは、エンコーディングがテキストに行われることを示すユーザインタフェース要素446(ユーザインタフェースアフォーダンスとも呼ばれる)とともに示され、ピル421は、エンコードされている特定のデータフィールドを示す。したがって、領域「カテゴリ」内の各値についての行を含む視覚的構成要素460が生成され、各値は、テキスト記述又は文字列によって示され、例えば、値「家具」、「事務用品」、及び「技術」は全て、領域「カテゴリ」に属する離散値である。いくつかの実施形態では、視覚的構成要素460は、ユーザが分析キャンバス上にピル421を布置すると直ちに、実質的に瞬時に生成される。ブロックカード450はブロック群ユーザインタフェース445に含まれており、視覚的構成要素は最終データビジュアライゼーションを含む区域465に含まれている。
【0087】
いくつかの実施形態では、分析キャンバス区域440上の空白(又は占有されていない)空間に追加ピルがドラッグされると、新しい無関係のブロックオブジェクト、例えば、ブロックCと関係のない新しいブロックオブジェクトが作成される。いくつかの実施形態では、ブロックカード450上で追加ピルがドラッグされると、ブロックオブジェクトCに追加エンコーディングを追加することができる。いくつかの実施形態では、ブロックカード450に隣接して追加ピルがドロップされたとき(例えば、そのピルがブロック群インタフェース445内でドロップされたとき)、ブロックオブジェクトCに関連する新しいブロックオブジェクトが作成される。いくつかの実施形態では、関連するブロックオブジェクトを作成するプロセス及び既存のブロックオブジェクトに更なるエンコーディングを追加するプロセスは、ブロック群ユーザインタフェース内に可能なドロップ目標を表示することによって容易になる、あるいは支援される。したがって、ブロック群システム及びインタフェースは、データを調査する前にユーザにどのビジュアライゼーションタイプを作成すべきかを決定させるのではなく、ユーザが空の分析キャンバスから開始して、ユーザのデータを表現するピル並びにクエリ及び視覚的エンコーディングを表現するブロックカードと主として対話できるようにすることによって、データ駆動型体験を実現する。よって、ブロック群システムにより、より対話的で反復的な分析フローが可能になる。
【0088】
図4Dは、いくつかの実施形態にしたがって、新しいピル470がブロックカード450上でドラッグされたときに、ある数のドロップ目標が表示されることを示す。例えば、新しいピル470がブロックカード450内でホバリングすると、視覚的エンコーディングを表現する、ある数のアイコン476a~476fが表示され、例えば、アイコン476a~476fはブロックカード450内に破線で示され、ピル470の下方に位置している。例えば、アイコン476cは色エンコーディングを表現し、アイコン476d、アイコン476dは形状エンコーディングを表現し、アイコン476eはテキストでのエンコーディングを表現し、アイコン476aはx軸でのエンコーディングを表現し、アイコン476bはy軸でのエンコーディングを表現し、アイコン476fは詳細レベルを表現する。更に、ドロップ目標472及び472も表示されて、ブロックカード450に隣接してピル470をドロップすることによって別のブロックオブジェクトを作成できるという視覚的フィードバックを提供する。いくつかの実施形態では、ドロップ目標472はブロックカード450の右に表示され、ドロップ目標472は下方にあり、子ブロックオブジェクトを作成するためのドロップ目標を表現する。
【0089】
図4Dは、ピル470によって表現されるメジャー「割引」が、色エンコーディング476c(
図1Bの色エンコーディング186aなど)の上でホバリングしていることを示す。
図4Eは、色エンコーディング476c上にピル470をドロップしたことに応答して更新されたブロック群インタフェース445及び更新されたデータビジュアライゼーション区域465を示す。例えば、メジャー「割引」を表現するピル470が色エンコーディング476c上にドロップされると、視覚的構成要素460は、「カテゴリ」レベルで、集計された「割引」メジャーに異なる色を表示することによって更新される。言い換えれば、メジャーディスカウントは各カテゴリについて集計され、結果の集計値は、視覚的構成要素460に示されるように、各カテゴリについて異なる色で視覚的に表現される。
【0090】
いくつかの実施形態では、ドラッグされているピルがディメンションフィールドを表現しているときには、システムは、行レイアウトタイプ又は列レイアウトタイプのいずれかを有する新しいブロックオブジェクトを作成するための選択肢を提供する。ディメンションフィールドは、デフォルトではテキストでエンコードされる。他の実施形態では、ドラッグされているピルがメジャーフィールドを表現しているときには、システムは、インラインレイアウトタイプにデフォルト設定されたブロックオブジェクト上でメジャーをX軸、Y軸又はテキストでエンコードするための選択肢を提供する。新しい関連するブロックオブジェクトが作成されると、レイアウトタイプ、マークタイプ、及びエンコーディングを全てカスタマイズすることができる。
【0091】
図4Fは、いくつかの実施形態による、ピル478によって表現されるメジャーフィールド「利益」が分析キャンバス区域440上でドラッグされているときに表示される、子ブロックオブジェクトを作成するためのドロップ目標480を示す。ピル478はメジャー「利益」を表現するので、システムは、インラインレイアウトタイプにデフォルト設定されたブロックオブジェクト上でメジャー「利益」をX軸、Y軸又はテキストでエンコードするための選択肢を提供する。ドロップ目標480は、X軸でのエンコーディング482、Y軸でのエンコーディング484、及びテキストでのエンコーディング486などの選択されたデフォルトエンコーディングを有する任意選択のブロックカード(破線で表現される)を表現する。ドロップ目標480上にピル476をドロップすると、ブロック「C」の新しい子ブロックが生成される。
【0092】
図4Gは、いくつかの実施形態による、ユーザが分析キャンバス区域440上でピル478をドラッグし続けたときに、ピル478がドロップ目標480内にある、X軸でのエンコーディング482上でホバリングしていることを示す。
【0093】
図4Hは、いくつかの実施形態による、
図4Gに表示されたドロップ目標480上にピル478をドロップしたことに応答して更新されたブロック群インタフェース445及び更新されたデータビジュアライゼーション区域465を示す。X軸エンコーディング482上にピル478をドロップすると、新しいブロックオブジェクト「P」が作成され、新しいブロックオブジェクト「P」はブロックオブジェクト「C」の子である。視覚インジケータ472aは、2つのブロックカード450と485の間の親子関係を示す。いくつかの実施形態では、子ブロックオブジェクト「P」は、ブロックカード485によって表現される。ピル478は、データフィールド「利益」を表現し、これはメジャーなので、デフォルトで、コンピュータシステムはブロックオブジェクト「P」にインラインレイアウトタイプ488を割り当てる。更に、コンピュータシステムは、デフォルトのマークタイプ「棒」489を割り当てる。例えば、
図1Bに示すように、ブロックオブジェクト「P」の対応するブロック明細のマークタイプ166に値185eを割り当てる。よって、コンピュータシステムは、データ視覚的区域465に表示される新しい視覚的構成要素462を作成する。ブロックオブジェクト「P」は、ブロックオブジェクト「P」のディメンション数を継承するインラインブロックオブジェクトであるので、システムは、ブロックオブジェクト「C」によって定義される視覚的構成要素460内の各行について1つの棒を作成する。ブロックオブジェクト「P」には追加ディメンションは追加されていないので、メジャー「利益」は、ディメンション「カテゴリ」によって定義される詳細レベルで集計され、各カテゴリ値について単一の棒が視覚的構成要素462内にレンダリングされる。言い換えれば、利益は異なるカテゴリごとに計算され、各カテゴリについて、集計された利益を表現する単一の棒が表示される。ブロックオブジェクト「P」には色エンコーディングが追加されていないので、各棒は同じ色で表現されることに留意されたい。
【0094】
図4Iは、いくつかの実施形態による、ジャーデータフィールド「レコード数」を表現する選択されたピル492をユーザがドラッグしていることを示す。いくつかの実施形態では、データペイン410(又はスキーマ区域)からユーザがデータフィールド表現を選択したことに応答して、ブロック群ユーザインタフェース445内に適切なドロップ目標が表示される。例えば、ピル492を選択したことに応答して、ある数のドロップ目標がブロックカード485内に表示される。ブロックカード485内の各ドロップ目標は、
図1Bに示すエンコーディングタイプ明細186に準拠する各自の視覚的エンコーディングを表現する。更に、選択されたピル492をブロックカード485の右又は下方のエリアに布置することによって新しいブロックオブジェクトを追加できることを示すために、ユーザインタフェース要素4002及び4004が表示される。更に、ピル492はメジャーデータファイルを表現するので、コンピュータシステムは更にドロップ目標495を表示し、これを選択すると、インラインレイアウトタイプのブロックオブジェクトが作成される。例えば、ドロップ目標495上にピル492を布置したことに応答して、インラインレイアウトタイプのブロックオブジェクトが作成される。更に、ピル478はメジャー「レコード数」を表現するので、システムはデフォルトで、インラインレイアウトタイプがデフォルトで割り当てられているブロックオブジェクト上でメジャー「レコード数」をX軸、Y軸又はテキストでエンコーディングするための選択肢を提供する。
【0095】
図4Iは、いくつかの実施形態による、ブロックカード485内の色エンコーディング(
図1Bの色エンコーディング186aなど)上でホバリングしているピル492を示す。
図4Jに示すように、ブロックカード485内の色エンコーディング上にピル492をドロップ又は布置したことに応答して、選択された色エンコーディングに従って視覚的構成要素462が更新される。例えば、視覚的構成要素462は、「カテゴリ」の詳細レベルで集計されたメジャー「レコード数」に異なる色を表示することによって更新される。言い換えれば、ブロックオブジェクト「P」は更なるディメンションを定義しないので、メジャー「レコード数」は、親ブロック「C」によって定義されるカテゴリごとに集計され、得られた集計値は、各カテゴリについて異なる色で視覚的に表現される。
【0096】
図5A~
図5Gは、いくつかの実施形態による、分析キャンバス440上に第2のデータビジュアライゼーションを構築することを示す。
【0097】
図5Aは、いくつかの実施形態による、ユーザが分析キャンバス440及びブロック外インタフェース445の上にピル502をドラッグすることを示し、ピル502はディメンションデータフィールド「セグメント」を表現する。いくつかの実施形態では、ピル502は、分析キャンバス区域440上の空白(又は占有されていない)空間にドラッグされるので、新しい無関係のブロックオブジェクト、例えば、ブロックオブジェクト「C」と関係のない、かつ、ブロックオブジェクト「P」と関係のない新しいブロックオブジェクトが作成される。
【0098】
図5Bは、いくつかの実施形態による、ピル502を分析キャンバス440上かつブロック群インタフェース445の外側に布置したことに応答して、新しいデータビジュアライゼーションが構築され、データビジュアライゼーション区域500に表示されることを示す。分析キャンバス440の占有されていないエリアにピル502が布置されたことに応答して、新しいブロックオブジェクト「S」が作成され、対応するブロックカード504が表示される。更に、分析キャンバス440の占有されていないエリアにピル502が布置されたことに応答して、対応する視覚的構成要素506が構築され、データビジュアライゼーション区域500内に表示される。いくつかの実施形態では、データビジュアライゼーション区域456及び500は、関連しない2つのデータビジュアライゼーションを表示する。言い換えれば、ブロックオブジェクト「S」は、ブロックオブジェクト「C」及び「P」とのいかなる親子関係も形成せず、したがって、ブロックオブジェクト「C」及び「P」からディメンション数又はエンコーディングを継承しない。したがって、ユーザは、同じドラッグ&ドロップ技法を使用して、分析フローを中断する必要なく、同じ分析キャンバス上に2つのデータビジュアライゼーションを構築することができる。例えば、ユーザが2つのシート又はタブを切り替えることが必要となる新しい別々のシート又はタブを作成する必要はない。
【0099】
コンピュータシステムは、ピル502が表現する対応するデータフィールドのメタデータに基づいて、ブロックオブジェクト「S」のエンコーディング、マークタイプ、及びレイアウトタイプのデフォルト値を割り当てる。例えば、ピル502はディメンション「セグメント」を表現するので、コンピュータシステムは、ユーザインタフェース要素508によって示されるように、ブロックオブジェクト「S」に行レイアウトタイプ(例えば、
図1Bに示される行レイアウトタイプ175a)を自動的に割り当てる。更に、コンピュータシステムは、アイコン510によって示されるように、データフィールド「セグメント」が離散値(連続値ではなく)を有するディメンションであるため、マークタイプとしてテキストを割り当てる(例えば、
図1Bに示されるマークタイプ、テキスト185a)。いくつかの実施形態では、マークタイプ及びレイアウトタイプに既に割り当てられている値は、対話型ユーザインタフェースに表示されたブロックカードと対話することによって修正することができる。
【0100】
図5Cは、いくつかの実施形態による、ブロックオブジェクト「S」のデフォルトレイアウトタイプを変更するためにユーザインタフェース要素508aを選択しているカーソルを示す。いくつかの実施形態によれば、ユーザインタフェース要素508aが選択されると、ドロップダウンメニューは、
図4Dに示すように、行、列、及びインラインレイアウトタイプを含む、ユーザが選択できるレイアウトタイプの可能な選択肢のリストを表示する。
図5Dは、ブロックオブジェクト「S」の新しいレイアウトタイプとして列レイアウトタイプが選択されることを示す。レイアウトタイプが行レイアウトタイプから列レイアウトタイプに変更されたことに応答して、
図5Eに示すように、それに応じて視覚的構成要素506が、列レイアウトタイプを反映するように更新される。例えば、更新された視覚的構成要素506は、領域「セグメント」内の各値について1つの列を表示する。
【0101】
図5Fは、いくつかの実施形態による、メジャー「利益」を表現するピル514が選択され、ドロップ目標516の上に布置されることを示す。ピル514をドロップ目標516の上に布置すると、子ブロック「P」が自動的に作成され、ブロックオブジェクト「P」を表現する対応するブロックカード518がブロック群ユーザインタフェース520に表示される。ピル514がメジャーを表現しており、レイアウトタイプが列ベースなので、ブロックオブジェクト「P」は、マークタイプとして棒グラフにデフォルト設定され、特定のセグメントについての利益の値はY軸にデフォルト設定されている。ブロックオブジェクト「P」が構築されたことに応答して、セグメントごとの利益を棒グラフマークタイプとして表示する視覚的構成要素507が追加される。
【0102】
いくつかの実施形態では、ブロック群ユーザインタフェース520は、ブロック群ユーザインタフェース445とは異なり、各々が、別々のデータビジュアライゼーションを構築するために使用される。いくつかの実施形態では、ブロックカードは、その中に布置されたデータフィールド表現を収容するように自動的にサイズ変更される。同様に、いくつかの実施形態によれば、データビジュアライゼーションは、分析キャンバスに追加される追加ブロックカード又は追加データビジュアライゼーションに対応するように自動的にサイズ変更される。
【0103】
図5Hは、いくつかの実施形態による、ブロック群システム及びブロック群ユーザインタフェースを使用して作成しているシアトルのAirbnbのリストについてのデータを示すリッチな表530を示す。
図5Hは、データビジュアライゼーション区域535に表示された、単一のビジュアライゼーションに組み合わされたいくつかの詳細レベルでの様々なマークタイプ及びメジャーを示す。リッチな表530の列532~540(又は視覚的構成要素)の各列は、それ自体のエンコーディング及びフィールドマッピングのセットを有するブロックオブジェクトによって定義される。例えば、ブロックカード542~550は各々、ブロックオブジェクト明細に対応し、それに基づいて、視覚的構成要素532~540がそれぞれ構築される。いくつかの実施形態によれば、列532~540は、左から右に、平均定価によってソートされた各地区グループの行、稼働率によって色分けされた平均価格を示すラベル付き棒グラフ、各地区グループ内の各地区の行、同じラベル付き棒グラフであるが地区当たりの平均価格を示すもの、及び経時的な平均価格を示すスパーク線を示す。
【0104】
ブロック群システム及びブロック群形式論は、リッチな表530などの複雑でリッチな表を作成するために使用できる一方で、ブロック群形式論は、追加のレイアウトアルゴリズムを用いて、ツリーマップ、バブルチャート、及び非矩形チャートなどの他のビジュアライゼーションをサポートするように拡張することもできる。更に、複数のLODでのリッチな表を定義するために使用されるブロック群形式論は、サンキーダイアグラム及び合成地図などの他のビジュアライゼーションタイプをサポートするために適用されてもよい。
【0105】
図5Iは、いくつかの実施形態による、合成地図ビジュアライゼーション530と、地図ビジュアライゼーション530を構築するために使用されるブロックユーザインタフェース内の各自のブロックカードとを示す。合成地図ビジュアライゼーション530は、親ブロックとしての複数の「州」ポリゴンと、その中に入れ子になった、注文日ごとの売上を含むスパークラインチャートとを示す。いくつかの実施形態によれば、地図ビジュアライゼーション530は、子ブロックとしてスパークラインのブロックオブジェクトを有する地図のためのインラインレイアウトタイプのブロックオブジェクトを使用して構築される。
【0106】
サンキーダイアグラムはTableauで作成される一般的なタイプのチャートであるが、この作成は、ビューの分割、データの高密度化、異なる視覚的ディメンションにわたる値のインデックス付け、及びいくつかの表計算を伴う多段階のプロセスである。いくつかの実施形態によれば、ブロック群システムを用いて、
図5Jに示すように、2n-1個のブロックオブジェクトを用いてnレベルのサンキーダイアグラムを構築することができる。例えば、
図5Jでは、ブロックカード572、576、及び580によって表現される行タイプのブロックオブジェクトを使用して「区域」、「カテゴリ」、及び「セグメント」の属性又はデータフィールドについてサンキーダイアグラム570のノードが生成され、ブロックオブジェクト574及び578によって表現されるリンクタイプのブロックオブジェクトはレベル間の接続を表現する。リンクレイアウトタイプのブロックオブジェクトは、近隣のブロックオブジェクトからLODを継承し、マークの対の間の曲線をレンダリングする。リンクは、例えば、メジャー「売上」に集計関数SUMを適用したSUM(Sales)によって示される売上の合計に基づいて、色及びサイズによってエンコードされる。
【0107】
図6A~
図6Dは、いくつかの実施形態による、データフィールド表現と対話することによってデータビジュアライゼーションのレイアウト及び構成要素を生成する方法600を示すフロー図である。方法600は、電子デバイス(例えば、
図2のデバイス200)において遂行される。いくつかの実施形態では、電子デバイスは、ディスプレイと、任意選択でタッチ感応面とを備えるポータブル多機能デバイスである。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感応面はディスプレイ上にある、又はディスプレイと一体化されている。いくつかの実施形態では、ディスプレイは、タッチ感応面とは別々である。方法600のいくつかの動作は、任意選択で組み合わせられ、かつ/又は、いくつかの動作の順序は、任意選択で変更される。
【0108】
本明細書で説明するように、方法600では、全体的なデータビジュアライゼーションではなく、ビジュアライゼーションの特定の部分のレイアウト、データの関係、及び詳細レベル(「LOD」)を指定することによるビジュアライゼーションの構築が可能になる。ユーザは、例えばドラッグ&ドロップ対話を使用することによって、データフィールド表現の直接操作又はデータフィールド表現との対話によって、ブロックオブジェクトを作成することができる。この方法により、表形式のビジュアライゼーションのためにデータ属性のLODを制御することができるようになる。この方法は、視覚的エンコーディング及びドラッグ&ドロップ対話を使用して、どのようなLODにおいてもメジャーを評価する能力を提供する。この方法により、ドラッグ&ドロップ対話を通じて表現力のあるリッチなチャートを作成できるようになる。この方法は、視覚的分析インタフェースを提供し、ユーザは、文法又は低レベルの実施形態の詳細を学習する必要なく、分析作業フローを反復的に構築することができる。更に、この方法は、ユーザがチャートを作成している間に推奨事項及び様々な視覚インジケータを提供することによってユーザを支援し、同時にチャート作成プロセスの効率及び柔軟性を向上させる。
【0109】
1つ以上のプロセッサと、ディスプレイと、1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域(例えば、
図4Aのデータペイン又はスキーマ区域410)と、(b)キャンバス区域(例えば、
図4A~
図4Bのキャンバス区域440)と、を含むグラフィカルユーザインタフェース(例えば、
図4Aのグラフィカルユーザインタフェース400及び
図2のグラフィカルユーザインタフェース206)をディスプレイ上に表示する(602)。コンピュータシステムは、スキーマ区域から第1のデータフィールドアイコンを選択して、第1のデータフィールドアイコンをキャンバス区域上に布置する第1のユーザ入力を、受信する(例えば
図4Bは、ディメンションであるデータフィールド「カテゴリ」を表現する、ユーザ選択のユーザインタフェース要素421を示す)(604)。第1のユーザ入力を受信したことに応答して、コンピュータシステムは、キャンバス区域(例えば、
図4A~
図4Bのキャンバス区域440)上にブロックカード(例えば、
図4Cのブロックカード450)を表示し、ブロックカードは、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプ(例えば、
図4Cの、現在は行ベースの配置を割り当てられているユーザインタフェース要素又はアフォーダンス442)と、(ii)視覚的データマークの形状を指定するマークタイプ(例えば、
図4Cの、マークタイプを指定及び表示するためのユーザインタフェース要素又はアフォーダンス444)と、(iii)第1のデータフィールドアイコンによって表現される第1のデータフィールドのデータ値に従って、色(例えば、
図4Dのアイコン476c)、サイズ、形状(例えば、
図4Dのアイコン476d)、テキスト(例えば、
図4Dのアイコン476e)、x軸(例えば、
図4Dのアイコン476a)、y軸(例えば、
図4Dのアイコン476b)、昇順ソート、降順ソート、又は詳細レベル(例えば、
図4Dのアイコン476f)のうちの1つ以上を指定する1つ以上の視覚的エンコーディングとを指示する複数のユーザインタフェースアフォーダンスを含む(608)。第1のユーザ入力を受信したことに応答して、コンピュータシステムは更に、ブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、そのデータソースのデータビジュアライゼーション(例えば、
図4C~
図4Jの区域465に表示されたデータビジュアライゼーション)を生成して表示する(610)。
【0110】
いくつかの実施形態では、ブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、データソースのデータビジュアライゼーションを生成して表示することは、ブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールドに従って詳細レベルを定義することと、そのブロックカードについて、各メジャーデータフィールドの集計を、その詳細レベルにあるディメンションデータフィールドに従って指定するクエリを生成することと、そのクエリを実行してデータソースからタプルのセットを取り出すことであって、データフィールドアイコンが視覚的エンコーディングを指定するデータフィールドの各々を各タプルが含み、そのメジャーデータフィールドの各々が、その詳細レベルに従って集計されることと、各視覚的マークが1つの取り出されたタプルに対応する、データビジュアライゼーションを生成することと、を含む(612)。
【0111】
いくつかの実施形態では、ブロックカードは第1のブロックカードである。コンピュータシステムは、スキーマ区域から第2のデータフィールドアイコンを選択する第2のユーザ入力を受信する(例えば
図4Dは、「割引」メジャーを表現するカーソル選択アイコン470を示す)(614)。第2のユーザ入力を受信したことに応答して、コンピュータシステムは、第1のブロックカード上にドロップ目標を表示し(例えば
図4Dに示すように、視覚的エンコーディングを表現するアイコン476a~476fが、選択されるべき選択肢として、例えばドロップ目標として、ユーザに対して表示される)、第1のブロックカード上の各ドロップ目標は、第2のデータフィールドアイコンとの関連付けのために選択され得る各自の視覚的エンコーディングを指定する。第2のユーザ入力を受信したことに応答して、コンピュータシステムは、第1のブロックカードに隣接してドロップ目標を表示し(例えば
図4Fに示すように、「利益」メジャーを表現するアイコン478を選択するユーザ入力に応答して、インラインベースの配置のブロックオブジェクトのためのドロップ目標480が表示される)、各隣接ドロップ目標は、ブロックカードに関連する子ブロックカード又は親ブロックカードを作成するための別個の選択肢を指定する。ユーザが第2のデータフィールドアイコンを(i)第1のブロックカードのドロップ目標のうちの1つ、又は(ii)隣接ドロップ目標のうちの1つの上に布置したことに応答して、コンピュータシステムは、更新されたデータビジュアライゼーションを生成して表示し(例えば
図4Eは、サーがメジャー「割引」を色にエンコードし、それによって視覚的構成要素460内の各行を別個の色にした後に、
図4Dの区域465に表示される更新されたビジュアライゼーションを示す)、レイアウトタイプ、マークタイプ、及び視覚的エンコーディングは、ユーザが第2のデータフィールドアイコンを布置したことに従って(例えば、ユーザがデータビジュアライゼーションの現在表示されている視覚的構成要素を視覚的にエンコードするために、データフィールドアイコンを、ブロックカード内のドロップ目標上に布置するのか、あるいは、子ブロックについては下方若しくは右、親ブロックについては上方及び左など、ブロックカードに隣接して、独立したデータビジュアライゼーションのために占有されていないエリア上に布置するのかに従って)判定される。いくつかの実施形態では、第2のデータフィールドアイコンは、第1のブロックカードのドロップ目標のうちの1つの上に布置され、第1のブロックカードに対応する視覚的構成要素の視覚的エンコーディングが更新される(例えば、
図4G~
図4Hに示すように、ユーザがメジャー「利益」を表現するデータフィールドアイコン478を布置した後に、
図4Hにおいて第2の視覚的構成要素462が作成される)。いくつかの実施形態では、第2のデータフィールドが隣接ドロップ目標のうちの1つに布置されると、第2のブロックカードが作成され、デフォルトのレイアウトタイプ、マークタイプ、及び/又は視覚的エンコーディングが、第2のデータフィールドアイコンに対応するデータフィールドのデータ値に従って割り当てられる(例えば、データフィールドアイコン478はメジャー「利益」を表現するので、インラインレイアウトタイプが自動的に割り当てられる)。ドロップ目標を、任意選択で特定のブロックカード内に、又はブロックカードに隣接して提供することは、データビジュアライゼーションを構築する際にユーザを支援する。いくつかの実施形態では、ドロップ目標は、選択されたデータフィールド表現に関連付けられたデータフィールドがディメンションであるか、又はメジャーであるかに基づいて、デフォルトの予め選択された値をレイアウトタイプ及び/又はマークタイプを有する。ドロップ目標は、データビジュアライゼーションを構築する反復的かつ対話型なプロセスにおいてユーザを支援する。いくつかの実施形態では、ドロップ目標は、ユーザがスキーマ区域からデータフィールド表現を(例えば、動的に)ドラッグすると直ちに表示され、それによって、ドラッグ&ドロップ動作を介して、任意の詳細レベルでデータフィールドをエンコードし、メジャーを集計する能力をユーザに提供する。ドロップ目標はまた、提案された目標上にデータフィールド表現を布置することによってブロックオブジェクト間の関係をユーザが構築するための機構を提供する。いくつかの実施形態では、ユーザは、システムによるデフォルト選択を手動で変更することができる。
【0112】
いくつかの実施形態では、第2のデータフィールドアイコンが第1のブロックカード上のドロップ目標のうちの1つの上に布置され、それによって、第2のデータフィールドアイコンに対応する第2のデータフィールドに基づいて視覚的エンコーディングが追加される(616)。いくつかの実施形態では、メジャーデータフィールドが色でエンコードされている場合、第1のブロックカードに指定された対応するディメンションに従ったメジャーデータフィールドの値の集計には、第1のブロックカード上に指定されたディメンションフィールドによって判定される特定の詳細レベルについての各自の集計値を示す、異なる色が割り当てられる。例えば、ディメンションフィールド「カテゴリ」第1のブロックカード上にエンコードされ、「割引」メジャーが色でエンコードされる場合、各「カテゴリ」データフィールド値について判定された各集計値には異なる色が割り当てられる(例えば、
図4Eは、メジャー「割引」が色でエンコードされる場合、各「カテゴリ」の集計された割引値の各々に別個の色が表示されることを示す)。この方法は、ドロップ目標を提供する(例えば、ブロック群ユーザインタフェースにブロックカードが表示されているブロックオブジェクトに関連付けられたデータフィールドを視覚的にエンコードできるようにする、視覚的エンコーディング476a~476fについてのドロップ目標。ドロップ目標は、選択された目標データフィールド表現に利用可能なエンコーディングを提供することによって、ユーザを支援する。この方法は、特定のブロックカード上にデータフィールドをエンコードするのに必要な入力の数を低減する。
【0113】
いくつかの実施形態では、第2のデータフィールドアイコンが隣接ドロップ目標のうちの1つの上に布置され、それによって、第1のブロックカードの親又は子である第2のブロックカードが形成され、更新されたデータビジュアライゼーションを生成することは、第1のブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングと、第2のブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングとに従ってデータビジュアライゼーションを生成することを含む(618)。この方法は、ブロックオブジェクト間の親子関係を構築する際にユーザを支援する。例えば、子ブロックを構築するためにユーザに要求されるのは、子ブロックオブジェクトを構築するために使用される2つのドロップ目標(
図4Dの472及び474などの、隣接する子ブロックカード/オブジェクトのためのドロップ目標、並びに
図4Fの隣接するブロックオブジェクトのためのドロップ目標480)のうちの1つに、選択されたデータフィールド表現を布置することだけである。
【0114】
いくつかの実施形態では、ブロックカードに隣接して表示されるドロップ目標は、第2のデータフィールドアイコンがディメンションデータフィールドを表現するのか、又はメジャーデータフィールドを表現するのかに基づいて判定される(例えば、ブロックカード480は、ユーザが選択したデータフィールドアイコンがメジャー「利益」を表現するので、インラインベースの配置を有するブロックカードを表示する)(620)。選択されたデータフィールドがディメンションであるか、又はメジャーであるかに基づいてドロップ目標を調整することは、選択されたデータフィールドに適切な予め選択されたブロック明細を提供することによってユーザを支援する。視覚的な推奨は、データビジュアライゼーションを構築するプロセスにおいてユーザを支援し、入力の数を低減し、かつ/又は、不適切なブロック明細を選択するというユーザのミスを低減する。
【0115】
いくつかの実施形態では、第2のデータフィールドアイコンがディメンションデータフィールドを表現するという判定に従って、コンピュータシステムは、ブロックカードに隣接ドロップ目標に、行レイアウトタイプを指定する第1のドロップ目標と、列レイアウトタイプを指定する第2のドロップ目標とを含む(622)。方法600は、選択されたデータフィールドがディメンションであると判定されると、行レイアウトタイプ又は列レイアウトタイプのうちの1つなどの適切なレイアウトタイプをユーザに自動的に提供する。ユーザに適切なレイアウトタイプを提供することは、ブロックカード明細を構築する際にユーザを支援する。レイアウトタイプについての予め選択された推奨は、データビジュアライゼーションを構築するプロセスにおいてユーザを支援し、入力の数を低減し、かつ/又は、不適切なブロック明細を選択するというユーザのミスを低減する。
【0116】
いくつかの実施形態では、第2のデータフィールドアイコンがメジャーデータフィールドを表現するという判定に従って、コンピュータシステムは、インラインレイアウトタイプを指定するドロップ目標を表示する(624)。方法600は、選択されたデータフィールドがディメンションであると判定されると、行レイアウト及び列レイアウトタイプなどの適切なレイアウトタイプをユーザに自動的に提供する。ユーザに適切なレイアウトタイプを提供することは、ブロックカード明細を構築する際にユーザを支援する。レイアウトタイプについての予め選択された推奨は、データビジュアライゼーションを構築するプロセスにおいてユーザを支援し、入力の数を低減し、かつ/又は、不適切なブロック明細を選択するというユーザのミスを低減する。
【0117】
いくつかの実施形態では、第2のブロックカードが第1のブロックカードの子である場合、更新されたデータビジュアライゼーションを生成することは、(i)第1のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールドに従って、第1の詳細レベルを定義することを含む(626)。この方法は、(i)第1のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)第2のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールドに従って、第2の詳細レベルを定義することを更に含む。更に、この方法は、第1のブロックカードについて、第1のブロックカードに関連付けられた各メジャーデータフィールドの集計を指定する第1のクエリを、第1の詳細レベルにあるディメンションデータフィールドに従って生成することを含む。更に、この方法は、第2のブロックカードについて、第2のブロックカードに関連付けられた各メジャーデータフィールドの集計を指定する第2のクエリを、第2の詳細レベルにあるディメンションデータフィールドに従って生成することを含む。更に、この方法は、第1のクエリを実行して、データソースからタプルの第1のセットを取り出すことを含む。更に、この方法は、第2のクエリを実行してデータソースからタプルの第2のセットを取り出すことと、タプルの第1のセットの各々を表現する各自の第1の視覚的マークと、タプルの第2のセットの各々を表現する各自の第2の視覚的マークとを含む、更新されたデータビジュアライゼーションを生成することと、を含む。ブロックオブジェクトのフルLODは、そのブロックオブジェクトのローカルLODと、その祖先の全てのローカルLODとの和集合である。親ブロックオブジェクトから詳細レベルを継承することにより、データビジュアライゼーション内に入れ子の関係を構築する能力が提供される。この方法は、対話様式としてドラッグ&ドロップを使用することによって、チャート生成中に入れ子の関係を取り扱うための視覚的に表現力のある方法をユーザに提供する。
【0118】
いくつかの実施形態では、ユーザが第2のデータフィールドアイコンを隣接ドロップ目標のうちの1つの上に布置すると、コンピュータシステムは、第1のブロックカードと第2のブロックカードとの間の階層関係を表現する視覚インジケータを表示する(628)。階層関係を表現する視覚インジケータを表示することにより、2つのブロックカード(及び関連付けられたブロックオブジェクト)間の親子関係として、ブロックカードのレイアウト及びそれらの互いの関係に関する視覚フィードバックがユーザに提供される(例えば、
図4Hの視覚インジケータ472aは、2つのブロックカード450と485の間の親子関係を示す)。
【0119】
いくつかの実施形態では、キャンバス区域上の第1のブロックカードと第2のブロックカードとの互いに対する視覚的位置決めは、データビジュアライゼーション内の第1のブロックカードの視覚的マークと第2のブロックカードの視覚的マークとの相対的な布置を判定する(630)。いくつかの実施形態では、キャンバス区域内のブロックカードのレイアウトが、データビジュアライゼーション内の対応する視覚的構成要素のレイアウトを直接判定する(例えば、
図4Hに示すように、視覚的構成要素460は、ブロックカード485の左に表示されたブロックカード450に対応する視覚的構成要素462の左に表示される)。例えば、ブロックAがブロックBの上方に布置されると、ブロックAに対応するデータビジュアライゼーションの視覚的構成要素は、ブロックBに対応する視覚的構成要素の上方に表示される。この方法により、ユーザは、ドラッグ&ドロップ動作との直接対話を介してキャンバス区域にブロックカードの布置することに基づいて、データビジュアライゼーションのレイアウト及び構造を構築できるようになる。これにより、ユーザは、ドラッグ&ドロップ対話様式を通じた使いやすさを維持しながら、より表現力のあるチャートを構築できるようになる。
【0120】
いくつかの実施形態では、第2のデータフィールドアイコンが布置された隣接ドロップ目標が第1のブロックカードの右又は第1のブロックカードの下方に位置するという判定に従って、コンピュータシステムは、(i)第1のブロックカードに関連付けられたディメンションデータフィールド及び(ii)第2のブロックカードに関連付けられたディメンションデータフィールドに従って、第2のブロックカードに関連付けられたメジャーデータフィールドを自動的に集計する(632)。例えば、第2のブロックカードの詳細レベルは(i)第1のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)第2のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールドに従って定義され、第2のブロックカードのクエリが生成され、クエリは、第2のブロックカードに関連付けられた各メジャーデータフィールドの集計を、第2のブロックカードの詳細レベルにあるディメンションデータフィールドに従って指定する。いくつかの実施形態では、インライン配置レイアウトタイプを有するブロックオブジェクトに対応するブロックカードの右又は下方にデータフィールドアイコンが布置されると、そのインライン配置レイアウトタイプを有するブロックオブジェクトの親ブロックオブジェクトの子ブロックオブジェクトである新しいブロックオブジェクトが生成される(例えば、新しいブロックオブジェクトは、そのインラインレイアウトタイプを有するブロックオブジェクトの子ではない)。特定のブロックによって親ブロックカードからディメンションを継承し、その特定のブロックオブジェクトとその特定のブロックオブジェクトの親ブロックオブジェクトの両方の詳細レベルで集計することによって、ユーザは、データビジュアライゼーション内で、任意の詳細レベルで集計できるようになる。特許請求の範囲に記載の方法を使用して、ユーザは、複雑な計算を構築する必要なく、クエリ及び集計データのビジュアライゼーションを様々な粒度レベルで構築することができる。
【0121】
いくつかの実施形態では、第2のデータフィールドが布置された隣接ドロップ目標が第1のブロックカードの左又は第1のブロックカードの上方に位置するという判定に従って、コンピュータシステムは、(i)第2のブロックカードに関連付けられたディメンションデータフィールド及び(ii)第1のブロックカードに関連付けられたディメンションデータフィールドに従って、第1のブロックカードに関連付けられたメジャーデータフィールドを自動的に集計する(634)。例えば、第1のブロックカードの詳細レベルが、(i)第2のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)第1のブロックカード上の視覚的エンコーディングを指定するディメンションデータフィールドに従って定義され、次に第1のブロックカードのクエリが生成され、ここでクエリは、第1のブロックカードに関連付けられた各メジャーデータフィールドの集計を第1のブロックカードの詳細レベルにあるディメンションデータフィールドに従って指定する。
【0122】
いくつかの実施形態では、コンピュータシステムは更新されたデータビジュアライゼーションを生成し、これには、第1のブロックカード(例えば、
図4Hのブロックカード450)に基づいて第1のデータビジュアライゼーション部分(例えば、
図4Hの視覚的構成要素460)を生成することと、第2のブロックカード(例えば、
図4Hのブロックカード485)に基づいて第2のデータビジュアライゼーション部分(例えば、
図4Hの視覚的構成要素462)を生成することとが含まれ、更新されたデータビジュアライゼーションは、第1のデータビジュアライゼーション部分と第2のデータビジュアライゼーション部分との連鎖を含む(例えば、
図4Hの区域465に表示されたデータビジュアライゼーションは、視覚的構成要素460と462との連結である)(636)。いくつかの実施形態では、各ブロックカードは異なった視覚的構成要素に関連付けられており、その視覚的構成要素は、その視覚的構成要素に対応するブロックカードとのユーザ対話に従って、データビジュアライゼーション内で他の視覚的構成要素から独立に更新され得る(例えば、
図4A~
図4Jに示すように、それぞれ、視覚的構成要素460はブロックカード450を修正することによって、視覚的構成要素462を更新することなく更新され得、視覚的構成要素462はブロックカード485を修正することによって視覚的構成要素460を更新することなく更新され得る)。この方法により、データビジュアライゼーション内の異なる部分を別々に更新することができるようになり、ユーザは、ドラッグ&ドロップ操作を介して各ブロックカードに異なるLOD及びエンコーディング特性を設定することができる。データビジュアライゼーション全体ではなく、データビジュアライゼーション構成要素のレベルにおいて異なる詳細レベル及びエンコーディング特性を提供する能力は、ドラッグ&ドロップ操作を通じた使いやすさを維持しながら、ユーザにより高い表現力を提供する。
【0123】
いくつかの実施形態では、第1のユーザ入力は、ドラッグ&ドロップジェスチャである(638)。
【0124】
いくつかの実施形態では、第1のユーザ入力は第1の部分及び第2の部分を含み、第1の部分は第1のデータフィールドアイコンを選択し、第2の部分は第1のデータフィールドアイコンをキャンバス区域上に布置する(640)。
【0125】
いくつかの実施形態では、ブロックカードは、デフォルトレイアウトタイプ、デフォルトマークタイプ、及び1つ以上のデフォルト視覚的エンコーディングを自動的に割り当てられる(642)。いくつかの実施形態では、レイアウトタイプ、マークタイプ、及び1つ以上の視覚エンコーディングは、ユーザによって修正され得る。いくつかの実施形態では、レイアウトタイプ、マークタイプ、及び視覚的エンコーディングにデフォルトで割り当てられる値は、エンコードの対象となっている対応するデータフィールドのデータ値に基づき、例えば、メジャーであるデータフィールドには、デフォルトでインラインレイアウトタイプが割り当てられ、ディメンションであるデータフィールドには、デフォルトで行レイアウトタイプ又は列レイアウトタイプが割り当てられる。ブロックカードにレイアウトタイプを自動的に割り当てることは、ユーザにデフォルトを提供すると同時にユーザがデフォルトを修正できるようにすることによって、データビジュアライゼーションを構築する際にユーザを支援する。
【0126】
いくつかの実施形態では、複数のユーザインタフェースアフォーダンスは、ブロックカードのレイアウトタイプを示す第1のユーザ選択可能なユーザインタフェース要素(例えば、
図4Cに示すように、現在選択されているレイアウトが行ベースの配置であることを示すユーザ選択可能な要素442)と、ブロックカードのマークタイプを示す第2のユーザ選択可能なユーザインタフェース要素(例えば、
図4Cに示すように、現在選択されているマークがテキストであることを示すユーザ選択可能な要素444)と、各々が各自の視覚的エンコーディングを示す複数の追加のユーザインタフェース要素(例えば、アイコン476a~476f)と、を含む(644)。いくつかの実施形態では、レイアウトタイプ及びマークタイプは、ブロックの上部に表示される。いくつかの実施形態では、レイアウトはテキストで表現され、マークタイプは予め定義されたシンボルによって表現される。いくつかの実施形態では、1つ以上の視覚的エンコーディングは、ブロックカード内のドロップ目標を表現するシンボル又はアイコンのリストとして表現される。レイアウトタイプを示すユーザ選択可能な要素を提供することにより、レイアウトタイプを変更する能力がユーザに提供され、また、現在のレイアウトタイプの視覚的表示がユーザに提供される。更に、マークタイプを示すユーザ選択可能な要素を提供することにより、マークタイプを変更する能力がユーザに提供され、また、現在のマークタイプの視覚的表示がユーザに提供される。更に、視覚的エンコーディングを示すユーザインタフェース要素を提供することにより、現在選択されているエンコーディングの視覚的フィードバックがユーザに提供される。
【0127】
いくつかの実施形態では、ブロックカードが第1のブロックカードである場合、コンピュータシステムは、スキーマ区域から第3のデータフィールドアイコンを選択する第3のユーザ入力(例えば、
図5Aのディメンションセグメントを表現するデータフィールドアイコン502を選択する入力)を受信する(646)。第3のユーザ入力を受信したことに応答して、コンピュータシステムは、第1のブロックカード上にドロップ目標を表示し、第1のブロックカード上の各ドロップ目標は、第3のデータフィールドアイコンとの関連付けのために選択され得る各自の視覚的エンコーディングを指定する。第3のユーザ入力を受信したことに応答して、コンピュータシステムは第1のブロックカードに隣接してドロップ目標を表示し、各隣接ドロップ目標は、ブロックカードに関連する子ブロックカード又は親ブロックカードを作成するための別個の選択肢を指定する。ユーザが第3のデータフィールドアイコンを、表示されたドロップ目標のいずれかの外側のキャンバス区域上の占有されていないエリア(
図5Aに示されるように、ブロックユーザインタフェース445の外側及びデータビジュアライゼーション表示区域465の外側のキャンバス区域440内)上に布置したことに応答して、コンピュータシステムは、他のブロックカードから独立した第3のブロックカード(例えば、
図5Bのブロックカード504)を、第3のデータフィールドアイコンによって表現される第3のデータフィールドのデータ値に従って生成する。いくつかの実施形態では、第3のデータフィールドがメジャーであるとき、ブロックカードには、レイアウトタイプのインライン配置を割り当てられ、第3のデータフィールドがディメンションであるとき、ブロックカードには行ベース又は列ベースの配置を割り当てられる。ユーザが第3のデータフィールドアイコンを、表示されたドロップ目標のいずれかの外側のキャンバス区域上の占有されていないエリア上に布置したことに応答して、コンピュータシステムは、第3のブロックカード上に指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、第2のデータビジュアライゼーションを更に生成して表示し、第2のデータビジュアライゼーションは、第1のデータビジュアライゼーションとは別々であり、第1のデータビジュアライゼーションと同時に表示される。この方法により、ユーザがダッシュボード上に複数のビジュアライゼーションを構成するなどの回避策を必要とせずに、同じデータソース及びデータフィールドを使用して同じキャンバス区域上に2つ以上の別々の独立したデータビジュアライゼーションを構築できるようになり、したがって、それらは、例えば、単一のダッシュボード上で複数のシートを共に位置合わせして所望の書式及びレイアウトに適合させる必要なく、1つに見える。同じ分析キャンバス区域に2つ又はモードの独立したデータビジュアライゼーションを生成することにより、複合データビジュアライゼーションを構築するために必要なユーザ入力の数が低減し、ブロック群ユーザインタフェースとの対話がより効率的になる。
【0128】
図7A~
図7Cは、いくつかの実施形態による、取り出されたタプルの各々について、行インデックス及び列インデックスを割り当てるプロセスに従って、データビジュアライゼーション内の各自の2次元グリッド位置を計算するための方法700を示す流れ図である。方法700は、電子デバイス(例えば、
図2のデバイス200)において遂行される。いくつかの実施形態では、電子デバイスは、ディスプレイと、任意選択でタッチ感応面とを備えるポータブル多機能デバイスである。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感応面はディスプレイ上にある、又はディスプレイと一体化されている。いくつかの実施形態では、ディスプレイは、タッチ感応面とは別々である。方法700のいくつかの動作は、任意選択で組み合わせられ、かつ/又は、いくつかの動作の順序は、任意選択で変更される。
【0129】
本明細書で説明するように、いくつかの実施形態によれば、方法700は、複数のブロックオブジェクト明細に基づいて生成された複数のクエリから取り出されたタプルを、データビジュアライゼーション内の計算されたグリッド位置に割り当てる。この方法により、ユーザは、単純なドラッグ&ドロップ技法を介してユーザインタフェース内にブロックオブジェクト明細を構築することができる。この方法は、UIブロックカードを、クエリを構築するために使用されるブロックオブジェクト明細に変換し、各ブロックカードは単一のクエリを生成する。方法700は更に、各クエリに対する各結果(例えばタプル)の、最終データビジュアライゼーション内の位置を計算する。方法700は、チャートを作成するプロセスをドラッグ&ドロップ対話を介して改善する。方法700では、インタフェース内のブロックオブジェクトの直接操作を通じて、異なるレイアウトを構築するためのより高い柔軟性、及び、書式のより多くの選択肢がユーザに提供される。方法700は、視覚的分析インタフェースを提供し、ユーザは、文法又は低レベルの実施形態の詳細を学習必要なく、分析作業フローを反復的に構築することができる。方法700を、いくつかの実施形態に従って
図7A~
図7Cに示す。
【0130】
いくつかの実施形態では、1つ以上のプロセッサと、ディスプレイと、1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、ディスプレイ上にグラフィカルユーザインタフェースを表示する(702)。グラフィカルユーザインタフェースは、(a)複数のデータフィールドアイコンを表示するスキーマ区域であって、各データフィールドアイコンが、ユーザ選択のデータソースからの各自のデータフィールドを表現する、スキーマ区域と、(b)複数のブロックカードを含むキャンバス区域であって、各ブロックカードが、(i)行ベースの配置、(ii)列ベースの配置、又は(iii)インライン配置のうちの1つである各自のレイアウトタイプを指定し、各ブロックカードは、ユーザが1つ以上の各自のデータフィールドアイコンをキャンバス区域上に布置したことに応答して生成される、キャンバス区域と、を含む。いくつかの実施形態では、ユーザがキャンバス区域上にデータフィールドを布置すると、コンピュータシステムによってブロック明細が作成される。いくつかの実施形態では、キャンバス区域上に布置されたデータフィールドに基づいて、データシステムはデフォルトのレイアウトタイプ、マークタイプ、及び/又は視覚的エンコーディングを割り当て、これらは任意選択で、後にユーザによって、1つ以上のユーザインタフェース要素(又はアフォーダンス)の選択を介して修正することができる。
【0131】
各ブロックカードについて、コンピュータシステムは、各自のブロックカードに関連付けられたデータフィールドのデータのタプルを取り出すために、各自のデータベースクエリを生成して実行する(704)。取り出された各タプルについて、コンピュータシステムは、各自の行インデックス及び各自の列インデックスを含む各自の2次元グリッド位置を計算する(706)。コンピュータシステムは、取り出された各タプルが各自の計算されたグリッド位置に表示される視覚的マークとして表現されるデータビジュアライゼーションを生成して表示する(708)(
図7B参照)。
【0132】
いくつかの実施形態では、コンピュータシステムは、取り出された各タプルについて、各自の2次元グリッド位置を計算し、これには、ブロックオブジェクトの有向非巡回グラフを形成することを含み、各ブロックオブジェクトは、(i)各自の表示されたブロックカード、(ii)ルート行オブジェクト、又は(iii)ルート列オブジェクトに対応し、グラフ内の各リンクは、ブロックカードの各自の対のキャンバス区域上での空間位置によって判定される、ブロックカードの各自の対の間の各自の階層関係、又は、あるブロックカードとルート行オブジェクト若しくはルート列オブジェクトとの間の関係のいずれかを表現する(710)。キャンバス区域上のブロックカードの空間位置を使用して、ブロックオブジェクト間の各自の階層関係を判定することにより、ユーザは、データビジュアライゼーション内に属性間の入れ子関係を構築することが可能になる。これにより、プロセスが単純化し、同時に、ユーザのためのチャート作成における表現力が向上する。
【0133】
いくつかの実施形態では、コンピュータシステムは、取り出された各タプルについて、各自の2次元グリッド位置を計算し、これには、ルート列オブジェクトを除去し、ルート行オブジェクトからのリンク及び行ベースの配置を有するブロックカードに対応するブロックオブジェクトからのリンクのみを保持することによって、有向非巡回グラフから行ブロックツリーを生成することを更含む(712)。いくつかの実施形態では、ルート行ブロックオブジェクトは、暗示的に作成された明細であり、データキャンバス区域には視覚的には表現されない。コンピュータシステムは更に、行タプルツリーであって、そのノードが単一のルート行ノードと、取り出されたタプルの各々に対応する各自のノードとを含む行タプルツリーを生成し、N1がルート行ノードであり、かつN2が、ルート行オブジェクトの子であるブロックオブジェクトについて取り出されたタプルに対応する場合、又は、N1及びN2が、取り出されたタプルT1及びT2に対応し、タプルT1及びT2が、ブロックオブジェクトB1及びB2について取り出されたものであり、ブロックオブジェクトB1が、行ブロックツリー内でブロックオブジェクトB2の親であり、タプルT1及びT2が、それらの共有するディメンションデータフィールドの各々について同じデータ値を有する場合、行タプルツリー内のノードN1及びN2の各対の間に各自のリンクを形成する。いくつかの実施形態では、ノード間の親子関係は、行ブロックツリーに基づいて、例えば、行ブロックツリーをトラバースすることによって判定される。コンピュータシステムは更に、行タプルツリー構造を深さ優先順序でトラバースすることによって各タプルに行インデックスを割り当てる。例えば、各タプルには、ヘッダ、第1の行、第2の行などに、0、1、2などのインデックスが割り当てられてもよい。取り出された各タプルにグリッド内の行インデックス位置を自動的に割り当てることにより、ユーザが単純なドラッグ&ドロップ技法によってデータビジュアライゼーションを構築できるようになり、この方法は、各タプルに対応するデータビジュアライゼーション内の各マークの正確な位置を計算する。この方法は、ブロックカードを、タプルを取り出すクエリに自動的に変換し、タプルには、ブロックユーザインタフェース内のブロックカードによって形成される親子関係に基づいて、最終データビジュアライゼーション内の位置を自動的に割り当てられる。この方法により、複雑な文法を学習する必要なしに、又は規則的なドラッグ&ドロップ反復作業フローとは別々に関数を作成して集計値を計算する必要なしに、単純なドラッグ&ドロップ技法を介して複雑でリッチなデータビジュアライゼーションを構築することができるようになる。
【0134】
いくつかの実施形態では、行タプルツリーを深さ優先順序でトラバースすることは、行ブロックツリー内のブロックオブジェクトの順序付け、各タプル内のディメンションデータフィールドのデータ値の順序付け、及び任意のユーザ指定のソート順序に従って、取り出されたタプルをソートすることを更に含む(714)。
【0135】
いくつかの実施形態では、取り出された各タプルについて各自の2次元グリッド位置を計算することは、ルート行オブジェクトを除去し、ルート列オブジェクトからのリンク及び列ベースの配置を有するブロックカードに対応するブロックオブジェクトからのリンクのみを保持することによって、有向非巡回グラフから列ブロックツリーを生成することを更に含む(716)。いくつかの実施形態では、ルート行ブロックオブジェクトは、暗示的に作成された明細であり、データキャンバス区域には視覚的には表現されない。更に、列タプルツリーであって、そのノードが単一のルート列ノードと、取り出されたタプルの各々に対応する各自のノードとを含む列タプルツリーを生成し、N1がルート列ノードであり、かつN2が、ルート列オブジェクトの子であるブロックオブジェクトについて取り出されたタプルに対応する場合、又は、N1及びN2が、取り出されたタプルT1及びT2に対応し、タプルT1及びT2が、ブロックオブジェクトB1及びB2について取り出されたものであり、ブロックオブジェクトB1が、列ブロックツリー内でブロックオブジェクトB2の親であり、タプルT1及びT2が、それらの共有するディメンションデータフィールドの各々について同じデータ値を有する場合、列タプルツリー内のノードN1及びN2の各対の間に各自のリンクを形成することと、を含む。更に、列タプルツリーを深さ優先順序でトラバースすることによって、各タプルに列インデックスを割り当てることを含む。例えば、各タプルには、グリッド内の第1の列、第2の列などに、0、1、2などのインデックスが割り当てられてもよい。取り出された各タプルにグリッド内の列インデックス位置を自動的に割り当てることにより、ユーザが単純なドラッグ&ドロップ技法によってデータビジュアライゼーションを構築できるようになり、この方法は、各タプルに対応するデータビジュアライゼーション内の各マークの正確な位置を計算する。この方法は、ブロックカードを、ブロックユーザインタフェース内のブロックカードによって形成される親子関係に基づいて、最終データビジュアライゼーション内の位置を自動的に割り当てられるタプルを取り出すクエリに自動的に変換する。この方法により、複雑な文法を学習する必要なしに、又は規則的なドラッグ&ドロップ反復作業フローとは別々に関数を作成して集計値を計算する必要なしに、単純なドラッグ&ドロップ技法を介して複雑でリッチなデータビジュアライゼーションを構築することができるようになる。
【0136】
いくつかの実施形態では、列タプルツリーを深さ優先順序でトラバースすることは、列ブロックツリー内のブロックオブジェクトの順序付け、各タプル内のディメンションデータフィールドのデータ値の順序付け、及び任意のユーザ指定のソート順序に従って、取り出されたタプルをソートすることを更に含む(718)。
【0137】
いくつかの実施形態では、各タプルが視覚的マークとして表現されるデータビジュアライゼーションを生成することは、行ベースの配置又は列ベースの配置のレイアウトタイプを有する各ブロックカードについて、各自のブロックカードについて取り出された各タプルを異なるグリッド位置に割り当てることを更に含む(720)。いくつかの実施形態では、各タプルが視覚的マークとして表現されるデータビジュアライゼーションを生成することは、インライン配置のレイアウトタイプを有する各ブロックカードについて、各自のブロックカードについて取り出されたタプルの全てを各自の単一のグリッド位置に割り当てることを更に含む(722)。例えば、全てのタプルが表形式データビジュアライゼーション内の単一のセル内に、単一のセル内に表示される、複数のタプルに対応するスパークラインなどとして表示される。
【0138】
いくつかの実施形態では、各ブロックカードは、データビジュアライゼーションの1つの各自の視覚的構成要素についてのデータを取り出すクエリを生成する(724)。この方法により、各ブロックオブジェクトに対して、最終データビジュアライゼーション内に表示されるマークの空間レイアウトをそれぞれ判定する異なるレイアウト選択肢を提供することによってレイアウトの柔軟性ができるようになり、各マークは、各自のブロックオブジェクトについての各自のクエリに基づいて返される各自のタプルに対応する。したがって、ユーザは、各自のブロックオブジェクトに基づいて構築されるデータビジュアライゼーション内で、各個別の構成要素のレベルでマークのレイアウトを制御することができる。
【0139】
いくつかの実施形態では、コンピュータシステムは、(例えば、ドラッグ&ドロップ動作によって)データフィールドアイコンをキャンバス区域上に布置するユーザ入力を受信し、それによって、第1のブロックカードを更新又は作成する(726)。また、ユーザ入力に応答して、第1のブロックカード以外のブロックカードに対応するクエリを実行することなく、第1のブロックカードに対応する生成されたクエリを実行する。各々のブロックカードについてクエリを実行することにより、ユーザインタフェース内の他の既存のブロックカードについてクエリを実行することなく、データビジュアライゼーション内の別々の視覚的部分を更新することができる。これにより、ユーザがデータビジュアライゼーションに対してより効率的に変更を加えることができるようになり、また、ユーザが異なる視覚的特性をエンコードし、データビジュアライゼーション内の別々の構成要素に異なるマークを割り当てられるようになる。
【0140】
いくつかの実施形態では、第1のブロックカードに対応する生成されたクエリを実行したことに応答して、コンピュータシステムは、第1のブロックカード以外のブロックカードについて既に生成されている視覚的構成要素を更新することなく、データビジュアライゼーション内に新しい視覚的構成要素を生成する、又はデータビジュアライゼーション内に現在表示されている視覚的構成要素を更新する(728)。いくつかの実施形態では、データビジュアライゼーション構成要素は、互いに独立して更新できる。各自のブロックカード明細に基づいて生成された、実行された各クエリについて別々の視覚的構成要素を生成することにより、データビジュアライゼーションの他の部分を更新することなく、データビジュアライゼーション内の別々の視覚的部分を更新することができるようになる(例えば、ユーザは、ユーザインタフェース内のブロックカード明細を単に更新することによってこれを行うことができる)。これにより、ユーザは、データビジュアライゼーションに対してより効率的な変更を行うことができるようになり、また、データビジュアライゼーション内で構成要素及びマークを分別するために異なる視覚的特性をエンコードすることができるようになる。
【0141】
いくつかの実施形態では、第1のブロックカードは、マークタイプと、色(例えば、
図4Dのアイコン476c)、サイズ、形状(例えば、
図4Dのアイコン476d)、テキスト(例えば、
図4Dのアイコン476e)、x軸(例えば、
図4Dのアイコン476a)、y軸(例えば、
図4Dのアイコン476b)、昇順ソート、降順ソート、又は詳細レベル(例えば、
図4Dのアイコン476f)を指定する1つ以上の視覚的エンコーディングとを指定し、第1のブロックカードについて取り出された各タプルは、指定されたマークタイプを有する視覚的マークに対応する(730)。各ブロックオブジェクトのマークタイプは、単純なドラッグ&ドロップ技法によって指定することができる。更に、データビジュアライゼーション内の別々の視覚部分の各々に対して異なるマークタイプをエンコードすることにより、チャート作成プロセスにおいてより高い柔軟性及び表現力をユーザに可能にし、例えば、ビジュアライゼーション全体に対して同じタイプのマークを適用するのではなく、単純なドラッグ&ドロップ技法によって各視覚的構成要素のレベルでマークタイプを指定できる。
【0142】
いくつかの実施形態では、複数のブロックカードの各ブロックカードについて、コンピュータシステムは、そのブロックカード内の1つ以上の視覚的エンコーディングを指定するディメンションデータフィールドに従って、そのブロックカードについての第1の詳細レベル(例えば、ローカルLOD)を判定し、コンピュータシステムは、(i)ブロックカード内の1つ以上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)そのブロックカードの任意の祖先ブロックカード内の視覚的エンコーディングを指定するディメンションデータフィールドに従って、そのブロックカードについての第2の詳細レベル(例えば、完全LOD)を判定する(732)。祖先ブロックオブジェクトの詳細レベルを継承することにより、ユーザは、異なる詳細レベルでデータソースを照会し、単一のデータビジュアライゼーション内で異なる粒度レベルでメジャー集計を表示することができるようになる。更に、ユーザは、別々の計算を行う必要も、数式の複雑な構文構造を理解する必要もなく、代わりに、単純なドラッグ&ドロップ技法を使用し続けることができる。
【0143】
いくつかの実施形態では、各ブロックカードについて、各自のデータベースクエリを実行することは、各自のブロックカードに関連付けられた各メジャーデータフィールドを、第2の詳細レベルにあるディメンションデータフィールドに従って集計することを含む(734)。
【0144】
いくつかの実施形態では、キャンバス上での複数のブロックカードの互いに対する布置により、その複数のブロックカード間の階層関係を判定する(736)。いくつかの実施形態では、キャンバス上での複数のブロックカードの互いに対する布置は、コンピュータシステムに、隣接関係グラフを形成させ、ブロックオブジェクトの有向非巡回グラフは、この隣接関係グラフに基づく(738)。
【0145】
図8A及び
図8Bは、いくつかの実施形態による、データフィールド表現と対話することによって、データビジュアライゼーションのレイアウト及び構成要素を生成する方法800を示すフロー図である。方法800は、電子デバイス(例えば、
図2のデバイス200)において遂行される。いくつかの実施形態では、電子デバイスは、ディスプレイと、任意選択でタッチ感応面とを備えるポータブル多機能デバイスである。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感応面はディスプレイ上にある、又はディスプレイと一体化されている。いくつかの実施形態では、ディスプレイは、タッチ感応面とは別々である。方法900のいくつかの動作は、任意選択で組み合わせられ、かつ/又は、いくつかの動作の順序は、任意選択で変更される。
【0146】
本明細書で説明するように、方法800は、祖先ブロックオブジェクトの詳細レベルとそのブロックオブジェクトのローカル詳細レベルの両方に従ってメジャーを集計する能力を提供することによって、異なる粒度レベルでのクエリ実行及びエンコーディングの能力をユーザに提供する。祖先ブロックオブジェクトの詳細レベルを継承することにより、ユーザは、異なる詳細レベルでデータソースを照会し、単一のデータビジュアライゼーション内で異なる粒度レベルでメジャー集計を表示することができるようになる。更に、ユーザは、別々の計算を行う必要も、数式の複雑な構文構造を理解する必要もなく、代わりに、単純なドラッグ&ドロップ技法を使用し続けることができる。
【0147】
いくつかの実施形態では、1つ以上のプロセッサと、ディスプレイと、1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、ユーザがデータフィールドアイコンをキャンバス区域上に布置したことに従って、複数の相互に関連するブロックオブジェクト明細が生成され、各データフィールドアイコンは、複数のデータフィールドアイコンを表示するスキーマ区域から選択され、各データフィールドアイコンはユーザ選択のデータソースからの各自のデータフィールドを表現し、各ブロックオブジェクト明細は、(i)行ベースの配置、列ベースの配置、又はインライン配置を指定するレイアウトタイプと、(ii)視覚的データマークの形状を指定するマークタイプと、(iii)ユーザ選択のデータフィールドアイコンのデータ値に従って、色、サイズ、形状、テキスト、x軸、y軸、昇順ソート、降順ソート、又は詳細レベルのうちの1つ以上を指定する1つ以上の視覚的エンコーディングと、を含む(802)。各ブロックオブジェクト明細について、コンピュータシステムは、(1)各自のブロックオブジェクト明細について視覚的エンコーディングを指定するユーザ選択のデータフィールドアイコンに従って各自のクエリを生成し、(2)各自のクエリを実行して、データソースからタプルの各自のセットを取り出し、各タプルが、各自のブロックオブジェクト明細について視覚的エンコーディングを指定するユーザ選択のデータフィールドアイコンに対応するデータフィールドのデータ値を含む(804)。更に、コンピュータシステムは、各ブロックオブジェクト明細内で指定されたレイアウトタイプ、マークタイプ、及び視覚的エンコーディングに従って、データビジュアライゼーションを生成し、タプルの各自のセットの各々の中の各タプルは、データビジュアライゼーションの中で視覚的マークとして表現される(806)。
【0148】
いくつかの実施形態では、各自のクエリを生成することは、各自のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールドに従って、詳細レベルを定義することを含む。また、各自のクエリを実行することは、各自のブロックオブジェクト明細内の各メジャーデータフィールドを、その詳細レベルにあるディメンションデータフィールドに従って集計することを含む(808)。
【0149】
いくつかの実施形態では、第1のクエリは第1のブロックオブジェクト明細に対応する。第2のクエリは第2のブロックオブジェクト明細に対応する。第1のブロックオブジェクト明細は、第2のブロックオブジェクト明細に対応する第2のブロックオブジェクトの親ブロックオブジェクトである第1のブロックオブジェクトに対応する。第1のブロックオブジェクト明細及び第2のブロックオブジェクト明細の各々について各自のクエリを生成することは、第1のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールドに従って、第1の詳細レベルを定義することと、(i)第1のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールド及び(ii)第2のブロックオブジェクト明細内の視覚的エンコーディングに関連付けられたディメンションデータフィールドに従って、第2の詳細レベルを定義することと、第1のブロックオブジェクト明細について、第1のブロックオブジェクト明細に関連付けられた各メジャーデータフィールドの集計を指定する第1のクエリを、第1の詳細レベルにあるディメンションデータフィールドに従って生成することと、第2のブロックオブジェクト明細について、第2のブロックオブジェクト明細に関連付けられた各メジャーデータフィールドの集計を指定する第2のクエリを、第2の詳細レベルにあるディメンションデータフィールドに従って生成することと、を含む(810)。
【0150】
いくつかの実施形態では、複数の相互に関連するブロックオブジェクト明細を生成することは、ユーザが第1のデータフィールドアイコンをキャンバス区域上に布置したことに従って、第1のブロックオブジェクト明細を生成することであって、第1のブロックオブジェクト明細に指定されたレイアウトタイプ、マークタイプ、及び1つ以上の視覚エンコーディングは当初、第1のデータフィールドアイコンに関連付けられた第1のデータフィールドの値に従って、コンピュータシステムによって判定されることと、ユーザが第2のデータフィールドアイコンをキャンバス区域上に布置したことに従って、第2のブロックオブジェクト明細を生成することであって、第2のブロックオブジェクト明細に指定されたレイアウトタイプ、マークタイプ、及び1つ以上の視覚エンコーディングは当初、第2のデータフィールドアイコンに関連付けられた第2のデータフィールドの値に従って、コンピュータシステムによって判定されることと、を含む(812)。
【0151】
いくつかの実施形態では、各ブロックオブジェクト明細はキャンバス区域内の各自のユーザインタフェースブロックカードによって表現され、各自のユーザインタフェースブロックカードは、各自のユーザインタフェースブロックカードのレイアウトタイプを指示するための選択可能なユーザインタフェース要素、各自のユーザインタフェースブロックカードのマークタイプを指示するための選択可能なユーザインタフェース要素、及び/又は、各自のブロックオブジェクト明細の1つ以上の視覚的エンコーディングを示す複数のユーザインタフェース要素、を含む(814)。
【0152】
いくつかの実施形態では、各ブロックオブジェクト明細は、データビジュアライゼーション内の各自の視覚的構成要素を判定し、各自のビジュアライゼーション構成要素は、データビジュアライゼーション内の他の視覚的構成要素から独立して更新することができる(816)。いくつかの実施形態では、キャンバス区域内の各ユーザインタフェースブロックカードは、各自のクエリが生成されるブロックオブジェクト明細に変換され、各自のクエリの実行に応答して取り出されるタプル及びエンコーディングに従って単一の視覚的構成要素が判定される。ブロックカード明細は、対応するユーザインタフェースブロックカードを対話又は操作することによって更新することができ、それによって、データビジュアライゼーション内の対応する視覚的構成要素が更新される。
【0153】
いくつかの実施形態では、各ブロックオブジェクト明細について、コンピュータシステムは、そのブロックオブジェクト明細内の1つ以上の視覚的エンコーディングを指定するディメンションデータフィールドに従って、そのブロックオブジェクト明細についての第1の詳細レベル(例えば、ローカルLOD)を判定し、(i)そのブロックオブジェクト明細内で1つ以上の視覚的エンコーディングを指定するディメンションデータフィールド及び(ii)任意の祖先ブロックオブジェクト明細内で視覚的エンコーディングを指定するディメンションデータフィールドに従って、そのブロックオブジェクト明細についての第2の詳細レベルを判定する(818)。
【0154】
いくつかの実施形態では、各自のブロックオブジェクト明細内の1つ以上の視覚的エンコーディングを指定する各メジャーデータフィールドを識別すること、各自のクエリを実行することは、識別された各メジャーデータフィールドを、第2の詳細レベルにあるディメンションデータフィールドに従って集計することを含む(820)。いくつかの実施形態では、データビジュアライゼーションは、表ベースのチャート、サンキーダイアグラム、及び地図ベースの図からなる群から選択されるタイプを有する(822)。
【0155】
本明細書において本発明の説明で使用される用語は、特定の実施形態を説明することのみを目的としたものであり、本発明を限定することを意図するものではない。本発明の説明及び添付の特許請求の範囲において使用される場合、単数形「a」、「an」及び「the」は、文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。本明細書で使用される場合、「及び/又は」という用語は、関連する列挙された項目のうちの1つ以上のありとあらゆる可能な組み合わせを指し、それらを包含することも理解されよう。用語「含む(comprises)」及び/又は「含んでいる(comprising)」は、本明細書で使用されたとき、述べられた特徴、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を排除しないことが更に理解されよう。
【0156】
前述の説明は、解説の目的で、特定の実施形態を参照して記載されてきた。しかしながら、上記の例示的な考察は、網羅的であること、又は本発明を開示された厳密な形態に限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。実施形態は、本発明の原理及びその実用的な用途を最良に説明するために選択及び記載され、これにより他の当業者は、本発明と、企図される特定の使用に適した様々な修正を伴う様々な実施形態とを最大限に活用することが可能となる。
【国際調査報告】