(57)【特許請求の範囲】
【請求項１】
ハンドヘルド装置にデータを記憶する方法であって、前記データが少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
前記方法は、
各前記レコードを前記ハンドヘルド装置内の資源データベースに資源として記憶するステップと、
各レコード内に含まれる前記キーワードを長整数に変換するステップであって、前記キーワードを変換することによって得られる前記長整数は、１）キーワード内の各文字を所定の規則に従って整数に夫々変換し、２）変換した夫々の整数に、対応する指数関数（Ｎi）を夫々乗じ、ここで基数Ｎはすべての前記レコードのキーワードに関係する異なる文字の合計数に等しい定数であり、指数ｉは各文字のキーワード内の位置によって夫々決まる、３）前記指数関数を夫々乗じて得た結果を合計し、Ｎを基数とする整数を計算することによって求められる、前記変換するステップと、
前記長整数を２つの部分に分割して、それぞれを資源タイプおよび資源ＩＤに割り当てるステップと、
前記割り当てられた資源タイプおよび資源ＩＤを、前記レコードに対応する前記資源データベースのヘッダに含まれる資源情報項目内に夫々記憶するステップと
を含む方法。
【請求項２】
各前記レコードを資源として前記ハンドヘルド装置内の資源データベースに記憶する前記ステップにおいて、前記レコード内に含まれる前記キーワード以外の内容のみが資源として記憶されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記割り当てるステップが、前記長整数の先頭の４バイトを資源タイプに割り当て、前記長整数の最後の２バイトを資源ＩＤに割り当てる、請求項１に記載の方法。
【請求項４】
それぞれの資源データベースから前記資源タイプおよび前記資源ＩＤに固有に対応する前記資源内のすべてのデータを、取り出されたデータとして取り出すステップをさらに含む、請求項１に記載の方法。
【請求項５】
ハンドヘルド装置にデータを記憶する装置であって、前記データは少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
前記装置は、
少なくとも一つの前記レコードに含まれる前記キーワードを長整数に変換する文字列−整数変換手段であって、前記変換手段は前記キーワードを変換することによって得られる前記長整数を、１）キーワード内の各文字を所定の規則に従って整数に夫々変換し、２）変換した夫々の整数に、対応する指数関数（Ｎi）を夫々乗じ、ここで基数Ｎはすべての前記レコードのキーワードに関係する異なる文字の合計数に等しい定数であり、指数ｉは各文字のキーワード内の位置によって夫々決まる、３）前記指数関数を夫々乗じて得た結果を合計し、Ｎを基数とする整数を計算することによって求める、前記文字列−整数変換手段と、
前記長整数を資源タイプおよび資源ＩＤとして２つの部分に分割して、それぞれを資源タイプおよび資源ＩＤに割り当て、前記資源タイプと前記資源ＩＤと前記レコードの内容とを結合することによって新規資源を形成する資源形成手段と、
前記新規資源を前記ハンドヘルド装置内の資源データベースに加える資源データベース更新手段と
を含む装置。
【請求項６】
前記資源形成手段が、前記長整数の先頭の４バイトを資源タイプに割り当て、前記長整数の最後の２バイトを資源ＩＤに割り当てる、請求項５に記載の装置。
【請求項７】
ハンドヘルド装置にデータを記憶するためのコンピュータ読取可能な記録媒体であって、前記データが少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
各前記レコードを前記ハンドヘルド装置内の資源データベースに資源として記憶するステップと、
各レコード内に含まれる前記キーワードを長整数に変換するステップであって、前記キーワードを変換することによって得られる前記長整数は、１）キーワード内の各文字を所定の規則に従って整数に夫々変換し、２）変換した夫々の整数に、対応する指数関数（Ｎi）を夫々乗じ、ここで基数Ｎはすべての前記レコードのキーワードに関係する異なる文字の合計数に等しい定数であり、指数ｉは各文字のキーワード内の位置によって夫々決まる、３）前記指数関数を夫々乗じて得た結果を合計し、Ｎを基数とする整数を計算することによって求められる、前記変換するステップと、
前記長整数を２つの部分に分割して、それぞれを資源タイプおよび資源ＩＤに割り当てるステップと、
前記割り当てられた資源タイプおよび資源ＩＤを、前記レコードに対応する前記資源データベースのヘッダに含まれる資源情報項目内に夫々記憶するステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項８】
前記割り当てるステップにおいて、前記長整数の先頭の４バイトを資源タイプに割り当て及び前記長整数の最後の２バイトを資源ＩＤに割り当てるようにコンピュータに実行させることを特徴とする請求項７に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハンドヘルド装置のデータ記憶およびデータ取出しを行う方法に関し、詳細には、キーワードによってハンドヘルド装置のデータ記憶およびデータ取出しを行う方法に関する。
【０００２】
【従来の技術】
ローエンドの電子ノートブックや携帯電話からハイエンドのパーム・コンピュータやハンドヘルド・コンピュータまで、様々な種類のハンドヘルド装置がある。ハンドヘルド装置の一例として、３ＣＯＭ社によるPalmPilotは、６３％を超える世界市場占有率を有する。現在、PalmPilotプラットフォーム上の開発業者は１０，０００を超えており、２，０００社を超えるサード・パーティ製造業者が、通信、ゲームなどを含む様々なアプリケーションを開発している。
【０００３】
ハンドヘルド装置には多くの種類があるが、１つ共通していることは、軽量性を維持するために小型軽量であることである。したがって、ハンドヘルド装置上のハードウェア資源はきわめて限られている。
【０００４】
デスクトップ・システムと比較すると、ハンドヘルド装置上には磁気ディスクなどの大容量記憶装置はない。ハンドヘルド装置上には、通常、内部メモリとしてメモリ・モジュールがある。この内部メモリのサイズは、通常１メガバイト未満である。メモリはＰＣＭＣＩＡカードを使用して拡張することができるが、通常は数メガバイトであり、デスクトップ・システムで広く使用されている磁気ディスクや光ディスクとは比べものにならない。
【０００５】
低消費電力要件のために、ハンドヘルド装置の演算速度もきわめて限られており、デスクトップ・システムの速度とは比較にならない。
【０００６】
ハンドヘルド装置上の限られたメモリ空間のため、より多くのメモリを節約するようにハンドヘルド装置にデータを記憶する方法が、常に議論される技術的問題になっている。また、ハンドヘルド装置上の限られた演算速度のため、ハンドヘルド装置に記憶されているデータの検索方法が、議論に値するもう一つの技術的問題である。
【０００７】
上記の問題を解決するために、ハンドヘルド装置上で使用されるオペレーティング・システムについて考慮しなければならない。資源が限られたハンドヘルド装置のための様々なオペレーティング・システムがある。それらの中には、３ＣＯＭ社によるPalm OS、マイクロソフト社によるWindows CE、アップル社によるNewton Intelligence、Geoworks社によるＧＥＯＳ、Magic社によるMagic Cap、CoによるPenPointなどがある。本発明について、例としてPalm OSを使用したハンドヘルド装置を使用して、上記の技術的問題について考察し解決する。
【０００８】
ＩＢＭによるWorkPadおよび３ＣＯＭによるPalmPilotは、Palm OSに基づく典型的な製品である。現在のWorkPadは１〜２ＭＢのメモリを有し、演算速度は、１６ＭＨｚのMotorola 68000シリーズ・プロセッサによって限定されている。
【０００９】
WorkPadでは、メモリ空間はＲＯＭとＲＡＭに分けられ、この２つは同一メモリ・モジュール上にある。ＲＯＭの容量は０．５〜１．５ＭＢである。ＲＡＭの容量は最低１ＭＢである。Palm OSの主なアプリケーションは、ＲＯＭにプリロードされる。その他のアプリケーションまたは代替アプリケーションとシステム拡張部分は、ＲＡＭにロードすることができる。しかし、ＲＡＭの容量が限られているために、これは常に可能であるとは限らない。ＲＯＭを交換することによってアプリケーションをアップグレードすることができる。システム全体とアプリケーショは、新しいメモリ・モジュールを組み込むことによってアップグレードすることができる。
【００１０】
Palm OSは、３２ビット・システムとして設計され、アドレスは３２ビットであり、コードとデータを記憶するために４ＧＢのアドレス空間をサポートし、少ないＲＡＭで効率的に機能する。Palm OSは、ＲＡＭを２つの仮想部分であるダイナミックＲＡＭと記憶ＲＡＭとに分割する。ダイナミックＲＡＭは３２ＫＢであり、スタック、グローバル変数、および一時メモリのためのPalm OSの作業空間として使用される。ダイナミックＲＡＭは、デスクトップ・システム内の内部ＲＡＭに似ている。他方のＲＡＭは記憶ＲＡＭであり、Appointment、Todo List、MemoPad、Address Bookなどのユーザ・データを記憶するために使用される。ユーザ・データは、サード・パーティ開発業者によって開発されたWorkPadアプリケーションとすることができる。記憶ＲＡＭは、通常のデスクトップ・システムのディスク記憶装置と類似している。ハンドヘルド装置が「オフ」（低電力休眠モード）にされたときでも、メモリには常時電力供給され、２つのＲＡＭ領域内のデータが保持される。ハンドヘルド装置がリセットされると全メモリが保護されるが、ダイナミックＲＡＭはブート手続きの一部として初期設定し直されることがある。
【００１１】
Palm OS装置は使用可能なダイナミック・メモリの量は限られており、ディスク記憶装置ではなく不揮発性ＲＡＭを使用するため、従来のファイル・システムは、会合やアドレス帳項目などのユーザ・データの記憶と取出しのための最適な手段ではない。
【００１２】
従来のファイル・システムは、まず、ディスクからファイルの全部または一部をメモリ・バッファに読み込み、メモリ・バッファ内の情報を使用または更新し、次に、更新された情報をディスクに書き戻す。ディスクとの間の読取りまたは書込みに長い待ち時間を要するため、小容量のメモリ・バッファを使用するのは実際的ではなく、一般には一度に何キロバイトものデータがディスクとの間で読取りまたは書込みされる。
【００１３】
Palm OS上の不揮発性情報はすべてメモリに記憶されるため、Palm OS装置上では、データのアクセスおよび更新を適切な位置で直接行う方がより道理にかなっている。これによって、データを別のメモリ・バッファとの間で転送するファイル・システムにおける余分なオーバーヘッドがなくなり、ダイナミック・メモリの所要量も少なくなる。
【００１４】
現在のデータベース技法は、ファイル・システムを使用しなければPalm OSベースのハンドヘルド装置では使用することができない。たとえば、現在のデータベース技法では、キーワードのために索引ファイルがセットアップされ、そのキーワードを索引として使用してデータベースを検索する。しかし、Palm OSベースのハンドヘルド装置では、キーワードによってデータベースを検索するために事前書込みプログラムによってレコードをキーワードと１つずつ比較しなければならない。このようなプログラムの作成は、複雑で時間がかかるだけでなく、文字列比較演算量が多いために検索速度もきわめて遅い。
【００１５】
Palm OSベースのハンドヘルド装置の限られた記憶空間内でデータを効率的に記憶し、迅速に検索する方法が、本発明で解決する問題である。
【００１６】
【発明が解決しようとする課題】
本発明の第１の目的は、Palm OSベースのハンドヘルド装置にデータを記憶する方法を提供することである。
【００１７】
本発明の第２の目的は、Palm OSベースのハンドヘルド装置からキーワードによってデータを取り出す方法を提供することである。
【００１８】
本発明の第３の目的は、Palm OSベースのハンドヘルド装置にデータを記憶する装置を提供することである。
【００１９】
本発明の第４の目的は、Palm OSベースのハンドヘルド装置からキーワードによってデータを取り出す装置を提供することである。
【００２０】
【課題を解決するための手段】
第１の目的を達成するために、本発明は、Palm OSベースのハンドヘルド装置にデータを記憶する方法であって、前記データが少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
各前記レコードを前記ハンドヘルド装置内の資源データベースに資源として記憶するステップを含み、
各レコード内に含まれる前記キーワードは長整数に変換され、次に２つの部分に分割され、前記２つの部分がそれぞれ資源タイプおよび資源ＩＤとして、前記レコードに対応する前記資源データベースのヘッダに含まれる資源情報項目内に記憶される方法を提供する。
【００２１】
第２の目的を達成するために、本発明は、データが本発明の方法を使用して記憶されている、Palm OSベースのハンドヘルド装置からキーワードによってデータを取り出す方法であって、
前記キーワードを長整数に変換するステップと、
前記長整数を、それぞれ資源タイプおよび資源ＩＤとして２つの部分に分割し、Palm OSを使用してそれぞれの資源データベースから前記資源タイプおよび前記資源ＩＤに固有に対応する資源を取り出すステップと、
前記資源内のすべてのデータを取り出されたデータとして入手するステップとを含む方法を提供する。
【００２２】
第３の目的を達成するために、本発明は、Palm OSベースのハンドヘルド装置にデータを記憶する装置であって、前記データは少なくとも１つのレコードを含み、各前記データは前記レコードを識別するために使用されるキーワードを含み、
前記レコードに含まれる前記キーワードを長整数に変換する文字列−整数変換手段と、
前記長整数をそれぞれ資源タイプおよび資源ＩＤとして２つの部分に分割し、前記資源タイプと前記資源ＩＤと前記レコードの内容とを結合することによって新規資源を形成する資源形成手段と、
前記新規資源を前記ハンドヘルド装置内の資源データベースに加える資源データベース更新手段と
を含む装置を提供する。
【００２３】
第４の目的を達成するために、本発明は、データが本発明の方法を使用して記憶されている、Palm OSベースのハンドヘルド装置からキーワードによってデータを取り出す装置であって、
前記キーワードを長整数に変換する文字列−整数変換手段と、
前記長整数を、それぞれ資源タイプおよび資源ＩＤとして２つの部分に分割し、Palm OSを使用してそれぞれの資源データベースから前記資源タイプおよび前記資源ＩＤに固有に対応する資源を取り出し、前記資源内のすべてのデータを入手する資源データベース取出し手段とを含む装置を提供する。
【００２４】
本発明では、キーワードを含むデータを記憶するとき、そのキーワードを資源タイプおよび資源ＩＤとして使用される長整数に変換する。その後、ＯＳ自体の機能を直接使用することができる。キーワードと索引を記憶する空間を節約することができる。さらに、整数演算は文字列演算よりもはるかに高速であり、キーワードによる通常の検索方法と比較して本発明の検索方法ははるかに高速である。
【００２５】
より一般的な使用の場合、文字列データを整数に変換してから記憶することができ、記憶空間が節約される。記憶する文字列データ内の文字の種類数をｎとした場合、本発明は空間を（１−ｌｏｇ（ｎ））／ｌｏｇ（２５６）×１００％節約することができる。もう一つの利点は、記憶されるデータがある種の暗号化を有し、その暗号が通常の方法では容易に読み取れないことである。
【００２６】
【発明の実施の形態】
本発明の方法および装置をよりよく理解できるように、まず、Palm OS環境におけるデータ記憶および管理について概説する。
【００２７】
Palm OS環境では、すべてのデータがチャンクとしてメモリに記憶される。Palm OSは、１組の資源管理プログラムを備え、それを使用してデータの入手と記憶を好都合に行うことができる。各データ・ブロックはローカルＩＤを持つ。ローカルＩＤは、データ・チャンクを指すカード相対参照であり、カードがハンドヘルド装置上のどのスロットに入っているかを問わず有効な状態を維持する。実行時にカードの規定アドレスが判断されると、ローカルＩＤを実ポインタまたはハンドルに迅速に変換することができる。
【００２８】
各チャンクには、固有の資源タイプと固有の資源ＩＤでタグを付けることができる。これらのタグ付きデータ・チャンクは資源と呼ばれ、資源データベースに記憶される。資源は、典型的には、画像、フォント、ダイアログ・レイアウトなどのアプリケーションのユーザ・インタフェース要素を記憶するために使用される。Palm OS環境では、アプリケーションは、実際には、１つまたは複数のコード資源として記憶されるコード資源と、その他の資源タイプとして同じデータベースに記憶されるグラフィックス要素およびその他の各種データを持つ資源データベースに過ぎない。
【００２９】
どの資源についても、資源データベースのヘッダに資源タイプと資源ＩＤが格納される。資源データは、メモリ・チャンクに記憶される。資源データベース・ヘッダは、何らかの一般データベース情報と、その後に続く資源テーブルを含む。資源テーブルはいくつかの資源情報テーブル項目を含む。テーブル内のすべての資源情報項目は、資源タイプ（４バイト）と、資源ＩＤ（２バイト）と、資源データを保存するメモリ・チャンクのローカルＩＤとを含む、１０バイト長である。
【００３０】
特定の資源の資源タイプと資源ＩＤは固有であるため、どの資源もその資源タイプと資源ＩＤによって固有に探し出すことができる。Palm OSには、資源データベースを管理するために使用可能ないくつかのＡＰＩがある。ＡＰＩの１つはDmGetResourceである。このＡＰＩは、資源タイプと資源ＩＤが入力パラメータとして与えられると、指定された資源データを指すポインタを返すことができる。
【００３１】
このため、本発明の発明人等は、キーワードによって識別可能な何らかのデータをメモリに記憶するときに、キーワードを資源タイプと資源ＩＤの２つの部分にそれぞれ分割し、それらを資源データベースのヘッダに格納することができると判断した。それと同時に、この関連データを資源と同じ資源データベースに格納することができる。これによって、Palm OS内の資源データに迅速にアクセスする組込み機能を使用して、アクセス速度を大幅に高速化することができる。
【００３２】
しかし、単にキーワードを資源タイプと資源ＩＤとして２つの部分に分割した場合、これによって固有性の問題が生じる。このようにすると、表現可能なキーワード（６バイトしかない）がきわめて限られる。このキーワードは「CODE」や「ADDR」などのシステム資源タイプと混同されやすい。したがって、キーワードを４バイト部分と２バイト部分に変換するために何らかの種類の変換が必要である。さらに、この変換は、この２つの部分の組合せの値が確実に固有になるようにする必要がある。
【００３３】
上記の変換方法は、限られたメモリにより多くのキーワードを記憶する方法に関係する。本開示の発明人等は、ワードの記憶方法について深く研究した。
【００３４】
通常の記憶方法では、各文字が８ビットのASCIIコードとして記憶される。たとえば、英数字を記憶する場合、５〜６ビットを使用して１つの英数字を表すことができれば、３０パーセントの空間を節約することができる。しかし、この種の変換によって、Palm OSの計算が増える可能性がある。
【００３５】
本発明では、折衷方法を使用する。すなわち、文字データをＮを基数とする整数に変換する。ただし、Ｎは文字セットで使用される文字の種類数である。
【００３６】
わかりやすいように、本明細書では、２６個の英字とスペース文字のみを含む文字セットの例を示す。したがって、ここではＮは２７である。
【００３７】
最初のステップで、各文字を表Ａに示す対応する整数に変換し、スペースを０に変換する。
【表１】
0003731859.tif 000002
【００３８】
２番目のステップで、各整数に対応する２７の指数関数を乗じる。指数関数の順序は、文字列内の文字の位置に関係する。
【００３９】
３番目のステップで、すべての乗算を合計し、２７を基数とする整数を求める。
【００４０】
一例を示して、上記の変換を概説する。
【００４１】
「accelerate」というキーワードがあるものとする。まず、この１０文字を次のように１０個の整数に変換する（表１参照）。
ａ    ｃ    ｃ    ｅ    ｌ    ｅ    ｒ    ａ    ｔ    ｅ
１    ３    ３    ５    １２  ５    １８  １    ２０  ５
【００４２】
次に、これらの各整数に、キーワード内の左から右（０から９）の位置によって決まる順序で、２７の指数関数を乗じる。したがって、以下の１０個の乗算の積を求める。
１＊２７0
３＊２７1
３＊２７2
５＊２７3
１２＊２７4
５＊２７5
１８＊２７6
１＊２７7
２０＊２７8
５＊２７9
【００４３】
最後に、この１０個の乗算の積を合計し、以下の、２７を基数とする整数を求める。
４３，７９４，０９０，２９９，０７１
【００４４】
この整数は長整数である。ハンドヘルド装置では、６バイトのみで記憶することができる。しかし、通常の方法を使用した場合、「accelerate」を１０バイトを使用して記憶しなければならない。これによって、最大４バイトまで節約することができる。
【００４５】
上記の考え方をより一般的な条件に拡大すると、以下の式によって、キーワードＢをＮを基数とする整数ｍで表すことができる。
【数１】
0003731859.tif 000003
上式で、
ＬはキーワードＢの長さ、
Ｎは変換表Ａ内の構成要素の数
ｂｉは、キーワードＢ内のｉ番目の文字のASCII値、
ａ（ｂｉ）は、変換表Ａ内の対応する変換された値である。
【００４６】
ｓ（ｉ）の値は、キーワード内の文字のコーディング順序に関係する。たとえば、
（１）左から右にコーディングすると、ｓ（１），．．．，ｓ（Ｌ）は１，．．．，Ｌの値をとり、
（２）右から左にコーディングすると、ｓ（１），．．．，ｓ（Ｌ）はＬ，．．．，１の値をとり、
（３）最初に基数位置の文字をコーディングし、次に偶数位置の文字をコーディングすると、ｓ（１），．．．，ｓ（Ｌ）は１，１＋Ｌ／２，２＋Ｌ／２，．．．，Ｌ／２，Ｌの値をとる。
【００４７】
上記の３通りのコーディング方法は、このアルゴリズムを理解しやすくするための例に過ぎない。実際の環境では、上記の３通りの方法または他の任意の方法（他のコーディング順序）のうちのいずれか１つの方法を使用することができる。
【００４８】
キーワード「accelerate」の場合、Ｌ＝１０，ｂ（１），．．，ｂ（Ｌ）がａ，ｃ，ｃ，ｅ，ｌ，ｅ，ｒ，ａ，ｔ、ｅに対応する。上記の３通りの方法に対応するｓ（１），．．．，ｓ（１０）は以下のようになる。
（１）１，２，．．．，１０
（２）１０，９，．．．，１
（３）１，６，２，７，．．．，５，１０
【００４９】
英語の語を変換する場合、右（終わり）から左（始め）の順序をとり、１０文字をキーワードＢとして選択することができる。その場合、キーワードは、語の長さが１０を超える場合でも異なる英語の語ごとに異なることになる。したがって各語を一義的に識別することができる。
【００５０】
上記の変換方法に従って、Palm OS装置にデータを記憶する本発明を容易に実施することができる。ここで、データは少なくとも１つのレコードを含み、各レコードはそれ自体を識別するために使用可能な固有キーワードを有する。この記憶方法は、以下のステップから成る。
各レコードをハンドヘルド装置の資源データベースの１つに資源として記憶する。
各レコードのキーワードを長整数に変換し、その長整数を２つの部分に分割し、それらをそれぞれ資源データベースのヘッダの項目の１つで資源タイプおよび資源ＩＤとして使用する。
【００５１】
上記の方法では、キーワードを除く各レコードの内容のみを記憶することができ、このようにして多くのメモリを節約することができる。
【００５２】
このプログラムは創造的な作業なしで容易にコーディングすることができるため、本明細書ではコーディングの詳細は示さない。
【００５３】
たとえば、Palm OSベースの装置では新規の資源データベースを作成することができる。その場合、データのレコードを順次に処理し、キーワードを長整数に変換し、次に資源タイプと資源ＩＤに変換し、データの内容を資源データとして作成する。その後、この資源をPalm OSが備えるＡＰＩを介して資源データベースに加える。
【００５４】
図１に、この記憶方法を実施する第１の実施形態のフローチャートを示す。ステップ１２０で、ハンドヘルド装置に記憶する新規データ・レコードがあるかどうかを判断する。ない場合は、このプロセスを終了し、ある場合は、ステップ１３０に進む。ステップ１３０で、レコードからキーワードを取り出す。ステップ１４０で、キーワードを６バイトの長整数に変換する。ステップ１５０で、長整数の先頭の４バイトを資源タイプとして使用し、長整数の最後の２バイトを資源ＩＤとして使用し、キーワードによって索引づけされたデータを資源データとして使用して、データの内容を資源レコードに入れる。ステップ１６０で、この新規資源を資源データベースに加える。次にプロセスはステップ１２０に戻る。
【００５５】
上記の各ステップは、Palm装置で直接実施される。他のより好都合な方法では、Palm OS資源データベースの仕様に従って、デスクトップ装置の開発ツールを使用して資源データベース・テンプレートを作成することができる。次に、本発明で説明した方法を使用して、キーワードとデータの内容とを資源データベースに入れる。最後に、HotSyncによって、この資源データベースをPalm装置に転送することができる。
【００５６】
図２に、記憶方法を実施する第２の実施形態のフローチャートを示す。ステップ１１０で、Palm OSによって要求されている形式に基づいてデスクトップ装置上で資源データベース・テンプレートを作成する。ステップ１２０で、ハンドヘルド装置に新規レコードが追加されるかどうかを判断する。追加しない場合、プロセスは１７０に進み、追加する場合は１３０に進む。ステップ１３０で、データからキーワードを取り出す。ステップ１４０で、キーワードを６バイトの長整数に変換する。ステップ１５０で、長整数の先頭の４バイトを資源タイプとして使用し、長整数の最後の２バイトを資源ＩＤとして使用し、キーワードによって索引づけされたデータを資源データとして使用して、データの内容を資源レコードに入れる。ステップ１６０で、この新規資源を資源データベースに加える。次にプロセスはステップ１２０に戻る。ステップ１７０で、Hotsync（またはその他の方法）によってデータベースをPalm装置に転送する。
【００５７】
上記のHotSyncは、デスクトップ装置とPalm OS装置との間でデータを同期させる方法である。Palm装置での変更をデスクトップの対応する構成要素で同期させることができ、その逆も可能である。
【００５８】
上記のHotSync方式は、デスクトップによってハンドヘルド・リンケージ機能に組み込まれる。クレイドルを使用してハンドヘルド装置とデスクトップＰＣとの間で通信することができる。ワンタッチHotSyncによって、ハンドヘルド・データのバックアップと、ハンドヘルド装置とデスクトップ装置との間の同期を容易に実現することができる。
【００５９】
本発明は、上記のデータ記憶方法に対応するデータ取出し方法も提供する。これは、キーワードを使用してPalm OS装置からデータを取り出す方法である。データは本発明の記憶方法を使用してハンドヘルド装置に記憶されている。
【００６０】
この検索方法は、
キーワードを長整数に変換するステップと、
前記整数を２つの部分に分割し、それぞれ資源タイプおよび資源ＩＤとして使用するステップと、
資源データベース内の資源タイプと資源ＩＤの組合せに固有に対応する資源を資源データベースから入手するステップとから成る。
【００６１】
コーディングの詳細は、創造的作業がなく上記プログラマにとっては些細な作業であるため、本明細書には記載しない。
【００６２】
たとえば、キーワードを整数に変換し、それを２つの部分に分割し、それらの値を資源タイプと資源ＩＤに与える。次に、以下のＡＰＩを使用してデータベースから対応する資源を入手することができる。
VoidHand DmGetResource(ULongtype,Int ID)
【００６３】
上記で、「type」は資源タイプを指し、「ＩＤ」は資源ＩＤを指す。
【００６４】
成功した場合、その資源データを指すポインタが返される。
【００６５】
図３に、Palm OS装置からデータを取り出すフローチャートを示す。ステップ１３０で、キーワードを入手する。ステップ１４０で、キーワードを６バイトの整数に変換する。ステップ１５０で、この整数の先頭４バイトを資源タイプに割り当て、最後の２バイトを資源ＩＤに割り当てる。ステップ１８０で、Palm OSを使用して、資源タイプと資源ＩＤとに対応するＡＰＩ資源ポインタを入手する。ステップ１９０で、空でない場合は資源データのあるメモリ・ブロックを指すポインタが返される。
【００６６】
上記のデータ記憶および取出し方法の用途は広い。たとえば、様々な辞書やアドレス帳、経費内訳帳など、キーワードを使用して記憶項目に索引づけする分野野であればどのような分野でも使用可能である。上述の方法は、自動スペルチェックおよび修正でも使用することができる。
【００６７】
図４に、本発明による、Palm OSベースのハンドヘルド装置上でデータを記憶するための装置を示す。この装置は、文字−整数変換器４０１と、資源アセンブラ４０２と、資源データベース更新装置４０３とを含む。番号４０４は、Palm OS装置内の資源データベースを示す。動作に際しては、文字−整数変換器４０１がキーワードを長整数に変換し、その長整数を資源アセンブラ４０２に出力する。次に、この長整数は資源アセンブラ４０２によって、それぞれ資源タイプおよび資源ＩＤとして資源が２つの部分に分割され、レコードの内容を有する新しい資源として組み立てられる。最後に、資源更新装置４０３がシステムＡＰＩを使用してこの新規資源を資源データベース４０４に加える。
【００６８】
図５に、Palm OSハンドヘルド装置からデータを取り出す装置を示す。この装置は、文字−整数変換器５０１と、資源データベース検索装置５０２とを含む。番号４０４はハンドヘルド装置内の資源データベースを示す。動作に際しては、文字−整数変換器５０１が入力キーワードを長整数に変換し、次にその長整数をデータベース検索装置５０２に入力する。長整数はデータベース検索装置５０２によって資源タイプと資源ＩＤに分割され、最後に、その資源タイプと資源ＩＤとの組合せを使用して、資源データベースから４０４固有の資源ブロックが取り出される。
【００６９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００７０】
（１）  ハンドヘルド装置にデータを記憶する方法であって、前記データが少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
前記方法は、
各前記レコードを前記ハンドヘルド装置内の資源データベースに資源として記憶するステップと、
各レコード内に含まれる前記キーワードを長整数に変換するステップであって、前記キーワードを変換することによって得られる前記長整数は、１）キーワード内の各文字を所定の規則に従って整数に夫々変換し、２）変換した夫々の整数に、対応する指数関数（Ｎi）を夫々乗じ、ここで基数Ｎはすべての前記レコードのキーワードに関係する異なる文字の合計数に等しい定数であり、指数ｉは各文字のキーワード内の位置によって夫々決まる、３）前記指数関数を夫々乗じて得た結果を合計し、Ｎを基数とする整数を計算することによって求められる、前記変換するステップと、
前記長整数を２つの部分に分割して、それぞれを資源タイプおよび資源ＩＤに割り当てるステップと、
前記割り当てられた資源タイプおよび資源ＩＤを、前記レコードに対応する前記資源データベースのヘッダに含まれる資源情報項目内に夫々記憶するステップと
を含む方法。
（２）  各前記レコードを資源として前記ハンドヘルド装置内の資源データベースに記憶する前記ステップにおいて、前記レコード内に含まれる前記キーワード以外の内容のみが資源として記憶されることを特徴とする、（１）に記載の方法。
（３）  前記割り当てるステップが、前記長整数の先頭の４バイトを資源タイプに割り当て、前記長整数の最後の２バイトを資源ＩＤに割り当てる、（１）に記載の方法。
（４）  それぞれの資源データベースから前記資源タイプおよび前記資源ＩＤに固有に対応する前記資源内のすべてのデータを、取り出されたデータとして取り出すステップをさらに含む、（１）に記載の方法。
（５）  ハンドヘルド装置にデータを記憶する装置であって、前記データは少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
前記装置は、
少なくとも一つの前記レコードに含まれる前記キーワードを長整数に変換する文字列−整数変換手段であって、前記変換手段は前記キーワードを変換することによって得られる前記長整数を、１）キーワード内の各文字を所定の規則に従って整数に夫々変換し、２）変換した夫々の整数に、対応する指数関数（Ｎi）を夫々乗じ、ここで基数Ｎはすべての前記レコードのキーワードに関係する異なる文字の合計数に等しい定数であり、指数ｉは各文字のキーワード内の位置によって夫々決まる、３）前記指数関数を夫々乗じて得た結果を合計し、Ｎを基数とする整数を計算することによって求める、前記文字列−整数変換手段と、
前記長整数を資源タイプおよび資源ＩＤとして２つの部分に分割して、それぞれを資源タイプおよび資源ＩＤに割り当て、前記資源タイプと前記資源ＩＤと前記レコードの内容とを結合することによって新規資源を形成する資源形成手段と、
前記新規資源を前記ハンドヘルド装置内の資源データベースに加える資源データベース更新手段と
を含む装置。
（６）  前記資源形成手段が、前記長整数の先頭の４バイトを資源タイプに割り当て、前記長整数の最後の２バイトを資源ＩＤに割り当てる、（５）に記載の装置。
（７）  ハンドヘルド装置にデータを記憶するためのコンピュータ読取可能な記録媒体であって、前記データが少なくとも１つのレコードを含み、各前記レコードが前記レコードを識別するために使用されるキーワードを含み、
各前記レコードを前記ハンドヘルド装置内の資源データベースに資源として記憶するステップと、
各レコード内に含まれる前記キーワードを長整数に変換するステップであって、前記キーワードを変換することによって得られる前記長整数は、１）キーワード内の各文字を所定の規則に従って整数に夫々変換し、２）変換した夫々の整数に、対応する指数関数（Ｎi）を夫々乗じ、ここで基数Ｎはすべての前記レコードのキーワードに関係する異なる文字の合計数に等しい定数であり、指数ｉは各文字のキーワード内の位置によって夫々決まる、３）前記指数関数を夫々乗じて得た結果を合計し、Ｎを基数とする整数を計算することによって求められる、前記変換するステップと、
前記長整数を２つの部分に分割して、それぞれを資源タイプおよび資源ＩＤに割り当てるステップと、
前記割り当てられた資源タイプおよび資源ＩＤを、前記レコードに対応する前記資源データベースのヘッダに含まれる資源情報項目内に夫々記憶するステップと
を含むプログラムを記録したコンピュータ読取可能な記録媒体。
（８）  前記割り当てるステップが、前記長整数の先頭の４バイトを資源タイプに割り当て、前記長整数の最後の２バイトを資源ＩＤに割り当てるプログラムを記録した（７）に記載のコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【図１】本発明による、Palm OSベースのハンドヘルド装置上にデータを記憶する第１の実施形態のフローチャートである。
【図２】本発明による、Palm OSベースのハンドヘルド装置上にデータを記憶する第２の実施形態のフローチャートである。
【図３】本発明による、Palm OSベースのハンドヘルド装置上でのキーワードによるデータ検索を示すフローチャートである。
【図４】本発明による、Palm OSベースのハンドヘルド装置上にデータを記憶する装置を示すブロック図である。
【図５】本発明による、Palm OSベースのハンドヘルド装置上でキーワードによってデータを取り出す装置を示すブロック図である。
【符号の説明】
４０１  文字−整数変換器
４０２  資源アセンブラ
４０３  資源更新装置
４０４  資源データベース
５０１  文字−整数変換器
５０２  データベース検索装置
【図１】
0003731859.tif 000004
【図２】
0003731859.tif 000005
【図３】
0003731859.tif 000006
【図４】
0003731859.tif 000007
【図５】
0003731859.tif 000008