(57)【特許請求の範囲】
【請求項１】
方法であって、
既存の視覚化の修正に対応する入力を受信するステップを含み、前記修正は、前記既存の視覚化に関連付けられた１以上の次元に対して次元データを追加するかまたは除去することを含み、前記方法はさらに、
複数の視覚化タイプのための複数の視覚化構成を決定するステップを含み、前記複数の視覚化構成は、前記既存の視覚化に対する前記修正を含み、前記方法はさらに、
１つ以上のプロセッサによって、前記複数の視覚化構成についての複数の構成スコアを計算するステップと、
前記計算された構成スコアに基づいて、前記複数の視覚化構成から特定の視覚化構成を選択するステップと、
前記特定の視覚化構成に対応する更新された視覚化をレンダリングさせるステップとを含み、
構成のために計算された構成スコアは、視覚化を切換えるためのペナルティコンポーネントに相当し、
視覚化を切換えるための前記ペナルティコンポーネントは、前記既存の視覚化から別の視覚化へと視覚化のタイプを変更するために、前記既存の視覚化から他の視覚化へと前記視覚化のタイプが変更されない場合と比較して、より高いペナルティスコアを割当てる、方法。
【請求項２】
前記複数の構成スコアを計算するステップは、前記１以上の次元に対する前記修正を含む１セットの次元を決定し、前記１セットの次元の各々を視覚化構成内のエッジにマッピングするステップを含む、請求項１に記載の方法。
【請求項３】
前記マッピングの結果、前記視覚化構成内の他のエッジにマッピングされている次元と比較して、値がより高くなる場合、次元がエッジにマッピングされる、請求項２に記載の方法。
【請求項４】
前記視覚化構成のための前記構成スコアは、視覚化優秀性コンポーネント、プリファレンスコンポーネント、視覚化を切換えるためのペナルティコンポーネントおよび意味的相違コンポーネントを含む構成スコアリング式を用いて計算される、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数の視覚化タイプは、プラグイン・アダプタを介してユーザによって指定される視覚化タイプを含み、前記視覚化タイプは、前記ユーザによって指定される１以上の次元を表わすことができる１以上のエッジを有する、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記更新された視覚化は、前記既存の視覚化とは異なる視覚化タイプを有する、請求項１から５のいずれか１項に記載の方法。
【請求項７】
システムであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されたメモリとを含み、１セットの命令で符号化された前記メモリは、以下のプロセスを実行するように構成され、前記以下のプロセスは、
既存の視覚化の修正に対応する入力を受信することを含み、前記修正は、前記既存の視覚化に関連付けられた１以上の次元に対して次元データを追加するかまたは除去することを含み、前記以下のプロセスはさらに、
複数の視覚化タイプのための複数の視覚化構成を決定することを含み、前記複数の視覚化構成は、前記既存の視覚化に対する前記修正を含み、前記以下のプロセスはさらに、
前記１つ以上のプロセッサによって、前記複数の視覚化構成についての複数の構成スコアを計算することと、
前記計算された構成スコアに基づいて、前記複数の視覚化構成から特定の視覚化構成を選択することと、
前記特定の視覚化構成に対応する更新された視覚化をレンダリングさせることとを含み、
構成のために計算された構成スコアは、視覚化を切換えるためのペナルティコンポーネントに相当し、
視覚化を切換えるための前記ペナルティコンポーネントは、前記既存の視覚化から別の視覚化へと視覚化のタイプを変更するために、前記既存の視覚化から他の視覚化へと前記視覚化のタイプが変更されない場合と比較して、より高いペナルティスコアを割当てる、システム。
【請求項８】
請求項１〜６のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１４年９月２６日に出願され「視覚化エッジに対するデータ要素の、意味的距離に基づいた割当て（SEMANTIC DISTANCE-BASED ASSIGNMENT OF DATA ELEMENTS TO VISUALIZATION EDGES）」と題された米国仮出願第６２／０５６，４０４号と、２０１４年１１月１３日に出願され「ビジュアルアナライザシステム（VISUAL ANALYZER SYSTEM）」と題された米国仮出願番号第６２／０７９，３６３号との利益および優先権を主張する、２０１５年９月２５日に出願され「視覚化エッジに対するデータ要素の、意味的距離に基づいた割当て（SEMANTIC DISTANCE-BASED ASSIGNMENT OF DATA ELEMENTS TO VISUALIZATION EDGES）」と題された米国非仮出願第１４／８６６，２７２号の利益および優先権を主張するものである。出願番号第１４／８６６，２７２号、第６２／０５６，４０４号および第６２／０７９，３６３号の内容全体があらゆる目的のために引用によりこの明細書中に援用されている。
【背景技術】
【０００２】
背景
ユーザにとって容易に直観的になり得る図形による視覚化を生成することはかなり困難なことである。なぜなら、データをアセンブルしてユーザに提示することができるバリエーションが無数にあるからである。たとえば、一種の視覚化（たとえば棒グラフ、円グラフ）が複数次元のデータ（たとえば収益、会社、年度）に対応し得る一方で、視覚化によって提示されるべきデータの次元の値または数が変化することにより、しばしば、ユーザが理解するのが困難になるようにデータが表示されてしまう。これは、たとえば、用いられる視覚化のタイプや、または、視覚化のさまざまなエッジによって次元が表わされている態様によるものである。さらに、ユーザは、同じセットのデータをさまざまなタイプに視覚化して観察することを所望する場合もある。さまざまな視覚化タイプが同じセットのデータを提示することができるバリエーションが数多く存在しているので、所望の視覚化タイプを用いて、かつユーザにとって直観的に理解できる態様でデータを提示するための方法を決定できるようにすることが必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
本開示は、視覚分析に関し、より具体的には、図形による視覚化を用いて、データを自動的に効果的に表示するための技術に関する。図形による視覚化によって表わされるデータがユーザによって直観的かつ迅速に理解可能となり得るように、ユーザにデータを提示する際に図形による視覚化の有効性を高める特定の実施形態を記載する。
【０００４】
特定の実施形態においては、図形による視覚化を用いて、ユーザに対して効果的にデータを提示するための（システム、デバイス、方法、１つ以上のコンピュータプロセッサによって実行されるコードまたはプログラム命令、１つ以上のステップを実行するための手段を含む装置を備える）技術が提供される。いくつかの実施形態は、視覚化によって提示されている１以上の次元のデータを修正するようにとのユーザ要求を受取ると、既存の視覚化を動的に更新することができるビジュアルアナライザシステムを提供する。いくつかの実施形態においては、ユーザ入力は、ある次元のデータの追加または既存の視覚化からの除去に対応し得る。特定の実施形態においては、ビジュアルアナライザシステムは、複数の視覚化タイプのための複数の構成を決定し、それらの構成の各々について距離スコアを計算することができる。計算された距離スコアに基づいて、ビジュアルアナライザシステムは、いくつかの実施形態において最高のスコアを有する構成を選択することができる。次いで、ビジュアライザシステムは、視覚化を、選択された構成に対応するタイプに自動的に更新してもよく、（たとえば、ユーザ要求が新しい次元を追加することである場合には、新しく追加された次元を提示する際に使用すべきエッジをユーザが指定することなく）更新された視覚化をユーザに対して提供してもよい。いくつかの場合には、更新された視覚化は、既存の視覚化の視覚化タイプとは異なる視覚化タイプであってもよく、この場合、ユーザが視覚化タイプの変更を指定することはない。実施形態は、更新された視覚化を効果的および直観的に提示しながらも、既存の視覚化を修正するようにとのユーザの要求を組込んでいる。
【０００５】
いくつかの実施形態においては、ビジュアルアナライザシステムはまた、同じセットのデータが所望の視覚化を用いて提示されている態様がユーザにとって効果的かつ直観的であることを確実にしながらも、ユーザによって指定されるのと同じセットのデータをさまざまな視覚化タイプで提示することができる。いくつかの実施形態は、既存の視覚化の視覚化タイプを第１のソース視覚化タイプから第２のターゲット視覚化タイプに変更するようにとの要求に対応するユーザ入力を受取ることができる。たとえば、ユーザは、同じセットのデータを、その時表示している棒グラフではなく円グラフで視認することを所望する可能性もある。ビジュアルアナライザシステムは、第１のソース視覚化タイプである既存の視覚化のために第１のセットのエッジを決定し得る。エッジの例は、行、列、カテゴリ、値、色、形状、サイズなどを含み得る。いくつかの実施形態においては、視覚化のエッジは、年、会社名、製品のタイプなどのデータのさまざまな次元を表現することができる。ビジュアルアナライザシステムはまた、第２のターゲット視覚化タイプのための第２のセットのエッジを決定し得る。特定の実施形態においては、ビジュアルアナライザシステムは、次いで、第１のセットのエッジと第２のセットのエッジとの間においてマッピングを実行してもよい。いくつかの実施形態においては、マッピングは、第１のセットのエッジにおけるエッジと第２のセットのエッジにおけるエッジとの間の距離の決定を含み得る。既存の視覚化におけるエッジがターゲット視覚化におけるエッジにマッピングされた後、ビジュアルアナライザシステムは、対応するエッジ値を用いて、第２のターゲット視覚化タイプのターゲット視覚化をレンダリングし得る。視覚化タイプが修正されている一方で、ビジュアルアナライザシステムは、ターゲット視覚化タイプでターゲット視覚化して、ユーザにとって効果的かつ直観的な態様で、データを提示する。
【０００６】
いくつかの実施形態は、図形による視覚化を用いてユーザにデータを効果的に表示するための技術（たとえば、方法、システム、１つ以上のプロセッサによって実行可能なコードまたは命令を格納する非一時的なコンピュータ読取り可能媒体、１つ以上のステップを実行するための手段を含む装置）を提供する。このような一技術は、既存の視覚化の修正に対応する入力を受取ることを含み得る。当該修正は、ある次元のデータを既存の視覚化に関連付けられた１以上の次元に対して追加するかまたは除去することを含む。当該技術は、複数の視覚化タイプについての複数の視覚化構成を決定することを含み、複数の視覚化構成は、既存の視覚化に対する修正を含む。当該技術はさらに、１つ以上のプロセッサによって、複数の視覚化構成についての複数の構成スコアを計算することと；計算された構成スコアに基づいて、複数の視覚化構成から特定の視覚化構成を選択することと；特定の視覚化構成に対応する更新された視覚化をレンダリングさせることとを含む。
【０００７】
いくつかの実施形態においては、複数の構成スコアを計算することは、１以上の次元に対する修正を含む１セットの次元を決定し、当該１セットの次元の各々を視覚化構成内のエッジにマッピングすることを含む。特定の実施形態においては、当該マッピングの結果、視覚化構成内の他のエッジにマッピングしている次元と比べて、値がより高くなる場合、次元がエッジにマッピングされる。いくつかの実施形態においては、視覚化構成のための構成スコアは、視覚化優秀性（goodness）コンポーネント、プリファレンスコンポーネント、視覚化を切換えるためのペナルティコンポーネント、および意味的相違（semantic difference）コンポーネントを含む構成スコアリング式を用いて計算される。
【０００８】
いくつかの実施形態においては、複数の視覚化タイプは、プラグイン・アダプタを介してユーザによって指定される視覚化タイプを含む。視覚化タイプは、ユーザによって指定される１以上の次元を表わし得る１以上のエッジを有する。特定の実施形態においては、ある構成のために計算された構成スコアは、視覚化を切換えるためのペナルティコンポーネントに相当する。この場合、視覚化を切換えるためのペナルティコンポーネントは、既存の視覚化から別の視覚化へと視覚化のタイプを変更するために、既存の視覚化から他の視覚化へと視覚化のタイプが変更されない場合と比べて、より高いペナルティスコアを割当てる。いくつかの実施形態においては、更新された視覚化は、既存の視覚化とは異なる視覚化タイプを有する。
【０００９】
いくつかの実施形態は、同じセットのデータを別のタイプの視覚化で効果的かつ直観的に提示するための技術（たとえば、方法、システム、１つ以上のプロセッサによって実行可能なコードまたは命令を格納する非一時的なコンピュータ読取り可能媒体）を提供する。このような一技術は、既存の視覚化についての既存のエッジ情報を受取ることを含み得る。既存の視覚化は第１のセットのエッジを有する。第１のセットのエッジは、既存の視覚化が第１の視覚化タイプであることを識別する。当該技術はさらに、第２のセットのエッジを有するターゲット視覚化についてのターゲットエッジ情報を受取ることを含み得る。この場合、第２のセットのエッジはターゲット視覚化が第２の視覚化タイプであることを識別する。当該技術はさらに、既存のエッジ情報およびターゲットエッジ情報を用いて、既存の視覚化についての第１のセットのエッジとターゲット視覚化についての第２のセットのエッジとの間のマッピングを決定することを含み得る。マッピングを決定することは、視覚化のエッジ間の距離を決定することを含む。
【００１０】
本発明の実施形態によって多くの技術的な利点が提供される。その既存のエッジと次元とのマッピングおよびその既存の視覚化タイプを可能な限り維持しながらも、実施形態は、ユーザがマッピングまたは視覚化タイプの変更を手作業で指定する必要なしに、複数の次元の最も直観的な表現を決定して提示し得る。実施形態は、既存の構成と、ユーザによって指定される視覚化に対する変更（たとえば、次元の追加、次元の除去など）とに基づいて一連の構成を自動的に生成し、これらの構成をスコアリングし得る。このスコアリングの際に意味的相違を考慮することにより、エッジと次元とのマッピングおよび視覚化タイプの相違がより小さい構成と比較して、より低いスコアを有するように、エッジと次元とのマッピングおよび視覚化タイプの変動がより大きい構成が提供される。（たとえば、ウェブブラウザを介して、またはモバイルデバイス上で実行される）ビジュアルアナライザアプリケーションを介するユーザによるすべてのマニュアル調整は、遠隔位置（たとえばデータベース）に格納されたデータとの対話を必要とするだろう。この場合、データはデータサービスを介してアクセスされており、時間がかかり非効率的である。データの視覚化の際に所望の直観的なデータ表現を実現するために、エッジと次元とのマッピングおよび／または視覚化タイプに対するマニュアル調整をユーザが絶えず実行する必要を無くすことにより、全体的な処理時間を短縮し、リソースの利用を減らすことにより、システムの効率を向上させることができる。データ表現をこのように自動的に、動的に、かつ反応性よく決定することにより、ユーザが、所望の直観的なビジュアル表現を迅速かつ確実に実現することが可能になり得る。
【００１１】
上述の記載は、他の特徴および実施形態と合わせて、以下の明細書ならびに添付の特許請求の範囲および図面を参照するとより明らかになるだろう。
【図面の簡単な説明】
【００１２】
【図１】本発明の特定の実施形態に従ったコンピューティング環境を示す例示的なブロック図である。
【図２】本発明のいくつかの実施形態に従った、既存の視覚化についての次元を修正するようにとのユーザ要求に応じて、ユーザに提示すべき新しい視覚化を決定する例示的なプロセスを示す図である。
【図３】本発明のいくつかの実施形態に従った、視覚化を作成するために新しい次元のデータを追加する際のシーケンスを示すスクリーンショットである。
【図４】本発明のいくつかの実施形態に従った、視覚化を作成するために新しい次元のデータを追加する際のシーケンスを示すスクリーンショットである。
【図５】本発明のいくつかの実施形態に従った、視覚化を作成するために新しい次元のデータを追加する際のシーケンスを示すスクリーンショットである。
【図６】本発明のいくつかの実施形態に従った、視覚化を作成するために新しい次元のデータを追加する際のシーケンスを示すスクリーンショットである。
【図７】本発明のいくつかの実施形態に従った、視覚化を作成するために新しい次元のデータを追加する際のシーケンスを示すスクリーンショットである。
【図８】本発明のいくつかの実施形態に従った、視覚化を作成するために新しい次元のデータを追加する際のシーケンスを示すスクリーンショットである。
【図９】本発明のいくつかの実施形態に従った、第１の視覚化タイプの視覚化を第２の視覚化タイプの別の視覚化に変換するための例示的なプロセスを示す図である。
【図１０】本発明のいくつかの実施形態に従った、第１のタイプの視覚化から第２のタイプの視覚化に移行する際に従うべきルールの例を示す。
【図１１】本発明のいくつかの実施形態に従った、第１のタイプの視覚化から第２のタイプの視覚化に移行する際に従うべきルールの例を示す図である。
【図１２】本発明のいくつかの実施形態に従った、ソース視覚化からターゲット視覚化へとエッジをマッピングするための擬似コードの例を示す図である。
【図１３】１以上の次元を表現する視覚化の表示を散布図から棒グラフに切換えるためのスクリーンショットを示す図である。
【図１４】１以上の次元を表現する視覚化の表示を水平な棒グラフから表に切換えるためのスクリーンショットを示す図である。
【図１５】１以上の次元を表現する視覚化の表示をピボットチャートから線グラフに切換えるためのスクリーンショットを示す図である。
【図１６】１以上の次元を表現する視覚化の表示をピボットチャートから、最適一致論理が用いられていない線グラフに切換えるスクリーンショットを示す図である。
【図１７】１以上の次元を表現する視覚化の表示を棒グラフから散布図に切換えるためのスクリーンショットを示す図である。
【図１８】一実施形態を実現するための分散型システムを示す簡略図である。
【図１９】本開示の一実施形態に従った、サービスがクラウドサービスとして提供され得るシステム環境の１つ以上のコンポーネントを示す簡略ブロック図である。
【図２０】本発明の一実施形態を実現するために用いられ得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１３】
詳細な説明
以下の記載では、説明の目的のため、この発明の実施形態の完全な理解を提供するために具体的な詳細が述べられる。しかしながら、これらの具体的な詳細がなくてもさまざまな実施形態が実施され得ることは明らかであるだろう。図および説明は、限定的であるよう意図されてはいない。
【００１４】
特定の実施形態においては、図形による視覚化を用いて、データをユーザに対して効果的に提示するための（１つ以上のコンピュータプロセッサによって実行されるシステム、デバイス、方法、コードまたはプログラム命令を含む）技術が提供される。いくつかの実施形態は、視覚化によって提示されている１以上の次元のデータを修正するようにとのユーザ要求を受取ると、既存の視覚化を更新することができるビジュアルアナライザシステムを提供する。いくつかの実施形態においては、ユーザ入力は、既存の視覚化に対する或る次元のデータの追加または除去に対応し得る。特定の実施形態においては、ビジュアルアナライザシステムは、さまざまな視覚化タイプのための複数の構成を決定し、それらの構成の各々について、視覚化スコアを計算することができる。計算された視覚化スコアに基づいて、ビジュアルアナライザシステムは、いくつかの実施形態において最高スコアを有する構成を選択することができる。次いで、ビジュアライザシステムは、選択された構成に対応するように視覚化を更新し、更新された視覚化をグラフィカル・ユーザ・インタフェース（graphical user interface：ＧＵＩ）上でユーザに提供し得る。いくつかの例においては、更新された視覚化は、既存の視覚化の視覚化タイプとは異なる視覚化タイプであってもよい。これらのさまざまな実施形態は、次元を追加または除去するようにとのユーザの要求を組込んだ更新された視覚化が効果的にさらには直観的に提示されるように、既存の視覚化を更新することができる。
【００１５】
いくつかの実施形態においては、ビジュアルアナライザシステムはまた、所望の視覚化を用いて同じセットのデータが提示されている態様がユーザにとって効果的かつ直観的であることを確実にしながらも、当該同じセットのデータをユーザによって指定されるとおりにさまざまな視覚化タイプで提示することができる。いくつかの実施形態は、既存の視覚化の視覚化タイプを第１のソース視覚化タイプから第２のターゲット視覚化タイプへと変更するようにとの要求に対応するユーザ入力を受取ることができる。たとえば、ユーザは、同じセットのデータを、その時点で表示されている棒グラフではなく、円グラフで視認することを要望するかもしれない。ビジュアルアナライザシステムは、第１のソース視覚化タイプである既存の視覚化についての第１のセットのエッジを決定し得る。エッジの例は、行、列、カテゴリ、値、色、形状、サイズなどを含み得る。いくつかの実施形態においては、視覚化のエッジは、さまざまな次元のデータ、たとえば、年、会社名、製品タイプなどを表現することができる。ビジュアルアナライザシステムはまた、第２のターゲット視覚化タイプのための第２のセットのエッジを決定し得る。特定の実施形態においては、ビジュアルアナライザシステムは、さらに、第１のセットのエッジと第２のセットのエッジとの間においてマッピングを実行してもよい。いくつかの実施形態においては、マッピングは、第１のセットのエッジにおけるエッジと第２のセットのエッジにおけるエッジとの間の距離決定を含み得る。既存の視覚化におけるエッジがターゲット視覚化においてエッジにマッピングされた後、ビジュアルアナライザシステムは、さらに、第２のターゲット視覚化タイプのターゲット視覚化を対応するエッジ値でレンダリングし得る。視覚化タイプが修正されている一方で、ビジュアルアナライザシステムは、ユーザにとって効果的かつ直観的な態様で、データをターゲット視覚化タイプでターゲット視覚化して提示する。
【００１６】
いくつかの実施形態においては、ビジュアルアナライザシステムは、（たとえばモバイルデバイス上の）ウェブブラウザによって提示されるビジュアルアナライザアプリケーションによってユーザに対して１つ以上の視覚化を提示することができる。特定の実施形態においては、視覚化は何らかのデータのビジュアル表現である。一実施形態においては、視覚化によって、図形要素、形状および／またはテキストを表示することができる。視覚化の例は、表、クロス表、グラフ形式の表、棒グラフ、線グラフ、組合せチャート、円グラフ、散布図、マップチャート、ツリーマップ、ヒートマップ、平行座標プロット、集計テーブル、ボックスプロット、テキスト領域、ユーザによって作成されたチャートまたはカスタマイズ可能なチャートなどを含み得る。ビジュアルアナライザシステムは、各々が指定された次元に対応している複数の図表属性（エッジとも称される）を用いて視覚化を生成してもよい。たとえば、ビジュアルアナライザアプリケーションは、色属性、軸属性、サイズ属性を備えた棒グラフを生成することができる。色属性、軸属性、サイズ属性は各々、時間、売上高およびエンティティなどのユーザによって指定される次元に対応している。各々の次元はまた、１つ以上の次元メンバ、たとえば、２００９年、２０１０年および２０１１年といった年、会社名Ｘ、ＹおよびＺ、ならびにさまざまな製品タイプなどを有してもよい。
【００１７】
各々の視覚化は、いくつかの実施形態において、データベースにおける１つ以上の列からの複数次元のデータについての値を含み得る。データベースは１つ以上の表を含むリレーショナルデータベースであり得る。表は１セットの行および１セットの列を有し得る。次元は、表（またはデータベース）の列に対応し、レコードは表（またはデータベース）の行に対応し得る。いくつかの実施形態においては、（たとえば、ウェブブラウザを介して表示される）ビジュアルアナライザアプリケーションユーザインターフェイスは、１つ以上のデータベースの射影（projection）を提供することができる。ユーザは、１つ以上のデータベースにおいて利用可能な１以上の次元のデータを識別することができ、かつ、データベースから検索された１以上の次元のデータを表わすビジュアル表現を生成するようにビジュアルアナライザアプリケーションに要求することができる。
【００１８】
いくつかの実施形態においては、視覚化は、視覚化のさまざまな次元（データベースの基準または列とも称される）を表わす１以上のエッジを有し得る（しばしば、属性とも称される）。共通セットのエッジは、行（ｘ軸とも称される）、列（ｙ軸とも称される）、カテゴリ、値、色、形状、サイズなどを含み得る。たとえば、散布図はそれらのエッジをすべて用いる可能性がある。棒グラフは行、列、カテゴリ、値、色およびサイズを用いる可能性がある。ピボットテーブルは、共通セットのエッジのうち細目を除くすべてを用いる可能性がある。マップは、行、列、カテゴリ、色（マップ形状）、色（バブル）およびサイズを用いる可能性がある。さまざまな次元は収益、ブランド、年、会社名、製品タイプなどを含み得る。次元は、視覚化のエッジによって表わすことができる。たとえば、ブランド次元は、円グラフの色エッジ（または他のタイプの視覚化）によって表わすことができ、収益の次元は、棒グラフの値エッジ（または他のいずれかのタイプの視覚化）で示すことができ、年の次元は、行エッジ（たとえば小さな倍数にとって十分な格子行）で示すことができ、会社の次元は列エッジ（たとえば格子列）で示すことができ、製品タイプの次元は形状エッジによって表わすことができる。この場合、各々の別個の値（次元メンバとも称される）には、形状（たとえば円、正方形、ダイヤモンドなど）が割当てられている。
【００１９】
各々の視覚化は、視覚化のエッジを識別する１以上のエッジ識別子と、各々のエッジに対応する１以上のエッジ値と、各エッジごとに１以上のエッジタグとを含む構成情報を有し得る。視覚化のエッジを識別するエッジ識別子は、視覚化タイプ、色、サイズ、エリア、ｘ軸、ｙ軸、地理座標などを含み得る。さまざまな視覚化タイプのさまざまな視覚化は、異なるセットのエッジを有し得る。たとえば、円グラフは色、サイズなどのエッジを有し得る。棒グラフは、ｘ／列、ｙ／行、色、カテゴリ、値、色、サイズなどのエッジを有し得る。
【００２０】
各々のエッジは、１以上のエッジ値および１以上のエッジタグ（機能的なタグまたは単にタグとも称される）を有し得る。いくつかの実施形態においては、機能的なタグは、それらのエッジがデータ列に対して何を行なうかを記述する視覚化についてのエッジのプロパティであり得る。いくつかの実施形態においては、エッジタグは、エッジが視覚化のために必要なエッジであるか不必要なエッジであるかを示すことができる。エッジが必要なエッジであることをエッジタグが示している場合、エッジは、いくつかの実施形態においてレンダリングすべき視覚化のための値を有するはずである。特定の実施形態は、いずれの視覚化にとっても必要なエッジを有していない可能性がある。
【００２１】
特定の実施形態においては、タグの追加または除去は、単に、視覚化タイプ間の移行時に列が如何に移動するかに対して影響を及ぼすだけであるかもしれない。いくつかの実施形態においては、１エッジ当たりの機能的タグのリストは、位置、マーク、ｘ、ｙ、行、列、半径、角度、テキスト、色、形状、積重ね、内側、外側、データポイントを含み得る。各々のエッジに関して、視覚化は、そのエッジを用いるべきかを如何に決定すべきかを記述しているタグがどんなものであっても追加することができる。たとえば、散布図では、「色」エッジは「マーク」、「内側」、「データポイント」、および「色」でタグ付けすることができる。別の例においては、棒グラフでは、「色」エッジは、「マーク」、「内側」、「データポイント」、「色」、および「列」でタグ付けすることができる。さまざまな視覚化タイプについてのさまざまなエッジはさまざまな機能的なタグを有し得る。
【００２２】
ビジュアルアナライザシステムは、ユーザによって指定される１以上の次元のデータに基づいて１つ以上の視覚化を生成することができる。たとえば、ユーザは、視覚化によって表わされるべき時間、売上高およびエンティティなどの複数の次元を指定し得る。次いで、ビジュアルアナライザシステムは、各々が指定された次元に対応している複数のエッジ（図表属性とも称される）を用いて視覚化を生成してもよい。たとえば、ビジュアルアナライザアプリケーションは、各々が時間、売上高およびエンティティなどのユーザによって指定される次元にそれぞれ対応している色エッジ、軸エッジ、サイズエッジを用いて棒グラフを生成することができる。上述のように、ビジュアル表現は、円グラフ、棒グラフまたは他の如何なるタイプの図形であってもよく、この場合、色、軸、サイズなどのさまざまなエッジは、ユーザによって指定される所望の次元を表現し得る。
【００２３】
多数のタイプの視覚化や、複数次元のデータを視覚化のさまざまなエッジに割当てることができるさまざまな方法があるので、データを多くの方法で表示することが可能となる。データを図形による視覚化で表示する方法を指定する際にヒトの干渉を必要することなく、ユーザにとって直観的かつ迅速に理解可能となり得るように大量のデータをアセンブルしてユーザに提示する方法を自動的に決定することは、非常に困難である。さらに、視覚化の複数のエッジに複数の次元をマッピングする方法をユーザが扱うことが可能な場合であっても、これらの次元を大抵の閲覧者にとって効果的および直観的な態様で表示することができなくなる可能性がある。ビジュアルアナライザシステムのユーザは、他者によって容易に理解できるように表現を表示させることを確実にするように視覚化のエッジに次元をマッピングする方法に精通していない可能性がある。
【００２４】
本発明のさまざまな実施形態においては、階層関係グラフは各々のビジュアル表現ごとに生成することができる。ビジュアル表現のために次元を追加するかまたは除去するようにとのユーザ指示を受取ると、ビジュアルアナライザシステムは、構成の各々が異なるビジュアル表現を表わしている階層関係グラフを１つ以上の新しい構成で生成することができる。いくつかの実施形態は、視覚化構成アルゴリズムを用いて生成された階層関係グラフの複数の構成の各々をスコアリングすることができる。いくつかの実施形態においては、ビジュアルアナライザシステムは、次いで、最高のスコアを有する構成を決定し、最高のスコアを有する構成に対応するビジュアル表現を生成する。したがって、本発明の実施形態は、人の介入または干渉を必要とすることなく、ユーザによって容易に理解される効果的な視覚化を提供することができる。
【００２５】
実施形態は、ユーザが直観的にデータを理解することができるように、複数次元のデータをユーザに提示する。いくつかの実施形態においては、その時点で行われている視覚化により、ユーザが追加することを所望する列（次元とも称される）を追加することができる。いくつかの実施形態は、新しい次元が数値（値とも称される）タイプの次元またはカテゴリタイプの次元であるかどうかに基づいて、新しい次元が追加され得るかどうかと、どのエッジが新しい次元を表現するかとを決定し得る。数値の次元は数値を有する次元である。カテゴリ次元は、物、名前、オフィス、色などの個別のアイテムを有する次元である。
【００２６】
上述のとおり、さまざまな視覚化タイプは、異なる数のカテゴリ別の列および異なる数の値列を処理し得る。たとえば、散布図は、単に、ｘ軸、ｙ軸、色の図表属性およびサイズ図表属性間で分布される最大４個までの数値列を処理することができるだけであるかもしれない。実施形態は、たとえば、視覚化において、新しく追加された列を消費することができる利用可能なエッジが追加されている場合、ユーザが追加することを所望する新しい列を視覚化によって追加することができる限りにおいては、視覚化のエッジに新しい列のデータをマッピングし得る。いくつかの実施形態は、（たとえば、エッジタグおよび次元タイプが数値であるかまたはカテゴリ別である場合）データタイプ互換性に基づいて、および／または、新しく追加された列に存在する次元メンバの数に基づいて、新しく追加された列を消費し得るエッジが視覚化において追加されているどうかを判断し得るとともに、エッジが次元メンバの数に対応することができるかどうかを判断し得る。
【００２７】
いくつかの実施形態においては、どのエッジが新しく追加された列をマッピングすべきかを決定する際に、アルゴリズムにより意味的相違を相殺してもよい。なぜなら、視覚化をあまりに異なった態様で示すことは所望されないからである。列がｘ軸によって表わされた場合、新しい列を追加した後に列をｘ軸によって表わしたままにしておくことが望ましい。いくつかの実施形態においては、視覚化階層ツリー構造は、行エッジ、列エッジ、細目エッジ、値エッジを含む構造的ノードと、色エッジ、サイズエッジおよび形状エッジを含む表現エッジとを含み得る。実施形態は、ターゲット視覚化された（たとえば、エッジ間の最も重複するタグを有する）同様の特徴を有するエッジにおいて、先在の視覚化で得られるこれらのさまざまなエッジによって列を表示させたままにしておくことにより、意味的相違を最小限にしてもよい。
【００２８】
いくつかの視覚化タイプは特定のタイプの列を処理することができないかもしれない。たとえば、グリフ（glyph）は、会社などのカテゴリ別の列の追加、または数値タイプのデータの追加をサポートしないかもしれない。棒グラフは形状軸をサポートしないかもしれない。それらの場合には、ユーザが（たとえば、その時点で行われている視覚化においてサポートされていない軸上にそれらの列表現をドロップすることによって）それらのタイプの列を追加することを所望する場合、ビジュアルアナライザシステムは視覚化タイプを切換えてもよい。
【００２９】
いくつかの実施形態は、ユーザによって示される変更を組込むと、同じ視覚化タイプを可能な限り維持しようと試みる。しかしながら、視覚化が変更される場合、システムは、移動させる必要のある列とエッジとのマッピングの量を最小限にしようと試みるかもしれない。実施形態は、構成スコアリングアルゴリズムを提供する。構成スコアリングアルゴリズムは、どの視覚化によって表わされるデータのどんな構成がユーザにとって最も直観的かつ有用になり得るかを決定するのを助け得る。Vizgoodnessスコアリング式（ベーススコアアルゴリズムとも称される）は、既存の視覚化においてすべてのエッジを利用することができ、スコアを得るためにそれらエッジを実現可能なすべての視覚化上にドロップすることができる。特定の構成のためのvizgoodnessスコアが別のスコアよりも高い可能性がある場合でも、エッジをどれくらい移動させなければならなかったかを示す意味的相違スコアが高ければ、特定の構成は依然として他の構成ほど望ましいものでないかもしれない（たとえば、列／エッジがあったとしても、それら列／エッジを多く移動させる必要はなかったかもしれない）。
【００３０】
さらに、合計スコアは、元の視覚化と視覚化の新しい構成との差だけ減じられる可能性がある。そのため、大きく変更することによってスコアがより高くなり得るのに応じて、視覚化間の変更は最小限にされてもよい。元の視覚化タイプに応じて、他の視覚化タイプに切換えるための移行スコアは異なっていてもよい。たとえば、水平バーからstatバーに切換える場合、移行スコアは散布図に切換える場合と比べて大きくならないように決定され得る。さまざまな実施形態は、たとえば、列が追加されている場合、既存の列が除去されている場合、または、視覚化タイプが変更されている場合に、最適な列とエッジとのマッピングを決定する際に異なるスコアリングコンポーネントが得られる理由を説明し得る。
【００３１】
Ｉ．例示的なコンピューティング環境
図１は、本発明の特定の実施形態に従ったコンピューティング環境１００の例示的なブロック図を示す。図示のとおり、コンピューティング環境１００は、通信ネットワーク１０８を介してクライアントデバイス１０４および１つ以上のデータサービス１０６に通信可能に結合されたビジュアルアナライザシステム１０２を含む。図１に示される実施形態は、単に一例であって、本発明の主張された実施形態を過度に限定するように意図されたものではない。当業者であれば、多くの変形例、代替例および変更例を認識するだろう。たとえば、ビジュアルアナライザシステム１０２は、クライアントデバイス１０４の一部であり得るかまたは１つ以上のサーバ上で実行させることができる。
【００３２】
クライアントデバイス１０４は、パーソナルコンピュータ、デスクトップ、モバイルデバイスまたは携帯型デバイス、たとえばラップトップ、携帯電話、タブレットなど、および他のタイプのデバイスを含むがこれらに限定されないさまざまな異なるタイプのデバイスであり得る。この明細書中において用いられる「サーバ」という語は、典型的には、クライアントサーバプロトコルに従ってサーバとして実行されて動作するアプリケーションを指している。サーバのいくつかの例は、データベースサーバ、ウェブサーバ、アプリケーションサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ゲーミングサーバなどを含む。但し、いくつかのコンテキストにおいては、「サーバ」という語はまた、サーバアプリケーションを実行し得るかまたは実行するコンピューティングハードウェアを指していてもよい。しかしながら、「サーバ」という語を使用する際の特定の意味は、それが使用されるコンテキストに基づくと当業者には明らかになるだろう。
【００３３】
通信ネットワーク１０８は、クライアントデバイス１０４およびビジュアルアナライザシステム１０２などの１つ以上のクライアントデバイスの間の通信を容易にする。通信ネットワーク１０８はさまざまなタイプであってもよく、１つ以上の通信ネットワークを含み得る。たとえば、通信ネットワーク１０８は、インターネット、ワイドエリアネットワーク（wide area network：ＷＡＮ）、ローカルエリアネットワーク（local area network：ＬＡＮ）、イーサネット（登録商標）ネットワーク、パブリックネットワークまたはプライベートネットワーク、有線ネットワーク、無線ネットワークなど、およびそれらの組合せを含み得るが、それらに限定されない。さまざまな通信プロトコルは、ＩＥＥＥ８０２ＸＸスイートのプロトコル、ＴＣＰ／ＩＰ、ＩＰＸ、ＳＡＮ、アップルトーク、Bluetooth（登録商標）および他のプロトコルなどの有線プロトコルおよび無線プロトコルをともに含む通信を容易にするために用いられてもよい。一般に、通信ネットワーク１０８は、クライアントデバイス１０４およびビジュアルアナライザシステム１０２などの１つ以上のクライアントデバイス間の通信を容易にする如何なる通信ネットワークまたはインフラストラクチャをも含み得る。
【００３４】
クライアントデバイス１０４は、いくつかの実施形態において、ビジュアルアナライザアプリケーションのユーザインターフェイスまたはウェブブラウザを介して１つ以上の視覚化（グラフィックスまたはチャートとも称される）を表示することができる。視覚化は、クライアントデバイス１０４のユーザによって識別されるデータの次元（データベースまたはビジネスオブジェクトにおける列とも称される）に基づいて生成することができる。いくつかの実施形態においては、クライアントデバイス１０４のユーザは、さまざまなデータサービス１０６から利用可能な１以上の次元のデータ１１８を選択することができる。１以上の次元のデータ１１８についてのユーザの選択を受取ると、ビジュアルアナライザモジュール１２０は、要求されたデータを通信ネットワーク１０８を介してデータサービス１０６から取得し、視覚化１２６を生成することができる。ビジュアルアナライザモジュール１２０は、アプリケーションプログラムまたは１片のコードであってもよく、個々のコンピューティング装置上で実行可能である。次いで、レンダラー１２２は、クライアントデバイス１０４のＧＵＩ１２４上において１つ以上の視覚化１２６をレンダリングすることができる。ＧＵＩ１２４は、複数の視覚化１２６ならびに／または他のオブジェクトおよびツールをユーザに提示することができる。
【００３５】
いくつかの実施形態においては、クライアントデバイス１０４上のビジュアルアナライザモジュール１２０は、スタンドアロンの実行可能なアプリケーション、アプリケーションの一部（たとえば、ブラウザアプリケーションまたはローカルアプリケーション）、別のアプリケーションとともに用いられるべき構成ファイルなどであり得る。ウェブブラウザまたはビジュアルアナライザアプリケーションユーザインターフェイスは、１つ以上のデータベースの射影を提供することができる。ユーザは、１つ以上のデータベースにおいて利用可能な１以上の次元のデータを識別することができ、データベースから検索された１以上の次元のデータを表わす視覚化を生成することをビジュアルアナライザアプリケーションに要求することができる。上述のように、データベースの一例として、列および行を備えたリレーショナルデータベースがある。データの次元はデータベースにおける列に対応し得るものであり、レコードはデータベースにおける行に対応し得る。いくつかの実施形態においては、階層関係グラフ（たとえばエッジのツリー構造）は、ノードが視覚化のさまざまなエッジに対応し得る図形による視覚化のために生成することができる。
【００３６】
上述のように、ビジュアルアナライザアプリケーションは、クライアントデバイス１０４のＧＵＩ１２４上に１つ以上の視覚化１２６を表示することができる。いくつかの実施形態においては、視覚化は、いくつかの実施形態においては、ビジュアルアナライザモジュール１２０によって生成され、レンダラー１２２によってレンダリングされ、ビジュアルアナライザアプリケーションのユーザインターフェイスまたはウェブブラウザを介してデバイス１０４上に表示され得る。ウェブブラウザまたはビジュアルアナライザアプリケーションのユーザインターフェイスは、１つ以上の表現（たとえばタブ、テキスト、メニュー、ビジネスオブジェクト、フォルダ）を用いて、１つ以上のデータベースの射影を提供することができる。ユーザは、１つ以上のデータベースにおいて利用可能な１以上の次元のデータ（データベースにおける列、またはビジネスオブジェクトとも称される）を選択することができる。当該１以上の次元のデータは、視覚化によって提示されるようにビジュアルアナライザアプリケーションにおけるデータ要素ペインを介して表示され得る。次いで、アプリケーションは、ユーザが選択してビジュアルアナライザアプリケーションのキャンバスレイアウトにドロップした１以上の次元のデータに基づいて、視覚化を生成して表示し得る。いくつかの実施形態においては、視覚化がビジュアルアナライザモジュール１２０によって生成され、さらにビジュアルアナライザモジュール１２０がデータサービス１０６にクエリを送信し、さらにデータサービス１０６が関連データ１１８をデータベースから検索する。
【００３７】
１つ以上の視覚化が生成されてクライアントデバイス１０４上に提示された後、ユーザは、視覚化に対する１つ以上の修正を指定することができる。当該修正は、１以上の次元のデータについての追加、除去、または他の何らかのタイプの修正であり得る。いくつかの実施形態においては、ユーザは、データベースにおけるデータを表わしているオブジェクト（たとえば、ビジュアルアナライザアプリケーションのデータ要素ペインにおける選択可能な要素）をドラッグし、当該オブジェクトをビジュアル表現を表示しているキャンバスレイアウトのいずれかの部分にドロップすることによって、次元データを追加するように指定することができる。特定の実施形態においては、ユーザは、次元データを表わしている識別子オブジェクトまたは当該次元データがその時点でマッピングされているエッジ識別子を選択解除するかまたは削除することによって、当該次元データを除去することができる。視覚化によって提示されるべきコンテンツにおける変更の指示を受取ると、クライアントデバイス１０４上のビジュアルアナライザモジュール１２０は、ビジュアルアナライザシステム１０２に所望の変更情報を伝えることができる。
【００３８】
ビジュアルアナライザシステム１０２は、いくつかの実施形態においては、視覚化モディファイア１１０、メモリ１２８およびレンダリングエンジン１３２などを含むがこれらに限定されない複数のコンポーネントを含む。特定の実施形態においては、視覚化モディファイア１１０は、視覚化がユーザ入力に基づいて如何に提示され得るかを決定する。たとえば、視覚化モディファイア１１０は、視覚化によって表わされているとともにユーザが所望しているデータ（たとえば複数の列）に対応するように特定の視覚化タイプを選択してもよい。選択を行う際に、視覚化モディファイア１１０は、データの列を表わすのに最も効果的な視覚化を決定するために、いくつかの視覚化構成について１セットのスコアを計算し得る。最も効果的な視覚化は、データが視覚化のさまざまなエッジによって表わされている態様および特定の視覚化タイプを含み得る。別の場合には、視覚化モディファイア１１０は、第１のソース視覚化のエッジにおける値を、ユーザによって識別された別のターゲット視覚化のエッジに対して如何にマップすべきかを決定し得る。この決定は、さらに以下に述べられるように、いくつかの実施形態において２つの視覚化間のエッジ距離を計算することによって行うことができる。
【００３９】
いくつかの実施形態においては、視覚化モディファイア１１０は、距離決定部１１２、マッパー１１４、視覚化タイプ（viz type）セレクタ１１６、構成ジェネレータ１５０、および構成スコアラー１３４を含み得る。メモリ１２８は、１つ以上の視覚化についての構成情報、既存のＧＵＩ情報１３８、プリファレンス情報１４０、ルール１４２、およびユーザによって構成された視覚化タイプ１４４を記憶することができる。いくつかの実施形態においては、レンダリングエンジン１３２は、更新された視覚化を用いてＧＵＩをレンダリングすることができる。いくつかの実施形態においては、レンダリングエンジン１３２はリモートサーバの一部であり得るとともに、特定の実施形態においては、レンダリングエンジン１３２は、クライアントデバイス（たとえばレンダラー１２２）上で実行され得る。ビジュアルアナライザシステム１０２におけるさまざまなコンポーネント（たとえば、視覚化モディファイア１１０または内部のサブコンポーネント）は、サーバの一部またはクライアントデバイス１０４の一部であってもよい。この場合、ビジュアルアナライザモジュール１２０は通信ネットワーク１０８のみを介してアクセスされる必要はない。いくつかの実施形態はまたプラグイン・アダプタ１３０を有し得る。プラグイン・アダプタ１３０は、このフレキシブルなプラグインシステムに対して所望されるように、ユーザが他の任意のタイプの視覚化（または、視覚化と相互に干渉し得るツールなどの他のビジュアルアナライザシステムコンポーネント）を追加することを可能にする。フレキシブルなプラグインシステムの拡張性は、ユーザが、新しい視覚化タイプを作成またはインストールし、データを創造的、効果的かつ直観的に提示することを可能にする。
【００４０】
メモリ１２８は、さまざまな視覚化タイプについての構成情報１３６を含み得る。いくつかの実施形態においては、構成情報１３６は、各々の視覚化タイプについてのエッジ情報を含み得る。たとえば、さまざまなタイプのさまざまな視覚化が異なるセットのエッジを有し得るので、構成情報１３６は、特定のタイプの各々の視覚化ごとにエッジのリストを含み得る。上述のように、エッジは、軸（たとえばｘ、ｙ）、色、サイズ、形状などを含む各々の視覚化の属性を表わす。いくつかの実施形態においては、各々のエッジは、エッジに関連付けられたエッジ値およびエッジタグを有し得る。１タイプのタグは、エッジが「必要な」エッジであるかどうかを示すことができる。この場合、エッジ値は、視覚化をレンダリングさせるためにエッジにとって必要である。
【００４１】
メモリ１２８はまた、いくつかの実施形態において既存のＧＵＩ情報１３８を含み得る。既存のＧＵＩ情報１３８は、その時点でＧＵＩに表示されている１つ以上の視覚化についての情報を含み得る。たとえば、既存のＧＵＩ情報１３８は、視覚化の１つ以上の追加のエッジおよび視覚化タイプなどの１つ以上の視覚化についてのエッジ情報を含み得る。
【００４２】
特定の実施形態においては、メモリ１２８はまた、ユーザにとって好ましい視覚化のタイプについての情報を含むプリファレンス情報１４０を含む。いくつかの実施形態においては、プリファレンス情報１４０は構成可能なシステム設定によってユーザによって示され得る。いくつかの実施形態におけるビジュアルアナライザシステムは、ユーザのプリファレンスを決定する際にユーザの履歴挙動を追跡し得る。たとえば、ユーザが、特定のタイプの視覚化による情報を視認することを好むことを、たとえばそのタイプの視覚化に切換えることによって、過去に繰返し示していた場合、プリファレンス情報は、ユーザが特定のタイプの視覚化を好むことを示し得る。いくつかの実施形態においては、プリファレンス情報はまた、統計によって得られた一般ユーザのプリファレンスを含み得る。たとえば、（たとえばビジュアルアナライザシステムまたは他のタイプの視覚化システムの）一般ユーザが、特定のタイプの視覚化によって特定のタイプの情報を閲覧することを好む場合、プリファレンス情報は、データを提示する際にどのタイプの視覚化を用いるべきであるかを決定する際に、特定のタイプの視覚化に対してより多くの重みを与える可能性がある。
【００４３】
いくつかの実施形態においては、メモリ１２８はルール１４２を含む。ルール１４２は、１つ以上の構成を決定して当該構成をスコアリングする際に、構成ジェネレータ１５０および構成スコアラー１３４によって使用され得る。特定の実施形態においては、構成ジェネレータ１５０は、構成を生成する際に視覚化のどのエッジがどのタイプの次元を消費し得るかを決定するためにルール１４２を用い得る。いくつかの実施形態においては、構成スコアラー１３４は、どのマッピングがどんなスコアを受取り得るかを決定するためにルール１４２を用い得る。たとえば、ルール１４２は、カテゴリ（geo）エッジへの会社位置次元の割当てが３０の値を有し得ること、さらに、カテゴリ（ｘ）エッジへの会社位置次元の割当てが７の値を有し得ることを指定し得る。いくつかの実施形態においては、構成スコアラー１３４はまた、エッジに対する次元のどのマッピングが最高のスコアを達成し得るかを決定し得る。特定の実施形態においては、ルール１４２はまた、２つの視覚化のエッジ間の距離を計算する際にも用いることができる。たとえば、ルール１４２は、異なる視覚化タイプの各視覚化についてのツリー構造を指定することができる。
【００４４】
視覚化が開始されない場合には、視覚化によって提示されることをユーザが好むであろう１以上の次元のデータ（たとえば、年、会社名、収益、製品タイプなど）が、ユーザ入力によって指定され得る。特定の実施形態においては、ビジュアルアナライザシステム１００は、ユーザによって選択されたデータを提示する際に用いるべき視覚化タイプを決定することができる。いくつかの実施形態においては、ビジュアルアナライザシステム１００はまた、視覚化タイプを用いてデータを提示するべき態様を決定することができる。たとえば、ビジュアルアナライザシステム１００は、ユーザによって選択されるどの次元に視覚化のどのエッジを対応させるかを決定してもよい。
【００４５】
特定の実施形態においては、新しい視覚化を作成するためにユーザが次元を指定することに加えて、ユーザ入力は、次元を追加するかまたは既存の視覚化から次元を除去するように修正を指定することができる。（追加するかまたは除去するべき）次元を指定するユーザ入力に基づいて、構成ジェネレータ１５０は、（プラグイン・アダプタ１３０を介して追加される、ユーザによって構成された任意の視覚化タイプを含む）利用可能な視覚化タイプのうちのいくつかまたはすべてのために、いくつかの視覚化構成を生成することができる。視覚化構成は、視覚化のさまざまなエッジに対するさまざまな次元のマッピングを含み得る。上述のように、視覚化タイプに応じた各視覚化ごとにさまざまなエッジがあってもよい。特定の実施形態においては、構成情報１３６は視覚化構成を含み得る。
【００４６】
さまざまな視覚化構成は、ユーザによって指定された次元に対する修正を組込んだものであってもよい。たとえば、ユーザ入力が視覚化に対する次元の追加を指定していた場合、さまざまな視覚化構成は、ユーザによってさまざまな視覚化のエッジに追加されるように新たに指定された次元のマッピングを含み得る。ユーザ入力が視覚化に対する次元の除去を指定していた場合、さまざまな視覚化構成は、さまざまな視覚化のエッジに対する残りの次元（指定された次元はより少なくなっている）のマッピングを含み得る。
【００４７】
いくつかの実施形態においては、構成スコアラー１３４がさまざまな構成をスコアリングし得る。特定の実施形態においては、構成スコアラー１３４は、ベーススコア、プリファレンススコア、移行スコアおよび意味的相違スコアのうち少なくとも１つを含む構成スコアリングアルゴリズムを用いて、各々の構成をスコアリングし得る。ベーススコアは、特定のエッジに対する特定の次元のマッピングの適合性を示し得る。たとえば、ビジュアルアナライザシステム１０２は、マップにおけるカテゴリ（geo）エッジに対する会社位置次元のマッピングが、棒グラフにおけるカテゴリ（ｘ）エッジに対する会社位置次元のマッピングと比べて、より高いスコアを有し得ると判断し得る。プリファレンススコアは、さまざまな視覚化タイプの視覚化に対する一般的なプリファレンス、または、さまざまな視覚化タイプの視覚化に対するユーザのプリファレンスを示すことができる。たとえば、ビジュアルアナライザシステム１０２は、一般集団が散布図よりも棒グラフを好んでいると判断し、これにより、より高いプリファレンススコアを棒グラフタイプの視覚化に割当て得る。別の場合においては、ビジュアルアナライザシステム１０２は、ユーザの過去の挙動の監視に基づいて、ユーザが特定のタイプの視覚化を他のものよりも好んでいると判断し、それら特定のタイプに、他と比べてより高いプリファレンススコアを割当て得る。
【００４８】
実施形態はまた、ユーザの修正を組込んだ新しい視覚化を表示する方法を決定する際に、視覚化タイプ切換えペナルティについて説明し得る。いくつかの実施形態は、既存の視覚化に対して修正がなされている場合に、構成をスコアリングするための移行スコアを含み得る。いくつかの実施形態においては、移行スコアは、既存の視覚化の視覚化タイプとは異なる視覚化タイプを表わしている構成に対するペナルティを表現することができる。たとえば、移行スコアは、既存の視覚化とは異なる視覚化タイプを有する構成に割当てられている負のスコアであってもよい。特定の実施形態においては、移行スコアは、視覚化タイプが既存の視覚化の視覚化タイプと同じである場合に、それらの構成に追加される正のスコアであってもよい。
【００４９】
いくつかの実施形態においては、切換えペナルティは、修正を組込んだ後であっても視覚化にその視覚化タイプを保持させ得る。上述のように、この修正は、視覚化のエッジによって表わされている次元の追加または除去であってもよい。切換えペナルティが先在する視覚化タイプを保持するほど十分に大きくない可能性がある場合、更新された視覚化は、先在する視覚化とは異なる視覚化タイプを有する可能性がある。
【００５０】
いくつかの実施形態はまた意味的相違スコアを説明し得る。特定の実施形態においては、より多くのデータ列を視覚化に追加する場合、割当てられたすべてのデータ次元をより最適に描写できるようにするために、その時点で行われている視覚化を異なるチャートタイプに変換することが所望され得る。チャートタイプが変更されると、いくつかの実施形態は、データが如何に図表化されるかについての意味的相違を最小限にするように、当該変更を実現し得る。すなわち、好ましくは、軸、色づけ、サイズおよび他のプロパティのような既存の割当てを維持し得る。いくつかの実施形態においては、意味的相違スコアは、先在する構成と潜在的な構成との間の相違スコアを計算することができるエッジ距離決定部１１２を用いて計算することができる。相違スコアが視覚化構成にとって高い場合、その視覚化構成は、元の構成を可能な限り保持するために、より低い相違スコアを有する別の構成と比べて、それほど望ましいものではない可能性がある。
【００５１】
いくつかの実施形態においては、或る構成のための構成スコアは、ベーススコア、プリファレンススコアおよび移行スコアを合計して相違スコアを減じることによって、計算することができる。特定の実施形態においては、すべての構成についての構成スコアを計算すると、視覚化タイプセレクタ１１６は最高の構成スコアを有する構成を選択し得る。いくつかの実施形態においては、視覚化タイプセレクタ１１６は、次いで、最高の構成スコアを有する構成に対応する視覚化タイプを決定し得る。特定の実施形態においては、どの構成が最高のスコアを有するかに応じて、視覚化タイプセレクタ１１６は、既存の視覚化のタイプと比較して、既存の視覚化と同じタイプまたは異なるタイプである視覚化タイプを選択し得る。
【００５２】
上述のように、ビジュアルアナライザシステム１００は、異なるスコアリングアルゴリズムを用いて、指定された入力エッジについての視覚化タイプを決定することができる。いくつかの実施形態においては、エッジ距離スコアラー（ここでは図示せず）は、ユーザによって選択された入力エッジとさまざまなタイプの視覚化のための個々の構成のエッジとの間で類似性比較を実行することができる。類似性比較を実行する際に、エッジ距離スコアラーは、入力エッジと視覚化タイプの各々のエッジとについての距離スコアおよびを計算し得る。次いで、視覚化タイプセレクタ１１６は、入力エッジを表示するために用いられる最高の距離スコアを有する視覚化タイプを選択し得る。特定の実施形態においては、距離スコアはベーススコアおよびプリファレンススコアを含み得る。プリファレンススコアは、特定のタイプの視覚化を他のタイプの視覚化と比べたときに、他のタイプの視覚化よりも、特定のタイプの視覚化に対して、一般ユーザのプリファレンスまたはターゲットにされたユーザのプリファレンスを示すことができる。
【００５３】
いくつかの実施形態においては、エッジ距離スコアラーは、ベーススコアおよびプリファレンススコアに加えて、バイアススコア（切換えペナルティスコアまたは粘性スコアとも称される）を含む距離スコアを計算し得る。バイアススコアは、元の視覚化タイプを保持することに対するバイアスを示し得る。このため、既存の視覚化の視覚化タイプとは異なる視覚化タイプの場合、バイアススコアは、同じ視覚化タイプについてのバイアススコアと比較して、より低い（または負数である）かもしれない。異なる視覚化タイプを有する１つの構成のプリファレンススコアおよびベーススコアの合計が、先在する視覚化タイプを有する構成のプリファレンススコアおよびベーススコアの合計よりもはるかに大きい場合、バイアススコアは先在する視覚化タイプを保持するほど十分には大きくないかもしれない。それらの場合、新しい視覚化の視覚化タイプが新しい視覚化タイプに更新されてもよい。
【００５４】
いくつかの実施形態においては、構成スコアラー１３４は、構成情報１３６、既存のＧＵＩ情報１３８（ユーザが調整を行う前に先在する視覚化が存在していた場合）、プリファレンス情報１４０、ルール１４２、および、ユーザによって構成された視覚化タイプ１４４（ビジュアルアナライザアプリケーションにおいて容易に利用可能なものに加えて、ユーザが付加的な視覚化タイプを指定していた場合）のうち、１つ以上に基づいて各々の構成についてのスコアを計算することができる。当該スコアに基づいて、視覚化タイプセレクタ１１６は、最高のスコアを有する構成を選択し、最高のスコアを有する構成に対応する視覚化タイプを決定することができる。いくつかの実施形態においては、視覚化構成をレンダラー１３２または１２２に送信することができ、レンダラー１３２または１２２は、構成に基づいてＧＵＩ１２４上で視覚化をレンダリングし得る。
【００５５】
いくつかの場合、ユーザは、１つの視覚化タイプの表示から別の表示に切換えることを所望する可能性もある。たとえば、ユーザによってあらかじめ選択されたデータの次元をその時点で表示している棒グラフが存在する可能性があり、ユーザは、棒グラフから円グラフなどの別のタイプのチャートへの切換えを示してもよい。いくつかの実施形態は、視覚化のエッジ間の距離計算を実行することによって、ソース視覚化におけるエッジの値をターゲット視覚化におけるエッジへと如何にマッピングするかについて決定し得る。
【００５６】
特定の実施形態においては、エッジ距離決定部１１２は、値を、１つの視覚化タイプを有する第１の視覚化のエッジから別の視覚化タイプを有する第２の視覚化のエッジに転送するために、２つの視覚化間のエッジマッピングを実行することができる。エッジ距離決定部１１２は、既存の視覚化タイプについてのエッジ情報を既存のＧＵＩ情報１３８から取得することができる。次いで、エッジ距離決定部１１２は、ターゲット視覚化のエッジに対する既存の視覚化のエッジ間のエッジマッピングを作成することができる。いくつかの実施形態においては、エッジマッピングは、ソース視覚化のエッジとターゲット視覚化のエッジとの間の距離を決定することによって実行することができる。特定の実施形態においては、エッジ間の距離は各々のエッジに関連付けられたタグに基づいて決定することができる。たとえば、エッジ識別子をともに色として有するエッジ間の距離は、エッジ識別子を色として有するエッジとエッジ識別子をサイズとして有する別のエッジとの間の距離と比較して、より短くなるだろう。
【００５７】
特定の実施形態においては、エッジマッピングはまた、必要なエッジがそれにマッピングされている値を有することを確実にするために、ターゲット視覚化の必要なエッジをマッピングすることを優先させ得る。必要なエッジの情報は、メモリ１２８に記憶された構成情報１３６から取得することができる。いくつかの実施形態においては、エッジ距離決定部１１２は、ターゲット視覚化における必要なエッジを決定し、最初にそれらを充填し得る。たとえば、ターゲット視覚化における地理位置エッジが（たとえば視覚化をレンダリングさせるために）本質的な必要とされるエッジとして識別されていた場合、エッジ距離決定部１１２は、ソース視覚化において必要なエッジをエッジ値で満たすことを優先させ得る。
【００５８】
エッジ距離決定部１１２が視覚化のエッジ間におけるマッピングを決定すると、マッパー１１４はマッピング機能を実行することができる。この場合、エッジからの値はターゲット視覚化における対応するエッジにマッピングされる。エッジ値をマッピングすると、マッパー１１４は、マッピングされた値をレンダリングエンジン１３２またはレンダラー１２２に送信して、新しい更新された視覚化をレンダリングさせ得る。レンダリングされた視覚化は、この時、ターゲット視覚化タイプである。上述のように、エッジ値は、次元もしくはデータにおける値、またはデータベースの列における値に対応し得る。
【００５９】
いくつかの実施形態はまた、新しい視覚化タイプ（たとえばドーナツマップ）１４４についての構成情報をユーザが提供することを可能にするプラグイン・アダプタ１３０を有する。いくつかの実施形態においては、ユーザはユーザによって構成された１つ以上の視覚化および関連情報１４４をプラグイン・アダプタ１３０に提供し得る。ビジュアルアナライザシステム１００は、ビジュアルアナライザシステム１００に先在していない視覚化タイプを有する、ユーザによって構成された視覚化を組込むことができる。システムの融通性により、システムが、ユーザ構成可能視覚化タイプに対応すること、およびユーザがユーザによって構成された視覚化に干渉できるようにすることを可能にする一方で、明細書に記載された機能（たとえばマッピング、エッジ距離決定など）をユーザによって構成されたこれらの視覚化にも適用できるようにすることを確実にし得る。いくつかの実施形態においては、ユーザによって指定されたこれらの視覚化についての構成情報はエッジ情報を含み得る。視覚化は、システムにおいて予め規定されたものと同様に、エッジ識別子およびエッジ値を有する１セットのエッジを有してもよい。さらに、構成情報はまた、たとえば、エッジが必要なエッジであるか否かを識別するエッジについてのタグを含んでもよい。ユーザによって構成された視覚化タイプ１４４についての構成情報１３６は、プラグイン・アダプタ１３０を介してユーザによって提供され、メモリ１２８に記憶されてもよい。
【００６０】
図のうちのいくつかにおいて示されるシステムは、さまざまな構成で提供され得る。いくつかの実施形態においては、システムは、システムのうち１つ以上のコンポーネントが、１つ以上のクラウドインフラストラクチャシステムにおける１つ以上のネットワークを介して分散されている分散型システムとして構成されてもよい。
【００６１】
クラウドインフラストラクチャシステムは、１つ以上のサーバコンピューティング装置、ネットワーク装置および／または記憶装置の集合である。これらのリソースは、クラウドサービスプロバイダによって分割され、何らかの態様でその顧客に割当てられ得る。たとえば、カリフォルニア州（California）のレッドウッドショアズ（Redwood Shores）にあるオラクル社（Oracle Corporation）などのクラウドサービスプロバイダは、ソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）カテゴリのもとで提供される１つ以上のサービス；プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）カテゴリのもとで提供されるサービス；インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）カテゴリのもとで提供されるサービス；または、ハイブリッドサービスを含む他のカテゴリのサービス；を含むが、これらに限定されないさまざまなタイプのクラウドサービスを提供し得る。ＳａａＳサービスの例は、オラクル・フュージョン・アプリケーションなどのオンデマンドアプリケーション一式を構築して提供する能力を含むが、これらに限定されない。ＳａａＳサービスは、顧客がアプリケーションのためのソフトウェアを購入する必要なしに、当該顧客がクラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することを可能にする。ＰａａＳサービスの例は、（オラクルなどの）組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合することを可能にするサービス、さらには、オラクルＪａｖａ（登録商標）クラウドサービス（Javula Cloud Service：ＪＣＳ）、オラクル・データベース・クラウドサービス（Database Cloud Service：ＤＢＣＳ）などのプラットフォームによって提供される共有サービスを利用する新しいアプリケーションを構築する能力を含むが、これらに限定されない。ＩａａＳサービスは、典型的には、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客のためのストレージ、ネットワークおよび他の基本的なコンピューティングリソースなどの、基礎をなすコンピューティングリソースの管理および制御を容易にする。
【００６２】
ＩＩ．新しい視覚化を決定および提示する例示的プロセス
いくつかの実施形態は、ユーザによって選択された１以上の次元のデータを表示するのに最も適した視覚化タイプを有する視覚化を決定することができる。図２は、本発明のいくつかの実施形態に従った、既存の視覚化についての次元を修正するようにとのユーザ要求に応じて、ユーザに提示すべき新しい視覚化を決定する例示的なプロセス２００を示す。いくつかの実施形態においては、フロー２００は、クライアントデバイスもしくは１つ以上のサーバデバイスまたはそれらの組合せによって実行することができる。
【００６３】
ブロック２０２において、プロセス２００は、既存の視覚化の修正に対応するユーザ入力を受取ることができる。この場合、当該修正は、ある次元のデータの追加または既存の視覚化からの除去を含んでいる。既存の視覚化は、当該既存の視覚化が第１の視覚化タイプであることを示す既存の視覚化タイプ情報を有してもよい。既存の視覚化はまた、その１以上のエッジによって１以上の次元のデータを表示することであってもよい。いくつかの実施形態においては、ユーザ入力は、（たとえばデータ要素ペインから次元が選択され、キャンバスレイアウトに表示されている視覚化へとドラッグされる場合におけるドラッグ・アンド・ドロップ動作によって）既存の視覚化に追加すべき１以上の次元を選択することであってもよい。特定の実施形態においては、ユーザ入力は、視覚化においてその時点で提示されており視覚化から除去されるべき或る次元を識別することであってもよい。視覚化が開始されていないいくつかの実施形態においては、ユーザ入力は、新しい視覚化を生成するために１以上の次元のデータを選択することに対応し得る。ユーザ入力は、データ要素ペインから或る次元を選択すること、および、この選択したものをＧＵＩのキャンバスレイアウト部分のどこかにドラッグすることであってもよい。
【００６４】
ブロック２０４において、プロセス２００は、視覚化タイプごとに、既存の視覚化の次元に対する修正を組込んだ視覚化構成を決定することができる。視覚化構成は、図１の構成ジェネレータ１５０などのコンポーネントによって決定することができる。いくつかの実施形態は、最初の視覚化を構築する際に用いられたデータの最初の次元および修正に基づいていくつかの視覚化構成を生成してもよい。構成の各々は異なる視覚化を表現することができる。いくつかの実施形態においては、同じカテゴリの視覚化タイプ内に複数の構成が存在し得る（たとえば棒グラフのさまざまなエッジにマッピングされた次元を有する複数の棒グラフ）。さまざまな視覚化タイプを有する複数の視覚化のための複数の構成も存在し得る。
【００６５】
いくつかの実施形態においては、各視覚化タイプごとに視覚化構成が１つだけ生成されていてもよい。視覚化構成の生成は、修正がなされた後に上記セットの次元（すなわち、修正によって次元が追加されたかまたは除去されたかどうか）を決定し、次いで、当該セットの次元の各々を視覚化のエッジにマッピングすることを含み得る。特定の実施形態においては、視覚化構成は１セットのルールに基づいて決定され得る。いくつかの実施形態は、視覚化のエッジに対する或る次元のマッピングを、当該次元を視覚化の他のエッジにマッピングする場合と比べて、値が最も高い場合に、実行し得る。たとえば、会社位置次元をカテゴリエッジにマッピングすることによって、会社位置を色エッジにマッピングする場合よりも高いスコアが得られる場合、構成は会社位置次元をカテゴリエッジにマッピングすることを含み得る。特定の実施形態においては、「必要な」タグに関連付けられた視覚化のエッジが存在する可能性があり、このため、次元を別のエッジにマッピングする場合と比べて、マッピングされたスコアがより高くなるかどうかにかかわらず、構成は、当該セットの次元のうち少なくとも１つを「必要な」エッジにマッピングし得る。
【００６６】
ブロック２０６において、プロセス２００は、複数の構成の各々のために、構成スコアリング式を用いて構成スコアを計算することができる。構成スコアは、図１の構成スコアラー１３４などのコンポーネントによって計算することができる。いくつかの実施形態においては、構成スコアリング式は、ベーススコア、プリファレンススコア、移行スコア（ペナルティスコアまたはバイアススコアとも称される）、またはそれらのいずれかの組合せを含み得る。特定の実施形態においては、ベーススコアおよびプリファレンススコア（および／または移行スコア）を計算する代わりに、構成スコアは、ユーザによって選択されたエッジ情報とさまざまな視覚化タイプのためのさまざまな構成との間の距離スコアを含み得る。
【００６７】
いくつかの実施形態は、視覚化のエッジに対する或る次元の各マッピングについてのベーススコアを割当て得る。特定の実施形態は、表（たとえばルックアップテーブル（lookup table：ＬＵＴ））を含み得る１セットのルール（たとえば図１のルール１４２）に基づいて各々のマッピングを割当てるためにベーススコアを決定し得る。たとえば、いくつかの実施形態は、棒グラフの値エッジに収益次元をマッピングするために１０のベース値を割当て得る。別の例においては、いくつかの実施形態は、地理的マップタイプのチャートのカテゴリ（geo）エッジに会社位置をマッピングするために３０のベース値を割当て得る。さまざまな実施形態は、さまざまな視覚化タイプを視覚化するためにさまざまなマッピングのためのさまざまなベース値を割当て得る。ユーザによって構成された視覚化タイプが（たとえばプラグイン・アダプタを介して）ビジュアルアナライザシステムに追加されている実施形態においては、各々のマッピングをスコアリングするためのルールもプラグインによって指定され得る。
【００６８】
いくつかの実施形態においては、構成スコアはまた、プリファレンススコアを含み得る。プリファレンススコアは、さまざまなタイプの視覚化に対するユーザのプリファレンスを示し得る。たとえば、ユーザが概して円グラフより棒グラフを好む場合、棒グラフについてのプリファレンススコアは、円グラフに割当てられたプリファレンススコアよりも高くなり得る。ユーザのプリファレンスは、ビジュアルアナライザアプリケーションによって監視されたユーザの履歴挙動に基づいて決定することができる。ユーザが円グラフ視覚化を棒グラフ視覚化に変更することをビジュアルアナライザアプリケーションが一貫して検出する場合、ビジュアルアナライザアプリケーションは、ユーザが円グラフよりも棒グラフを好んでいると判断し得る。特定の実施形態においては、プリファレンススコアは、一般大衆（またはビジュアルアナライザアプリケーションのユーザ）のプリファレンスを示してもよい。たとえば、一般的な人の挙動に関する過去の研究は、一般大衆が、他のタイプよりも或る１タイプの視覚化を好んでいることを示し得る。そのため、ビジュアルアナライザアプリケーションは、概してよりポピュラーであると見なされている視覚化タイプについて、より高いプリファレンススコアを割当てる可能性がある。特定の実施形態は、表（たとえばルックアップテーブル（ＬＵＴ））を含み得る１セットのルール（たとえば図１のルール１４２）に基づいて各々の構成についてのプリファレンススコアを割当ててもよい。さまざまなタイプの視覚化についてのプリファレンススコアは、時間とともに変化し得るものであるとともに、付加的なユーザアクティビティが追跡されるのに応じて、かつ、ユーザのプリファレンスの指示が付加的なユーザアクティビティに基づいて変化するのに応じて、定期的に更新され得る。
【００６９】
特定の実施形態においては、構成スコアは、既存の視覚化と同じ視覚化タイプを有する視覚化構成についてのプリファレンスを示す移行スコアを含み得る。移行スコアは、正の（またはより高い）スコアを割当てることによって同じ視覚化タイプを有する視覚化構成に追加の重みを与えることができる一方で、同じ視覚化タイプを持たない構成に負のスコア、ゼロのスコアまたはより低いスコアを割当て得る。さまざまな異なる視覚化タイプに移行させるための移行スコアも異なっている可能性がある。たとえば、棒グラフから円グラフへの移行は、棒グラフから散布図への移行と比べて、より高いスコアを有する可能性がある。ビジュアルアナライザアプリケーションは、表（たとえばルックアップテーブル（ＬＵＴ））を含み得る１セットのルール（たとえば図１のルール１４２）に基づいてさまざまな移行スコアを割当てることができる。
【００７０】
ブロック２０８において、プロセス２００は、計算されたスコアに基づいて、いくつかの構成から特定の視覚化構成を選択することができる。いくつかの実施形態においては、この選択は、図１における視覚化タイプセレクタ１１６などのコンポーネントによって行なうことができる。視覚化構成は、元の既存の視覚化と比べて、同じタイプの視覚化または異なるタイプの構成であり得る。いくつかの実施形態においては、視覚化タイプセレクタは、最高の構成スコアを有する特定の視覚化構成を選択し得る。
【００７１】
ブロック２１０において、プロセス２００は、特定の視覚化構成に対応する更新済み視覚化をレンダリングさせることができる。いくつかの実施形態においては、更新済み視覚化は、図１におけるレンダリングエンジン１３２またはレンダラー１２２などのコンポーネントによって生成することができる。いくつかの実施形態は、選択された構成の視覚化タイプが元の既存の視覚化タイプと同じであるかどうかを判断し得る。特定の実施形態においては、視覚化タイプが同じであると判断されると、視覚化が更新された次元でレンダリングされ得る。情報は、ＧＵＩ１２４上でレンダリングされるように、レンダリングエンジン１３２またはレンダラー１２２などのレンダラーに送信され得る。同じ視覚化タイプを有する視覚化が表示され得るが、何らかの追加情報を備え得る。いくつかの実施形態においては、追加情報は、視覚化に追加された追加のエッジであってもよく、または、以前から視覚化の一部であったエッジを除去したものであってもよい。エッジの値に対する変更などの他のタイプの追加情報も、ユーザの要求に応じて表示され得る。
【００７２】
いくつかの実施形態は、更新された視覚化を決定する際に、特定の構成を有する潜在的な視覚化と元の先在する視覚化との間の意味的相違を考慮に入れ得る。いくつかの実施形態においては、構成スコアリング式はまた、意味的相違コンポーネントを含み得る。この意味的相違コンポーネントにおいて、意味的相違のスコアが計算され得る。上述のように、いくつかの実施形態は、視覚化タイプが変化していない場合であっても、ユーザの修正に対応するように視覚化を調整し得る。エッジ値（列または次元とも称される）は、修正を有効に組込むために視覚化の際にさまざまなエッジにマッピングされ得る。いくつかの実施形態においては、視覚化タイプが同じであると判断されると、プロセス２００は、図１におけるエッジ距離決定部１１２などのエッジ距離決定部に情報を送信し得る。エッジ距離決定部は、元の視覚化のエッジとターゲット視覚化のエッジとの間のエッジ距離（意味的相違とも称される）を決定することができる。マッパーは、元の視覚化におけるエッジに対応する値をターゲット視覚化におけるさまざまなエッジにマッピングし得る。いくつかの実施形態においては、マッパーは、新しく追加された次元について最も近い空のエッジを識別し、新しく更新された視覚化において、新しく追加された次元をこのエッジに対してマッピングし得る。
【００７３】
特定の実施形態においては、視覚化タイプが同じではないと判断されると、プロセス２００は、元の既存の視覚化のエッジから新しい視覚化タイプを有する新しい視覚化のエッジへの値のマッピングを決定することができる。いくつかの実施形態においては、図１における視覚化タイプセレクタ１１６などの視覚化タイプセレクタは、図１におけるエッジ距離決定部１１２などのエッジ距離決定部に対して、選択された視覚化を送信することができる。エッジ距離決定部１１２は、（ここではターゲット視覚化タイプである）選択された視覚化タイプについての構成情報を検索し、２つの視覚化のエッジ間の距離を決定し得る。
【００７４】
次いで、図１におけるマッパー１１４などのマッパーは、視覚化のエッジ間において計算された距離に基づいてマッピング構成を選択することができる。いくつかの実施形態においては、マッパーは、エッジ距離が最短であると判断された場合、値を或る１つのエッジから別のエッジにマッピングし得る。特定の実施形態においては、マッパーは、最初に、選択された視覚化において必要なエッジを識別し、残りのエッジのマッピング前に、まず、それらの必要なエッジに値が確実にマッピングされるようにし得る。マッパーが視覚化のエッジ間における値のマッピングを実行した後、プロセス２００は、新しい更新された視覚化をＧＵＩ上でレンダリングさせるためにレンダラーにマッピング情報を送信することができる。
【００７５】
ＩＩＩ．新しい次元を追加して視覚化を修正するシーケンスを示すためのスクリーンショット
図３〜図８は、新しい次元のデータを追加して視覚化を作成するためのシーケンスを示すスクリーンショット３００〜８００を含む。図３に示されるように、ビジュアルアナライザアプリケーションのＧＵＩ３０２は、たとえば、モバイルデバイスなどのユーザのコンピューティング装置上で実行されるウェブブラウザまたはアプリケーションを介して表示することができる。ＧＵＩ３０２は、さまざまな次元のデータを表わす１つ以上の選択可能な要素が表示され得るデータ要素ペイン３０６；１つ以上の視覚化が表示され得るキャンバスレイアウト３０８；視覚化タイプを有する視覚化のエッジが表示され得るエッジペイン３１０；ユーザが表示されたデータをフィルタリングするためにフィルタを追加し得るフィルタ列３１２；および、１つ以上の制御要素３１４（たとえば、取消しボタン、設定ボタンなど）を含み得る。さまざまな実施形態は、ビジュアルアナライザアプリケーションにおけるさまざまな要素をさまざまに表示し得る。
【００７６】
ＧＵＩ３０２に示されるように、データ要素ペイン３０６における収益の次元３０４が強調されて、それがビジュアルアナライザアプリケーションのユーザによって選択されたことを示している。ユーザは、この選択をキャンバスレイアウト３０８にドラッグし、キャンバスレイアウト３０８にこの選択をドロップして、ユーザが選択された次元を用いて作成された新しい視覚化を好むであろうことを示し得る。この例においては、デフォルトの視覚化タイプは水平な棒グラフである。さまざまな実施形態はさまざまなデフォルトの視覚化タイプを有し得る。いくつかの実施形態は、視覚化の作成のためにユーザが選択した次元（たとえば次元特徴、次元メンバ）に応じて視覚化タイプを決定し得る。次元特徴は、選択された次元が数値タイプの次元であるかまたはカテゴリタイプの次元であるかを示すことができる。次元メンバは、次元メンバがいくつ存在しているかと、次元メンバの値の範囲とを示すことができる。
【００７７】
図４は、棒グラフ視覚化４０２における選択された収益次元のレンダリングを示す。ユーザが次元を表現する際に用いるべき視覚化のエッジを示し得る一方で、いくつかの実施形態は、選択された次元のデータを表現するのに最も適切であり得るエッジを自動的に決定する。実施形態は図１および図２において記載された技術を用いてもよい。この技術は、図１における構成ジェネレータ１５０および構成スコアラー１３４を含むビジュアルアナライザアプリケーションのさまざまなコンポーネントによって実行される。いくつかの実施形態においては、スコアラーなどのビジュアルアナライザコンポーネントは、収益次元を値（ｘ軸）エッジにマッピングする場合、収益次元を視覚化の他のエッジにマッピングする場合よりも高いスコアを取得するだろうと判断し得る。そのため、視覚化により、水平な棒グラフの値エッジにおいて収益次元が表示され得る。
【００７８】
図５は、ユーザが別の次元：大型オブジェクト（large objects：ＬＯＢ）次元を追加することを選択したことと、視覚化５０２が視覚化５０２のカテゴリ（ｙ軸）エッジにおけるＬＯＢ次元を表示するために更新されたこととを示す。また、ユーザは新しく追加された次元を表現するのに視覚化のどのエッジを用いるべきかを指定し得るとともに、ビジュアルアナライザアプリケーションは、新しく追加されたデータを提示するのに最適な方法を自動的に決定し得る。いくつかの実施形態においては、スコアラーは、カテゴリ（ｙ軸）エッジに対してＬＯＢ次元をマッピングすることで、視覚化の他のエッジに対してＬＯＢ次元をマッピングする場合と比べて、より高いスコアが提供されると判断し得る。
【００７９】
さらに、他の視覚化タイプを有するさまざまな視覚化構成がまた、さまざまな視覚化構成が新しい次元の追加を組込んだ場合に、決定されてスコアリングされ得る。いくつかの実施形態は、ベーススコア、プリファレンススコアおよび移行スコアの合計に基づいて、収益次元が値（ｘ軸）にマッピングされており、ＬＯＢ次元がカテゴリ（ｙ軸）にマッピングされている構成が最高のスコアを有していると判断し得る。上述のとおり、より高いベースおよび／またはプリファレンススコアを有する異なる視覚化タイプを有する他の構成が存在し得る一方で、移行スコアが元の視覚化タイプの方を支持していることにより、構成スコアの総計が、元の視覚化タイプを有する構成の方を支持することになり得る。
【００８０】
図６は、ターゲット収益次元が視覚化に追加されたことを示す。図示のとおり、視覚化タイプは変化していない。いくつかの実施形態においては、ビジュアルアナライザアプリケーションは、また、構成が決定されてスコアリングされる図２に記載されるのと同様のプロセスを実行し得る。同じ視覚化タイプを有する構成は、この例において最高の構成スコアを有すると判断された。選択された構成は、視覚化の色エッジにマッピングされるようにターゲット収益次元を指定し得る。構成のこれらのマッピングはこの視覚化６０２においてこのように図示されている。いくつかの実施形態においては、視覚化のエッジに対する予め示された次元のマッピングを維持することにより、当初に示された視覚化と更新された視覚化との間の意味的距離が最小限になり得る。そのため、いくつかの実施形態は、先在する構成との類似性がより多い構成を、先在する構成との類似性がより少ない構成よりも高くスコアリングすることによって、意味的相違を最小限にし得る。
【００８１】
図７は、請求量の次元が視覚化に追加されたことを示す。ユーザが、請求量の次元を表わす要素をキャンバスレイアウトに表示された視覚化７０２にドロップすると、ビジュアルアナライザアプリケーションは、新しく追加された請求量の次元が値（ｘ軸）エッジによって表現されている視覚化を表示し得る。図７は新しい請求量の次元のデータの追加を表示する一方法を示し、図８は、視覚化への新しい次元のデータの追加を表示する別の方法を示す。いくつかの実施形態は図７の代わりに図８を示し得る。なぜなら、図８における視覚化８０２に対応する視覚化構成が、視覚化スコアリングアルゴリズムにおいて、よりも高くスコアリングし得るからである。ビジュアルアナライザアプリケーションは、新しい次元のデータを追加するようにとの指示を受取ると、ユーザにスクリーンショット１１００を自動的に提示し得る。この例においては、図２のプロセス２００などのプロセスを用いて、ビジュアルアナライザアプリケーションは、請求量の次元が追加された場合には、データを表示するのに別の視覚化タイプの方がより適しているだろうと自動的に判断した。この例においては、ビジュアルアナライザアプリケーションは、先在する視覚化６０２によって表現されていた他の次元と共に、散布図を用いて値（ｘ軸）エッジにおいて請求量次元を表示することが、ユーザにとって最も直観的になり得ると判断した。
【００８２】
上述のように、いくつかの実施形態は、視覚化エッジに対するデータ要素（複数次元のデータとも称される）の、意味的距離に基づいた割当てを用いてもよい。特定の実施形態においては、視覚化に対してより多くのデータ列を追加する場合、割当てられたデータ次元をすべてより適切に描写できるようにするために、その時点での視覚化を異なるチャートタイプに変換することが望ましい可能性もある。チャートタイプが変更されると、いくつかの実施形態は、データが如何に図表化されるかについての意味的相違を最小限にするように当該変更を実現し得る。すなわち、好ましくは、軸、色づけ、サイズおよび他のプロパティのような既存の割当てを維持し得る。
【００８３】
いくつかの実施形態は、ｉ）視覚化によってサポートされるプロパティに対する使用済みデータ列ごとの最良の配置、ｉｉ）視覚化タイプの全体的な優秀性（ベーススコアとも称される）；およびｉｉｉ）元の視覚化およびプロパティ割当てまでの意味的距離；のうち少なくとも１つ以上に基づいて、視覚化選択およびプロパティ割当てを実行するためのスコアリング機能を用いるアルゴリズムを提供する。いくつかの実施形態は、最適な配置がなされているエリアにおいてさまざまなスコアリング機能を用いる。いくつかの実施形態におけるアルゴリズムは、図９〜図１２における下記のアルゴリズムと同様の距離関数を用いる意味的相違を説明し得る。
【００８４】
ＩＶ．例示的な構成スコア計算
いくつかの実施形態は、（たとえば、新しい列を表現するためのエッジをユーザが指定することなく）視覚化内に新しい列をドロップすることによってスコアリングアルゴリズムをトリガしてもよい。上述のように、各々の視覚化は１以上のエッジ（たとえば、Ｅ１、Ｅ２、Ｅ３、…Ｅｎ）を有し得る。いくつかの実施形態においては、Ｅ１は、棒グラフ、円グラフ、散布図、他の何らかのカスタマイズされたチャートなどのうちの１つのエッジ値を有し得る視覚化タイプであり得る。Ｅ２は色であり得る。Ｅ３はサイズなどであり得る。エッジの各々は、エッジが視覚化のために必要であるか否かを示すことができる１セットのタグを有する。いくつかの実施形態においては、視覚化の構成情報はまた、視覚化の機能（たとえば、エッジがカテゴリタイプのエッジであるかまたは値タイプのエッジであるか）などを記述する機能的情報（機能的なタグとも称される）などの視覚化の他の文脈情報を含み得る。
【００８５】
一例においては、ユーザは、収益次元を選択（たとえば、ダブルクリック、キャンバスレイアウトにドラッグ・アンド・ドロップ）してもよい。いくつかの実施形態においては、スコアリングアルゴリズムをトリガすることができる。スコアリングアルゴリズムをトリガする別の方法は、視覚化内にある「提案（Suggest）」ドロップターゲットに新しい列をドロップすることである。スコアリングアルゴリズムをトリガするための別の方法は、その時点で用いられているデータについての他の実現可能なオプションを示すことができるユーザインターフェイス上の「再提案（Re-suggest）」ボタンを選択することである。この場合、アルゴリズムは、類似度（意味的相違スコアとも称される）よりも視覚化（ベーススコアとも称される）の優秀性に対してより多くの重みを与えてもよい。この例においては、スコアリングアルゴリズムは、選択された収益次元を表わすのに棒グラフが最適な視覚化タイプであると判断する可能性もある。収益次元がカテゴリ（ｙ軸）エッジによって表わされている棒グラフがレンダリングされ得る。
【００８６】
次いで、ユーザは会社位置次元を選択し得る。いくつかの実施形態においては、スコアリングアルゴリズムが再びトリガされる。いくつかの実施形態は、さまざまな視覚化タイプのためのいくつかの構成を決定し、構成の各々についての構成スコアを計算してもよい。一構成は、収益次元が値エッジにマッピングされており、会社位置次元がカテゴリ（ｘ軸）エッジにマッピングされている棒グラフであり得る。別の構成は、収益次元が色エッジにマッピングされており、会社位置次元がカテゴリ（geo）エッジにマッピングされているマップであり得る。さらに別の構成は、収益が値エッジにマッピングされており、会社位置次元がカテゴリエッジにマッピングされている線グラフであり得る。表現されるべきセットの次元のために決定されたさまざまな視覚化タイプに対応するさらに多くの構成も他にあり得る。
【００８７】
いくつかの実施形態においては、構成スコアリングアルゴリズムは、ベーススコア、プリファレンススコアおよび移行スコアの合計であり得る。特定の実施形態においては、構成スコアリングアルゴリズムはまた意味的相違スコアを含んでもよい。特定の実施形態においては、移行スコアは意味的相違スコアを組込んでもよい。さまざまな実施形態は、各々の構成についての構成スコアを決定するためにスコアのさまざまな組合せを用いてもよい。いくつかの実施形態は、特定のスコア（たとえば意味的相違スコア、ベーススコア）に追加の重みを配置してもよい。いくつかの実施形態は、１セットのルール（たとえば図１のルール１４２）を調べることによってスコアの各々に配置された重みを決定し得る。
【００８８】
いくつかの実施形態においては、ベーススコア、プリファレンススコアおよび移行スコアは、構成スコアラー（たとえば、図１の構成スコアラー１３４）、アクセスルール（たとえば、図１のルール１４２）または、何らかのデータストレージ（たとえば、ＬＵＴなどの表）によって決定することができる。たとえば、いくつかの実施形態においては、各マッピングごとに割当てられた値（たとえば、棒グラフにおける値エッジマッピングに対する収益次元、マップにおける色エッジマッピングに対する収益次元）はまた、１セットのルール（図１のルール１４２）またはデータストレージ（たとえばＬＵＴなどの表）において見出すことができる。或る１つの視覚化タイプから別のタイプへの移行値も、いくつかの実施形態において１セットのルール（図１のルール１４２）またはデータストレージ（たとえばＬＵＴなどの表）において見出すことができる。これらのスコアは、アドミニストレータまたはビジュアルアナライザシステムのユーザによって予め割当てることができる。構成アルゴリズムはまた、（たとえばプリファレンス設定下で）アドミニストレータまたはビジュアルアナライザシステムのユーザによって調整されてもよい。
【００８９】
この例においては、棒グラフに関して、値に対する収益のマッピングは１０の値を有する。カテゴリ（ｘ）に対する会社位置のマッピングは７のスコアを有する。棒グラフ間の移行スコアには１０の値を与えることができる。この例においてはプリファレンススコアはない。この例においては上述のスコアのうちのいずれにも重みは追加されていない。この棒グラフ構成についての総構成スコアは（１０ｘ１）＋（７ｘ１）＋１０＝２７である。
【００９０】
マップに関して、値に対する収益のマッピングは５の値を有する。カテゴリ（geo）に対する会社位置のマッピングは３０の値を有する。棒グラフからマップへの移行スコアは２である。このマップ構成についての総構成スコアは（５ｘ１）＋（３０ｘ１）＋２＝３７である。
【００９１】
線グラフに関して、値に対する収益のマッピングは１０の値を有する。カテゴリに対する会社位置のマッピングは７の値を有する。棒グラフから線グラフへの移行スコアは２である。この線グラフ構成についての総構成スコアは（１０ｘ１）＋（７ｘ１）＋２＝１９である。ビジュアルアナライザシステムは、最高のスコアが最も所望される構成であると判断し得る。そのため、この例においては、マップ構成が選択される。
【００９２】
Ｖ．その時点での視覚化と比べて異なる視覚化タイプを有する新しい視覚化において１以上の次元を効果的に表示するための例示的なフロー
ユーザは、複数次元のデータの表示を、使用中の或る１つのタイプの視覚化から別のタイプの視覚化に変更するようにとの要求を示し得る。たとえば、ユーザは、既存の視覚化を用いるデータの表示を棒グラフから円グラフの１つへと切換えるようにとの要求を指定し得る。いくつかの実施形態は、新しい視覚化タイプがユーザによって選択されていた場合に、１以上の次元のデータを新しい視覚化で効果的に表示する方法を決定することができる。特定の実施形態は意味的距離アルゴリズムを利用して、第１の視覚化タイプの第１の視覚化における（次元を表わす）エッジを第２の視覚化タイプの第２の視覚化におけるエッジに対してマッピングし易くすることにより、新しい視覚化がユーザにとって直観的に見えるようにし得る。
【００９３】
いくつかの実施形態においては、ビジュアルアナライザシステムは、初期の既存のソース視覚化とターゲット視覚化との間におけるエッジのマッピングを決定することができる。いくつかの実施形態はエッジ間の距離を決定することによってマッピングを実行する。いくつかの実施形態においては、エッジ間の距離はエッジに関連付けられたタグに基づいて決定される。たとえば、エッジが名前を表現するのに適したものであることを示す機能的タグを有する第１の視覚化タイプのエッジは、エッジが会社名を表現するのに適したものであることを示す機能的タグを有する第２の視覚化タイプのエッジまでの距離が短くなり得る。
【００９４】
いくつかの実施形態は、第１の視覚化タイプから第２の視覚化タイプのものに視覚化を移行させる際に１セットのルールに従う。いくつかの実施形態においては、ルールは、（１）或るもの（something）を示すこと−いくつかの実施形態では、視覚化が或るものを表示することができるように列を移動させ得る；および、（２）同じことを実行するエッジ上で列を維持すること−いくつかの実施形態では、同様に機能するエッジにまで列を移動させ得る。同じことを実行するエッジ上で列を維持することにより、２つの視覚化間の意味的相違が最小限にされる。いくつかの実施形態は移行を可能にするために両方のルールを満たすことを必要とする。いくつかの実施形態においては、視覚化によって或るものをレンダリングできるようにすることを必要とする第１のルールに対して、より多くの重みが与えられる。２つのルール間に矛盾がある場合、いくつかの実施形態は、単に、視覚化が或るものを示し得ることを確実にするように第１のルールのみに従い得る。いくつかの実施形態においては、当該１セットのルールは、図１におけるルール１４２に格納することができる。図１のエッジ距離決定部１１２などのビジュアルアナライザコンポーネントは、一方の視覚化のエッジから別の視覚化のエッジにまでエッジ値をマッピングする方法を決定する際にこれらのルールを用いてもよい。
【００９５】
図９は、本発明のいくつかの実施形態に従った、第１の視覚化タイプの視覚化を第２の視覚化タイプの別の視覚化に変換するための例示的なプロセス９００を示す。いくつかの実施形態は、第１のソース視覚化における各々のエッジを経た後、第２のターゲット視覚化におけるエッジに対するエッジの値（エッジ値、データ次元、またはエッジによって表現されている列とも称される）のマッピング先を決定することができる。特定の実施形態においては、視覚化タイプ距離決定部（図１における視覚化タイプ距離決定部１３６など）は、マッピング分析を実行し、視覚化のエッジ間の距離に基づいて値をマッピングすることができる。視覚化タイプ距離決定部は、第１のソース視覚化におけるに各エッジごとに、第２のターゲット視覚化における最も近接しているエッジを決定して、第１のソース視覚化におけるエッジの情報を、第２のターゲット視覚化における最も近接しているエッジにマッピングすることができる。
【００９６】
ブロック９０２においては、プロセス９００は、既存の視覚化についての既存のエッジ情報を受取ることができる。既存の視覚化は第１のセットのエッジを有し得る。いくつかの実施形態においては、既存の視覚化に対応する第１のセットのエッジは、視覚化の視覚化タイプを識別することができる。この例においては、既存の視覚化は第１の視覚化タイプである。
【００９７】
ブロック９０４においては、プロセス９００は、ターゲット視覚化についてのエッジ情報を受取ることができる。ターゲット視覚化は第２のセットのエッジを有し得る。いくつかの実施形態においては、ターゲット視覚化は第２の視覚化タイプであり得る。
【００９８】
ブロック９０６においては、プロセス９００は、既存のエッジ情報およびターゲットエッジ情報を用いて、第１のセットのエッジと第２のセットのエッジとの間のマッピングを決定することができる。いくつかの実施形態は、第１のソース視覚化からエッジを選択し、新しい視覚化から最も近接しているエッジを決定してもよい。
【００９９】
第１の視覚化タイプを用いる第１の視覚化は、３つのエッジを含む構成情報を有し得る。第２の視覚化タイプを用いる第２の視覚化は、４つのエッジを含む構成情報を有し得る。視覚化タイプ距離決定部は、第１の視覚化における第１のエッジを選択し、第２の視覚化から最も近接しているエッジを決定することができる。次いで、第１の視覚化における第１のエッジからの値は、第２の視覚化における最も近接しているエッジに転送されてもよい。次いで、視覚化タイプ距離決定部は、さらに第２のエッジを選択し、第２の視覚化から最も近接しているエッジを決定すること等々を、すべてのエッジが一致を検出するまで行い得る。
【０１００】
いくつかの実施形態は、「必要な」エッジとタグ付されたターゲット視覚化におけるエッジを識別し、これらのエッジについての一致を決定し得る。いくつかの実施形態においては、エッジは、エッジが視覚化の「必要な」エッジであるか否かを識別するタグを有することができる。いくつかの実施形態は、最初に、視覚化のために「必要な」ものとしてタグ付されたそれらのエッジを識別し、必要なエッジを補充してから、視覚化の他のエッジが補充され得る。
【０１０１】
いくつかの実施形態においては、エッジ間の距離は、各々のエッジに関連付けられたタグを比較することによって決定することができる。たとえば、タグＴ１およびＴ２を有するエッジ、ならびにタグＴ１、Ｔ２およびＴ３を有するエッジは２つの重複するタグを有する。これらの２つのエッジ間の距離は、重複するタグ１つだけ有するエッジと比べて、より短くなる可能性がある。各々のエッジについてのタグは、エッジの特徴を識別することができる。たとえば、エッジのためのタグは、エッジが必要なエッジであるかどうか、または、エッジがそのエッジ値についての地理座標に対応するかどうかを示すことができる。エッジ間の距離に基づいて、システムは、ある１つの視覚化におけるエッジから別の視覚化におけるエッジにまで値を移すための方法を決定することができる。
【０１０２】
いくつかの実施形態においては、一致する識別子を有するエッジは非常に小さな距離値を有するだろう。エッジ識別子同士が一致していない場合、距離計算は、階層グラフにおいて詳細に検討すべきノードの数を決定することによって実行される。
【０１０３】
ブロック９０８においては、プロセス９００は、マッピングに基づいて、マッピングされた第２のセットのエッジにおいて第１のセットのエッジに対応する次元でターゲット視覚化を提示することができる。
【０１０４】
ＶＩ．第１のタイプの視覚化から第２のタイプの視覚化への移行時に従うべきルール
上述のように、いくつかの実施形態は、第１の視覚化タイプの第１の視覚化を第２の視覚化タイプの第２の視覚化へと移行させる際に１セットのルールに従う。いくつかの実施形態においては、ルールは、或るものを示すことおよび／または同様のエッジの機能についての列を維持することのうち１つ以上を含み得る。
【０１０５】
いくつかの実施形態は、エッジマッピングが完成される前にターゲット視覚化が或るものを示すことができるようになるというルールを必要とする。たとえば、棒グラフは、その「値」エッジにおいて少なくとも１つの基準列を有していなければ、何も示すことができない。このため、図１０に示されるように、ツリーマップから棒グラフへと移行させるとき、アルゴリズムは、棒グラフが或るものを示し得るように、基準の「収益」を色から値にまで移動させることとなる。
【０１０６】
特定の実施形態はまた、機能的に同様のエッジ上に列を維持するためのルールを必要とするかもしれない。たとえば、ピボットグラフおよび棒グラフがともに「行」エッジを有していたとしても、「行」における「都市」列を有するピボットテーブルから移行する際に、アルゴリズムは、代わりに、「都市」列を「カテゴリ」エッジに移動させることを選ぶ。なぜなら、棒グラフ上の「カテゴリ」エッジがピボットテーブル上の「行」エッジと機能的に最も類似していたからである。図１１に示されるように、ピボットテーブルから水平な棒グラフにまで移行する場合、「都市」列は、ピボットテーブルにおける「行」エッジから棒グラフにおける「カテゴリ（ｙ軸）」エッジへと移動させられている。
【０１０７】
ＶＩＩ．エッジ間の距離を決定するためのプロセス、および、或るエッジから別のエッジへの値のマッピング
特定の実施形態は、視覚化のエッジ間の距離に基づいて、第１の視覚化タイプの１つの視覚化から第２の視覚化タイプの別の視覚化におけるエッジへとエッジをマッピングし得る。いくつかの実施形態は、或る１つの視覚化から別の視覚化にエッジをマッピングする場合に、図１０および図１１において上述されたルールのような１セットのルールに従い得る。図１２は、本発明のいくつかの実施形態に従った、ソース視覚化からターゲット視覚化にエッジをマッピングするための擬似コード１２００を示す。さまざまな実施形態は、従うべきルール；ステップが実行される順序；または、視覚化のエッジ間のマッピングを実行する際に必要になり得るコンポーネント；についての変形例を有し得る。
【０１０８】
いくつかの実施形態は、第１の視覚化（たとえばソース視覚化）のエッジと第２の視覚化（たとえばターゲット視覚化）のエッジとの間のエッジ類似度を計算し得る。特定の実施形態においては、視覚化のエッジ間のエッジ類似度を計算することによって、ビジュアルアナライザシステムが機能的に同様のエッジ上に列を維持することが可能になり得る。さまざまな実施形態は、異なる機能を実現することによって、さまざまな態様で、列を機能的に同様のエッジ上に維持する方法を決定し得る。
【０１０９】
いくつかの実施形態においては、２つのエッジ間のエッジ類似度は、両方のエッジについて定義されたタグの数に基づいて決定することができる。上述のように、視覚化のエッジは当該エッジに関連付けられた１つ以上のタグを有し得る。この場合、これらタグは、当該エッジによって表現することができるデータのタイプ（たとえば、次元、列）などのエッジの特徴を定義している。２つのエッジ間のエッジ類似度は、第１のエッジに関連付けられたタグのリストおよび第２のエッジに関連付けられたタグのリストを決定して、比較を実行することによって決定することができる。いくつかの実施形態においては、２つのリストにおいて重複するタグは、２つのエッジがどれほど類似しているかを示すことができる。たとえば、２つのエッジ間に４つの重複するタグが存在している場合、これらの２つのエッジは、重複するタグが２つしかない２つのエッジと比較して、より高い類似度値を有すると見なされている。
【０１１０】
ソース視覚化のエッジとターゲット視覚化のエッジと間のエッジ類似度値を決定した後、特定の実施形態は、最適に一致するエッジのソート済みリストを決定し得る。いくつかの実施形態においては、比較すべき一連のエッジにおける各々のエッジごとに、全体的な一致スコアを計算することができる。この例においては、全体的な一致スコアは類似度スコアおよび優先度スコアに基づいて計算することができる。いくつかの実施形態においては、類似度スコアは、先の段落において記載されたアルゴリズムを用いて計算することができ、この場合、重複するタグを見出すために、エッジに関連付けられたタグが比較されている。特定の実施形態においては、重複するタグが多ければ多いほど、類似度スコアはより高くなる。
【０１１１】
いくつかの実施形態においては、優先度スコアは、エッジ優先度および最大最優度に基づいて計算することができる。視覚化のエッジは各々、数値優先度を有し得る。いくつかの実施形態においては、数値優先度は、エッジの重要性、および／または、エッジが「必要な」エッジであるか否かを示すことができる。たとえば、さまざまなエッジ間で高優先度を有するエッジは、高い数値の優先度値を有することができ、優先度のより低いと別のエッジと比べて、より高い数値の優先度値を有することができる。最大優先度はすべてのエッジにわたる優先度の最大値であり得る。優先度スコアは、エッジ優先度の値を最大優先度の値で割ることによって計算することができる。エッジが他のエッジと比べて最高優先度を有するものである場合、優先度スコアは１であり得る。エッジが他のエッジと比べて低優先度を有するものである場合、優先度スコアは１の分数であり得る。
【０１１２】
全体的な一致スコアは類似度スコアおよび優先度スコアの合計であり得る。いくつかの実施形態は、各対のエッジごとの全体的な一致スコアを決定し、それら全体の一致スコアに基づいて複数のエッジ対をソートし得る。特定の実施形態は、複数のエッジ対の全体的な一致スコアに基づいてソートされる一連のエッジを（たとえば、ソース視覚化の各エッジごとに）決定してもよい。いくつかの実施形態においては、この一連のエッジは、或るエッジに対する一致度の最も高いもの（すなわち、最高の全体一致スコア）から一致度の最も低いものへの順序でソートされた（ターゲット視覚化の）複数のエッジを有し得る。
【０１１３】
いくつかの実施形態は、最も一致するエッジのソート済みリストを用いることによって、第１の視覚化（ソース視覚化）上のエッジを第２の視覚化（ターゲット視覚化）にマッピングし得る。特定の実施形態においては、最も一致するエッジのソート済みのリストを詳しく検討し、エッジがエッジの特徴（たとえば、エッジに関連付けられたタグ）に基づいて列を消費することができるかどうか判断することによって、ビジュアルアナライザシステムは、ターゲット視覚化によって確実に或るものを示すことができるようにし、これにより、いくつかの実施形態における必要なルールのうちの１つを満たし得る。さまざまな実施形態は、異なる機能を実現することによって、確実に、ターゲット視覚化で或るものをさまざまな態様で示すことができるようにするための方法を決定し得る。
【０１１４】
上述のように、特定の実施形態は、最も一致するエッジのソート済みのリストを詳しく検討し、エッジが列を受付けることができるかどうか（すなわち、エッジが列データを消費することができるかどうか）を決定し得る。いくつかの実施形態は、エッジの特徴に基づいてエッジが列を受付けることができるかどうかを決定することができる。たとえば、エッジが値タイプのエッジである場合、エッジは、単にカテゴリタイプの値だけを有する列を受付けることができないかもしれない。別の例においては、エッジが７つのカテゴリタイプの値だけを受付けることができるカテゴリタイプのエッジ（たとえば色）である場合、当該エッジは、８以上の次元のメンバを有するカテゴリタイプの列を受付けることができないかもしれない。エッジが列を受付けることができない場合、ソート済みのリストからの次のエッジが用いられる。エッジは、たとえば、そのエッジが単一の列しかサポートしない場合、または、エッジによって表現することができるデータのタイプが列のデータのタイプを含まない場合（たとえば、エッジがカテゴリタイプのエッジであり、列が数値タイプの列である場合）、列を受付けることができないかもしれない。上述のように、エッジの機能的タグは、エッジが表現するのに適したものになり得るデータのタイプ（たとえば、地理的情報、位置データ）を示すことができる。
【０１１５】
ＶＩＩＩ．視覚化の表示を第１の視覚化タイプから第２の視覚化タイプに切換えるための例示的なスクリーンショット
図１３は、１以上の次元を表す視覚化の表示を散布図から棒グラフに切換えるためのスクリーンショットを示す。図示のとおり、散布図における「形状」エッジからの「Ｄ４会社」次元は、棒グラフにおける「カテゴリ」エッジに移動させられている。
【０１１６】
図１４は、１以上の次元を表す視覚化の表示を水平な棒グラフから表に切換えるためのスクリーンショットを示す。図示のとおり、「割引額」次元および「年」次元は、「列」エッジに移動させられている。なぜなら、表が「値」エッジまたは「カテゴリ」エッジをサポートしていないからである。
【０１１７】
図１５は、１以上の次元を表す視覚化の表示をピボットチャートから線グラフに切換えるためのスクリーンショットを示す。図示のとおり、いくつかの実施形態は、「年」次元を「列」エッジから「カテゴリ」エッジに移動させてもよい。なぜなら、これが最適な一致であると判断されたからである。図１６は、最適一致論理が用いられていない場合における、１以上の次元を表わす視覚化の表示をピボットチャートから線グラフに切換えるスクリーンショットを例示している。この図は、最適一致論理が用いられていない場合に、列が同じエッジ（すなわち、「行」エッジから「行」エッジまでの間）において維持され、結果がさほど好ましいものではなく、ユーザが読取るのがより困難になるであろうことを示す。
【０１１８】
図１７は、１以上の次元を表す視覚化の表示を棒グラフから散布図に切換えるためのスクリーンショットを示す。棒グラフでは、それらの「値」エッジにおける列の数を無限にすることが可能となる。散布図は、それらの「値」エッジには２列しか配置できない。値に関して３以上の列を有する棒グラフから散布図に移行する場合、残りの列は、それら（たとえば、この例においては「色」エッジ）を受付けることができる他のエッジに配置されてもよい。
【０１１９】
ＩＸ．例示的な分散型システム
図１８は、一実施形態を実現するための分散型システム１８００の簡略図を示す。図示される実施形態においては、分散型システム１８００は、１つ以上のネットワーク１８１０を介して、ウェブブラウザ、プロプライエタリクライアント（たとえば、オラクルフォームズ（Oracle Forms））などのクライアントアプリケーションを実行して動作させるように構成される１つ以上のクライアントコンピューティング装置１８０２、１８０４、１８０６および１８０８を含む。サーバ１８１２は、ネットワーク１８１０を介してリモートクライアントコンピューティング装置１８０２、１８０４、１８０６および１８０８に通信可能に連結され得る。
【０１２０】
さまざまな実施形態においては、サーバ１８１２は、文書（たとえばウェブページ）分析および修正関連の処理を提供するサービスおよびアプリケーションなどの１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。特定の実施形態においては、サーバ１８１２はまた、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの実施形態においては、これらのサービスは、ウェブベースのサービスまたはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス（ＳａａＳ）モデルのもと下で、クライアントコンピューティング装置１８０２、１８０４、１８０６および／または１８０８のユーザに対して提供されてもよい。クライアントコンピューティング装置１８０２、１８０４、１８０６および／または１８０８を動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用して、サーバ１８１２と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。
【０１２１】
図１８に示される構成においては、システム１８００のソフトウエアコンポーネント１８１８、１８２０および１８２２はサーバ１８１２上において実現されるように示されている。他の実施形態においては、システム１８００のコンポーネントのうち１つ以上および／またはこれらのコンポーネントによって提供されるサービスはまた、クライアントコンピューティング装置１８０２、１８０４、１８０６および／または１８０８のうち１つ以上によって実現され得る。クライアントコンピューティング装置を動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用してこれらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組合せで実現され得る。分散型システム１８００とは異なり得るさまざまな異なるシステム構成が実現可能であることが認識されるはずである。このため、図１８に示される実施形態は、一実施形態のシステムを実現するための分散型システムの一例であって、限定されるように意図されたものではない。
【０１２２】
クライアントコンピューティング装置１８０２、１８０４、１８０６および／または１８０８はさまざまなタイプのコンピューティングシステムを含み得る。たとえば、クライアントコンピューティング装置は、手持ち式携帯機器（たとえばｉＰｈｏｎｅ（登録商標）、携帯電話、ｉＰａｄ（登録商標）、計算タブレット、パーソナルデジタルアシスタント（personal digital assistant：ＰＤＡ））またはウェアラブル装置（たとえばグーグルグラス（登録商標）ヘッドマウントディスプレイ）であってもよく、当該装置は、マイクロソフト・ウィンドウズ・モバイル（登録商標）などのソフトウェアを実行し、および／または、ｉＯＳ、ウィンドウズ・フォン、アンドロイド、ブラックベリー１０、パームＯＳなどのさまざまなモバイルオペレーティングシステムを実行し得る。当該装置は、さまざまなアプリケーション、たとえば、さまざまなインターネット関連のアプリ、電子メール、ショートメッセージサービス（short message service：ＳＭＳ）アプリケーションなどをサポートし得るとともに、他のさまざまな通信プロトコルを用い得る。クライアントコンピューティング装置は、汎用パーソナルコンピュータを含み得るものであって、当該汎用パーソナルコンピュータは、一例として、マイクロソフト・ウィンドウズ（登録商標）、アップルマッキントッシュ（登録商標）および／またはリナックス（登録商標）オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む。クライアントコンピューティング装置は、ワークステーションコンピュータであってもよく、当該ワークステーションコンピュータは、たとえばＧｏｏｇｌｅ  Ｃｈｒｏｍｅ  ＯＳなどのさまざまなＧＮＵ／リナックス（登録商標）オペレーティングシステムを含むがこれらに限定されるものではないさまざまな市販のＵＮＩＸ（登録商標）またはＵＮＩＸライクオペレーティングシステムのうちのいずれかを実行する。クライアントコンピューティング装置は、シン・クライアントコンピュータ、インターネットにより可能なゲームシステム（たとえばキネクト（登録商標）ジェスチャ入力装置を備えるかまたは備えないマイクロソフトＸボックスゲーム機）、および／または、ネットワーク１８１０を介して通信が可能なパーソナルメッセージング装置などの電子装置を含み得る。
【０１２３】
図１８における分散型システム１８００は、４個のクライアントコンピューティング装置を有するように示されているが、任意の数のクライアントコンピューティング装置がサポートされてもよい。センサを有する装置などの他の装置が、サーバ１８１２と相互作用してもよい。
【０１２４】
分散型システム１８００におけるネットワーク１８１０は、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよく、当該プロトコルは、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（システムネットワークアーキテクチャ）、ＩＰＸ（インターネットパケット交換）、アップルトークなどを含むが、これらに限定されるものではない。単に一例として、ネットワーク１８１０は、ローカルエリアネットワーク（ＬＡＮ）、イーサネットに基づくネットワーク、トークンリング、ワイドエリアネットワーク（ＷＡＮ）、インターネット、仮想ネットワーク、仮想プライベートネットワーク（virtual private network：ＶＰＮ）、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（たとえば米国電気電子学会（Institute of Electrical and Electronics：ＩＥＥＥ）１００２．１１の一連のプロトコル、ブルートゥース（登録商標）および／もしくはその他の無線プロトコルのうちのいずれかのもとで動作するネットワーク）、ならびに／またはこれらの任意の組合せ、ならびに／または他のネットワークであってもよい。
【０１２５】
サーバ１８１２は、１つ以上の汎用コンピュータ、専用サーバコンピュータ（一例として、ＰＣ（パーソナルコンピュータ）サーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバなどを含む）、サーバファーム、サーバクラスタ、またはその他の適切な構成および／または組合せで構成され得る。サーバ１８１２は、仮想オペレーティングシステムを実行する１つ以上の仮想マシン、または仮想化を含む他のコンピューティングアーキテクチャを含み得る。論理記憶装置の１つ以上のフレキシブルプールは、サーバのための仮想記憶デバイスを維持するように仮想化することができる。仮想ネットワークは、ソフトウェア定義型ネットワーキングを用いて、サーバ１８１２によって制御することができる。さまざまな実施形態においては、サーバ１８１２は、上記の開示に記載されている１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ１８１２は、本開示の実施形態に係る上記の処理を実行するためのサーバに対応してもよい。
【０１２６】
サーバ１８１２は、上記のもののうちのいずれか、および、任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ１８１２は、ＨＴＴＰ（ハイパーテキスト転送プロトコル）サーバ、ＦＴＰ（ファイル転送プロトコル）サーバ、ＣＧＩ（共通ゲートウェイインターフェース）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバなどを含むさまざまなさらなるサーバアプリケーションおよび／または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、オラクル社、マイクロソフト社、サイベース社、ＩＢＭ社（International Business Machines）などから市販されているものを含むが、これらに限定されるものではない。
【０１２７】
いくつかの実現例では、サーバ１８１２は、クライアントコンピューティング装置１８０２，１８０４，１８０６および１８０８のユーザから受信されたデータフィードおよび／またはイベント更新を分析および統合するための１つ以上のアプリケーションを含み得る。一例として、データフィードおよび／またはイベント更新は、１つ以上の第三者情報源および連続的なデータストリームから受信されるツイッター（登録商標）フィード、フェースブック（登録商標）更新またはリアルタイム更新を含み得るが、これらに限定されるものではなく、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通モニタリングなどに関連するリアルタイムイベントを含み得る。また、サーバ１８１２は、クライアントコンピューティング装置１８０２，１８０４，１８０６および１８０８の１つ以上の表示装置を介してデータフィードおよび／またはリアルタイムイベントを表示するための１つ以上のアプリケーションを含み得る。
【０１２８】
また、分散型システム８００は、１つ以上のデータベース１８１４および１８１６を含み得る。これらのデータベースが提供し得るメカニズムは、情報を記憶するためのものであって、当該情報として、たとえば、ユーザインタラクション情報、使用パターン情報、適合ルール情報、および本発明の実施形態によって用いられる他の情報などが挙げられる。データベース１８１４および１８１６は、さまざまな場所に存在し得る。一例として、データベース１８１４および１８１６の１つ以上は、サーバ１８１２にローカルな（および／または存在する）非一時的な記憶媒体に存在していてもよい。代替的に、データベース１８１４および１８１６は、サーバ１８１２から遠く離れていて、ネットワークベースまたは専用の接続を介してサーバ１８１２と通信してもよい。一組の実施形態においては、データベース１８１４および１８１６は、記憶領域ネットワーク（storage-area network：ＳＡＮ）に存在していてもよい。同様に、サーバ１８１２に起因する機能を実行するための任意の必要なファイルが、サーバ１８１２上にローカルに、および／または、リモートで適宜格納されていてもよい。一組の実施形態においては、データベース１８１４および１８１６は、ＳＱＬフォーマットコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
【０１２９】
Ｘ．例示的なシステム環境
いくつかの実施形態においては、上述の文書分析および修正サービスはクラウド環境を介するサービスとして提供され得る。図１９は、本開示の実施形態に係る、サービスがクラウドサービスとして供給され得るシステム環境１９００の１つ以上の構成要素の簡略化されたブロック図である。図１９に示される実施形態においては、システム環境１９００は、使用パターンに応答して文書（たとえばウェブページ）を動的に変更するためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム１９０２と相互作用するようにユーザによって使用され得る１つ以上のクライアントコンピューティング装置１９０４，１９０６および１９０８を含む。クラウドインフラストラクチャシステム１９０２は、サーバ１８１２のための、上述のものを含み得る１つ以上のコンピュータおよび／またはサーバを含み得る。
【０１３０】
図１９に示されているクラウドインフラストラクチャシステム１９０２が、示されている構成要素以外の他の構成要素を有し得ることが理解されるべきである。さらに、図１９に示されている実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態においては、クラウドインフラストラクチャシステム１９０２は、図に示されているものよりも多いかまたは少ない数の構成要素を有していてもよく、２つ以上の構成要素を組合せてもよく、または構成要素の異なる構成または配置を有していてもよい。
【０１３１】
クライアントコンピューティング装置１９０４、１９０６および１９０８は、１８０２、１８０４、１８０６および１８０８について上述されたものと同様の装置であり得る。クライアントコンピューティング装置１９０４、１９０６および１９０８は、クラウドインフラストラクチャシステム１９０２によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム１９０２と相互作用するようにクライアントコンピューティング装置のユーザによって使用され得る、ウェブブラウザ、専有のクライアントアプリケーション（たとえばオラクルフォームズ）または他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。３つのクライアントコンピューティング装置とともに例示的なシステム環境１９００が図示されているが、クライアントコンピューティング装置はいくつサポートされてもよい。センサを有する装置などの他の装置はクラウドインフラストラクチャシステム１９０２と対話し得る。
【０１３２】
ネットワーク１９１０は、クライアント１９０４、１９０６および１９０８とクラウドインフラストラクチャシステム１９０２との間のデータの通信およびやりとりを容易にし得る。各々のネットワークは、ネットワーク１８１０について上記したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよい。
【０１３３】
特定の実施形態においては、クラウドインフラストラクチャシステム１９０２によって提供されるサービスは、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。使用パターンに応じて文書を動的に変更することに関するサービスに加えて、オンラインデータ記憶およびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理技術サポートサービスなどを含むが、これらに限定されないさまざまな他のサービスも提供され得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。
【０１３４】
特定の実施形態においては、クラウドインフラストラクチャシステム１９０２によって提供されるサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、インターネットなどの通信ネットワークを介してクラウドサービスプロバイダのシステムからユーザが利用可能な任意のサービスは、「クラウドサービス」と称される。通常、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムがアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションを注文および使用してもよい。
【０１３５】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、記憶装置、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションへの保護されたコンピュータネットワークアクセス、またはクラウドベンダによってユーザに提供されるかもしくはそうでなければ当該技術分野において公知の他のサービスを含み得る。たとえば、サービスは、インターネットを介したクラウド上のリモート記憶装置へのパスワードによって保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【０１３６】
特定の実施形態においては、クラウドインフラストラクチャシステム１９０２は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に配信される一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【０１３７】
クラウドインフラストラクチャシステム１９０２はまた、「ビッグデータ」に関連する計算および分析のサービスを提供し得る。「ビッグデータ」という語は、一般に、大量のデータを視覚化し、トレンドを検出し、および／または、データと相互作用させるために、分析者および研究者によって格納し処理することができる極めて大きいデータ集合を称するのに用いられる。このビッグデータは、多くのレベルで、かつさまざまなスケールでインフラストラクチャシステムによってホストおよび／または処理され得る。平行にリンクされた何十、何百または何千ものプロセッサがこのようなデータに対して作用可能であり、これにより、このようなデータを表示し得るか、または、データに対する外力をシミュレートし得るかもしくはそれが表しているものをシミュレートし得る。これらのデータ集合は、データベースにおいて編制されたデータ、もしくは構造化モデルに従ったデータなどの構造化されたデータ、および／または、非体系的なデータ（たとえば電子メール、画像、データブロブ（バイナリ大型オブジェクト）、ウェブページ、複雑なイベント処理）を必要とする可能性がある。目標物に対してより多くの（またはより少数の）コンピューティングリソースを比較的迅速に集中させるために実施形態の能力を強化することにより、ビジネス、政府関係機関、研究組織、私人、同じ目的をもった個々人もしくは組織のグループ、または他のエンティティからの要求に基づいて大量のデータ集合上でタスクを実行するために、クラウドインフラストラクチャシステムがより良好に利用可能となる。
【０１３８】
さまざまな実施形態においては、クラウドインフラストラクチャシステム１９０２は、クラウドインフラストラクチャシステム１９０２によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム１９０２は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、クラウドインフラストラクチャシステム１９０２が、（たとえばオラクル社によって所有される）クラウドサービスを販売する組織によって所有され、一般大衆またはさまざまな産業企業がサービスを利用できるパブリッククラウドモデルのもとでサービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム１９０２が単一の組織のためだけに運営され、当該組織内の１つ以上のエンティティにサービスを提供し得るプライベートクラウドモデルのもとでサービスが提供されてもよい。また、クラウドインフラストラクチャシステム１９０２およびクラウドインフラストラクチャシステム１９０２によって提供されるサービスが、関連のコミュニティ内のいくつかの組織によって共有されているコミュニティクラウドモデルのもとでクラウドサービスが提供されてもよい。また、２つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルのもとでクラウドサービスが提供されてもよい。
【０１３９】
いくつかの実施形態においては、クラウドインフラストラクチャシステム１９０２によって提供されるサービスは、ソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）カテゴリ、プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）カテゴリ、インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリのもとで提供される１つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーによって、クラウドインフラストラクチャシステム１９０２によって提供される１つ以上のサービスを注文し得る。次いで、クラウドインフラストラクチャシステム１９０２は、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を実行する。
【０１４０】
いくつかの実施形態においては、クラウドインフラストラクチャシステム１９０２によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、ＳａａＳプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。ＳａａＳプラットフォームは、ＳａａＳカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、ＳａａＳプラットフォームは、一体化された開発およびデプロイメントプラットフォーム上で一連のオンデマンドアプリケーションを構築および配信するための機能を提供し得る。ＳａａＳプラットフォームは、ＳａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。ＳａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムで実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるＳａａＳサービスが提供されてもよい。例としては、大規模組織のための販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
【０１４１】
いくつかの実施形態においては、プラットフォームサービスは、ＰａａＳプラットフォームを介してクラウドインフラストラクチャシステム１９０２によって提供されてもよい。ＰａａＳプラットフォームは、ＰａａＳカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、組織（オラクル社など）が既存のアプリケーションを共有の共通アーキテクチャ上で統合することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、これらに限定されるものではない。ＰａａＳプラットフォームは、ＰａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステム１９０２によって提供されるＰａａＳサービスを取得することができる。プラットフォームサービスの例としては、オラクルＪａｖａ（登録商標）クラウドサービス（Java Cloud Service：ＪＣＳ）、オラクルデータベースクラウドサービス（Database Cloud Service：ＤＢＣＳ）などが挙げられるが、これらに限定されるものではない。
【０１４２】
ＰａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態においては、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービル（たとえばオラクルフージョンミドルウェアサービス）およびＪａｖａ（登録商標）クラウドサービスを含み得る。一実施形態においては、データベースクラウドサービスは、組織がデータベースリソースをプールしてデータベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステムにおいてさまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得て、Ｊａｖａ（登録商標）クラウドサービスは、クラウドインフラストラクチャシステムにおいてＪａｖａ（登録商標）アプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
【０１４３】
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるＩａａＳプラットフォームによって提供されてもよい。インフラストラクチャサービスは、記憶装置、ネットワークなどの基本的な計算リソース、ならびに、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
【０１４４】
また、特定の実施形態においては、クラウドインフラストラクチャシステム１９０２は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース１９３０を含み得る。一実施形態においては、インフラストラクチャリソース１９３０は、ＰａａＳプラットフォームおよびＳａａＳプラットフォームならびに他のリソースによって提供されるサービスを実行するための、サーバ、記憶装置およびネットワーキングリソースなどのハードウェアの事前に一体化された最適な組合せを含み得る。
【０１４５】
いくつかの実施形態においては、クラウドインフラストラクチャシステム１９０２におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割り振りされ得る。また、リソースは、異なる時間帯にユーザに割り振られ得る。たとえば、クラウドインフラストラクチャシステム１９０２は、第１の時間帯におけるユーザの第１の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし、次いで、異なる時間帯に位置するユーザの別の組への同一のリソースの再割り振りを可能にし、それによってリソースの利用を最大化することができる。
【０１４６】
特定の実施形態においては、クラウドインフラストラクチャシステム１９０２によって提供されるサービスのプロビジョニングを可能にするようにクラウドインフラストラクチャシステム１９０２のさまざまな構成要素またはモジュールによって共有されるいくつかの内部共有サービス９３２が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、インテグレーションサービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【０１４７】
特定の実施形態においては、クラウドインフラストラクチャシステム１９０２は、クラウドインフラストラクチャシステムにおけるクラウドサービス（たとえばＳａａＳ、ＰａａＳおよびＩａａＳサービス）の包括的管理を提供し得る。一実施形態においては、クラウド管理機能は、クラウドインフラストラクチャシステム１９０２などによって受信された顧客のサブスクリプションをプロビジョニング、管理および追跡するための機能を含み得る。
【０１４８】
一実施形態においては、図１９に示されているように、クラウド管理機能は、オーダー管理モジュール１９２０、オーダーオーケストレーションモジュール１９２２、オーダープロビジョニングモジュール１９２４、オーダー管理および監視モジュール１９２６、ならびにアイデンティティ管理モジュール１９２８などの１つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および／もしくは組み合わせであり得る１つ以上のコンピュータおよび／またはサーバを含み得るか、またはそれらを用いて提供され得る。
【０１４９】
例示的な動作の場合、１９３４において、顧客は、クラウドインフラストラクチャシステム１９０２によって提供される１つ以上のサービスを要求し、クラウドインフラストラクチャシステム１９０２によって供給される１つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クライアント装置１９０４、１９０６または１９０８などのクライアント装置を用いてクラウドインフラストラクチャシステム１９０２と対話し得る。特定の実施形態においては、顧客は、クラウドユーザインターフェース（User Interface：ＵＩ）、すなわちクラウドＵＩ１９１２、クラウドＵＩ９１４および／またはクラウドＵＩ１９１６にアクセスして、これらのＵＩを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム１９０２によって受信されたオーダー情報は、顧客および顧客がサブスクライブする予定のクラウドインフラストラクチャシステム１９０２によって供給される１つ以上のサービスを特定する情報を含み得る。
【０１５０】
１９３６において、顧客から受取られたオーダー情報が、オーダーデータベース１９１８に記憶され得る。これが新規オーダーである場合、このオーダーのために新しい記録が作成され得る。一実施形態においては、オーダーデータベース１９１８は、クラウドインフラストラクチャシステム１９１８によって動作され、かつ、他のシステム要素と連携して動作されるいくつかのデータベースのうちの１つであってもよい。
【０１５１】
動作１９３８において、オーダー情報は、オーダー管理モジュール１９２０に転送され得る。オーダー管理モジュール１９２０は、オーダーの確認および確認時のオーダーの予約などのオーダーに関連するビリングおよびアカウンティング機能を実行するように構成され得る。
【０１５２】
動作１９４０において、オーダーに関する情報は、オーダーオーケストレーションモジュール１９２２に通信され得る。オーダーオーケストレーションモジュール１９２２は、顧客によって行われたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレートするように構成され得る。いくつかの例では、オーダーオーケストレーションモジュール１９２２は、プロビジョニングのためにオーダープロビジョニングモジュール１９２４のサービスを用いてもよい。特定の実施形態においては、オーダーオーケストレーションモジュール１９２２は、互いに関連付けられたビジネスプロセスの管理を可能にし、オーダーがプロビジョニングされるべきかどうかを決めるためにビジネス論理を適用し得る。
【０１５３】
図１９に示される実施形態に示されるように、１９４２においては、新たなサブスクリプションについてのオーダーを受信すると、オーダーオーケストレーションモジュール１９２２は、リソースを割り振って当該サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するための要求をオーダープロビジョニングモジュール１９２４に送る。オーダープロビジョニングモジュール１９２４は、顧客によってオーダーされたサービスのためのリソースの割り振りを可能にする。オーダープロビジョニングモジュール１９２４は、クラウドインフラストラクチャシステム１９００によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間にあるレベルの抽象化を提供する。これにより、オーダーオーケストレーションモジュール１９２２は、サービスおよびリソースが実際に実行中にプロビジョニングされるか、事前にプロビジョニングされて要求があったときに割振られる／割当てられるのみであるかなどの実装の詳細から分離させることができる。
【０１５４】
１９４４において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが現在使える状態にあることを示す通知が、加入している顧客に送信され得る。場合によっては、要求されたサービスを顧客が利用し始めることを可能にする情報（たとえば、リンク）が顧客に送信され得る。
【０１５５】
１９４６においては、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール１９２６によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール１９２６は、申し込まれたサービスを顧客が使用することに関して、使用統計を収集するように構成され得る。たとえば、使用される記憶量、転送されるデータ量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などについての統計が収集され得る。
【０１５６】
特定の実施形態においては、クラウドインフラストラクチャシステム１９００は、アイデンティティ管理モジュール１９２８を含み得る。アイデンティティ管理モジュール１９２８は、クラウドインフラストラクチャシステム１９００におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成される。いくつかの実施形態においては、アイデンティティ管理モジュール１９２８は、クラウドインフラストラクチャシステム１９０２によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報、および、それらの顧客がさまざまなシステムリソース（たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してどのアクションを実行することを認可されるかを記載する情報を含み得る。また、アイデンティティ管理モジュール１９２８は、各々の顧客についての説明的情報、ならびに、どのようにしておよび誰によって当該説明的情報がアクセスおよび変更され得るかについての情報の管理を含み得る。
【０１５７】
ＸＩ．例示的なコンピュータシステム
図２０は、本発明の実施形態を実現するために用いられ得る例示的なコンピュータシステム２０００を示す。いくつかの実施形態においては、コンピュータシステム２０００は、上述のさまざまなサーバおよびコンピュータシステムのいずれかを実現するために用いられてもよい。図２０に示されるように、コンピュータシステム２０００は、バスサブシステム２００２を介していくつかの周辺サブシステムと通信する処理ユニット２００４を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット２００６と、Ｉ／Ｏサブシステム２００８と、記憶サブシステム２０１８と、通信サブシステム２０２４とを含み得る。記憶サブシステム２０１８は、有形のコンピュータ読取り可能記憶媒体２０２２と、システムメモリ２０１０とを含み得る。
【０１５８】
バスサブシステム２００２は、コンピュータシステム２０００のさまざまな構成要素およびサブシステムに、意図されたように互いに通信させるための機構を提供する。バスサブシステム２００２は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム２００２は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、ＩＥＥＥ  Ｐ１３８６．１標準などに合わせて製造されたメザニンバスとして実現可能な、業界標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロチャネルアーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、拡張ＩＳＡ（Enhanced ISA：ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（Video Electronics Standards Association：ＶＥＳＡ）ローカルバスおよび周辺機器相互接続（Peripheral Component Interconnect：ＰＣＩ）バスを含み得る。
【０１５９】
処理サブシステム２００４は、コンピュータシステム２０００の動作を制御するとともに、１つ以上の処理ユニット２０３４、２０３２などを含み得る。処理ユニットは、単一のコアまたはマルチコアプロセッサ、プロセッサの１つ以上のコアまたはそれらの組合せを含む１つ以上のプロセッサを含み得る。いくつかの実施形態においては、処理サブシステム２００４は、グラフィックスプロセッサ、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）などの１つ以上の専用コプロセッサを含み得る。いくつかの実施形態においては、処理サブシステム２００４の処理ユニットのうちのいくつかまたはすべては、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）などのカスタマイズされた回路を用いて実現することができる。
【０１６０】
いくつかの実施形態においては、処理サブシステム２００４における処理ユニットは、システムメモリ２０１０内に格納されたかまたはコンピュータ読取り可能な記憶媒体２０２２上に格納された命令を実行することができる。さまざまな実施形態においては、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、かつ、同時に実行される複数のプログラムまたはプロセスを維持することができる。如何なる所与の場合でも、実行されるべきプログラムコードのうちのいくらかまたはすべては、１つ以上の記憶装置上に含まれる可能性のあるシステムメモリ２０１０および／またはコンピュータ読取り可能記憶媒体２０２２上に常駐してもよい。好適なプログラミングによって、処理サブシステム２００４は、使用パターンに応答して文書（たとえばウェブページ）を動的に変更するための上述のさまざまな機能を提供することができる。
【０１６１】
特定の実施形態においては、処理加速ユニット２００６は、コンピュータシステム２０００によって実行される全体的処理を加速させるように、カスタマイズされた処理を実行するために、または、処理サブシステム２００４によって実行される処理のうちのいくらかの負荷を減らすために、提供されてもよい。
【０１６２】
Ｉ／Ｏサブシステム２００８は、コンピュータシステム２０００へ情報を入力するための、および／または、コンピュータシステム２０００から、もしくはコンピュータシステムを介して情報を出力するための、装置およびメカニズムを含み得る。一般に、「入力装置」という語を使用する場合、それは、コンピュータシステム２０００に情報を入力するためのあらゆる実現可能なタイプの装置およびメカニズムを含むように意図されている。ユーザインターフェイス入力装置は、たとえば、キーボード、マウスまたはトラックボールなどのポインティング装置、タッチパッドまたはタッチスクリーンを含み得て、これらは、音声コマンド認識システム、マイクロホンおよび他のタイプの入力装置とともに、ディスプレイ、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、オーディオ入力装置に組込まれている。ユーザインターフェイス入力装置は、たとえば、ユーザが、入力装置、マイクロソフトＸｂｏｘ（登録商標）３６０ゲームコントローラ、ジェスチャおよび話されたコマンドを用いて入力を受信するためのインターフェイスを備えた装置などを制御して入力装置と相互作用することを可能にするマイクロソフトキネクト（登録商標）モーションセンサなどのモーション検知および／またはジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザから眼球運動（たとえば撮影および／またはメニュー選択を行っている間の「まばたき」）を検出して、当該眼球ジェスチャを入力装置（たとえば、グーグルグラス（登録商標））への入力として変換するグーグルグラス（登録商標）まばたき検出器などの眼球ジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザが音声コマンドを介して音声認識システム（たとえばＳｉｒｉ（登録商標）ナビゲータ）と対話することを可能にする音声認識検知装置を含み得る。
【０１６３】
ユーザインターフェイス入力装置の他の例は、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカなどのオーディオ／ビジュアル装置、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザレンジファインダ、および視線検出装置を含み得るが、これらに限定されるものではない。また、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴画像化、位置発光断層撮影、医療用超音波検査装置などの医療用画像化入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえばＭＩＤＩキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
【０１６４】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、表示灯、またはオーディオ出力装置などの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管（cathode ray tube：ＣＲＴ）、液晶ディスプレイ（liquid crystal display：ＬＣＤ）またはプラズマディスプレイを使用するようなフラットパネルディスプレイ、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム２０００からの情報をユーザまたは他のコンピュータに出力するための全ての可能なタイプの装置および機構を含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車のナビゲーションシステム、プロッタ、音声出力装置およびモデムなどの、テキスト、グラフィックスおよびオーディオ／ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【０１６５】
ストレージサブシステム２０１８は、コンピュータシステム２０００によって用いられる情報を記憶するためのリポジトリまたはデータストアを提供する。ストレージサブシステム２０１８は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形の非一時的なコンピュータ読取り可能記憶媒体を提供する。ソフトウェア（プログラム、コードモジュール、命令）は、処理サブシステム２００４によって実行されると上述の機能を提供するものであって、ストレージサブシステム２０１８に記憶されてもよい。ソフトウェアは処理サブシステム２００４の１つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム２０１８はまた、本発明に従って用いられるデータを記憶するためのリポジトリを提供し得る。
【０１６６】
ストレージサブシステム２０１８は、揮発性メモリ装置および不揮発性メモリ装置を含む１つ以上の非一時的なメモリ装置を含み得る。図２０に示されるように、ストレージサブシステム２０１８はシステムメモリ２０１０およびコンピュータ読取り可能記憶媒体２０２２を含む。システムメモリ２０１０は、プログラム実行中に命令およびデータを記憶するための揮発性のメインランダムアクセスメモリ（random access memory：ＲＡＭ）と、一定の命令が記憶されている不揮発性の読取専用メモリ（read only memory：ＲＯＭ）またはフラッシュメモリとを含むいくつかのメモリを含み得る。いくつかの実現例においては、起動中などにおけるコンピュータシステム２０００内の要素間における情報の転送を支援する基本的なルーチンを含む基本入出力システム（basic input/output system：ＢＩＯＳ）は典型的にはＲＯＭに記憶され得る。ＲＡＭは、典型的には、処理サブシステム２００４によって現在作動および実行されているデータおよび／またはプログラムモジュールを含む。いくつかの実現例においては、システムメモリ２０１０は、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）などの複数のさまざまなタイプのメモリを含み得る。
【０１６７】
図２０に示されるように、一例としておよび非限定的に、システムメモリ２０１０は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム（relational database management system：ＲＤＢＭＳ）などを含み得るアプリケーションプログラム２０１２、プログラムデータ２０１４およびオペレーティングシステム２０１６を格納し得る。一例として、オペレーティングシステム２０１６は、マイクロソフト・ウィンドウズ（登録商標）、アップルマッキントッシュ（登録商標）および／もしくはリナックス（登録商標）オペレーティングシステムのさまざまなバージョン、さまざまな市販のＵＮＩＸ（登録商標）もしくはＵＮＩＸライクオペレーティングシステム（さまざまなＧＮＵ／リナックス（登録商標）オペレーティングシステム、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）ＯＳなどを含むが、これらに限定されるものではない）、ならびに／または、ｉＯＳ、ウィンドウズ（登録商標）フォン、アンドロイド（登録商標）ＯＳ、ブラックベリー（登録商標）１０ＯＳおよびパーム（登録商標）ＯＳオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【０１６８】
コンピュータ読取り可能記憶媒体２０２２は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。処理サブシステム２００４によって実行されたときに上記の機能を提供するソフトウェア（プログラム、コードモジュール、命令）が記憶サブシステム２０１８に格納され得る。一例として、コンピュータ読取り可能記憶媒体２０２２は、不揮発性メモリ、たとえば、ハードディスクドライブ、磁気ディスクドライブ、ならびに、光学ディスクドライブ、たとえばＣＤ  ＲＯＭ、ＤＶＤおよびブルーレイ（登録商標）ディスクまたは他の光学式媒体などを含み得る。コンピュータ読取り可能記憶媒体２０２２は、ジップ（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（universal serial bus：ＵＳＢ）フラッシュドライブ、セキュアデジタル（secure digital：ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ読取り可能記憶媒体２０２２は、フラッシュメモリベースのＳＳＤ、企業向けフラッシュドライブ、ソリッドステートＲＯＭなどの不揮発性メモリに基づくソリッドステートドライブ（solid-state drive：ＳＳＤ）、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭなどの揮発性メモリに基づくＳＳＤ、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（magnetoresistive RAM：ＭＲＡＭ）ＳＳＤ、およびＤＲＡＭとフラッシュメモリベースのＳＳＤとの組合せを使用するハイブリッドＳＳＤを含み得る。コンピュータ読取り可能媒体２０２２は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム２０００に提供し得る。
【０１６９】
特定の実施形態においては、記憶サブシステム２０００はまた、コンピュータ読取可能記憶媒体２０２２にさらに接続され得るコンピュータ読取可能記憶媒体リーダ２０２０を含んでいてもよい。システムメモリ２０１０とともに、およびオプションでシステムメモリ２０１０と組合わされて、コンピュータ読取可能記憶媒体２０２２は、リモート、ローカル、固定および／またはリムーバブルの記憶装置に加えて、コンピュータ読取可能情報を格納するための記憶媒体を包括的に表わしてもよい。
【０１７０】
特定の実施形態においては、コンピュータシステム２０００は、１つ以上の仮想マシンを実行するためのサポートを提供し得る。コンピュータシステム２０００は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行し得る。各々の仮想マシンには、メモリ、計算（たとえばプロセッサ、コア）、Ｉ／Ｏおよびネットワークリソースが割当てられてもよい。各々の仮想マシンは、典型的には、コンピュータシステム２０００によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであり得るかまたは異なり得るそれ自体のオペレーティングシステムを実行する。したがって、複数のオペレーティングシステムが、場合によっては、コンピュータシステム２０００によって同時に実行されるかもしれない。各々の仮想マシンは、概して、他の仮想マシンから独立して実行される。
【０１７１】
通信サブシステム２０２４は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム２０２４は、他のシステムからデータを受信したり、コンピュータシステム２０００から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム２０２４は、コンピュータシステム２０００が、情報をクライアントデバイスから受信したりクライアントデバイスに送信したりするために、インターネットを介する１つ以上のクライアントデバイスへの通信チャネルを確立することを可能にし得る。たとえば、図１に示されるビジュアルアナライザシステム１０２は、通信サブシステム２０２４を用いて、クライアントデバイスから、ユーザインタラクション情報およびウェブページ要求を受信し得る。加えて、通信サブシステム２０２４は、ウェブページを、適応可能なビジュアルアナライザシステム１０２から要求しているクライアントにまで伝達するために用いられてもよい。
【０１７２】
通信サブシステム２０２４は、有線通信プロトコルおよび／または無線通信プロトコルをともにサポートし得る。たとえば、特定の実施形態においては、（たとえば３Ｇ、４ＧまたはＥＤＧＥ（enhanced data rates for global evolution）などの携帯電話技術、高度データネットワーク技術を用いて）無線音声および／またはデータネットワークにアクセスするための無線周波数（radio frequency：ＲＦ）トランシーバコンポーネント、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリ標準または他のモバイル通信技術またはそれらの任意の組合せ）、全地球測位システム（global positioning system：ＧＰＳ）レシーバコンポーネント、および／または、他のコンポーネントを含み得る。いくつかの実施形態においては、通信サブシステム１０２４は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続（例えばイーサネット（登録商標））を提供し得る。
【０１７３】
通信サブシステム２０２４は、データをさまざまな形式で受信または送信することができる。たとえば、いくつかの実施形態においては、通信サブシステム２０２４は、構造化されたおよび／または構造化されていないデータフィード２０２６、イベントストリーム２０２８、イベント更新２０３０などの形態で入力通信を受信し得る。たとえば、通信サブシステム２０２４は、ツイッター（登録商標）フィード、フェースブック（登録商標）更新、リッチ・サイト・サマリ（Rich Site Summary：ＲＳＳ）フィードなどのウェブフィードなどのデータフィード２０２６をリアルタイムでソーシャルメディアネットワークおよび／または他の通信サービスのユーザから受信（または送信）し、および／または、１つ以上の第三者情報源からリアルタイム更新を受信（または送信）するように構成され得る。
【０１７４】
特定の実施形態においては、通信サブシステム２０２４は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部をもたない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム２０２８および／またはイベント更新２０３０を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【０１７５】
また、通信サブシステム２０２４は、構造化されたおよび／または構造化されていないデータフィード２０２６、イベントストリーム２０２８、イベント更新２０３０などを、コンピュータシステム２０００に結合された１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するように構成され得る。
【０１７６】
コンピュータシステム２０００は、手持ち式携帯機器（たとえばｉＰｈｏｎｅ（登録商標）携帯電話、ｉＰａｄ（登録商標）計算タブレット、ＰＤＡ）、ウェアラブル装置（たとえばグーグルグラス（登録商標）ヘッドマウントディスプレイ）、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの１つであってもよい。
【０１７７】
コンピュータおよびネットワークの絶え間なく変化し続ける性質のために、図２０に示されているコンピュータシステム２０００の説明は、特定の例として意図されているに過ぎない。図２０に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が実現可能である。本明細書で提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の手段および／または方法を理解するであろう。
【０１７８】
本発明の特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本発明の実施形態について説明してきたが、本発明の範囲が、記載されている一連のトランザクションおよびステップに限定されるものではないということが当業者に明らかになるはずである。上述の実施形態のさまざまな特徴および局面が個々にまたは共同で用いられてもよい。
【０１７９】
さらに、ハードウェアおよびソフトウェアの特定の組合せを使用して本発明の実施形態について説明してきたが、ハードウェアおよびソフトウェアの他の組合せも本発明の範囲内であることが認識されるべきである。本発明の実施形態は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組合せを使用して実現されてもよい。この明細書中に記載されたさまざまなプロセスは、同じプロセッサ上で、またはさまざまなプロセッサを任意に組合せて、実現することができる。したがって、コンポーネントまたはモジュールが、特定の動作を実行するように構成されるものとして記述されており、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行するようにプログラマブルな電子回路（マイクロプロセッサなど）をプログラムすることによって、またはそれらを任意に組合せて、達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれらに限定されないさまざまな技術を用いて通信することができ、さまざまな対のプロセスはさまざまな技術を用いてもよく、または、同じ対のプロセスは異なる時にさまざまな技術を用いてもよい。
【０１８０】
このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。しかしながら、追加、削減、削除、および他の変形および変更が、特許請求の範囲に記載されている広範囲の精神および範囲から逸脱することなく実施され得ることが明らかになるだろう。このように、特定の発明の実施形態が記載されてきたが、これらは限定するように意図されたものではない。さまざまな変更例および同等例は添付の特許請求の範囲内である。
【図１】
0006559776.tif 000002
【図２】
0006559776.tif 000003
【図３】
0006559776.tif 000004
【図４】
0006559776.tif 000005
【図５】
0006559776.tif 000006
【図６】
0006559776.tif 000007
【図７】
0006559776.tif 000008
【図８】
0006559776.tif 000009
【図９】
0006559776.tif 000010
【図１０】
0006559776.tif 000011
【図１１】
0006559776.tif 000012
【図１２】
0006559776.tif 000013
【図１３】
0006559776.tif 000014
【図１４】
0006559776.tif 000015
【図１５】
0006559776.tif 000016
【図１６】
0006559776.tif 000017
【図１７】
0006559776.tif 000018
【図１８】
0006559776.tif 000019
【図１９】
0006559776.tif 000020
【図２０】
0006559776.tif 000021