(57)【要約】自動化されたリレーショナルクエリのためのデータドリブンナチュラルインターフェイスが提供される。複数のデータセットが、容易に選択可能な方法で表面上に表示される。別の表面へのデータセットの選択及び移動を検出すると、移動されたデータは他の表面上に提示される。別のデータセットの他の表面への選択及び移動を検出すると、移動されたデータセット間の結合パスが計算され、データセットが結合され、結果が他の表面上に表示される。システムは、新しいデータセットが他の表面へと移動されるときに新たに選択されたデータを既存のデータと結合し続けて、クエリをテストしたり実行したりする必要なしに、クエリの結果がユーザーの目の前で形になることを可能にする。
2014526082.tif 000002
【特許請求の範囲】
【請求項１】
リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを提供するためにコンピューティングデバイスによって少なくとも部分的に実行される方法であって、
第１の表面上に複数のデータセットを表示するステップと、
前記第１の表面上の前記複数のデータセットからの第１のデータセットに関連付けられる第１のユーザーアクションを検出するステップと、
前記第１の表面上の前記複数のデータセットからの第２のデータセットに関連付けられる第２のユーザーアクションを検出するステップと、
前記第１及び第２のデータセットを組み合わせるためのクエリを構築するステップと、
前記クエリを実行するステップと、
前記第１及び第２のデータセット並びに前記クエリの結果を第２の表面上に表示するステップと
を含む方法。
【請求項２】
前記第１の表面上の前記複数のデータセットからの別のデータセットに関連付けられる別のユーザーアクションを検出するステップと、
前記他のデータセットを既存のクエリの結果と組み合わせるための新しいクエリを構築するステップと、
前記新しいクエリを実行するステップと、
ユーザーが前記クエリを手動でテストし実行することを必要とすることなく、前記新しいクエリの結果を表示するステップと
を含む請求項１に記載の方法。
【請求項３】
前記第１及び第２のユーザーアクションは、それぞれのデータセットを選択して前記第２の表面に移動することを含む請求項１に記載の方法。
【請求項４】
データセットを選択して前記第２の表面に移動することは、ユーザーがデータ列ヘッダーをつかんで前記第２の表面にドラッグすることを可能にすることを含む請求項３に記載の方法。
【請求項５】
データセットを選択して前記第２の表面に移動することは、ユーザーが複数のデータセルをつかんで前記第２の表面にドラッグすることを可能にすることを含む請求項３に記載の方法。
【請求項６】
前記クエリを構築するステップは、前記第１及び第２のデータセット間の結合パスを計算するステップを含む請求項１に記載の方法。
【請求項７】
列ヘッダーを有するグリッドの形式で前記複数のデータセットを前記第１の表面上に表示するステップ
をさらに含む請求項１に記載の方法。
【請求項８】
リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを提供することができるコンピューティングデバイスであって、
メモリーと、
前記メモリーに結合され、前記メモリーに格納された命令とともにアプリケーションを実行するプロセッサーであって、前記アプリケーションは、
第１の表面上に複数のデータセットを表示し、
前記複数のデータセットからの第１のデータセットを前記第１の表面から第２の表面に移動する第１のユーザーアクションを検出し、
前記複数のデータセットからの第２のデータセットを前記第１の表面から前記第２の表面に移動する第２のユーザーアクションを検出し、
前記第１及び第２のデータセットを組み合わせるためのクエリをデータストアに構築させ、
前記データストアに前記クエリを実行させ、
前記データストアから前記クエリの結果を受け取り、
前記第１及び第２のデータセット並びに前記クエリの結果を前記第２の表面上に表示する
ように構成される、プロセッサーと
を備えるコンピューティングデバイス。
【請求項９】
前記クエリは、
前記第２のデータセットにおいて前記第１のデータセットの外部キーについて前記第１のデータセットを前記第２のデータセットと結合する一対多結合クエリ、
前記第１のデータセットにおいて前記第２のデータセットの外部キーについて前記第１のデータセットを前記第２のデータセットと結合する多対一結合クエリ、及び
前記第２のデータセットの各要素との前記第１のデータセットの各要素についての行列を作成することによって、前記第１のデータセットを前記第２のデータセットと結合する多対多結合クエリ
のうちの１つである請求項８に記載のコンピューティングデバイス。
【請求項１０】
リレーショナルクエリを自動的に構成するデータドリブンナチュラルインターフェイスを提供するための命令が格納されたコンピューター読み取り可能なメモリーデバイスであって、前記命令は、
列ヘッダーを有するグリッドの形式で複数のデータセットを第１の表面上に表示するステップと、
前記複数のデータセットからの第１のデータセットを前記第１の表面から第２の表面に移動する第１のユーザーアクションを検出するステップと、
前記複数のデータセットからの第２のデータセットを前記第１の表面から前記第２の表面に移動する第２のユーザーアクションを検出するステップと、
前記第１及び第２のデータセット間の結合動作を実行するためのクエリをデータストアに構築させるステップと、
前記データストアに前記クエリを実行させるステップと、
前記データストアから前記クエリの結果を受け取るステップと、
前記第１及び第２のデータセット並びに前記クエリの結果を前記第２の表面上に表示するステップと
を含むコンピューター読み取り可能なメモリーデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動化されたリレーショナルクエリのためのデータドリブンナチュラルインターフェイスに関する。
【背景技術】
【０００２】
[0001]現在の技術は、ユーザーのさまざまな要求を満たすために、出先での迅速なコンピューティングを可能にしてきた。技術の進歩は、携帯デバイスなどのさまざまなプラットフォームにわたって集積回路に浸透してきた。技術は、自動車などの機械の有用性を拡大してきた。技術的拡張はシステムの複雑さの増加につながっている。複雑さの増加は、一般的な日常のタスクや情報の消費においてさらなる多様性をもたらした。多様な世界では、デバイスのグローバルネットワークは、文明においてこれまで経験したことのない、増大し続ける速度でデータベースに格納された情報を生成し、消費し続ける。
【発明の概要】
【０００３】
[0002]従来のデータベースクライアントでは、ユーザーは、特定のクエリを使用してデータベーステーブルとインタラクトし、データベーステーブルを組み合わせることができる。標準化された構文が、ユーザーの要求に応じてデータセットを組み合わせるためにクエリを構築するために利用される。しかし、複雑なデータベーステーブルの組み合わせの要求はデータベースエキスパートユーザーリソースに負荷をかける。限られたデータベースエキスパートユーザーの利用可能性は、下流のプロジェクトの進捗に影響を与え、生産性を低下させることがある。
【発明が解決しようとする課題】
【０００４】
データ中心の世界では、データ消費者の需要がそのような要求を受け入れるための事務処理能力（business capacity）を上回る場合には、特定のデータドリブンソリューションを提供することは、事業の存続に影響を与えることがある。
【課題を解決するための手段】
【０００５】
[0003]この概要は、詳細な説明で以下にさらに説明される概念の選択を簡略化した形で紹介するために提供される。この概要は、特許請求される主題の重要な特徴又は不可欠な特徴を排他的に特定するよう意図されるものではなく、特許請求される主題の範囲を決定する際の助けとしても意図されない。
【０００６】
[0004]実施例は、自動化されたリレーショナルクエリのためのデータドリブンナチュラルインターフェイス（natural interface）を提供することに関する。アプリケーションは、表面（サーフェス、surface）上に簡単に選択可能な方法で複数のデータセットを表示することができる。別の表面に対するデータセットの選択及び移動を検出すると、移動されるデータは、他の表面上に提示されてもよい。他の表面に対する別のデータセットの選択及び移動を検出すると、移動されるデータセット間の結合パスを計算することができ、データセットが結合され、結果が当該他の表面に表示される。いくつかの実施例によれば、システムは、新しいデータセットが他の表面へと移動されるときに新たに選択されたデータを既存のデータと結合し続けて、クエリをテストしたり実行したりする必要なしに、クエリの結果がユーザーの目の前で形になることを可能にすることができる。
【０００７】
[0005]これら及び他の特徴及び利点は、以下の詳細な説明を読み、関連する図表面を検討することで明らかになるであろう。前述の一般的説明及び以下の詳細な説明の両方が説明のためのものであり、特許請求される態様を制限しないことを理解すべきである。
【図面の簡単な説明】
【０００８】
【図１】[0006]クライアントアプリケーションにおいてリレーショナルクエリを自動的に構成して実行するためのデータドリブンナチュラルインターフェイスを使用するシステムの例示的なコンポーネントを示す図である。
【図２】[0007]リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスの例示的なアクション図を示す。
【図３Ａ】[0008]いくつかの実施例による、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを提供する例を示す。
【図３Ｂ】いくつかの実施例による、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを提供する例を示す。
【図３Ｃ】いくつかの実施例による、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを提供する例を示す。
【図４】[0009]実施例によるシステムを実施することができるネットワーク化された環境である。
【図５】[0008]実施例を実施することができる例示的なコンピューティング動作環境のブロック図である。
【図６】[0011]実施例による、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを使用するプロセスの論理フロー図を示す。
【発明を実施するための形態】
【０００９】
[0012]簡単に上述したように、データドリブンナチュラルインターフェイスは、リレーショナルクエリを自動的に作成するためにクライアントアプリケーションで使用することができる。複数のデータセットが表面（サーフェス、surface）上に表示されてもよい。データセットは、表面から他の表面へのデータセットのドラッグを検出すると、別の表面上に表示することができる。他の表面への別のデータセットのドラッグを検出すると、ドラッグされたデータセット間で結合動作が実行されて、手動の介入やクエリ構築なしに、他の表面上に結果が提示されてもよい。以下の詳細な説明では、本明細書の一部を形成する添付の図面が参照され、特定の実施例又は例が例として示される。これらの態様は、組み合わされてもよく、他の態様が利用されてもよく、本開示の趣旨や範囲から逸脱することなく構造的な変更を行うことができる。したがって、以下の詳細な説明は、限定的な意味に解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲及びその均等物によって定義される。
【００１０】
[0013]実施例は、コンピューティングデバイス上のオペレーティングシステム上で動作するアプリケーションプログラムと共に実行するプログラムモジュールの一般的な文脈で説明されるが、当業者は、態様が他のプログラムモジュールと組み合わせて実施されてもよいことを認識するであろう。
【００１１】
[0014]一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実施する、ルーチン、プログラム、コンポーネント、データ構造、及び他のタイプの構造を含む。さらに、当業者であれば、実施例が、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーベース又はプログラム可能な家庭用電化製品、ミニコンピューター、メインフレームコンピューター、及び同等のコンピューティングデバイスを含む他のコンピューターシステム構成で実施できることを理解するであろう。実施例はまた、タスクが通信ネットワークを介してリンクされるリモート処理デバイスによって実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境において、プログラムモジュールは、ローカル及びリモートのメモリーストレージデバイスの両方に配置することができる。
【００１２】
[0015]実施例は、コンピューターにより実施されるプロセス（方法）、コンピューティングシステム、又はコンピュータープログラム製品やコンピューター読み取り可能な媒体などの製品として実施することができる。コンピュータープログラム製品は、コンピューターシステムによって読み取り可能であり、コンピューター又はコンピューティングシステムに例示的なプロセスを実行させるための命令を含むコンピュータープログラムを符号化する、コンピューター記憶媒体であってもよい。コンピューター読み取り可能な記憶媒体は、持続性のコンピューター読み取り可能な記憶デバイスである。例えば、コンピューター読み取り可能な記憶媒体は、１つ又は複数の揮発性コンピューターメモリー、不揮発性メモリー、ハードドライブ、フラッシュドライブ、フロッピー（登録商標）ディスク、コンパクトディスク、及び同等の物理的記憶媒体を介して実施されてもよい。
【００１３】
[0016]本明細書を通して、「プラットフォーム」という用語は、リレーショナルクエリを構成するためのデータドリブンナチュラルインターフェイスを利用するソフトウェア及びハードウェアコンポーネントの組み合わせであってもよい。プラットフォームの例は、限定はしないが、複数のサーバーを介して実行されるホストされるサービス、単一のサーバー上で実行されるアプリケーション、及び同等のシステムを含む。「サーバー」という用語は、一般に、典型的にはネットワーク化された環境内で１つ又は複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかし、サーバーはまた、ネットワーク上のサーバーと見なされる１つ又は複数のコンピューティングデバイス上で実行される仮想サーバー（ソフトウェアプログラム）として実施されてもよい。これらの技術及び動作例についての詳細は以下に提供される。
【００１４】
[0017]いくつかの実施例によるユーザーインターフェイスは、実施例による２ペイン（two-pane）インターフェイスであってもよい。ペインは互いに隣接していてもよい。ペインは調整可能な分割線（ディバイダー、divider）で分割されてもよい。ペインのうちの１つは、データベースからのデータテーブルなどのデータセットを示してもよい。データセットは個々の記録によってポピュレートすることができる。ユーザーインターフェイスを管理するアプリケーションは、データベースに格納されたデータセットの全てがペインに収まるようにデータセットのサイズをスケーリング（拡大縮小）することができる。アプリケーションはまた、データセットがペインに収まることを可能にするためにスクロール可能なデータテーブル構造を表示してもよい。あるいは、アプリケーションは、ユーザーが、表示されるべき数だけのデータセットを選択することを可能にしてもよい。一例では、アプリケーションは、ドロップダウンメニューなどの選択コントロールにデータセット名をロードし、ペインに表示するデータセット名をユーザーがクリックすることを可能にしてもよい。他の実施例では、データセットを表示するための表面が、任意の形状又はサイズを有していてもよい。例えば、選択されるべきデータセットを表示するための第１の表面が境界ペイン（bound pane）であってもよい一方で第２の表面は選択されたデータセットを表示していてもよく、結合の結果はデスクトップ上の位置であってもよい。
【００１５】
[0018]さらに、実施例は、データベースからデータセットを取得することに限定されない。データセットを保持するデータストアは、データセット内のデータレコードを格納する任意のエンティティであってもよい。このようなデータストアは、ファイル、データサービス、データサーバーなどの集合を含んでもよい。例示的なデータストアは、拡張可能マークアップ言語（ＸＭＬ）ファイルの集合であってもよい。他の例は、リレーショナルデータベースサービス及びオブジェクト指向データベースサービスを含んでもよい。データベースの例は、限定的な意味で提供されるものではなく、他の実施例を含むことができる。
【００１６】
[0019]実施例は、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを可能にする。データドリブンナチュラルインターフェイスは、クエリ構築義務をユーザーからデータベースへシフトすることができる。ユーザーは、クエリを書くことなしに所望のデータセットを単に選択して結合することが可能である。データベースは、クエリの実行とデータセットの提示などの従来のデータベース機能に加えて、クエリの構築を担当することができる。明細書及び特許請求の範囲全体を通してクライアントアプリケーションとデータベースが参照されるが、実施例は、特定のクライアントアプリケーションやデータベースに限定されない。任意のアプリケーションとデータストアを使用して本明細書に記載の原理を適用することができる。
【００１７】
[0020]図１は、クライアントアプリケーションにおいてリレーショナルクエリを自動的に構成して実行するためのデータドリブンナチュラルインターフェイスを使用するシステムの例示的なコンポーネントを示す図である。１００において、サーバーは、クライアントに情報サービスを提供するデータストアなどのデータベース１０２をホストすることができる。例示的なナチュラルユーザーインターフェイスは、ユーザーに、データベース１０２内の格納されたデータセットを提示することができる。データベース１０２は、データセットを検索するためのクエリなどの要求を受け取って実行してもよい。１つの例示的な実施例では、クエリはＳＱＬクエリ言語構文で提供されてもよい。
【００１８】
[0021]いくつかの実施例は、クエリを書く必要なしにデータセットの結合に基づくジェスチャーを可能にする。データベース１０２をホストするサーバーはデータセット内にレコードを格納することができる。クライアントアプリケーション１０６は、表面（ユーザーインターフェイス）上にデータテーブルなどのデータセットを表示することができる。ユーザーは、別の表面にデータセットをドラッグアンドドロップすることができる。ユーザーが他の表面へと別のデータセットをドラッグアンドドロップすると、クライアントアプリケーション１０６はデータベース１０２からの結合されたデータセットを要求してもよい。要求は結合クエリ（join query）の形であってもよい。データベース１０２は、どのデータセットを結合するかなどの要求のパラメーターに基づいて結合クエリを構築することができる。あるいは、クライアントアプリケーション１０６は、クエリを構築し、結合されたデータセットの要求としてデータベース１０２にクエリを送信することができる。
【００１９】
[0022]ネットワーク１０４は、ローカルネットワークであってもよいし、インターネットベースのインフラストラクチャーなどの外部のエンティティであってもよい。これは有線又は無線接続を提供することができる。クライアントアプリケーション１０６及びデータベース１０２は、セキュアでない又はセキュアな接続を介して互いに接続することができる。セキュアな接続の例は、クライアント及び暗号化通信を利用したデータサービスの間で確立される仮想プライベートネットワーク（ＶＰＮ）である。
【００２０】
[0023]代替的な実施例では、データベース１０２は、リモート又はローカルのデータベースとすることができる。ローカルデータベースは、クライアントアプリケーションを実行するシステムにとって利用可能な、ＣＰＵ、メモリー、ストレージリソースなどのローカルコンピューティングリソースに限定されてもよい。リモートデータベースは、コンピューティングリソースに関して制限がより少なくてもよく、ローカルでないコンピューティングリソースを利用することができる。しかし、リモートデータベースを利用する場合、全体的なシステムは、ネットワーク待ち時間について最適化されなければならないことがある。あるいは、クライアントアプリケーション１０６は、データベース１０２をクライアントアプリケーションのコンポーネントとしてホストすることができる。実施例は、クライアント／サーバーアーキテクチャーやピアツーピアアーキテクチャーに限定されるものではない。クライアントアプリケーションにおいてリレーショナルクエリを構成するためのデータドリブンナチュラルインターフェイスの使用は、他のアーキテクチャーを使用して達成することができる。
【００２１】
[0024]図２は、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスの例示的なアクション図である。アプリケーション２１０は、第１の表面上で、データベース２３０から取得したデータセットを表示することができる。第１の表面は、任意の形状及び形態であってもよい。アプリケーションは表示可能な第１の表面に合うようにデータセットのサイズを変更することができる。データセットは複数のレコードを格納することができる。各レコードはデータ行に含まれてもよい。各データ行は、さらに、個々のデータセルに分割されてもよい。データセルはデータ列と呼ばれるデータセットのエンティティに属していてもよい。グリッド内の各データ列は、データセットの属性を表すことができる。リレーショナルデータベース内のデータセットの共通の属性は主キー（primary key）である。主キーは、データ行を参照するために使用される一意の数字である。リレーショナルデータベース内の別の共通のエンティティは外部キー（foreign key）である。外部キーは、データセットと他のデータセットとの間の関係を作成するために、他のデータセットからの主キーを格納する。
【００２２】
[0025]ユーザーは、アプリケーション２１０を係合することにより、２００において動作を開始することができる。アプリケーションは、第１の表面上でデータベース２３０からのデータセットを表示していてもよい。第１の表面は分割線によって第２の表面から分離されてもよいし、表面はユーザーのデスクトップ上の別個の位置にあってもよい。アプリケーション２１０は、第１の表面から第２の表面上への第１のデータセットのドラッグアンドドロップなどの第１のユーザーアクションを検出することができる（２１２）。アプリケーションは、第１のユーザーのアクションが完了すると、第２の表面上にデータセットのレコードを表示してもよい。
【００２３】
[0026]次に、アプリケーション２１０は、第１の表面２１４から第２の表面への第２のデータセットのドラッグアンドドロップなどの第２のユーザーアクションを検出することができる。第２のユーザーアクションを検出すると、アプリケーション２１０は、第１及び第２のデータセットを結合するためにクエリを構成して実行するようにデータベース２３０に要求することができる（２１６）。データベース２３０は、要求を実行し、組み合わされたデータセットをアプリケーション２１０に送信することができる。アプリケーション２１０は、第２の表面上で第１のデータセットの最初の表示に上書きされる組み合わされたデータセットを表示することができる（２１８）。また、アプリケーションは、クエリを表示して、組み合わせたデータセットにおいて表示されるレコードを変更するために、ユーザーがクエリとインタラクトすることを可能にしてもよい。
【００２４】
[0027]リレーショナルクエリを作成するための説明されるデータドリブンナチュラルインターフェイスは説明の目的のためものである。他のデータドリブンナチュラルインターフェイスがリレーショナルクエリを構成して実行するために使用されてもよい。さらに、データベース（例えばリレーショナルデータベース、オブジェクト指向データベース、スプレッドシートアプリケーション、ウェブサービス、ＸＭＬファイル等）は、通信可能に接続されたサービスの代わりに、コンピューティングデバイス自体の上で実行されるアプリケーションによって格納されてもよい。例えば、第１の表面から２つのデータセットを第２の表面に組み合わせるユーザーアクションは、ローカルに格納されたデータベースからの組み合わせられたデータセットの取得を引き起こしてもよい。
【００２５】
[0028]図３Ａから図３Ｃは、いくつかの実施例による、リレーショナルクエリを自動的に構成して実行するためのデータドリブンナチュラルインターフェイスを提供する例を示す。図３Ａは、リレーショナルクエリを構成するための２つの表面を有する例示的なユーザーインターフェイスを表示する。第１の表面３１０は２つのデータセット「製品」データテーブル３１２及び「オーダー」データテーブルを表示する。第２の表面３３０は、分割線３２０によって第１の表面３１０から分割される。
【００２６】
[0029]第１の表面３１０は、第２の表面３３０に隣接して配置することができる。第１の表面は第２の表面の左に配置されてもよい。あるいは、第１の表面は、第２の表面の上に配置されてもよいし、ユーザーのデスクトップ上の別の場所に配置されてもよい。他の実施例では、第１及び第２の表面の位置は、メニュー内の位置切り替えボタンや切り替えオプションをクリックするなどの別のユーザーアクションによって切り替えることができる。さらに、第１及び第２の表面の位置は、画面サイズなどの所定のデバイス設定によって切り替えてもよい。モバイルデバイス上の画面サイズの制限は、複雑なデータセット結合動作をユーザーが達成することを可能にするために第２の表面により大きな画面スペース（screen estate）を割り当てるかどうかを決定することができる。
【００２７】
[0030]図３Ｂは第１のユーザーアクションを示す。ユーザーは、第１のデータテーブル３１２から第１のデータ列を選択することにより、第１のユーザーアクションを達成することができる。ユーザーは、第１のデータ列から、「名前」などの第１のデータヘッダーをつかんで移動することができる（３３４）。ドラッグアンドドロップが完了すると、アプリケーションは、第２の表面上にデータセット３３２の内容を表示してもよい。あるいは、ユーザーは、行に対応する主キーをつかんで移動することによってレコードの行をドラッグアンドドロップすることを選択してもよい。さらに別の例では、ユーザーは単一のデータセルをつかんで移動してもよい。第１のデータセットの例は、データ列、行又はセルに限定されず、各々の単数又は複数の組み合わせであってもよい。
【００２８】
[0031]さらに、第１のユーザーアクションが完了すると、第２の表面は、第２の表面上に表示される第１のデータセットを取得するためにデータベースによって実行されるクエリをリアルタイムで表示してもよい。アプリケーションは、ユーザーがクエリを変更し、第２の表面上に得られたデータセットをリアルタイムで表示することを可能にしてもよい。
【００２９】
[0032]図３Ｃにおいて、アプリケーションは、第２の表面上に第２のデータセットをドラッグアンドドロップする第２のユーザーアクションを検出することができる。第１のユーザーのアクションと同様に、ユーザーは、「オーダー」データテーブルからデータセットをドラッグアンドドロップすることができる（３３８）。データセットは、データセル、データ行、又はデータ列であってもよい。第２のユーザーアクションは、第１の表面から第２の表面へと第２のデータセットをドラッグするために第２のデータ列（例えば、「数量」）の第２のデータヘッダーをつかんで移動することであってもよい。ドラッグアンドドロップアクションは、選択されたデータセットを、第１の表面上に既にある第１のデータセットの隣に又は単に第１の表面上の任意の場所に移動させることを含んでもよい。
【００３０】
[0033]ドラッグアンドドロップアクション３３８が完了すると、アプリケーションは組み合わされたデータセット３３６を要求してもよい。データベースは、組み合わせるデータテーブル及び列の名前を含み得る要求の詳細に従ってクエリを生成し実行することができる。データベースは、第２のデータセットにおいて第１のデータセットの外部キー上で第１のデータセットを第２のデータセットと結合する一対多結合タイプのクエリを実行してもよい。代替的な実施例では、第１及び第２のデータセットの役割を逆にしてもよく、データベースは、第１のデータセットにおいて第２のデータセットの外部キー上で第１のデータセットを第２のデータセットに結合する多対一結合タイプのクエリを実行してもよい。さらに別の実施例では、第１及び第２のデータセットは、他の外部キーを有していなくてもよい。このようなシナリオでは、データベースは、結合パスを第１のデータセットから第２のものへと作成することができる中間テーブルのセットを見つけることを試み、それが見つかった場合にこの結合パスを使用してもよい。このようなパスが見つからない場合には、第２のデータセットの各要素との第１のデータセットの各要素についての行列を作成することによって、第１のデータセットを第２のデータセットと結合する多対多結合タイプのクエリを実行してもよい。クエリタイプの決定は、データセットの選択及びデータセットが互いにどのように関連するかに依存してもよい。組み合わされたデータセットのクエリは、第２の表面上に第１の表面からデータセットをドラッグアンドドロップする任意のユーザーアクションに関連して、リアルタイムで第２の表面上に表示されてもよい。
【００３１】
[0034]実施例は、第１及び第２のユーザーのアクションに限定されない。クライアントアプリケーションは、第１の表面から他のデータセットを第２の表面へとドラッグアンドドロップすることによって新たな組み合わされたデータセットを表示するために、ユーザーがさらなるユーザーアクションを達成することを可能にしてもよい。クライアントアプリケーションは、さらなるユーザーアクションが完了すると新たな再結合されたデータセットを表示するために、新しい組み合わされたデータセットと新しいクエリを要求することができる。
【００３２】
[0035]上述のシナリオは例示的な実施例として提供される。他のシナリオを、本明細書で説明する原理を使用してクライアントアプリケーション内でリレーショナルクエリを自動的に構成して実行するためのデータドリブンナチュラルインターフェイスを提供するために使用することができる。
【００３３】
[0036]図４は、実施例を実施することができる例示的なネットワーク化された環境である。データサービスは、１つ又は複数のサーバー４１４又はホストされたサービスなどの単一サーバー（例えばウェブサーバー）４１６を介して実行されるソフトウェアを介して提供することができる。プラットフォームは、ネットワーク４１０を介して、スマートフォン４１３、ラップトップコンピューター４１２、又はタブレットコンピューター４１１（「クライアントデバイス」）などの個々のコンピューティングデバイス上のクライアントアプリケーションと通信することができる。
【００３４】
[0037]上述したように、クライアントアプリケーションは、リレーショナルクエリを構成するためのデータドリブンナチュラルインターフェイスを可能にすることができる。データセットは、クライアントデバイス４１１−４１３上でドラッグアンドドロップのユーザーアクションによって組み合わせることができる。データセットを組み合わせるためのクエリは、組み合わされたデータセットとともに表示することができる。ユーザーは、組み合わされたデータセットを変更するためにクエリを変更できるようにされてもよい。
【００３５】
[0038]前述のように、クライアントデバイス４１１−４１３は、リモートサーバー（例えばサーバー４１４のうちの１つ）上で実行されるアプリケーションへのアクセスを可能にしてもよい。サーバーは、直接的に又はデータベースサーバー４１８を介して、データストア４１９との間で、関連するデータを取得又は格納することができる。
【００３６】
[0039]ネットワーク４１０は、任意のトポロジーのサーバー、クライアント、インターネットサービスプロバイダー、及び通信媒体を含むことができる。実施例によるシステムは、静的又は動的トポロジーを有してもよい。ネットワーク４１０は、企業ネットワークなどのセキュアなネットワーク、無線オープンネットワークなどのセキュアでないネットワーク、又はインターネットを含んでもよい。ネットワーク４１０はまた、公衆交換電話網（ＰＳＴＮ）やセルラーネットワークなどの他のネットワークを介して通信を調整することができる。さらに、ネットワーク４１０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）又は同様のものなどの短距離無線ネットワークを含むことができる。ネットワーク４１０は、本明細書に記載のノード間の通信を提供する。例として、限定はしないが、ネットワーク４１０は、音響、ＲＦ、赤外線及び他の無線媒体などの無線媒体を含むことができる。
【００３７】
[0040]多くの他の構成のコンピューティングデバイス、アプリケーション、データソース、データ配信システムが、リレーショナルクエリを構成して実行するためのデータドリブンナチュラルインターフェイスのために用いることができる。さらに、図４で説明されるネットワーク化された環境は説明の目的だけのためのものである。実施例は、例示的なアプリケーション、モジュール又はプロセスに限定されるものではない。
【００３８】
[0041]図５及び関連する説明は、実施例を実施できる適切なコンピューティング環境の簡潔で一般的な説明を提供することを意図している。図５を参照すると、コンピューティングデバイス５００などの、実施例による用途のための例示的なコンピューティング動作環境のブロック図が示される。基本構成では、コンピューティングデバイス５００は、少なくとも１つの処理ユニット５０２及びシステムメモリー５０４を含むことができる。コンピューティングデバイス５００はまた、プログラムを実行する際に協働する複数の処理ユニットを含むことができる。コンピューティングデバイスの正確な構成及びタイプに応じて、システムメモリー５０４は、（ＲＡＭなどの）揮発性、（ＲＯＭ、フラッシュメモリーなどの）不揮発性、又はその２つの何らかの組み合わせであってもよい。システムメモリー５０４は、典型的には、ワシントン州レドモンドのマイクロソフト社のＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどの、プラットフォームの動作を制御するのに適したオペレーティングシステム５０５を含む。システムメモリー５０４はまた、プログラムモジュール５０６、ユーザーインターフェイスモジュール５２２、データインターフェイスモジュール５２４などの１つ又は複数のソフトウェアアプリケーションを含んでもよい。
【００３９】
[0042]ユーザーインターフェイスモジュール５２２は、データプレゼンテーション、計算、分析、及び同様のサービスを提供するサービスの一部であってもよい。データインターフェイスモジュール５２４は、ユーザーインターフェイスモジュール５２２によって提示されるある表面から別の表面へのデータセットについてのユーザー選択及び移動に応答してデータセットを取得するために、データベースとインタラクトすることができる。両方のモジュールを管理するアプリケーションは、データセットを組み合わせて、組み合わされたデータセットを生成したクエリを表示してもよい。この基本的な構成は、点線５０８内でそれらのコンポーネントによって図５に示される。
【００４０】
[0043]コンピューティングデバイス５００は、さらなる特徴又は機能を有してもよい。例えば、コンピューティングデバイス５００はまた、例えば、磁気ディスク、光ディスク、又はテープなどのさらなるデータ記憶デバイス（取り外し可能及び／又は取り外し不能）、を含むことができる。このようなさらなる記憶装置が、取り外し可能なストレージ５０９及び取り外し不能なストレージ５１０によって図５に示されている。コンピューター読み取り可能な記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータなどの情報の記憶のための、任意の方法又は技術で実施される揮発性及び不揮発性、取り外し可能及び取り外し不能な媒体を含むことができる。コンピューター読み取り可能な記憶媒体は持続性のコンピューター読み取り可能な記憶デバイスである。システムメモリー５０４、取り外し可能ストレージ５０９及び取り外し不能なストレージ５１０は、すべて、コンピューター読み取り可能な記憶媒体の例である。コンピューター読み取り可能な記憶媒体は、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリー又は他のメモリー技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）又は他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができ、コンピューティングデバイス５００によってアクセスすることができる、他の任意の媒体を含む。任意のこのようなコンピューター読み取り可能な記憶媒体は、コンピューティングデバイス５００の一部であってもよい。コンピューティングデバイス５００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、及び同等の入力デバイスなどの入力デバイス５１２を有していてもよい。ディスプレイ、スピーカー、プリンター、及び他のタイプの出力デバイスなどの出力デバイス５１４もまた含まれてもよい。これらのデバイスは、当技術分野において周知であり、ここで詳細に説明する必要はない。
【００４１】
[0044]コンピューティングデバイス５００はまた、分散コンピューティング環境における無線ネットワーク、衛星リンク、セルラーリンク、及び同等の機構を介するなどして、デバイスが他のデバイス５１８と通信することを可能にする通信接続５１６を含んでもよい。他のデバイス５１８は、通信アプリケーション、ストレージサーバー、及び同等のデバイスを実行するコンピューターデバイスを含んでもよい。通信接続５１６は通信媒体の一例である。通信媒体は、その中に、搬送波や他の伝送メカニズムなどの変調されたデータ信号でのコンピューター読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータを含んでもよく、任意の情報配信媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するような方法で設定又は変更された１つ又は複数の特性を有する信号を意味する。例として、限定はしないが、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、並びに音響、ＲＦ、赤外線及び他の無線媒体などの無線媒体を含む。
【００４２】
[0045]例示的な実施例はまた方法を含む。これらの方法は、本明細書に記載された構造を含む任意の数の方法で実施することができる。１つのそのような方法は、本明細書に記載されるタイプのデバイスの機械動作によるものである。
【００４３】
[0046]別の任意の方法は、動作を実行する１人又はそれ以上の人間のオペレーターとともに実行される方法の個々の動作のうちの１つ又は複数のためのものである。これらの人間のオペレーターは、互いに同じ場所に位置する必要はなく、それぞれがプログラムの一部を実行するマシンを有するにすぎなくてもよい。
【００４４】
[0047]図６は、実施例による、リレーショナルクエリを自動的に構成するためのデータドリブンナチュラルインターフェイスを使用するプロセスの論理フロー図を示す。プロセス６００は、任意のコンピューティングデバイス上でローカルにインストールされ又はホストされるアプリケーションによって実施されてもよい。
【００４５】
[0048]プロセス６００は動作６１０で開始することができ、第１の表面から第１のデータセットを第２の表面に移動する第１のユーザーアクションが検出される。動作６１０に続いて、動作６２０において第２の表面上に第１のデータセットを表示してもよい。アプリケーションは、動作６３０において、第１の表面から別のデータセットを第２の表面上に移動する第２のユーザーアクション（例えば、データテーブルからのデータ列のドラッグアンドドロップ）を検出してもよい。
【００４６】
[0049]アプリケーションは、動作６４０において、移動されるデータセット間の結合パスを計算したり、結合パスを決定するようデータベースに要求したりすることができる。動作６５０が動作６４０に続いてもよく、結合動作が実行される。結合動作（クエリ実行）の結果は、動作６６０において、第２の表面上に表示されてもよい。ユーザーが第２の表面にさらなるデータセットを移動する場合、さらなる結合動作が実行されてもよく（すなわち、クエリが形成され、実行される）、その結果は、動作６６０と６３０との間のループによって示されるように、ユーザーからの手動の介入を必要とすることなく表示される。
【００４７】
[0050]いくつかの実施例は、通信モジュール、メモリー、及びプロセッサーを含むコンピューティングデバイスで実施することができ、プロセッサーは、メモリーに格納された命令と関連して、上述した方法や同等のものを実行する。他の実施例は、上述のような方法や同様のものを実行するために格納された命令を有するコンピューター読み取り可能な記憶媒体として実施することができる。
【００４８】
[0051]プロセス６００に含まれる動作は例示の目的のためのものである。実施例によるクライアントアプリケーション上でリレーショナルクエリを構成するためのデータドリブンナチュラルインターフェイスは、より少ない又はさらなるステップを有する同様のプロセスで実施することができ、ならびに本明細書に記載の原理を用いて異なる順序の動作で実施することもできる。
【００４９】
[0052]上記の明細書、例及びデータは、実施例の構成の製造及び使用についての完全な説明を提供する。主題は構造的特徴及び／又は方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲で定義される主題は、必ずしも上述の特定の特徴又は動作に限定されないことを理解すべきである。むしろ、上述の特定の特徴及び行為は、特許請求の範囲及び実施例を実施する例示的形態として開示される。
【図１】
2014526082.tif 000003
【図２】
2014526082.tif 000004
【図３Ａ】
2014526082.tif 000005
【図３Ｂ】
2014526082.tif 000006
【図３Ｃ】
2014526082.tif 000007
【図４】
2014526082.tif 000008
【図５】
2014526082.tif 000009
【図６】
2014526082.tif 000010
【国際調査報告】
2014526082.tif 000011
2014526082.tif 000012