(57)【要約】【課題】画像データと記号データを両方有するセルを含むテーブルをソーティング及びフィルタリングする。【解決手段】  画像ベースドキュメント管理サーバは、テーブルジェネレータ、記号表現モジュール、及びソートエンジンを含む。テーブルジェネレータはフォーム画像からテーブルを生成し、そのテーブルを更新する。テーブルは画像データ、記号データ、画像及び記号データ、及び空値を含むデータタイプを有するセルを有する。記号表現モジュールは、画像データを有する少なくとも一セルを記号データに変換する。ソートエンジンは、ユーザから受け取ったテーブルの少なくとも２つのデータタイプを含む列に対するソート要求から、少なくとも第１のデータタイプの第１のプライオリティを決定し、ソート要求から、一データタイプ内における第２のプライオリティを決定し、ソート要求に従って列をソートする。【選択図】図４
2014170539.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
フォーム画像を受け取り、前記フォーム画像からテーブルを生成する、前記テーブルは画像データと、画像データ及び記号データと、空値とを含むデータタイプを有するセルを有するステップと、
一以上のコンピューティングデバイスを用いて、画像データを有する少なくとも一セルを記号データに変換するステップと、
前記テーブルの列に対するソート要求を前記ユーザから受け取るステップと、
前記一以上のコンピューティングデバイスを用いて、前記ソート要求から、前記データタイプに基づくソーティングの第１のプライオリティを決定する、前記列は少なくとも２つのデータタイプを含むステップと、
前記一以上のコンピューティングデバイスを用いて、前記ソート要求に従って前記テーブルをソーティングするステップと、
前記ソート要求に基づき前記ソートされたテーブルを提供するステップと、を有する方法。
【請求項２】
前記ソート要求から、一データタイプ内における第２のプライオリティを決定するステップをさらに有し、
前記ソート要求に従って前記テーブルをソーティングするステップは、前記第２のプライオリティに基づきソーティングするステップを含む、
請求項１に記載の方法。
【請求項３】
一セルからの画像データを記号データに変換し、前記記号データを前記セル中の前記画像データに付加するステップをさらに有する、
請求項１に記載の方法。
【請求項４】
前記データタイプはさらに記号データを含む、
請求項１に記載の方法。
【請求項５】
前記テーブルの列に対するフィルタ要求を前記ユーザから受け取るステップと、
前記フィルタ要求に基づいて前記テーブルをフィルタリングするステップとをさらに有する、
請求項１に記載の方法。
【請求項６】
前記フィルタ要求に基づいて前記列をフィルタリングするステップは、さらに、
前記フィルタ要求からフィルタ基準を特定する、前記フィルタ基準はデータタイプまたはデータの特徴に基づくステップと、
前記フィルタ基準にマッチする行を特定することにより、前記フィルタ基準を前記列に適用するステップと、
前記テーブル中の、セルがマッチする行を前記ユーザに提供するステップとを有する、
請求項５に記載の方法。
【請求項７】
前記列をソーティングするステップは、さらに、前記ソート要求に基づき前記画像データで、前記画像及び記号データをソートするステップを有する、
請求項１に記載の方法。
【請求項８】
少なくとも画像データを含む第１のセルと、画像及び記号データを含む第２のセルとを含む第１の列で前記テーブルを更新するステップをさらに有する、
請求項１に記載の方法。
【請求項９】
システムであって、
一以上のプロセッサと、
メモリに記憶され、前記一以上のプロセッサにより実行可能なコントローラであって、フォーム画像を受け取るように構成されたコントローラと、
前記フォーム画像からテーブルを生成するように構成されたテーブルジェネレータであって、前記テーブルは画像データと、画像データ及び記号データと、空値とを含むデータタイプを有するセルを有する、テーブルジェネレータと、
ユーザから受け取った前記テーブルの列に対するソート要求を受け取り、前記ソート要求から、前記データタイプに基づきソーティングする第１のデータタイプの第１のプライオリティを決定し、前記列は少なくとも２つの前記データタイプを含み、前記ソート要求に従って前記テーブルをソートするように構成されたソートエンジンと、
前記ソート要求に基づいて前記ソートされたテーブルを提供するように構成された通信ユニットとを有する
システム。
【請求項１０】
前記ソートエンジンは前記ソート要求から一データタイプ内の第２のプライオリティを決定し、前記ソート要求により前記テーブルをソーティングするステップは前記第２のプライオリティに基づいてソーティングするステップを含む、
請求項９に記載のシステム。
【請求項１１】
一セルからの画像データを記号データに変換し、前記セルの前記画像データに前記記号データを付加する記号表現モジュールをさらに有する、
請求項９に記載のシステム。
【請求項１２】
前記データタイプはさらに記号データを含む、
請求項１１に記載のシステム。
【請求項１３】
前記ユーザから前記テーブルの列に対するフィルタ要求を受け取り、前記フィルタ要求に基づいて前記テーブルをフィルタリングするフィルタエンジンをさらに有する、
請求項９に記載のシステム。
【請求項１４】
前記フィルタ要求に基づいて前記列をフィルタリングするステップは、さらに、
前記フィルタ要求からフィルタ基準を特定する、前記フィルタ基準はデータタイプまたはデータの特徴に基づくステップと、
前記フィルタ基準にマッチする行を特定することにより、前記フィルタ基準を前記列に適用するステップと、
前記テーブル中の、セルがマッチする行を前記ユーザに提供するステップとを有する、
請求項１３に記載のシステム。
【請求項１５】
前記ソートエンジンは、前記ソート要求に基づき前記画像データで、前記画像及び記号データをソートする、
請求項９に記載のシステム。
【請求項１６】
前記テーブルジェネレータは、画像データを含む第１のセルと、画像及び記号データを含む第２のセルとを少なくとも含む第１の列で、前記テーブルを更新する、
請求項９に記載のシステム。
【請求項１７】
コンピュータにより実施される方法であって、
フォーム画像を受け取り、前記フォーム画像からテーブルを生成する、前記テーブルは画像データと、画像及び記号の両データと、空値とを含むデータタイプを有するセルを有するステップと、
前記ユーザから、前記テーブルに対するフィルタ要求を受け取るステップと、
一以上のコンピューティングデバイスを用いて、前記フィルタ要求からフィルタ基準を特定する、前記フィルタ基準はデータタイプまたはデータの特徴に基づくステップと、
前記一以上のコンピューティングデバイスを用いて、前記フィルタ基準にマッチする行を特定することにより、前記列に前記フィルタを適用するステップと、
前記列中の、セルがマッチする行を前記ユーザに提供するステップとを有する
方法。
【請求項１８】
一セルからの画像データを記号データに変換するステップと、
前記記号データを前記セル中の前記画像データに付加するステップとをさらに有する、
請求項１７に記載の方法。
【請求項１９】
少なくとも画像データを含む第１のセルと、画像及び記号データを含む第２のセルとを含む第１の列で前記テーブルを更新するステップをさらに有する、
請求項１７に記載の方法。
【請求項２０】
前記画像データは、画像が無い、画像の幅、指定の高さ、指定のサイズ、ストロークの類似性、及びブラックピクセルの割合に従ってフィルタされる、
請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書はフォームの処理に関する。具体的に、本明細書は、列中の一以上のセルが画像データとシンボルデータの両方を含むテーブルの生成と、そのテーブルのソーティング及びフィルタリングに関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイスの利用が一般的になるにつれ、多くのユーザが、ポータブルコンピューティングデバイス上でスタイラスや指先を用いて、フォームに情報を入力する。例えば、ユーザは、ソフトキーボードを用いてスタイラスでデータを入力する。ソフトキーボードを用いてフォーム中にキャプチャされたシンボルデータは、一般的にはデータベースに送信される。データベースにおいては、各フォームがテーブル中の行になり、データはテーブルの列にキャプチャされる。データベース中のこれらのテーブルは、セル中のテキストまたはシンボルデータに従ってソート及びフィルタリングされる。しかし、列中のセルが画像を含む場合、このアプローチはうまくいかない。結果として、これらのテーブルの有用性は限定されてしまう。
【０００３】
一般的に、データベース中の列は、単一タイプのデータ、ストリング、日付、数字、またはユニフォームリソースロケータ（ＵＲＬ）のみを含む。これらは、すべて固有の順序を有する一タイプのシンボルデータであり、標準的なソーティング及びフィルタリング手法を用いてソート及びフィルタできる。シンボルテキストを含む列に画像が追加されると、画像とテキストを一緒に順序付ける方法が無い。
【０００４】
しかし、画像が、その画像自体ではなくその画像に関連するテキストとメタデータに従ってランク付けされる、画像をクエリする他のシステムが存在する。結果として、このアプローチは、孤立した画像を整理するのには使えない。
【発明の概要】
【０００５】
本開示は、先行技術の欠点を、画像データと記号データの両方を有する一以上のセルを含むテーブルをソーティング及びフィルタリングするシステムで解消するものである。一実施形態では、画像ベースドキュメント管理（ＩＢＤＭ）サーバは、テーブルジェネレータ、記号表現モジュール、ソートエンジン、及びユーザインタフェースエンジンを含む。テーブルジェネレータはフォーム画像からテーブルを生成し、そのテーブルを更新する。テーブルは画像データ、記号データ、画像＆記号データ、及び空値を含むデータタイプを有するセルを有する。記号表現モジュールは、画像データを有する少なくとも一セルを記号データに変換し、その記号データをセルに付加する。ソートエンジンは、ユーザから受け取ったテーブルの少なくとも２つのデータタイプを含む列に対するソート要求から、少なくとも第１のデータタイプの第１のプライオリティを決定し、ソート要求から、一データタイプ内における第２のプライオリティを決定し、ソート要求に従って列をソートする。ユーザインタフェースエンジンは、ユーザにテーブルを表示し、ユーザからソート要求を受け取る。
【０００６】
また、ＩＢＤＭサーバは、ユーザからのフィルタ要求の受け取りに応じてテーブルの列をフィルタリングするフィルタエンジンを含む。一実施形態では、フィルタエンジンは、フィルタ要求からフィルタ基準を特定し、フィルタ基準はデータタイプまたはデータの特徴に基づき、フィルタ基準にマッチしない行を削除することによりフィルタ基準を列に適用し、テーブル中の残りの行をユーザに表示することにより、列をフィルタする。
【０００７】
他の態様は、これらの及びその他の革新的態様を有する、対応する方法、システム、装置、及びコンピュータプログラム製品を含む。
【０００８】
本システムは、有利にも、画像＆記号データを含むテーブルをソート及びフィルタする。結果として、本システムを用いて、画像データを有するすべてのセルを記号表現に変換する高価なプロセスを必要とせずに、一以上のユーザからのデータを素早く整理できる。ここに説明する特徴と優位性は、すべてを包含するものではなく、当業者には、図面と説明を考慮して、多くの追加的特徴と優位線が明らかであろう。さらに、留意点として、明細書で用いた言葉は、読みやすさと教育的目的のために選択されており、発明的主題の範囲を限定するものではない。
【図面の簡単な説明】
【０００９】
本発明は、添付した図面で例によって示すが、本発明を限定するものではない。同じ参照数字は同じ要素を示すために使用される。
【図１】テーブルの列をソーティング及びフィルタリングするシステムの一実施形態を示すブロック図である。
【図２】画像ベース文書管理（ImageBased Document Management (IBDM)）サーバの一実施形態をより詳細に示すブロック図である。
【図３Ａ】画像データと記号データを含むテーブル例を示す図である。
【図３Ｂ】画像データと記号データの変換を示すテーブル例を示す図である。
【図３Ｃ】テーブルの列中の画像データを分類することにより生成されるグループを示す図である。
【図３Ｄ】４タイプのデータを含むテーブルの列の例を示す図である。
【図３Ｅ】ビジター登録フォームの例を示す図である。
【図３Ｆ】複数のフォーム画像のテーブル例を示す図である。
【図４】テーブルの列をソーティングする方法の一実施形態を示すフロー図である。
【図５】テーブルの列をフィルタリングする方法の一実施形態を示すフロー図である。
【図６Ａ】第１プライオリティの順序を指定するユーザインタフェース例を示す図である。
【図６Ｂ】テーブルの列をソーティングするメニューを含むテーブル例を示す図である。
【図６Ｃ】画像データタイプのソーティングオプション例を示す図である。
【図６Ｄ】第１と第２のプライオリティが指定された後のソート結果例を示す図である。
【図７Ａ】テーブルの列のフィルタリングのためのメニューを含むテーブル例を示す図である。
【図７Ｂ】テーブルの列のフィルタリングのフィルタリング結果例を示す図である。
【図８Ａ】画像データのフィルタリングのためのユーザインタフェース例を示す図である。
【図８Ｂ】記号データのフィルタリングのためのユーザインタフェース例を示す図である。
【図８Ｃ】画像データと記号データのフィルタリングのためのユーザインタフェース例を示す図である。
【発明を実施するための形態】
【００１０】
画像データと記号データを両方含む一以上のセルを含むテーブルをソーティング及びフィルタリングするシステムと方法を説明する。説明を目的として、本発明を完全に理解してもらうために、多数の具体的な詳細事項を記載する。しかし、言うまでもなく、実施形態はこれらの詳細がなくても実施することができる。他の場合では、本発発明が不明瞭になることを避けるために、ブロック図の形式で構造とデバイスを示す。例えば、本発明を、例えば、スマートフォンと具体的なソフトウェア及びハードウェアとのユーザデバイスを参照して、一実施形態で説明する。しかし、この説明は、データとコマンドを受信できるどのタイプのコンピューティングデバイスにも、及びサービスを提供するどの周辺デバイスにも当てはまる。
【００１１】
本明細書において「一実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも１つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、必ずしも同じ実施形態を指すものではない。
【００１２】
以下の詳細な説明の一部は、コンピュータメモリ中のデータビットに対する操作のアルゴリズムと記号による表現により表されている。これらのアルゴリズムによる説明と表現は、データ処理技術の当業者が、自分の仕事内容を他の分野の人に最も効果的に伝える手段である。ここで、また一般的に、アルゴリズムとは、所望の結果に導く自己矛盾のないステップのシーケンスである。このステップは、物理量の物理的操作を要するステップである。通常、必ずしも必要ではないが、この物理量には、記憶し、伝達し、結合し、比較し、操作できる電気的または磁気的信号の形をとる。主に一般的な使用のために、これらの信号をビット、値、要素、記号、文字、式、数字等で表すと便利な時がある。
【００１３】
しかし、これらの用語や類似の用語は適当な物理量と関連しているべきであり、これらの物理量に付された便利なラベルに過ぎないことに留意すべきである。特に断らなければ、以下の説明から明らかなように、言うまでもなく、この明細書全体において、「処理」、「算出」、「計算」、「判断」、「表示」等の用語を用いた説明は、コンピュータシステム、類似の電子的計算機器の動作やプロセスを指す。このプロセスは、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量として表されたデータを操作し、コンピュータシステムメモリやレジスタ、その他の情報記憶装置、伝送機器、表示機器内の物理量として同様に表された他のデータに変換するものの動作や処理である。
【００１４】
本発明は、また、これらの動作を実行する装置にも関する。この装置は、必要な目的のために特に構成されたものでもよく、コンピュータ中に記憶されたコンピュータプログラムにより選択的に起動または再構成された汎用コンピュータを有していてもよい。かかるコンピュータプログラムは、コンピュータによる読み取りが可能な記憶媒体に記憶することができる。このような記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク等のいかなるタイプのディスクを含む。また、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、不揮発性メモリを有するＵＳＢキーを含むフラッシュメモリ、または電子的命令を格納するのに好適な、コンピュータシステムバスに結合されたいかなるタイプの媒体も含む。しかし、これらに限定されるわけではない。
【００１５】
いくつかの実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアを両方含む実施形態の形式を取ることができる。好ましい一実施形態はソフトウェアで実施できる。このソフトウェアは、ファームウェア、レジデントソフトウェア、マイクロコードなどを含むが、これらに限定されない。
【００１６】
さらに、いくつかの実施形態は、コンピュータや命令実行システムにより使用されるプログラムコードを提供するコンピュータ利用可能媒体またはコンピュータ読み取り可能媒体からアクセスできるコンピュータプログラム製品の形体を取りうる。本発明を目的として、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスにより、またはそれらに関して使用される、プログラムを包含、格納、伝達、伝送、搬送できる任意の装置である。
【００１７】
プログラムコードを格納及び／又は実行するのに好適なデータ処理システムは、システムバスを通してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリエレメントは、プログラムコードの実行時に使われるローカルメモリと、バルク記憶と、実行時にコードをバルク記憶から読み出さねばならない回数を低減するために、少なくともプログラムコードの一部を一時的に記憶するキャッシュメモリと、を含む。（キーボード、ディスプレイ、ポインティングデバイスなどを含むがこれに限定されない）入出力すなわちＩ／Ｏデバイスを、直接的に、またはＩ／Ｏコントローラを介在させて、システムに結合できる。
【００１８】
ネットワークアダプタをシステムに結合して、データ処理システムを、プライベートネットワークやパブリックネットワークを通して、他のデータ処理システムやリモートプリンタや記憶装置に結合することもできる。モデム、ケーブルモデム及びイーサネット（登録商標）カードは、現在利用できるネットワークアダプタの一部である。
【００１９】
最後に、ここで説明するアルゴリズムとディスプレイは、特定のコンピュータその他の装置に本来的に関係するものではない。いろいろな汎用システムをここでの教示に従ったプログラムで用いることができるし、必要な方法ステップを実行することに特化した装置を構成しても便利である。これらのシステムに必要な構成を以下に示す。また、本明細書は特定のプログラミング言語により記述されるものではない。言うまでもなく、ここに説明する様々な実施形態の教示は、いろいろなプログラミング言語を用いて実施できる。
【００２０】
システムの概要
図１は、画像データと記号データを両方含む一以上のセルを含むテーブルをソーティング及びフィルタリングするシステム１００を示すブロック図である。システム１００は、画像コンバータ１０１、ポータブルコンピューティングデバイス１０２ａ−１０２ｎ、ユーザデバイス１０３ａ−１０３ｎ、及び画像ベース文書管理（ＩＢＤＭ）サーバ１０６を含む。これらはネットワーク１０４にそれぞれ通信可能に結合している。図１と残りの図において、「１０２ａ」等の参照番号の後ろの文字は、その参照番号を有する要素を指すものである。「１０２」等の参照番号が付いていないテキスト中の参照番号は、その参照番号を担う要素の任意のまたはすべての場合を指すものである。
【００２１】
ネットワーク１０４は、従来タイプの有線または無線のものであり、スター構成、トークンリング構成、その他の公知の構成など、任意数の構成であり得る。さらに、ネットワーク１０４は、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、その他の相互接続されたデータパス（data path）であって複数の装置が通信できるものなどである。さらに他の一実施形態では、ネットワーク１０４はピア・ツー・ピアネットワークであり得る。ネットワーク１０４は、異なる様々な通信プロトコルでデータを送信する通信ネットワークの部分に結合され、またはその部分を含み得る。さらに他の一実施形態では、ネットワーク１０４は、ブルートゥース通信ネットワークまたはセルラー通信ネットワークを含む。これらは、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）、直接データ接続、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、電子メールなどを介してデータを送受信する。複数のユーザデバイス１０３ａ−１０３ｎ、複数のポータブルコンピューティングデバイス１０２ａ−１０２ｎ、及びＩＢＤＭサーバ１０６にはネットワーク１０４のみが結合している。しかし、実際には、これらのエンティティに接続できるネットワーク１０４の数はいくつでもよい。
【００２２】
ポータブルコンピューティングデバイス１０２ａ−１０２ｎは、それぞれ信号ライン１１２ａ−１１２ｎを介してネットワーク１０４に無線結合されている。ポータブルコンピューティングデバイス１０２は、メモリ、プロセッサ及び無線通信機能を含む任意のコンピューティングデバイスである。例えば、ポータブルコンピューティングデバイス１０２は、タブレットコンピュータ、パーソナルデジタルアシスタント、スマートフォンなどである。ポータブルコンピューティングデバイス１０２は、フォーム画像を受け取り、フォーム画像にストロークを加え、画像コンバータ１０１またはＩＢＤＭサーバ１０６にストロークを含むフォーム画像を送るように構成されている。フォームは要求された情報の挿入をするフィールド（すなわち、ブランクスペース）を含む任意の文書である。フォームは、要求された情報で満たされた時、ステートメント、オーダー、要求などになる。例えば、フォームは税金フォーム、保険フォーム、医療フォーム、電子チェック、ジョブアプリケーション、調査、受領書などであり得る。
【００２３】
一実施形態では、ポータブルコンピューティングデバイス１０２は、コンピューティングパッドとスタイラスを含むタブレットコンピュータである。コンピューティングパッドは、フォーム画像を表示して、スタイラスやユーザの指先を用いてフォーム画像上に書き込まれた任意のストロークをキャプチャするように構成されている。ストロークは、一般的には、紙上にペンで書かれたように、画像上に表示される。コンピューティングパッドは、通常、ストロークを、ロケーション、タイミング、圧力の情報とともに一連の点またはセグメントとしてキャプチャする。コンピューティングパッドは、例えば、スケーラブルベクトルグラフィックス（ＳＶＧ）ファイルフォーマットなど本技術分野の当業者に知られた任意のフォーマットで、キャプチャされたストロークを含むフォーム画像を送る。スケーラブルベクトルグラフィックスは、ストロークと画像の両方を含み得るものである。一実施形態では、コンピューティングパッドは、ストロークと関連する情報を、例えばロケーションとタイミングの情報を、フォーム画像に、メタデータとして付加する。ポータブルコンピューティングデバイス１０２は、グローバルポジショニングシステム（ＧＰＳ）回路を用いて、ロケーション情報を決定する。またはローカル無線アクセスポイントのメディアアクセスコントロール（ＭＡＣ）アドレスを含むデータベースにアクセスして、ロケーション情報を決定する。一実施形態では、キャプチャされたストロークは、スケーラブルベクトルグラフィックス（ＳＶＧ）やインクマークアップランゲージ（ＩｎｋＭＬ）を含む当業者には知られたストロークフォーマットで保存される。
【００２４】
画像コンバータ１０１は信号ライン１１１を介してネットワークに結合している。画像コンバータ１０１は、ポータブルコンピューティングデバイス１０２から直接、またはＩＢＤＭサーバ１０６から間接的に、ストロークを含むフォーム画像を受け取るように構成されている。画像コンバータ１０１は、任意的に、ストロークを記号データに変換し、その記号データをＩＢＤＭサーバ１０６に送り返す。記号データは、ユニバーサルキャラクタセット・トランスフォーメーションフォーマット−８ビット（ＵＴＦ−８）などのマシン符号化テキストを含む。記号データは、「真（ＴＲＵＥ）」と「偽（ＦＡＬＳＥ）」という用語のような意味を有し得る。記号データは、図２を参照して詳細に説明する。一実施形態では、画像コンバータ１０１はＡｍａｚｏｎ（登録商標）により提供されるＭｅｃｈａｎｉｃａｌ  Ｔｕｒｋシステムなどのhuman-in-the-loop（ＨＩＴＬ）システムである。例えば、ユーザデバイス１０３にアクセスしているユーザは、ネットワーク１０４によりＭｅｃｈａｎｉｃａｌ  Ｔｕｒｋシステムと相互作用して、フォーム上の手書きをユニコードテキスト（例えば、ＵＴＦ−８）に変換する。一実施形態では、画像コンバータ１０１は、フォーム画像とともに、ストロークとそのストロークから変換された記号データとを両方とも保存し、フォーム画像、ストローク及び記号データをＩＢＤＭサーバ１０６に送る。
【００２５】
ユーザデバイス１０３ａ−１０３ｎは、それぞれ信号ライン１１３ａ−１１３ｎを介してネットワーク１０４に結合されている。ユーザデバイス１０３は、例えば、デスクトップコンピュータ、ラップトップコンピュータなどの、メモリとプロセッサを含むコンピューティングデバイスである。ユーザデバイス１０３は、ＩＢＤＭサーバ１０６との間でデータを送受信するように構成されている。例えば、ユーザデバイス１０３は、テーブルを見る要求及び／またはテーブルを修正する要求をＩＢＤＭサーバ１０６に送る。ユーザデバイス１０３は、ポータブルコンピューティングデバイス１０２に送信されたフォームの制作者やＩＢＤＭサーバ１０６の管理者など、ＩＢＤＭサーバ１０６の情報にアクセスすることを許可されたユーザによりアクセスされる。
【００２６】
ＩＢＤＭサーバ１０６は信号ライン１１６を介してネットワークに結合している。一実施形態では、ＩＢＤＭサーバ１０６は、ポータブルコンピューティングデバイス１０２ａ−１０２ｎからストロークを含むフォーム画像を受信し、フォーム画像からテーブルを生成する。また、テーブルの列（列中の一以上のセルが画像データと記号データを両方とも含む）をソーティングするソート要求またはフィルタリングするフィルタ要求をユーザから受け取る。そして、ソート要求またはフィルタ要求に基づき列をソートまたはフィルタする。図示したＩＢＤＭサーバ１０６は１つだけだが、本技術分野の当業者には言うまでもなく、ネットワーク１０４に結合できるＩＢＤＭサーバ１０６の数はいくつでもよい。ＩＢＤＭサーバ１０６は、図２を参照して下でより詳細に説明する。
【００２７】
画像ベース文書管理（ＩＢＤＭ）サーバ１０６
ここで図２を参照するに、画像ベース文書管理（ＩＢＤＭ）サーバ１０６を、より詳細に説明する。図２は、ＩＢＤＭサーバ１０６を示すブロック図である。これは、コントローラ２０２、テーブルジェネレータ２０４、記号表現モジュール２０６、ソートエンジン２０８、フィルタエンジン２１０、ユーザインタフェースエンジン２１２、プロセッサ２４０、メモリ２４５、通信ユニット２５５、及びデータ記憶部２５０を含む。
【００２８】
プロセッサ２４０、メモリ２４５、通信ユニット２５５、及びデータ記憶部２５０は、バス２３０に通信可能に結合している。バス２３０は、ＩＳＡバス、ＰＣＩバス、ＵＳＢ、または同様な機能を提供するその他の本技術分野で知られたバスを含む一以上のバスである。
【００２９】
プロセッサ２４０は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、その他のプロセッサアレイであり、計算を行い、ディスプレイ装置に電子的表示信号を供給する。プロセッサ２４０は、信号ライン２７２を介して他のコンポーネントと通信するためバス２３０に結合している。プロセッサ２４０は、データ信号を処理するものである。ＣＩＳＣアーキテクチャ、ＲＩＳＣアーキテクチャ、命令セットの組合せを実行するアーキテクチャを含む様々なコンピューティングアーキテクチャを有し得る。図２には単一のプロセッサのみを示したが、複数のプロセッサが含まれてもよい。処理能力は、画像の表示及び画像のキャプチャ及び伝送のサポートに限定され得る。処理能力は、様々なタイプの特徴抽出及びサンプリングを含むより複雑なタスクを実行するのに十分であってもよい。当業者には明らかであるが、他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、及び物理的構成が可能である。
【００３０】
メモリ２４５は、プロセッサ２４０により実行される命令及び／またはデータを格納する。メモリ２４５は、信号ライン２７４を介して他のコンポーネントと通信するためバス２３０に結合している。命令及び／またはデータは、ここに説明する方法のいずれかを及び／またはすべてを実行するコードを含み得る。メモリ２４５は、ＤＲＡＭデバイス、ＳＲＡＭデバイス、フラッシュメモリまたは本技術分野で知られているその他のメモリデバイスである。一実施形態では、メモリ２４５は、不揮発性メモリまたは同様の永続的記憶デバイス及びメディアである。例えばハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、またはその他のより永続的に情報を記憶する大規模記憶装置を含む。
【００３１】
通信ユニット２５５は、プロセッサ２４０をネットワーク１０４とその他の処理システムにリンクすることにより、データを受送信するハードウェアである。通信ユニット２５５は、ユーザデバイス１０３からの要求などのデータを受信し、その要求を、例えばテーブルに対するクエリ要求などを、テーブルジェネレータ２０４に送信する。通信ユニット２５５は、ポータブルコンピューティングデバイス１０２から、フォーム画像などの情報を受信する。通信ユニット２５５は、テーブルを、例えばクエリに応答した修正テーブルを、ユーザデバイス１０３に送信する。通信ユニット２５５は信号ライン２７８を介してバス２３０に結合している。
【００３２】
一実施形態では、通信ユニット２５５は、ユーザデバイス１０３、ポータブルコンピューティングデバイス１０２、または他の通信チャンネルに直接的物理的接続のためのポートを含む。例えば、通信ユニット２５５は、ユーザデバイス１０３と有線接続するためのＲＪ４５ポートまたは同様のポートを含む。他の一実施形態では、通信ユニット２５５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ブルートゥース（登録商標）、またはその他の好適な無線通信方法などの一以上の無線通信方法を用いて、ユーザデバイス１０３、ポータブルコンピューティングデバイス１０２、またはその他の任意の通信チャンネルとデータを交換する無線トランシーバ１１６を含む。
【００３３】
さらに他の一実施形態では、通信ユニット２５５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）、直接データ接続、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、電子メール、またはその他の好適なタイプの電子的通信などを介して、セルラー通信ネットワークによりデータを送受信するセルラー通信トランシーバを含む。さらに他の一実施形態では、通信ユニット２５５は、有線ポート及び無線トランシーバを含む。通信ユニット２５５は、当業者には言うまでもなく、例えば、ＴＣＰ／ＩＰ、ｈｔｔｐ、ｈｔｔｐｓ及びＳＭＴＰ等の標準ネットワークプロトコルを用いて、ファイル及び／またはメディアオブジェクトを配信するネットワーク１０４への他の従来の接続を提供する。
【００３４】
データ記憶部２５０は、ポータブルコンピューティングデバイス１０２ａ−１０２ｎから受信した複数のフォーム画像に関連する情報を記憶する非一時的メモリである。例えば、データ記憶部２５０は、フォーム画像、フォーム画像から生成されたテーブル、テーブルの一以上の列をソーティングまたはフィルタリングするユーザから受け取ったソート要求またはフィルタ要求、及びテーブルの一以上の列をソーティングまたはフィルタリングした結果を記憶する。データ記憶部２５０は、信号ライン２７６を介して他のコンポーネントと通信するためバス２３０に結合している。
【００３５】
コントローラ２０２は、ソフトウェア及びルーチンである。通信ユニット２５５を介してデータを受信し、適当なコンポーネントにデータをルーティングし、ユーザデバイス１０３やシステム１００のその他のコンポーネントに送信するために通信ユニット２５５にコンポーネントからの応答を送信する。一実施形態では、コントローラ２０２は、ＩＢＤＭサーバ１０６のコンポーネントとシステム１００のその他のコンポーネントとの間のデータ転送を管理する以下に説明する機能を提供するプロセッサ２４０により実行可能な一組の命令である。他の一実施形態では、コントローラ２０２は、メモリ２４５に記憶され、プロセッサ２４０によりアクセス可能かつ実行可能である。どちらの実施形態でも、コントローラ２０２は、プロセッサ２４０、通信ユニット２５５、及びＩＢＤＭサーバ１０６の他のコンポーネントと協働及び通信するように構成されている。
【００３６】
本明細書において、ストロークデータは、点のシーケンス、ラインセグメントまたは曲線として、フォームからキャプチャされ、任意的にストロークに関連する圧力、時間、及び加速度情報を含む。便宜上、ストロークは頻繁に画像に変換されるが、画像は圧力や時間のデータなどのストロークに関するメタデータを含み得る。メタデータは、画像に含まれるか、他の方法で画像と関連付けられる。ストロークデータと画像データは、ポータブルコンピューティングデバイス１０２においてストロークとしてキャプチャされたデータを指すように頻繁に、交換可能に用いられる。
【００３７】
テーブルジェネレータ２０４は、一組のフォーム画像に関連するテーブルを生成するソフトウェア及びルーチンである。一実施形態では、テーブルジェネレータ２０４は、テーブルを生成する以下に説明する機能を提供する、プロセッサ２４０により実行可能な一組の命令である。他の一実施形態では、テーブルジェネレータ２０４は、メモリ２４５に記憶され、プロセッサ２４０によりアクセス可能かつ実行可能である。どちらの実施形態でも、テーブルジェネレータ２０４は、プロセッサ２４０、通信ユニット２５５、及びＩＢＤＭサーバ１０６の他のコンポーネントと協働及び通信するように構成されている。
【００３８】
テーブルジェネレータ２０４は、コントローラ２０２を介してポータブルコンピューティングデバイス１０２からストロークを含む一組のフォーム画像を受信する。そして、ストロークを含むその一組のフォーム画像からフィールドとラベルの画像を生成し、そのフィールドとラベルの画像を含むテーブルを生成する。理解を容易にするため、今後、フォーム画像という場合、記入されたフォーム（completed forms）からのストロークデータも含むフォーム画像であるものとする。一実施形態では、テーブルジェネレータ２０４は、フォーム画像中の一群のストロークを特定し、その一群のストロークを含む境界ボックスを決定し、その境界ボックスに基づきフォーム画像からフィールド画像を決定することにより、フィールド画像を生成する。いくつかの実施形態では、テーブルジェネレータ２０４は、フィールド画像の周りのエリアを分析し、一群の関連画素をそのフィールド画像のラベルとして特定する。そして、そのフォーム画像からラベル画像をクロッピング（cropping）することにより、ラベル画像を生成する。
【００３９】
テーブルジェネレータ２０４は、フィールド画像とフォームから生成されたラベル画像とに基づいて一組のフォーム画像と関連するテーブルを生成する。一実施形態では、テーブルジェネレータ２０４は、各ラベル画像をテーブルの列ヘッダとして指定し、各ラベル画像と関連するフィールド画像でポ各列をピュレート（populate）することにより、自動的にテーブルを生成する。他の実施形態では、ユーザがラベルを確定し、またはフォーム識別子及びフィールド画像のロケーションに基づきレベルが特定される。いくつかの実施形態では、テーブルジェネレータ２０４は、一組のフォーム画像に関連するメタデータを抽出し、そのメタデータをテーブルの一以上の列に組み込む。例えば、テーブルジェネレータ２０４は、フォームが埋められた日付を抽出し、テーブルの日付列を追加する。
【００４０】
テーブルに含まれるフィールド画像とラベル画像を決定するのに加え、テーブルジェネレータ２０４は、フィールド画像とラベル画像の順序を決定し、その順序に従ってフィールド画像とラベル画像を整理する。例えば、テーブルジェネレータ２０４は、ＪａｎｅとＡｌｉｃｅなどのユーザにより埋められたビジター登録フォームからテーブルを生成する。テーブルジェネレータ２０４は、テーブルの「名前」列において、「Ｊａｎｅ」を「Ａｌｉｃｅ」より上のフィールドに配置する。ＪａｎｅとＡｌｉｃｅにより埋められたビジター登録フォームに関連するメタデータが、ＪａｎｅがＡｌｉｃｅより早くフォームを埋めたことを示すからである。テーブルジェネレータ２０４は、「名前」列をテーブルの第１列として構成する。「名前」の画像がユーザにより埋められるビジター登録フォームのトップに配置されているからである。当業者には言うまでもなく、テーブルジェネレータ２０４は、フィールド画像とラベル画像を異なる順序でテーブルに配置することができる。
【００４１】
テーブル中の各セルのコンテンツは、潜在的に４つの状態、すなわち空値、画像データ、記号データ、または記号データと画像データの両方の組み合わせ（画像データ及び記号データとの区別するため画像＆記号データと呼ぶ）を含む。テーブル中のセルの内容は空値を含み得る。例えば、フォームのフィールド中にユーザにより情報が提供されていなければ、換言すると、ユーザがフォーム中のフィールドにストロークを提供しなければ、セルは空値（empty value）を含む。フィールド画像とレベル画像の内容は画像データも含む。図３Ａは画像データの例を示す。図３Ａの第１列（例えば、画像列）は、手書きデータ（例えば、手書きの日付、手書きの「×」、手書きの電子メールアドレス）とラジオボタン（例えば、非選択のラジオボタンと選択されたラジオボタン）を含む画像データを示す。手書きデータは、ユーザがポータブルコンピューティングデバイス１０２上でスタイラスや指先を用いてフォームを埋めた時にキャプチャされたストロークであり得る。ラジオボタンは、ユーザ選択に応じて選択された画像、またはユーザ選択なしである。
【００４２】
フィールド画像により表されるセル中の内容は、任意的に記号データを含む。例えば、フィールド画像とラベル画像を生成するのに用いられる一組のフォームの各フォームは、いつフォームが提出されたかを示すタイムスタンプを含む。一実施形態では、テーブルジェネレータ２０４は、画像コンバータ１０１から記号データを受け取る。画像コンバータ１０１または記号表現モジュール２０６は、一組のフォーム中の画像データを記号データに変換する。例えば、図３Ａの第２列（例えば、記号列）は、第１列の画像データに対応する記号データ、例えば第１列に含まれる手書きの日付や電子メールアドレスに対するテキスト（printed text）などを示す。他の一実施形態では、テーブルジェネレータ２０４は画像データを記号データに変換する画像データを記号表現モジュール２０６に送信する。他の一例では、ユーザはソフトキーボードを用いて記号データを入力する。
【００４３】
一実施形態では、テーブルジェネレータ２０４は、画像コンバータ１０１または記号表現モジュール２０６から受信した記号データを、記号データが生成される画像データに関連付ける。テーブルジェネレータ２０４は、記号データと画像データの両方を、そのフィールドに関連した画像＆記号データとして１つのセルに保存する。
【００４４】
記号表現モジュール２０６は、テーブル中の画像データの記号表現を生成するソフトウェア及びルーチンである。一実施形態では、記号表現モジュール２０６に送信は、記号表現を生成する以下に説明する機能を提供する、プロセッサ２４０により実行可能な一組の命令である。他の一実施形態では、記号表現モジュール２０６は、メモリ２４５に記憶され、プロセッサ２４０によりアクセス可能かつ実行可能である。どちらの実施形態でも、記号表現モジュール２０６に送信は、プロセッサ２４０、通信ユニット２５５、及びＩＢＤＭサーバ１０６の他のコンポーネントと協働及び通信するように構成されている。
【００４５】
一実施形態では、記号表現モジュール２０６は、テーブルジェネレータ２０４からフィールド画像またはラベル画像中の画像データを受け取る。そして、例えば光学文字認識（ＯＣＲ）、光学マーク認識（ＯＭＲ）、インテリジェント文字認識（ＩＣＲ）、手書き認識、パターン認識などを用いて、その画像データに対応する記号データを生成する。例えば、記号表現モジュール２０６は、手書き認識を実行して、「Ａｍｙ」の名前の手書きから彼女の名前を取得する。
【００４６】
他の一実施形態では、記号表現モジュール２０６は、テーブルに含まれた画像データをネットワーク１０４によりユーザに送信し、ユーザはマニュアルで画像データを記号データに変換する。図３Ｂは、ユーザがマニュアルでＯｓｃａｒ  Ｍｉｋｅの手書きを記号データに変換する例を示す。例えば、ユーザは、「画像」列中の会社名の手書き（例えば、タブレット上のストローク）に一致するように「記号」列に会社名「ＰＱＲ」を入力する。画像データを記号データにマニュアルで変換するとき、ユーザは、画像データのどの部分を変換するか及びどの記号データがよいかを選択できる。図３Ｂでは、ユーザは手書きデータを記号データに変換しないことを選択している。ユーザは、名前の記号表現を、図３Ｂに示した「Ｏｓｃａｒ  Ｍｉｋｅ」ではなく、「Ｏｓｃａｒ  Ｃ．  Ｍｉｋｅ」として入力することを選択することもできる。記号表現モジュール２０６は、列全体の画像データではなく、列の一部の画像データを記号データに変換することにより、計算時間と費用を節約する。
【００４７】
さらに他の一実施形態では、記号表現モジュール２０６は、テーブル中の画像データを分類して記号データを生成する。一実施形態では、記号表現モジュール２０６は、テーブルの列中のフィールドとラベル画像に含まれる画像データ（例えば、ストローク）を受信する。そして、列中の画像データ間の類似性を決定し、その類似性に基づき（例えば、階層的クラスタを生成することにより）、Ｋ個（例えば、１、２、３、・・・）のグループに列中の画像データを分類する。そして、各グループを分類データで表し、その分類データを記号データとして用いる。一実施形態では、記号表現モジュール２０６は、Ｋグループのうちの各グループからストローク例を抽出し、そのストローク例を分類データに変換する。一グループは異なる複数のストロークを含み得るが、記号表現モジュール２０６は、一ストローク例を選択して、一分類を設けてそのグループを表す。
【００４８】
図３Ｃは、画像データを分類して記号データを取得する一例を示す図である。記号表現モジュール２０６は、テーブルジェネレータ２０４からテーブルの複数列を受け取り、そのテーブルの複数列に含まれる画像データ（例えば、ストローク）を記号データに変換する。例えば、テーブルジェネレータ２０４は、複数のユーザにより記入された（filled in）質問フォームからテーブルを生成する。テーブル中の複数列は、「名前」列、「年」列、「ペット数」列、「子供数」列、「電子メールアドレス」列を含む。図３Ｃに示した例では、記号表現モジュール２０６は、ストローク間の類似性に基づき列（例えば、「ペット数」列）中のストロークを６グループに分類する。しかし、各グループを左上から右下までそれぞれ分類データＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆで、記号の値や意味は決めずに表し、ストロークを類似性に基づいてグループ分けする。例えば、グループＥとＦは両方とも３に見える多くのストロークを含むが、書き方が少し違うので別分類としている。
【００４９】
記号表現モジュール２０６は、ストロークが生じるたびにそのストロークを記号データに変換するのではなく、ストロークに関する既存の分類データに基づき、テーブル中のストロークの記号データを生成する。そうすることにより記号データを生成する計算時間を大幅に短縮できる。変換に分類データを用いると、テーブルが同じタイプのストロークや複数の列に複数回同じストロークを含む場合に、特に有用である。上記の例についての説明を続けるが、記号表現モジュール２０６は、「年」列、「ペット数」列、及び「子供の数」列中の同じタイプのストロークを受け取る。記号表現モジュール２０６は、「ペット数」列中のストロークについて６つのグループを構成すると、その６つのグループを用いて、「年」列と「子供の数」列中のストロークに対する記号データを生成する。
【００５０】
一実施形態では、記号表現モジュール２０６は、テーブルジェネレータ２０４からのテーブルに含まれた画像データの一部を記号データに変換する。多くのデータは変換しなくても判読可能なので、画像データをすべて変換することは、計算的に高価であり不必要であろう。一実施形態では、記号表現モジュール２０６はデータ記憶部２５０に記号データを記憶する。他の一実施形態では、記号表現モジュール２０６は、記号データをテーブルジェネレータ２０４に送信する。
【００５１】
テーブルジェネレータ２０４は、記号表現モジュール２０６から記号データを受け取り、その記号データが生成された画像データにその記号データを関連づけ、テーブルを更新する。更新されたテーブルは、４タイプのデータを、例えば、空値、画像データ、記号データ、及び画像＆記号データを含み得る。例えば、テーブルジェネレータ２０４は、テーブルの第１列の行（例えば、セル）を更新し、第１のセルが画像データを含み、第２のセルが画像＆記号データを含むようにする。ここで図３Dを参照して、テーブルの「国名」列３３０を示す。列中の各セルは一タイプのデータを含む。図３Ｄにおいて、空値を有するセルをセル３３４に示した。空値は、テーブルを生成するのに使われるフォーム中のフィールドに、ユーザが情報を入力していないことを示す。画像データは、手書き、フォームに組み込まれたオブジェクト（例えば、チェックボックス）、ストローク及びその他のメディア（例えば、写真）を含む。例えば、図３Ｄのセル３３６は、手書きの「ＵＳ」を表す画像データを含む。画像データは一組のフォーム画像中、ユーザにより提供される。記号データはユニコード文字を含む。例えば、図３Ｄのセル３３８は、「Germany」を表す記号データを含む。記号データは、一組のフォーム画像に含まれ、または画像コンバータ１０１または記号表現モジュール２０６を用いてテーブル中の画像データの変換により生成される。
【００５２】
画像＆記号データは、画像データに関連する画像データと記号データを含む。一実施形態では、テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信する。そして、他の３タイプのデータの表示とは異なる方法で、画像＆記号データを表示して、どちらのタイプのデータが表示されているかに応じて、記号表現または画像データが利用できることを強調する。例えば、図３Ｄのセル３３２は、背景を灰色にした画像＆記号データを含む。黄色い背景、下線、フラグ、矢印など、その他の強調が可能である。一実施形態では、テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信して、ユーザからの要求受信に応じて、画像＆記号データに含まれる画像データまたは記号データの表示を切り替える。表示を切り替えるプロセスを、図３Ｆを参照しつつ以下により詳細に説明する。
【００５３】
図３Ｅは、ユーザＯｓｃａｒ  Ｍｉｋｅにより記入されたビジター登録フォーム３４０の一例を示す。このフォームは、日付、ビジター名、会社名、訪問先氏名、電子メールアドレス、国籍及び署名のフィールドを含む。また、ポータブルコンピューティングデバイス１０２にカメラがあれば、それによりキャプチャできるビジターの写真を入れる場所もフォーム上にある。
【００５４】
図３Ｆは、図３Ｅに示したフォームを含む一組のビジター登録フォームから生成されたテーブル３５２を含むユーザインタフェース３５０を示す。テーブルジェネレータ２０４は、記号表現モジュール２０６と通信して、４つのデータタイプを、すなわち空値、画像データ、記号データ、及び画像＆記号データを含むテーブル３５２を生成する。テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信して、ユーザインタフェース３５０でテーブルをユーザに提示する。ユーザインタフェース３５０はモードボタン３５４も含む。ユーザがモードボタン３５４を選択すると、テーブルジェネレータ２０４はユーザインタフェースエンジン２１２と通信して、表示のため、画像＆記号データに含まれる画像データまたは記号データのいずれかを提示する。モードボタン３５４が記号モードである場合、画像＆記号データに含まれる記号データが表示される。例えば、図３Ｆにおいて、モードボタン３５４は記号であり、結果としてセル３５５は画像＆記号データを含む陰付きセルのひとつである。これは現在記号データを表示している。同様に、列３５６中のすべての非空セルは、モードボタン３５４が記号モードなので、記号データとして表示される。モードボタン３５４が画像モードである場合、画像＆記号データに含まれる画像データが表示される。ユーザインタフェースエンジン２１２は、他の３タイプのデータの、例えば空値、画像データ、及び記号データの表示を制御するモードボタン３５４を設けていない。例えば、ユーザインタフェースエンジン２１２は、モードボタン３５４がどのモードであるかに関わらず、ユーザインタフェース３５０中の「国名」列の第１行に空セルを表示し、「サイン」列にサインの画像を表示する。
【００５５】
ソートエンジン２０８は、ソート要求の受け取りに応じてテーブルの列をソーティングするルーチンを含むソフトウェアである。一実施形態では、ソートエンジン２０８は、テーブルの列をソートする、プロセッサ２４０により実行可能な一組の命令である。他の一実施形態では、ソートエンジン２０８は、メモリ２４５に記憶され、プロセッサ２４０によりアクセス可能かつ実行可能である。どちらの実施形態でも、ソートエンジン２０８は、プロセッサ２４０、及びＩＢＤＭサーバ１０６の他のコンポーネントと協働及び通信するように構成されている。
【００５６】
ソートエンジン２０８、コントローラ２０２を介してユーザからテーブルの列に対するソート要求を受け取り、ソート要求に基づいて順序を決定し、その順序でテーブルをソートする。テーブルは、テーブルジェネレータ２０４により生成され、複数のデータタイプを、例えば空値、画像データ、記号データ、及び画像＆記号データを含む。テーブル中の少なくとも１つの列は、少なくとも２つのデータタイプを含む。
【００５７】
ソートエンジン２０８は、ソート要求から、列に含まれるデータタイプの少なくとも第１のプライオリティを決定し、少なくともその第１のプライオリティに基づき列中にデータを配列（arrange）する。一実施形態では、ソート要求は、ユーザにより指定された順序を含む。その順序は、列における各データタイプの位置を決定する。他の一実施形態では、ソート要求は、どのタイプのデータを分離すべきか、どのタイプのデータが列の下部に来られないか、などに関するユーザ指示を含む。ソートエンジン２０８は、ソート要求を分析して、その分析から第１のプライオリティを決定する。ソートエンジン２０８は、データタイプのプライオリティが下がる方向で、列中のデータをソートする。例えば、ソートエンジン２０８は、各列が１０セルを有するテーブルに対するソート要求を受け取る。ソートエンジン２０８は、第１のソート要求を受け取り、テーブル中の「国名」列をソートする第１のソート要求を受け取る。一例として、この列は１０個のセルを、すなわち４個の空セルと、ユーザの手書き国名（例えば、ユーザのストロークから取得した画像データ）を含む６個のセル含む。手書き名を有する６個のセルのうちの３個は、記号情報に変換されて、画像＆記号データを含むようにされる。（例えば、記号表現モジュール２０６または画像コンバータを用いて手書きを記号データに変換することにより求めた画像＆記号データ）。ソートエンジン２０８は、ソート要求中に指定されたプライオリティに基づき、（１）画像データ、（２）記号データ、及び（３）空セルに対して、降順でプライオリティを決定する。ソートエンジン２０８は、「国名」列とグループ画像＆記号データとを含むテーブルを、画像データタイプでソートする。データタイプの第１のプライオリティの順序は、（１）画像データを有する３つのセル及び画像＆記号データを有する３つのセルと、（２）空の４つのセルである。他方、プライオリティが、（１）記号データ、（２）画像データ、（３）空セルである場合、画像＆記号データは記号データとグループにされる。具体的に、第１のプライオリティの順序は、（１）画像＆記号データを有する３つのセル、（２）画像データを有する３つのセル、及び（３）４つの空セルである。この例は、図３Ｆ、図６Ａ、図６Ｂ、及び図６Ｃに関連して、さらに詳細に参照される。
【００５８】
ソートエンジン２０８は、第１のプライオリティを用いて、列中の各データタイプの位置を決定する。列中の各データタイプ間の位置を決定した後、ソートエンジン２０８はソート要求から各データタイプ内の第２のプライオリティを決定する。ソートエンジン２０８は、第１のプライオリティと第２のプライオリティを組み込んで、順序を決定し、両方のプライオリティによりテーブル中のセルをソートする。
【００５９】
一実施形態では、ソートエンジン２０８は、画像プロパティ（例えば、幅、高さ、色）、ストロークプロパティ（例えば、長さ）、及びその他のプロパティ（例えば、チェックボックスが選択されているまたは非選択である、画像データがどのグループに分類されている、など）に基づき画像データタイプの第２のプライオリティを決定する。例えば、ソートエンジン２０８は、画像の幅に基づき画像データの第２のプライオリティを決定し、最も狭い画像から最も広い画像まで画像データをソートする。
【００６０】
一実施形態では、ソートエンジン２０８は、記号データの特徴（例えば、記号データが英文字か数字であること）に基づき記号データタイプの第２のプライオリティを決定する。例えば、ソートエンジン２０８は、小さい番号は大きい番号よりプライオリティを有することを判断して、数字が大きくなる順序で記号データをソートする。
【００６１】
ソートエンジン２０８は、第１のプライオリティと第２のプライオリティを決定すると、順序を決定し、その順序でテーブル中のセルをソートし、ソートしたテーブルをテーブルジェネレータ２０４に送る。テーブルジェネレータ２０４は、ソートされた列でテーブルを更新し、ユーザインタフェースエンジン２１２と通信して、更新されたテーブルをユーザに表示する。図３Ｆを参照して上で説明したように、テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信し、（例えば、モードボタン３５４を用いて）ユーザから選択の受信に応じて、画像モードまたは記号モードでテーブルを表示できる。画像モードにおいて画像＆記号データに含まれる画像データを表示することをユーザが選択すると、内在する記号データにより画像＆記号データがソートされる。及びその逆である。例えば、ユーザインタフェースエンジン２１２は、ユーザのソート要求に基づき列をソートした結果として、列の最初の３つのセル中のテキスト「ｆｏｕｒ」を表示するために、グラフィカルデータを生成する。ユーザインタフェースエンジン２１２は、テーブルジェネレータ２０４により命令されて、ユーザにテキストまたは記号の数字を提示する。ユーザが記号モードでテーブルを表示することを選択したからである。ソートエンジン２０８は、３つのセルのそれぞれに含まれる画像データに基づき、例えば、画像データのヒストグラムに基づき、列の最初の３つのセル中のテキスト「ｆｏｕｒ」の順序を決定する。
【００６２】
フィルタエンジン２１０は、ユーザからのフィルタ要求の受け取りに応じて、テーブルの列をフィルタリングするルーチンを含むソフトウェアである。一実施形態では、フィルタエンジン２１０は、テーブルの列をフィルタする、プロセッサ２４０により実行可能な一組の命令である。他の一実施形態では、フィルタエンジン２１０は、メモリ２４５に記憶され、プロセッサ２４０によりアクセス可能かつ実行可能である。どちらの実施形態でも、フィルタエンジン２１０は、プロセッサ２４０、及びＩＢＤＭサーバ１０６の他のコンポーネントと協働及び通信するように構成されている。
【００６３】
フィルタエンジン２１０は、コントローラ２０２を介してユーザからテーブルの列に対するフィルタ要求を受け取り、フィルタ要求からフィルタ基準を特定する。そして、列中のどのセルがそのフィルタ基準にマッチするか判断し、そのフィルタ基準にマッチする新しいテーブルを生成するようにテーブルジェネレータ２０４に命令する。テーブルジェネレータ２０４は、フィルタ基準にマッチするセルを含む行で、テーブルを更新する。テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信して、更新されたテーブルをユーザに表示するグラフィカルデータを生成するユーザインタフェースを提供する。
【００６４】
一実施形態では、フィルタエンジン２１０は、一以上のデータタイプに基づくフィルタ基準を特定する。例えば、フィルタエンジン２１０は、ユーザのフィルタ要求から、空セルが無い列をユーザが欲しがっていることを特定し、それゆえ列中の空値を有するセルを含む行を除去するフィルタ基準を決定する。
【００６５】
他の一実施形態では、フィルタエンジン２１０は、データの特徴に関するフィルタ基準を特定する。画像データの特徴は、画像プロパティ（サイズ、幅、高さ、ヒストグラム、明るさ、主要色など）、ストロークプロパティ（長さ、ペン速度または加速度など）、分類フィーチャ（同様の画像データを有するグループなど）、及びその他のプロパティ（選択されたラジオボタンまたは選択されてないラジオボタンを表す、ｙｅｓまたはｎｏ画像など）を含むが、これらに限定されない。記号データの特徴は、記号データのタイプ（例えば、英文字または数字データ）を含むが、これに限定されない。一般的に、記号データは、当業者には周知の方法で、「正規表現」（例えば、「＾Ｊ［ａ−ｚＡ−Ｚ］＊」や「ａｂｃ［０１２３４５］」）を用いてフィルタまたはマッチ（match）される。本来は数値である記号データは、数学式（「＞１０」または「＜＝５」）を用いてマッチ（match）またはフィルタできる。フィルタエンジン２１０は、データの特徴に基づきフィルタ基準を特定する。例えば、フィルタエンジン２１０は、ユーザフィルタ要求から、１００ピクセルより広い手書きの名前（例えば、画像データ）と、テーブルの「Ｌａｓｔ  Ｎａｍｅ」列の１２文字より長い名字（例えば、記号データ）とをユーザが見たいことを特定する。そのため、列から＜＝１００ピクセルの手書き画像を除去する第１のフィルタ基準と、列から１２文字以下の名字を除去する第２のフィルタ基準を決定する。列に含まれる画像＆記号データの場合、フィルタエンジン２１０は、画像＆記号データに含まれる画像データまたは記号データ、または両方に基づき、フィルタ基準を決定する。
【００６６】
一実施形態では、フィルタエンジン２１０は、ユーザにより生成されたフィルタ要求を受け取る。他の一実施形態では、フィルタエンジン２１０は、ユーザインタフェースエンジン２１２と通信して、ユーザインタフェースに複数のオプションを提供する。一実施形態では、フィルタ要求は、ユーザにより指定され、ユーザが残したいまたは除去したい列中の内容を示す一以上のフィルタ式を含む。例えば、フィルタ要求は、１００ピクセルより広い画像を含む画像データを残す第１のフィルタ式と、非ホワイトピクセルが３０％より少ない画像データを除去する第２のフィルタ式と、真（ＴＲＵＥ）である記号データを残す第３のフィルタ式と、文字「Ｊ」で始まる記号データを残す第４のフィルタ式とを含む。フィルタ式は、正規表現、論理式、算術式を含むが、これらに限定されない。
【００６７】
一実施形態では、フィルタエンジン２１０はフィルタ要求に基づきテーブルの列をフィルタする。他の一実施形態では、フィルタエンジン２１０は、テーブルの二以上の列をフィルタするフィルタ要求を受け取る。フィルタエンジン２１０は、テーブルジェネレータ２０４に列をフィルタリングした結果を送る。テーブルジェネレータ２０４は、テーブルを更新して、ユーザインタフェースエンジン２１２と通信して、更新されたテーブルを表示するグラフィカルデータを生成する。一実施形態では、フィルタエンジン２１０は、画像＆記号データに含まれた記号データに基づき列中の画像＆記号データをフィルタし、ユーザインタフェースエンジン２１２は、ユーザからの選択に基づき画像＆記号データに含まれる画像データを表示する。逆の場合も同じである。
【００６８】
ユーザインタフェースエンジン２１２は、テーブルを含むユーザインタフェースを表示するグラフィカルデータを生成するルーチンを含むソフトウェアである。一実施形態では、ユーザインタフェースエンジン２１２は、ユーザインタフェースを生成する、プロセッサ２４０により実行可能な一組の命令である。他の一実施形態では、ユーザインタフェースエンジン２１２は、メモリ２４５に記憶され、プロセッサ２４０によりアクセス可能かつ実行可能である。どちらの実施形態でも、ユーザインタフェースエンジン２１２は、プロセッサ２４０、及びＩＢＤＭサーバ１０６の他のコンポーネントと協働及び通信するように構成されている。
【００６９】
一実施形態では、ユーザインタフェースを要求するユーザデバイス１０３のユーザに応えて、ユーザインタフェースエンジン２１２は、テーブルジェネレータ２０４から又はデータ記憶部２５０からテーブルに関する情報を読み出し、テーブルを表示するためのグラフィカルデータを生成する。例えば、ユーザインタフェースエンジン２１２は、ユーザから画像モードの選択の受け取りに応じて、ユーザに画像モードでテーブルを表するユーザインタフェースを提供する。
【００７０】
他の一実施形態では、ユーザインタフェースエンジン２１２は、テーブルジェネレータ２０４から更新されたテーブルを受け取り、ユーザに更新されたテーブルを表示するグラフィカルデータを生成する。一実施形態では、テーブルは、ソートエンジン２０８からのソート結果またはフィルタエンジン２１０からのフィルタ結果に基づき、テーブルジェネレータ２０４により更新される。ユーザインタフェースエンジン２１２は、テーブルの列によりソートされたテーブル、または一以上の行が削除テーブルを示すユーザインタフェースを生成する。
【００７１】
さらに別の一実施形態では、ユーザインタフェースエンジン２１２は、ユーザからのソート要求またはフィルタ要求を受け取るユーザインタフェースを生成する。一実施形態では、ユーザインタフェースエンジン２１２は、ソートエンジン２０８またはフィルタエンジン２１０と通信して、ユーザとインターラクトしてソート要求またはフィルタ要求を生成するグラフィカルデータを提供する。例えば、ユーザインタフェースエンジン２１２は、テーブルの列をソートするソート要求を生成するドロップダウンメニューをユーザに提供する。
【００７２】
方法
ここで図４及び図５を参照して、本発明の本実施形態の方法をより詳細に説明する。図４は、テーブルの列をソーティングする方法の一実施形態を示すフロー図４００である。ＩＢＤＭサーバ１０６は、テーブルジェネレータ２０４と記号表現モジュール２０６とソートエンジン２０８とユーザインタフェースエンジン２１２とを含む。テーブルジェネレータ２０４は、ポータブルコンピューティングデバイス１０２からフォーム画像を受け取り、そのフォーム画像からテーブルを生成する（ステップ４０２）。テーブルは、画像データ、記号データ、画像＆記号データ（画像データと記号データの両方）、及び／または空値を含むデータタイプを有するセルを含む。一実施形態では、テーブルジェネレータ２０４は、フォーム画像からフィールド画像とラベル画像を生成して、フィールド画像とラベル画像を含むテーブルを生成する。
【００７３】
画像データは、手書き、フォームに組み込まれたオブジェクト（例えば、チェックボックス）、ストローク及びその他のメディア（例えば、写真）を含む。画像データは、テーブルを生成するのに用いられるフォーム画像で、ユーザにより提供される。記号データは、一般的にはＵＴＦ−８や同様の符号化を用いてユニコードキャラクタとして記憶される。記号データは、フォーム画像に含まれ、または画像コンバータ１０１または記号表現モジュール２０６を用いてテーブル中の画像データの変換により生成される。画像＆記号データは、画像データに関連する画像データと記号データを含む。空値は、ユーザがフォーム画像に完全な情報（full information）を提供していないことを示す。
【００７４】
記号表現モジュール２０６は、一セルからの画像データを記号データに変換し、そのセルの画像データに記号データを付加する（ステップ４０４）。一実施形態では、記号表現モジュール２０６は、テーブルの列中に含まれる画像データ（例えば、ストローク）を受信し、列中の画像データ間の類似性を決定する。そして、その類似性に基づき（例えば、階層的クラスタを生成することにより）、Ｋ個（例えば、１、２、３、・・・）のグループに列中の画像データを分類する。そして、各グループを分類データで表し、その分類データを記号データとして用いる。
【００７５】
他の一実施形態では、記号表現モジュール２０６は、例えば光学的文字認識（ＯＣＲ）、光学的マーク認識（ＯＭＲ）、インテリジェント文字認識（ＩＣＲ）、手書き認識、パターン認識などを用いて、画像データに対応する記号データを生成する。さらに他の一実施形態では、記号表現モジュール２０６は、テーブルに含まれた画像データをネットワーク１０４によりユーザに送信し、ユーザはマニュアルで画像データを記号データに変換する。
【００７６】
テーブルジェネレータ２０４は、画像データを含む第１のセルと、画像＆記号データを含む第２のセルとを含む第１の列を有するテーブルを更新する（ステップ４０６）。テーブルジェネレータ２０４は、記号表現モジュール２０６から記号データを受け取り、その記号データが生成された画像データにその記号データを関連づけ、テーブルを更新する。テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信して、ユーザにテーブルを表示するグラフィカルデータを生成する（ステップ４０８）。
【００７７】
ソートエンジン２０８は、ユーザから、テーブルの列に対するソート要求を受け取る（ステップ４１０）。ソートエンジン２０８は、ソート要求から、データタイプに基づきソートする第１のプライオリティを決定する（ステップ４１２）。列は少なくとも２つのデータタイプを含む。ソートエンジン２０８は、画像データと記号データのデータタイプ間のプライオリティを比較する。画像データタイプのプライオリティが記号データタイプのプライオリティより高い場合、ソートエンジン２０８は、画像＆記号データを画像データでグループ分けする。記号データタイプのプライオリティが画像データタイプのプライオリティより高い場合、ソートエンジン２０８は、画像＆記号データを記号データでグループ分けする。
【００７８】
ソートエンジン２０８は、ソート要求から、複数のデータタイプ中の一データタイプにおける第２のプライオリティを決定する（ステップ４１４）。一実施形態では、ソートエンジン２０８は、画像プロパティ（例えば、幅、高さ、明るさ、色）、ストロークプロパティ（例えば、長さ）、及びその他のプロパティ（例えば、チェックボックスが選択されているまたは非選択である、画像データがどのグループに分類されている、など）に基づき画像データタイプの第２のプライオリティを決定する。一実施形態では、ソートエンジン２０８は、記号データの特徴（例えば、記号データが英文字か数字であること、昇順または降順）に基づき記号データタイプの第２のプライオリティを決定する。
【００７９】
ソートエンジン２０８は、ソート要求に従ってテーブルをソートする（ステップ４１６）。これは、第１のプライオリティに対して指定された順序に従った画像＆記号データのソーティングを含む。一実施形態では、ソートエンジン２０８は、順序を決定し、テーブル中のセルをその順序でソートし、ソートされたテーブルをテーブルジェネレータ２０４に送る。テーブルジェネレータ２０４は、テーブルを更新して、ユーザインタフェースエンジン２１２と通信して、ソート要求に基づいてソートされたテーブルを表示するグラフィカルデータを生成する（ステップ４１８）。ユーザインタフェースエンジン２１２は、通信ユニット２５５を介してユーザにソートされたテーブルを提供する（ステップ４２０）。
【００８０】
図５は、テーブルの列をフィルタリングする方法の一実施形態を示すフロー図５００である。ＩＢＤＭサーバ１０６は、テーブルジェネレータ２０４と記号表現モジュール２０６とフィルタエンジン２１０とユーザインタフェースエンジン２１２とを含む。テーブルジェネレータ２０４は、ポータブルコンピューティングデバイス１０２からフォーム画像を受け取り、そのフォーム画像からテーブルを生成する（ステップ５０２）。テーブルは、画像データ、記号データ、画像＆記号データ（画像データと記号データの両方）、及び／または空値を含むデータタイプを有するセルを含む。記号表現モジュール２０６は、一セルからの画像データを記号データに変換し、そのセルの画像データに記号データを付加する（ステップ５０４）。変換は画像データを分類して記号データを生成するステップを含む。  テーブルジェネレータ２０４は、画像データを含む第１のセルと、画像＆記号データを含む第２のセルとを含む第１の列を有するテーブルを更新する（ステップ５０６）。テーブルジェネレータ２０４は、ユーザインタフェースエンジン２１２と通信して、ユーザにテーブルを表示するグラフィカルデータを生成する（ステップ５０８）。
【００８１】
フィルタエンジン２１０は、ユーザからテーブルに対するフィルタ要求を受け取る（ステップ５１０）。いくつかの実施形態では、フィルタ要求は、テーブルの列中のデータをフィルタリングする要求である。フィルタエンジン２１０は、フィルタからフィルタ基準を特定する（ステップ５１２）。フィルタ基準はデータタイプまたはデータの特徴に基づく。一例では、フィルタエンジン２１０は、ユーザのフィルタ要求から、空セルが無い列をユーザが欲しがっていることを特定し、それゆえ空値が無いセルを特定して更新されたテーブルに含めるフィルタ基準を決定する。他の例では、フィルタエンジン２１０は、ユーザのフィルタ要求から、１００ピクセルより広い手書きの名前（例えば、画像データ）と、テーブルの「Ｌａｓｔ  Ｎａｍｅ」列の１２文字より長い名字（例えば、記号データ）とをユーザが見たいことを特定する。そのため、１００ピクセルより長い手書きの名前を有するセルを特定する第１のフィルタ基準と、１２文字より長い記号データを有するセルを特定する第２のフィルタ基準とを決定する。
【００８２】
フィルタエンジン２１０は、フィルタ基準にマッチする行を特定することにより、フィルタ基準を列に適用する（ステップ５１４）。フィルタエンジン２１０は、ユーザインタフェースエンジン２１２と通信して、列中のマッチするセル（matching cell）を有する行を表示するグラフィカルデータを生成する（ステップ５１６）。ユーザインタフェースエンジン２１２は、通信ユニット２５５を介してユーザに、列中のマッチするセルを提供する（ステップ５１８）。
【００８３】
テーブルのソーティングとフィルタリングの例
図６Ａは、データのタイプに基づいてテーブルをソーティングする第１のプライオリティを設定するユーザインタフェース６００のグラフィック表現の一例である。第１のダイアローグボックス６０１に、アイテムを並べ替えられるリストボックス６０２がある。ここで、リストボックス６０２は、空データタイプのための第１のプライオリティ、画像データタイプのための第２のプライオリティ、及び記号データタイプのための第３のプライオリティ（６０３で示す）を含む。ユーザはデータタイプをドラッグ＆ドロップして、タイプに基づいてソート順序を指定できる。この例では、ユーザは、記号ボックス６０３を、第２のリストボックスに示したように、３番目の位置から２番目の位置にドラッグする。同様に、ユーザは、空データタイプを１番目の位置から３番目の位置に、画像データタイプを２番目の位置から１番目の位置にドラッグしている。
【００８４】
図６Ｂは、ユーザインタフェースエンジン２１２により生成された、ユーザデバイス１０３上に表示されたユーザインタフェース６１０のグラフィック表現の一例である。この例では、ユーザインタフェース６１０は、テーブルジェネレータ２０４により生成された、図３Ｆに示されたテーブル３５２を含む。ユーザインタフェース６１０は、ユーザが、テーブル３５２をソートするソート要求を生成するメニューも含む。この例では、ユーザがソーティングのために「Ｃｏｍｐａｎｙ  Ｎａｍｅ」列を選択したのに応じて、ユーザインタフェースエンジン２１２はユーザにドロップダウンメニューを提供する。ドロップダウンメニューは、第１のメニューリスト６０５と第２のメニューリスト６０６と第３のメニューリスト６０７とを含む。ユーザインタフェースエンジン２１２は、ユーザに第１のメニューリスト６０５を表示するグラフィカルデータを生成し、ユーザが列のソーティングとフィルタリングを選択できるようにする。ここでは、ユーザがソーティングを選択した。ユーザインタフェースエンジン２１２は、ユーザに第２のメニューリスト６０６を表示して、画像データ、記号データ及び空値のデータタイプに対する第１のプライオリティを決定する。ユーザは、例えば図６Ａを参照して上で説明したように、順序を選択する。他のメカニズムも可能である。例えば、データタイプをユーザが指定する数字（例えば、１、２または３）とともに表示してもよい。
【００８５】
最初、ユーザは第１のメニュー６０５でソートを選択した。ソートの主順序を選択するリストボックスを含むダイアログが、ユーザに提示される。「Ｉｍａｇｅ」、「Ｓｙｍｂｏｌｉｃ」及び「Ｅｍｐｔｙ」を含む３つのアイテムが提示される。ユーザは、３つのアイテムを望む順序にドラッグして、図６Ａに示したように第１のプライオリティを示すことができる。また、ユーザは、複数のアイテムのうち一アイテムを選択し（例えば、マウスでダブルクリックまたは右クリック）、オプションの第３のメニュー６０７を提示され得る。「Ｓｙｍｂｏｌｉｃ」の場合、ユーザは情報を、英文字（例えば、「ａ」、「１」、「１０」、「９」、「Ａｂｃ」、「ａｂｃ」）としてまたは数字（例えば、「１」、「９」、「１０」、「Ａｂｃ」、「ａｂｃ」）として、任意的に昇順または降順に、及びケースを無視するか（「ａｂｃ」＝＝「ＡＢＣ」）どうかにより、ソートできる。「Ｅｍｐｔｙ」の場合、追加オプションはない。「Ｉｍａｇｅ」の場合、ユーザは、画像フィル（暗いピクセルと明るいピクセルのパーセンテージ）、画像サイズ、幅または高さ、主色、画像エントロピー、画像ファイルサイズ、またはその他の様々な選択によりソートするオプションが与えられる。ユーザに提供される副選択は、ソーティングの第２のプライオリティまたはグループ内でどうソートするかを示す。
【００８６】
ソートエンジン２０８は、第２のメニューリスト６０６のユーザ選択から、第１のプライオリティの順序を決定する。この例では、第１のプライオリティは記号データ、画像データ、及び空値を降順で含む。
【００８７】
第２のメニューリスト６０６のユーザ選択の受信に応じて、ユーザインタフェースエンジン２１２は、各データタイプの第２のプライオリティを選択するため、第３のメニューリスト６０７をユーザに提示する。ここで、記号データの第２のプライオリティのオプションは、英文字順か数字順かである。この例では、ソートエンジン２０８は、「Ａｌｐｈａ」の隣のチェックボックスをチェックすることにより、記号データを英字順で並べる。当業者は、ドロップダウンメニューが他のオプションまたはメニューリストを有すること、例えば第４のメニューリストが、列をソーティングする順序を決定するために、降順か昇順のオプションを含むことを認識する。
【００８８】
図６Ｃは、画像データの第２のプライオリティのソーティングオプションのグラフィカル表示６２０を示す図である。この例では、第１のプライオリティの順序は、記号データを最初にリストしている。第２のメニュー６１８は、画像データの第２のプライオリティを指定する。ここで、ユーザはソーティング基準に画像幅を取っている。他のオプションは画像の高さ、特徴、及び画像サイズである。
【００８９】
図６Ｄは、第１と第２のプライオリティが指定された後のソート結果のグラフィカル表示６３０の例を示す図である。図６Ｂに示したように、データタイプをソーティングする第１のプライオリティは、（１）記号；（２）画像；及び（３）空セルの順序を有する。これは、画像＆記号データは、記号データでグループ分けされていることを意味する。行１−５（６３１）は画像データと画像＆記号データを含む。列６−７（６３２）は画像データを含む。記号データの第２のプライオリティは、会社名列６３４に基づく英字順である。結果として、第１の行は「ｈｅｒａｌｄ」であり、第２の行は「Ｔ＆Ｂ」であり、第３の行は「ＴＰＭ」であり、第４の行は「ｘｙｚ」であり、第５の行は「Ｚ  ｓｔｕｄｉｏｓ」である。図６Ｃに示したように、画像データのデータタイプにおけるソーティングの第２のプライオリティは、会社名列６３４の画像幅に基づく。結果として、「ＰＱＲ」を有する行は、「ＨＷＳＫ」を有する行の前に来る。会社名について空セルを有する行６３３は、第１のプライオリティで指定された順序により、最後に配置される。
【００９０】
図７Ａは、ユーザインタフェースエンジン２１２により生成された、ユーザデバイス１０３上に表示されたユーザインタフェース７００のグラフィック表現の一例である。この例では、ユーザインタフェース７００は、テーブル３５２と、テーブル３５２の列をフィルタリングするフィルタ要求をユーザが生成するメニューとを含む。この例では、ユーザがフィルタリングのために「Ｃｏｍｐａｎｙ  Ｎａｍｅ」列を選択したのに応じて、ユーザインタフェースエンジン２１２はユーザにドロップダウンメニューを提供する。ドロップダウンメニューは、メニューリスト７０２とポップアップ７０４とを含む。ユーザインタフェースエンジン２１２は、メニューリスト７０２をユーザに表示し、ユーザが列をフィルタリングするオプションを選択できるようにする。ユーザインタフェースエンジン２１２は、フィルタ式を含むフィルタ要求を生成するポップアップ７０４をユーザに提供する。ユーザは、フィルタ式を入力し、またはユーザインタフェース７００とインターラクトして、フィルタ式を生成できる。フィルタエンジン２１０は、フィルタ要求に含まれるフィルタ式からフィルタ基準を決定し、そのフィルタ基準に基づき「Ｃｏｍｐａｎｙ  Ｎａｍｅ」をフィルタする。
【００９１】
図７Ｂは、列３３０をフィルタリングするための第１のフィルタ要求と第２のフィルタ要求の受け取りに応じて生成された第１のフィルタ結果７５２と第２のフィルタ結果７５４のグラフィック表示の一例を示す。フィルタエンジン２１０は、第１のフィルタ要求からフィルタ基準を決定し、列３３０からの画像データと空値とのデータタイプを除去し、第１のフィルタ結果７５２に記号データと画像＆記号データのみを含める。また、フィルタエンジン２１０は、第２のフィルタ要求からフィルタ基準を決定し、画像＆記号データと空値のデータタイプを列３３０から削除し、文字「Ｊ」で始まる記号データをフィルタアウトし、記号データ「Ｇｅｒｍａｎｙ」と手書きの「ＵＳ」を第２のフィルタ結果７５４に含める。
【００９２】
図８Ａは、署名列の画像データのフィルタリング例を示すグラフィック表現８００である。グラフィック表現８００は、画像データと記号データとの間のフィルタを指定するオプションを含む。ここで、画像データのオプションは、画像無し、指定幅、指定高さ、指定サイズ、類似ストロークのグループ化、ブラックピクセルの割合を含む。ここで、画像幅は１００ピクセルより大きいと指定されている。第４列により、ユーザは、「すべての」基準が満たされないとならないか、いずれかの基準を満たせばよいか、選択できる。これは論理表現ＯＲまたはＡＮＤと同様である。「Ａｎｙ」（例えば、ＯＲ）は、１つの基準のみにマッチするセルもフィルタにマッチする。「Ａｌｌ」（例えば、ＡＮＤ）は、セルがすべての基準にマッチすることを要し、さもないとセルは拒絶される。
【００９３】
図８Ｂは、記号データのフィルタリング例のグラフィック表現８１０である。グラフィック表現８１０は、画像データと記号データとの間のフィルタを指定するオプションを含み、記号データのオプションは、正規表現、算術、論理、非包含及び包含を含む。ここで、正規表現は「＾Ｊ［ａ−ｚＡ−Ｚ］」である。これは、署名が「Ｊ」で始まり、他の文字はアルファベットのどの大文字でも小文字でもよいことを意味する。
【００９４】
図８Ｃは、画像データと記号データの両方のフィルタリングの例を示すグラフィック表現８２０である。ここで、署名画像は、１００ピクセルより広く、表現「＾Ｊ［ａ−ｚＡ−Ｚ］」を有していなければならない。
【００９５】
実施形態の上記の説明は、例示と説明を目的にしたものである。包括的であること、開示した詳細な内容に本発明を限定することを意図したものではない。上記の教示を考慮して、多くの修正と変形が可能である。実施形態の範囲はこの詳細な説明により限定されるのではなく、本出願の特許請求の範囲により限定される。当業者には言うまでもなく、実施例はその精神と本質的特徴から逸脱することなく、他の具体的な形式に化体させることができる。同様に、モジュール、ルーチン、機能、属性、方法その他の態様の具体的な名称や分け方は必須でも重要でもなく、本発明を実施するメカニズムや機能の名称、分け方、フォーマットは異なるものであってもよい。さらに、当業者には言うまでもなく、本発明のモジュール、ルーチン、機能、属性、方法、その他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せとして実施することができる。もちろん、本発明のコンポーネント（例えばモジュール）がソフトウェアとして実施された場合、そのコンポーネントはスタンドアロンのプログラムとして、大きなプログラムの一部として、複数の個別プログラムとして、静的または動的にリンクされたライブラリとして、カーネルロードモジュールとして、デバイスドライバとして、及び／またはコンピュータプログラミングの当業者が現在または将来知り得るその他の任意の方法として実施することができる。また、本発明は、特定のプログラミング言語や特定のオペレーティングシステムや環境における実装に決して限定されない。従って、本発明の開示は、本発明の範囲を例示することを目的とするものであり、限定することを目的とはしていない。本発明の範囲は特許請求の範囲に記載されている。
【図１】
2014170539.tif 000003
【図２】
2014170539.tif 000004
【図３Ａ】
2014170539.tif 000005
【図３Ｂ】
2014170539.tif 000006
【図３Ｃ】
2014170539.tif 000007
【図３Ｄ】
2014170539.tif 000008
【図３Ｅ】
2014170539.tif 000009
【図３Ｆ】
2014170539.tif 000010
【図４】
2014170539.tif 000011
【図５】
2014170539.tif 000012
【図６Ａ】
2014170539.tif 000013
【図６Ｂ】
2014170539.tif 000014
【図６Ｃ】
2014170539.tif 000015
【図６Ｄ】
2014170539.tif 000016
【図７Ａ】
2014170539.tif 000017
【図７Ｂ】
2014170539.tif 000018
【図８Ａ】
2014170539.tif 000019
【図８Ｂ】
2014170539.tif 000020
【図８Ｃ】
2014170539.tif 000021