(57)【特許請求の範囲】
【請求項１】
制御部及び表示部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
前記表示部に表示された一のオブジェクトが記憶部に一時的に記憶された他のオブジェクトへ置換されたか否かを前記制御部により検出し、
置換されたことを検出した場合に、前記制御部により前記他のオブジェクト及び一のオブジェクトを関連付けて記憶部に記憶し、
前記一のオブジェクトが前記表示部に表示される場合に、前記制御部により前記記憶部を参照し、前記一のオブジェクトに関連付けられた他のオブジェクトを抽出する
処理を実行させるプログラム。
【請求項２】
前記一のオブジェクトを前記制御部により抽出した前記他のオブジェクトへ置換し、
置換された前記他のオブジェクトを前記制御部により前記表示部に表示する
請求項１に記載のプログラム。
【請求項３】
記憶する処理は、
置換されたことを検出した場合に、前記制御部により前記他のオブジェクトのハッシュ値と、前記一のオブジェクトのハッシュ値とを算出し、
前記制御部により前記他のオブジェクト及び該他のオブジェクトのハッシュ値と、一のオブジェクト及び一のオブジェクトのハッシュ値とを関連付けて記憶する
請求項１または２に記載のプログラム。
【請求項４】
記憶する処理は、
他のオブジェクトのハッシュ値に対応付けて該他のオブジェクトのサムネイルを記憶する
請求項３に記載のプログラム。
【請求項５】
情報処理を行う情報処理装置において、
表示部に表示された一のオブジェクトが記憶部に一時的に記憶された他のオブジェクトへ置換されたか否かを検出する検出部と、
該検出部により置換されたことを検出した場合に、前記他のオブジェクト及び一のオブジェクトを関連付けて記憶部に記憶する記憶処理部と、
前記一のオブジェクトが前記表示部に表示される場合に、前記記憶部を参照し、前記一のオブジェクトに関連付けられた他のオブジェクトを抽出する抽出部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにより情報処理を行うためのプログラム及び情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置を用いて、データを編集する技術が開示されている（特許文献１及び２参照）。これらはデータをクリップボードにコピーし、貼り付ける技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−１８５５１４号公報
【特許文献２】特開平８−２１２２１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、後にクリップボードのデータを利用しようとした際には、当該データが既に消去されていることがあり、再び、当該データを探し出さなければならないという問題があった。
【０００５】
本発明は斯かる事情に鑑みてなされたものである。その目的は、ユーザの使用状況に応じて一のオブジェクトに対応する他のオブジェクトを利用することが可能なプログラム等を提供することにある。
【課題を解決するための手段】
【０００６】
本願に開示するプログラムは、制御部及び表示部を有するコンピュータにより情報処理を行うプログラムにおいて、コンピュータに、前記表示部に表示された一のオブジェクトが記憶部に一時的に記憶された他のオブジェクトへ置換されたか否かを前記制御部により検出し、置換されたことを検出した場合に、前記制御部により前記他のオブジェクト及び一のオブジェクトを関連付けて記憶部に記憶し、前記一のオブジェクトが前記表示部に表示される場合に、前記制御部により前記記憶部を参照し、前記一のオブジェクトに関連付けられた他のオブジェクトを抽出する処理を実行させる。
【発明の効果】
【０００７】
本願の一観点によれば、ユーザの使用状況に応じて一のオブジェクトに対応する他のオブジェクトを利用することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】置換処理のイメージを示す説明図である。
【図２】変換処理のイメージを示す説明図である。
【図３】情報処理装置のハードウェア群を示す説明図である。
【図４】文例ファイルのレコードレイアウトを示す説明図である。
【図５】退避テーブルのレコードレイアウトを示す説明図である。
【図６】オブジェクトテーブルのレコードレイアウトを示す説明図である。
【図７】リンクテーブルのレコードレイアウトを示す説明図である。
【図８】置換処理の手順を示すフローチャートである。
【図９】置換処理の手順を示すフローチャートである。
【図１０】置換処理の手順を示すフローチャートである。
【図１１】置換処理の手順を示すフローチャートである。
【図１２】置換処理の手順を示すフローチャートである。
【図１３】置換処理の手順を示すフローチャートである。
【図１４】置換処理のイメージを示す説明図である。
【図１５】実施の形態２に係るオブジェクトテーブルのレコードレイアウトを示す説明図である。
【図１６】実施の形態２に係るリンクテーブルのレコードレイアウトを示す説明図である。
【図１７】置換処理の手順を示すフローチャートである。
【図１８】置換処理の手順を示すフローチャートである。
【図１９】置換処理の手順を示すフローチャートである。
【図２０】置換処理の手順を示すフローチャートである。
【図２１】置換処理の手順を示すフローチャートである。
【図２２】置換処理の手順を示すフローチャートである。
【図２３】置換処理の手順を示すフローチャートである。
【図２４】置換処理の手順を示すフローチャートである。
【図２５】実施の形態３に係るパーソナルコンピュータのハードウェア群を示すブロック図である。
【図２６】実施の形態３に係るリンクテーブルのレコードレイアウトを示す説明図である。
【図２７】リンク記憶処理の手順を示すフローチャートである。
【図２８】リンク記憶処理の手順を示すフローチャートである。
【図２９】閾リンク数に基づくリンク抽出処理の手順を示す説明図である。
【図３０】閾リンク数に基づくリンク抽出処理の手順を示す説明図である。
【図３１】閾リンク数に基づくリンク抽出処理の手順を示す説明図である。
【図３２】閾リンク数に基づくリンク抽出処理の手順を示す説明図である。
【図３３】閾リンク数に基づくリンク抽出処理の手順を示す説明図である。
【図３４】リンクワークテーブルのレコードレイアウトを示す説明図である。
【図３５】閾リンク数に応じたハッシュ値の抽出処理手順を示すフローチャートである。
【図３６】閾リンク数に応じたハッシュ値の抽出処理手順を示すフローチャートである。
【図３７】閾リンク数に応じたハッシュ値の抽出処理手順を示すフローチャートである。
【図３８】リンクワークテーブルを用いたリンク欄及び省略データの表示処理手順を示すフローチャートである。
【図３９】上述した形態のパーソナルコンピュータの動作を示す機能ブロック図である。
【図４０】実施の形態４に係るパーソナルコンピュータのハードウェア群を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は置換処理のイメージを示す説明図である。図１Ａに示すように、アプリケーションＡ１（以下、場合によりアプリケーションＡで代表する）上にオブジェクトＴ１（以下、場合によりオブジェクトＴで代表する）が表示されている。オブジェクトＴ１は例えば、画像データ、テキストデータ、グラフ、表、音声データ、動画データ、またはＵＲＬ（Uniform Resource Locator）が記述されたハイパーリンクである。オブジェクトＴ１はテキストと画像データ等との組み合わせであっても良い。その他、オブジェクトはパワーポイント（登録商標）等のプレゼンテーションアプリケーションのスライドであっても良い。また、ＰＤＦ（Portable Document Format：登録商標）等の文書表示アプリケーション上の画像データ、テキストデータ、または画像データとテキストデータとの組み合わせであっても良い。また、オブジェクトはＨＴＭＬ(HyperText Markup Language)で作成されたWebページデータであっても良い。本実施形態ではオブジェクトＴ１をＧＩＦ(Graphics Interchange Format)形式の画像データ、オブジェクトＴ２をテキストデータであるものとして説明する。
【００１０】
アプリケーションＡ１にてユーザはオブジェクトＴ１をコピーしクリップボードに記憶する。図１Ｂでは異なるアプリケーションＡ２において「○×システム構成図」と記述されたオブジェクトＴ２が表示されている。ユーザは、「○×システム構成図」のオブジェクトＴ２を選択する。ここで選択したオブジェクトＴ２上で、オブジェクトＴ１を、貼付処理した場合、図１Ｃに示す如く、アプリケーションＡ２上にオブジェクトＴ１が置換貼り付けされる。この場合、オブジェクトＴ２とオブジェクトＴ１とを関連付けて、記憶しておく。
【００１１】
図２は変換処理のイメージを示す説明図である。図２ＡにおいてはアプリケーションＡ２において「まるばつ」と入力され、複数の文例候補Ｌ１が表示される。文例候補Ｌ１として「○×システム価格表」、「○×システム制限事項表」、「○×システム構成図  ★」、「○×システム開発体制図」が表示されている。このうち置換が可能な「○×システム構成図」に係る文例候補Ｌ１にはアイコンとして「★」が併記される。さらに文例候補Ｌ１にはオブジェクトＴ１のカテゴリ、属性、利用日時を示すリンク欄Ｌ２の他、オブジェクトＴ１のサムネイルＬ３も表示される。ユーザはオブジェクトＴ１への変換を希望する場合、リンク欄Ｌ２またはサムネイルＬ３を選択する。これにより、図２Ｂに示すように、アプリケーションＡ２上に変換後のオブジェクトＴ１が表示される。以下詳細を説明する。
【００１２】
図３は情報処理装置１のハードウェア群を示す説明図である。情報処理装置１は例えば、パーソナルコンピュータ、携帯電話機、ＰＤＡ（Personal Digital Assistant）、ブックリーダ、ゲーム機、または、医療機器、半導体製造装置若しくは工作機械等の制御用コンピュータ等である。以下では情報処理装置１をパーソナルコンピュータ１であるものとして説明する。パーソナルコンピュータ１は制御部としてのＣＰＵ(Central Processing Unit)１１、ＲＡＭ（Random Access Memory）１２、入力部１３、表示部１４、記憶部１５、時計部１８及び通信部１６等を含む。ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１は記憶部１５に記憶された制御プログラム１５Ｐに従いハードウェア各部を制御する。
【００１３】
ＲＡＭ１２は例えばＳＲＡＭ（Static ＲＡＭ）、ＤＲＡＭ（Dynamic ＲＡＭ）、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。またＣＰＵ１１はアプリケーションＡ上でオブジェクトＴがコピーされた場合、コピーされたオブジェクトＴのデータ、サムネイルＬ３及び属性をクリップボードであるＲＡＭ１２に一時的に記憶する。なお、本実施形態ではコピーされたオブジェクトＴをクリップボードであるＲＡＭ１２に一時的に記憶する例を挙げて説明するが、これに限るものではない。ＣＰＵ１１は、記憶部１５の他、図示しないＵＳＢ(Universal Serial Bus)メモリ等の他の記憶媒体に、コピーされたオブジェクトＴを一時的に記憶しても良い。
【００１４】
入力部１３はマウス、キーボード、またはタッチパッド、タッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。表示部１４は液晶ディスプレイまたは有機ＥＬ（electroluminescence）ディスプレイ等であり、ＣＰＵ１１の指示に従い各種情報を表示する。時計部１８は日時の情報をＣＰＵ１１へ出力する。通信部１６は有線または無線ＬＡＮ（Local Area Network）カード等であり、インターネット等の通信網Ｎを介して他のコンピュータ（図示せず）等との間で情報の送受信を行う。記憶部１５は例えば、ハードディスクまたは大容量フラッシュメモリ等であり、制御プログラム１５Ｐを格納する。記憶部１５はこの他、文例ファイル１５１、退避テーブル１５２、オブジェクトテーブル１５３及びリンクテーブル１５４等を格納している。
【００１５】
図４は文例ファイル１５１のレコードレイアウトを示す説明図である。文例ファイル１５１はキーフィールド及び文例フィールド等を含む。文例ファイル１５１には入力部１３から入力行へ文字が入力された際の文例候補Ｌ１を記憶している。図４の例では「マルバツ」とのキーに対し、「○×」、「○×システム」、「○×システム構成図」、「○×システム価格表」及び「○×システム制限事項表」等の文例が記憶されている。なお、本実施形態では説明を容易にするために、文例ファイル１５１に入力された文字列に対応する文例を複数記憶した例を挙げて説明するがこれに限るものではない。文例ファイル１５１の他に、入力文字列を漢字に変換する際に参照される単語辞書、並びに、文節及び送り仮名の用法等の文法を規定した文法辞書を用いても良い。
【００１６】
図５は退避テーブル１５２のレコードレイアウトを示す説明図である。退避テーブル１５２はオブジェクトデータフィールド及びカテゴリフィールドに加えて、属性に係る形式フィールド及びサイズフィールド等を含む。図１Ｂ及び図１Ｃに示す如く、ＣＰＵ１１は入力部１３によりオブジェクトＴ２が選択され、ＲＡＭ１２に記憶されたオブジェクトＴ１に置換された（貼り付けられた）場合、オブジェクトＴ２のデータ及び属性を退避テーブル１５２に記憶する。なお、図１では異なるアプリケーションＡ１、Ａ２間での置換処理を例として挙げたが、同一アプリケーションＡ間での置換処理であっても良い。
【００１７】
オブジェクトデータフィールドには、置換されたオブジェクトＴのデータが記憶される。属性は、オブジェクトが有する固有の情報、特性をいい、例えばオブジェクトデータのファイルの形式、及び、オブジェクトデータのファイルのサイズ等が該当する。形式フィールドにはオブジェクトデータのデータ形式がオブジェクトデータに対応付けて記憶されている。例えば、オブジェクトＴが図である場合、GIF、BMP(Bitmap)、またはJPEG(Joint Photographic Experts Group)等である。オブジェクトＴが文章である場合、テキストを示すtxt等の形式が記憶される。
【００１８】
オブジェクトＴが文章、ＵＲＬが記述されたハイパーリンク及び図面等の複数のオブジェクトにより構成される場合、マイクロソフト社のパワーポイント（登録商標）スライド、ＰＤＦ（登録商標）ファイル等のアプリケーションに係る拡張子が形式として記憶される。オブジェクトＴがＷｅｂ頁に関連する場合、ＨＴＭＬドキュメント等の形式が記憶される。オブジェクトＴが音声または画像の場合、mp3(MPEG-1 Audio Layer 3)、wma(Windows（登録商標） Media Audio)、ＭＰＥＧ（Moving Picture Experts Group）４等の形式が記憶される。
【００１９】
カテゴリフィールドには、オブジェクトＴのカテゴリがオブジェクトデータ及び形式に対応付けて記憶される。ＣＰＵ１１は形式フィールドに記憶された形式に対応するカテゴリをカテゴリフィールドに記憶する。具体的には、ＣＰＵ１１は形式とカテゴリとの対応関係を予め記憶した記憶部１５を参照し、形式に対応するカテゴリを抽出する。例えば、ＣＰＵ１１は形式がＧＩＦの場合、カテゴリ「図」を抽出する。ＣＰＵ１１は形式がtxtの場合、カテゴリ「文章」を抽出する。ＣＰＵ１１は形式がパワーポイント（登録商標）スライドの拡張子である場合、カテゴリ「ＰＰＴ」を抽出する。
【００２０】
サイズフィールドには、オブジェクトのサイズがオブジェクトデータに対応付けて記憶される。例えば、容量（例えば63キロバイト）、オブジェクトＴが図の場合画像領域（例えば、縦横の画素数を示す380×240）、オブジェクトＴが文章の場合、文字数（例えば２５０文字）を記憶すればよい。
【００２１】
図６はオブジェクトテーブル１５３のレコードレイアウトを示す説明図である。オブジェクトテーブル１５３はオブジェクトデータフィールド、カテゴリフィールド、形式フィールド、サイズフィールド、省略データフィールド及び利用日時フィールド等を含む。ＣＰＵ１１はオブジェクトＴの置換処理が発生した場合、置換元及び置換先のオブジェクトＴに関する情報をオブジェクトテーブル１５３に記憶する。図６の例では置換元の文章であるオブジェクトＴ２（○×システム構成図）と、置換先の図であるオブジェクトＴ１に関する情報が記憶されている。
【００２２】
オブジェクトデータフィールドには、オブジェクトＴのバイナリデータが記憶されている。カテゴリフィールド、形式フィールド及びサイズフィールドは退避テーブル１５２において説明したとおりであるので詳細な説明は省略する。省略データフィールドにはオブジェクトデータに対応付けてオブジェクトデータのデータ容量を減じた情報が記憶される。例えば、図の場合、サムネイルＬ３である。文章の場合、文章の一部、例えば、文章の先頭の数文字及び終わりの数文字とすれば良い。その他文章の場合、記憶部１５に記憶した辞書ファイル内の名詞に合致する文章中のキーワード、または、先頭の数文字を省略データとしても良い。音声データの場合、一部の音声データを省略データとすればよい。パワーポイントスライドの場合、スライドのサムネイルＬ３を省略データとすれば良い。
【００２３】
利用日時フィールドには置換処理が発生した際に時計部１８から出力される日時がオブジェクトデータに対応付けて記憶されている。なお図６では年の記載を省略している。ＣＰＵ１１は置換処理が発生した場合、置換元のオブジェクトデータ、カテゴリ、形式及びサイズを退避テーブル１５２から読み出し、オブジェクトテーブル１５３に記憶する。ＣＰＵ１１はオブジェクトデータを参照し、省略データを生成する。ＣＰＵ１１は生成した省略データをオブジェクトテーブル１５３に記憶する。ＣＰＵ１１は時計部１８から出力された日時をオブジェクトデータに対応付けて記憶する。
【００２４】
ＣＰＵ１１は置換先のオブジェクトデータをＲＡＭ１２から読み出し、オブジェクトテーブル１５３に記憶する。ＣＰＵ１１は当該オブジェクトデータの形式、サイズをオブジェクトテーブル１５３に記憶する。ＣＰＵ１１は記憶部１５を参照しオブジェクトデータに対応するカテゴリを抽出し、時計部１８から出力される日時と共にオブジェクトテーブル１５３に記憶する。またＣＰＵ１１は置換先のオブジェクトＴの省略データを生成し、省略データフィールドに記憶する。
【００２５】
図７はリンクテーブル１５４のレコードレイアウトを示す説明図である。リンクテーブル１５４は置換元フィールド及び置換先フィールド等を含む。置換元フィールドには置換処理された際の置換元のオブジェクトデータがバイナリデータとして記憶されている。置換先フィールドには置換処理された際の置換先のオブジェクトデータがバイナリデータとして、置換元のオブジェクトデータに対応付けて記憶されている。図１の例では、置換元フィールドにオブジェクトＴ２「○×システム構成図」のデータが記憶され、当該データに対応付けて、置換先フィールドにオブジェクトＴ１の画像データが記憶される。
【００２６】
なお、本実施形態で述べた各ファイル及びテーブルのレコードレイアウト及びデータ内容は一例でありこれに限るものではない。データ間の関係が維持されていれば、他のデータレイアウトを採用しても良い。例えば、リンクテーブル１５４を設けることなく、置換処理を行った際のオブジェクトデータ間の関係をオブジェクトテーブル１５３に記憶しても良い。また本実施形態では記憶部１５に各ファイル及びテーブルを格納する例を挙げたがこれに限るものではない。ＲＡＭ１２または複数の記憶部に分散して格納しても良い。その他、通信網Ｎを介して接続される図示しないサーバコンピュータにオブジェクトテーブル１５３及びリンクテーブル１５４等を記憶しても良い。この場合、ＣＰＵ１１は必要に応じてサーバコンピュータへアクセスし、必要な情報の読み出し及び書き込みを行えばよい。
【００２７】
以上のハードウェアにおいてソフトウェア処理を、フローチャートを用いて説明する。図８及び図９は置換処理の手順を示すフローチャートである。ＣＰＵ１１は入力部１３を通じて、オブジェクトＴに対するコピー処理を受け付けたか否かを判断する（ステップＳ８１）。ＣＰＵ１１はコピー処理を受け付けていないと判断した場合（ステップＳ８１でＮＯ）、コピー処理を受け付けるまで待機する。ＣＰＵ１１はコピー処理を受け付けたと判断した場合（ステップＳ８１でＹＥＳ）、ステップＳ８２へ移行する。ＣＰＵ１１はＲＡＭ１２に置換先のオブジェクトデータを記憶する（ステップＳ８２）。
【００２８】
ＣＰＵ１１は置換元のオブジェクトの選択を受け付ける（ステップＳ８３）。具体的には、ユーザは、置換対象のオブジェクトを、入力部１３を通じて選択、または、オブジェクトＴの先頭から終わりまでドラッグすることによりオブジェクトを選択する。ＣＰＵ１１は置換処理を受け付けたか否かを判断する（ステップＳ８４）。具体的には、ＣＰＵ１１はステップＳ８３で選択されたオブジェクトＴに対し、ＲＡＭ１２に記憶したクリップボード内のオブジェクトＴの貼り付け処理があったか否かを判断する。なお、本実施形態ではクリップボードに記憶するオブジェクトＴは一つである例を挙げて説明するがこれに限るものではない。ＣＰＵ１１はクリップボードを複数の領域に分割し、複数のオブジェクトＴの省略データを表示部１４に表示しても良い。ＣＰＵ１１は複数のオブジェクトＴから選択された一のオブジェクトＴを貼り付ける。
【００２９】
ＣＰＵ１１は置換処理を受け付けていない場合（ステップＳ８４でＮＯ）、置換処理を受け付けるまで待機する。ＣＰＵ１１は置換処理を受け付けた場合（ステップＳ８４でＹＥＳ）、置換元のオブジェクトデータを退避テーブル１５２に記憶する（ステップＳ８５）。ＣＰＵ１１は置換元のオブジェクトデータの形式及びサイズを退避テーブル１５２に記憶する（ステップＳ８６）。ＣＰＵ１１は置換元のオブジェクトＴのカテゴリを記憶部１５から抽出し、抽出したカテゴリを退避テーブル１５２に記憶する（ステップＳ８７）。
【００３０】
ＣＰＵ１１は置換先のオブジェクトデータをＲＡＭ１２から読み出し、オブジェクトテーブル１５３に記憶する（ステップＳ８８）。ＣＰＵ１１は置換先のオブジェクトデータの形式及びサイズをオブジェクトテーブル１５３に記憶する（ステップＳ８９）。ＣＰＵ１１は置換先のオブジェクトＴのカテゴリを記憶部１５から抽出し、抽出したカテゴリをオブジェクトテーブル１５３に記憶する（ステップＳ９１）。ＣＰＵ１１は置換先のオブジェクトＴの省略データを生成する（ステップＳ９２）。例えばＣＰＵ１１はオブジェクトＴが画像である場合、当該画像のサムネイルＬ３を生成する。また文章の場合、ＣＰＵ１１は、文章から記憶部１５に予め記憶した箇所（例えば、先頭１００文字、文章の終わり１００文字）について文章を抽出し省略データを生成する。またオブジェクトＴがプレゼンテーション用スライドである場合、ＣＰＵ１１はスライドのサムネイルＬ３を生成する。なお、ＣＰＵ１１はプレゼンテーションアプリケーションＡが既にサムネイルＬ３を生成している場合、生成済みのサムネイルＬ３を取得しても良い。ＣＰＵ１１は生成した置換先のオブジェクトＴの省略データをオブジェクトテーブル１５３に記憶する（ステップＳ９３）。
【００３１】
ＣＰＵ１１は置換元のオブジェクトデータ、カテゴリ、形式、サイズを退避テーブル１５２から読み出し、オブジェクトテーブル１５３に記憶する（ステップＳ９４）。ＣＰＵ１１は置換元のオブジェクトＴの省略データを生成する（ステップＳ９５）。なお、本実施形態においては省略データを生成する形態としたが、省略データの生成に代えてカテゴリまたは形式に対応するアイコンを表示しても良い。例えば、オブジェクトＴがパワーポイントスライドの場合、パワーポイントを起動する際に用いるアイコンを記憶しても良い。またオブジェクトＴが音声データの場合、音声データであることを視認できるアイコン（例えば音符マークのアイコン）を記憶、動画データである場合動画データであることを視認できるアイコン（例えば、映画のフィルムマークのアイコン）を記憶しても良い。
【００３２】
ＣＰＵ１１は置換元のオブジェクトＴの省略データをオブジェクトテーブル１５３に記憶する（ステップＳ９６）。ＣＰＵ１１はステップＳ８４における置換処理時に時計部１８から出力される日時を利用日時として、置換元のオブジェクトデータ及び置換先のオブジェクトデータに対応付けて、オブジェクトテーブル１５３に記憶する（ステップＳ９７）。ＣＰＵ１１はステップＳ８８において記憶する置換先のオブジェクトデータと、ステップＳ９４で記憶する置換元のオブジェクトデータとを関連付けてリンクテーブル１５４に記憶する（ステップＳ９８）。なお、本実施形態では置換元のオブジェクトデータ及び当該データに関連するデータを退避テーブル１５２に一旦記憶する例を示したがこれに限るものではない。退避テーブル１５２に記憶することなく、直接オブジェクトテーブル１５３に記憶しても良い。
【００３３】
図１０及び図１１は置換処理の手順を示すフローチャートである。ＣＰＵ１１は入力部１３を介して、文字入力を受け付けたか否かを判断する（ステップＳ１０１）。ＣＰＵ１１は文字入力を受け付けていないと判断した場合（ステップＳ１０１でＮＯ）、文字入力を受け付けるまで待機する。ＣＰＵ１１は文字入力を受け付けたと判断した場合（ステップＳ１０１でＹＥＳ）、文例ファイル１５１を参照し、候補となる文例を抽出する（ステップＳ１０２）。ＣＰＵ１１は文例候補Ｌ１を図２に示すように表示部１４に表示する（ステップＳ１０３）。ＣＰＵ１１は文例候補Ｌ１に対応する置換元のオブジェクトデータがリンクテーブル１５４に存在するか否かを判断する（ステップＳ１０４）。具体的には、ＣＰＵ１１は置換元である各文例候補Ｌ１のバイナリデータを用いて、リンクテーブル１５４を検索し、対応する置換元のバイナリデータが存在するか否かを判断する。
【００３４】
ＣＰＵ１１は置換元のオブジェクトデータが存在しないと判断した場合（ステップＳ１０４でＮＯ）、ステップＳ１０５へ移行する。ＣＰＵ１１は入力部１３を通じて文例候補Ｌ１から一の文例候補Ｌ１の選択を受け付ける（ステップＳ１０５）。ＣＰＵ１１は選択された文例を入力し、表示部１４に表示する（ステップＳ１０６）。ＣＰＵ１１は置換元の文例候補Ｌ１に対応する置換元のオブジェクトデータが存在すると判断した場合（ステップＳ１０４でＹＥＳ）、ステップＳ１０７へ移行する。ＣＰＵ１１は存在すると判断した文例候補Ｌ１の近傍にアイコンを表示する（ステップＳ１０７）。なお、本実施形態では「★」印のアイコンを示す例を挙げたがこれに限るものではない。例えば、存在すると判断した文例候補Ｌ１を反転処理する、着色処理する、フォントサイズを変更する等、置換先のオブジェクトデータが存在しない他の文例候補Ｌ１とは識別できる形態で表示部１４に表示すればよい。
【００３５】
ＣＰＵ１１は置換先のオブジェクトデータを参照し、対応する置換先のオブジェクトＴのカテゴリ、形式、サイズ及び利用日時をオブジェクトテーブル１５３から抽出する（ステップＳ１０８）。ＣＰＵ１１は置換先のオブジェクトＴのカテゴリ、形式、サイズ及び利用日時をリンク欄Ｌ２上に表示する（ステップＳ１０９）。図２Ａに示すように、文例候補Ｌ１近傍に、リンク欄Ｌ２が表示される。さらに、ＣＰＵ１１は置換先のオブジェクトデータを参照し、対応する置換先のオブジェクトＴのサムネイルＬ３をオブジェクトテーブル１５３の省略データフィールドから抽出する（ステップＳ１１１）。ＣＰＵ１１は置換先のオブジェクトＴのサムネイルＬ３を、表示部１４に表示する（ステップＳ１１２）。なお、本実施形態では、文例候補Ｌ１に対応する置換先のオブジェクトＴが存在すれば、リンク欄Ｌ２及びサムネイルＬ３を表示する例を挙げて説明するがこれに限るものではない。入力部１３を通じてポインタが置換先のオブジェクトＴが存在する文例候補Ｌ１上に重畳した場合に、リンク欄Ｌ２及びサムネイルＬ３を表示部１４に表示するようにしても良い。
【００３６】
図２Ａに示すように、文例候補Ｌ１近傍に、サムネイルＬ３が表示される。なお、本実施形態では置換先のオブジェクトＴのカテゴリ、形式、サイズ、利用日時及びサムネイルＬ３の全てを表示したが、いずれか一つまたはこれらの組み合わせであっても良い。また本実施形態ではサムネイルＬ３を表示する例を挙げたが、省略データとして文章データの一部を表示しても良い。また動画データの場合、ＣＰＵ１１は動画再生アプリケーションＡを起動し、サムネイルＬ３と同様のサイズにて動画の一部分を再生しても良い。ＣＰＵ１１は音声データの場合、音声再生アプリケーションＡを起動し、図示しないスピーカから音声データの一部を出力しても良い。
【００３７】
ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３のいずれかの選択を受け付けたか否かを判断する（ステップＳ１１３）。ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３の選択を受け付けていないと判断した場合（ステップＳ１１３でＮＯ）、ステップＳ１１４へ移行する。ＣＰＵ１１は文例候補Ｌ１の選択を受け付けたか否かを判断する（ステップＳ１１４）。ＣＰＵ１１は文例候補Ｌ１の選択を受け付けていないと判断した場合（ステップＳ１１４でＮＯ）、処理をステップＳ１１３へ戻す。ＣＰＵ１１は文例候補Ｌ１の選択を受け付けたと判断した場合（ステップＳ１１４でＹＥＳ）、文例候補Ｌ１を表示部１４から消去する（ステップＳ１１５）。ＣＰＵ１１は代わりに選択された文例をアプリケーションＡに入力し、入力された文例を表示部１４に表示する（ステップＳ１１６）。
【００３８】
ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３の選択を受け付けたと判断した場合（ステップＳ１１３でＹＥＳ）、処理をステップＳ１１７へ移行させる。ＣＰＵ１１は選択された文例候補Ｌ１に対応する置換先のオブジェクトデータを、オブジェクトテーブル１５３またはリンクテーブル１５４から抽出する（ステップＳ１１７）。ＣＰＵ１１は文例候補Ｌ１を表示部１４から消去する。ＣＰＵ１１は入力文字を置換先のオブジェクトデータに置換する（ステップＳ１１８）。ＣＰＵ１１は置換先のオブジェクトデータを表示部１４に表示する（ステップＳ１１９）。ＣＰＵ１１は日時を時計部１８から取得する（ステップＳ１１１０）。ＣＰＵ１１はオブジェクトテーブル１５３を参照し、置換先のオブジェクトデータの利用日時を更新する（ステップＳ１１１１）。なお、本実施形態においてはリンク欄Ｌ２またはサムネイルＬ３を選択した場合に、ステップＳ１１７へ移行する例を挙げたがこれに限るものではない。置換先のオブジェクトＴが存在する文例候補Ｌ１が選択された場合も、置換元の文字データを入力するのではなく、ステップＳ１１７へ移行し、置換先のオブジェクトＴへ置換する処理を実行しても良い。
【００３９】
図１２及び図１３は置換処理の手順を示すフローチャートである。文例候補Ｌ１を表示する以外に、オブジェクトＴを選択する形態であっても良い。ＣＰＵ１１は表示部１４に表示されたオブジェクトＴの選択を、入力部１３を介して受け付けたか否かを判断する（ステップＳ１２１）。具体的には、ＣＰＵ１１は入力部１３によるドラッグ操作によりテキストが選択されたか否かを判断する。その他、ＣＰＵ１１は入力部１３による右クリック後の選択処理を受け付けたか否かを判断する。
【００４０】
図１４は置換処理のイメージを示す説明図である。図１４Ａは、すでに入力済みの「○×システム構成図」がドラッグ処理により選択されていることを示す。ＣＰＵ１１はオブジェクトＴの選択を受け付けていないと判断した場合（ステップＳ１２１でＮＯ）、受け付けるまで待機する。ＣＰＵ１１はオブジェクトＴの選択を受け付けたと判断した場合（ステップＳ１２１でＹＥＳ）、処理をステップＳ１２２へ移行させる。ＣＰＵ１１は選択した置換元のオブジェクトデータに対応するオブジェクトデータが、リンクテーブル１５４に存在するか否か判断する（ステップＳ１２２）。
【００４１】
ＣＰＵ１１は置換元のオブジェクトデータに対応するオブジェクトデータが存在しないと判断した場合（ステップＳ１２２でＮＯ）、処理を終了する。ＣＰＵ１１は置換元のオブジェクトデータに対応するオブジェクトデータが存在すると判断した場合（ステップＳ１２２でＹＥＳ）、置換先のオブジェクトＴのカテゴリ、形式、サイズ及び利用日時を抽出する（ステップＳ１２３）。ＣＰＵ１１は置換先のオブジェクトＴのサムネイルＬ３または省略データを抽出する（ステップＳ１２４）。具体的には、ＣＰＵ１１は置換元のオブジェクトデータに対応する置換先のオブジェクトデータをリンクテーブル１５４から抽出する。ＣＰＵ１１は抽出したオブジェクトデータに対応する、カテゴリ、形式、サイズ、利用日時及び省略データを抽出する。以下ではサムネイルＬ３以外の省略データを、文字を一部省略した一部文字データＬ４とする。ＣＰＵ１１は置換元のオブジェクトＴに対応する置換先のオブジェクトＴが複数存在するか否かを判断する（ステップＳ１２５）。本実施形態では複数存在するものとして説明する。
【００４２】
ＣＰＵ１１は複数存在すると判断した場合（ステップＳ１２５でＹＥＳ）、全ての置換先のオブジェクトＴに対する抽出処理が終了したか否かを判断する（ステップＳ１２６）。ＣＰＵ１１は全ての置換先のオブジェクトＴに対する抽出処理が終了していないと判断した場合（ステップＳ１２６でＮＯ）、処理をステップＳ１２３へ移行させる。ＣＰＵ１１は抽出処理を終えていない置換先のオブジェクトＴについて同様の処理を実行する。これにより、過去に「○×システム構成図」について置換したオブジェクトＴに対する抽出処理が繰り返し行われる。ＣＰＵ１１は置換先のオブジェクトＴは複数存在しないと判断した場合（ステップＳ１２５でＮＯ）、処理をステップＳ１２７に移行させる。ＣＰＵ１１は全ての置換先のオブジェクトＴに対する処理を終了したと判断した場合（ステップＳ１２６でＹＥＳ）、処理をステップＳ１２７へ移行させる。
【００４３】
ＣＰＵ１１はリンク欄Ｌ２に置換先のオブジェクトＴのカテゴリ、形式、サイズ、利用日時を、利用日時順にソートした上で、表示部１４に表示する（ステップＳ１２７）。ＣＰＵ１１は対応する各オブジェクトＴのリンク欄Ｌ２近傍に、サムネイルＬ３または一部文字データＬ４を表示する（ステップＳ１２８）。図１４の例では、利用日時が新しい図のリンク欄Ｌ２が、利用日時の古い文のリンク欄Ｌ２よりも上側に表示されている。図のリンク欄Ｌ２近傍には、当該リンク欄Ｌ２に対応付けてサムネイルＬ３が表示されている。文のリンク欄Ｌ２近傍には当該リンク欄Ｌ２に対応付けて一部文字データＬ４が表示されている。図１４Ａに示すように、一部文字データＬ４は全８１文字のうちの一部「今回作成した○×システム・・予定です。」が表示される。
【００４４】
ＣＰＵ１１はリンク欄Ｌ２、サムネイルＬ３または一部文字データＬ４の選択を、入力部１３から受け付けたか否かを判断する（ステップＳ１２９）。ＣＰＵ１１は受け付けていないと判断した場合（ステップＳ１２９でＮＯ）、受け付けるまで待機する。ＣＰＵ１１はリンク欄Ｌ２、サムネイルＬ３または一部文字データＬ４の選択を受け付けた場合（ステップＳ１２９でＹＥＳ）、対応する置換先のオブジェクトデータを、オブジェクトテーブル１５３から抽出する（ステップＳ１３０）。具体的には、ＣＰＵ１１は図に係るリンク欄Ｌ２またはサムネイルＬ３が選択された場合、当該図に係るオブジェクトデータをオブジェクトテーブル１５３から抽出する。またＣＰＵ１１は文に係るリンク欄Ｌ２または一部文字データＬ４が選択された場合、当該文に係るオブジェクトデータをオブジェクトテーブル１５３から抽出する。
【００４５】
ＣＰＵ１１はステップＳ１２１で選択された選択文字を、抽出した置換先のオブジェクトデータに置換する（ステップＳ１３１）。ＣＰＵ１１は置換先のオブジェクトデータを表示部１４に表示する（ステップＳ１３２）。図１４Ｂの例は、図のリンク欄Ｌ２またはサムネイルＬ３が選択され、選択文字「○×システム構成図」からオブジェクトＴ２に置換されたことを示している。ＣＰＵ１１は日時を時計部１８から取得する（ステップＳ１３３）。ＣＰＵ１１はオブジェクトテーブル１５３を参照し、置換先のオブジェクトデータの利用日時を更新する（ステップＳ１３４）。これにより、ユーザの使用実績に基づいた置換処理が可能となる。
【００４６】
実施の形態２
実施の形態２はハッシュ値を用いて置換元及び置換先のオブジェクトＴを関連付ける形態に関する。図１５は実施の形態２に係るオブジェクトテーブル１５３のレコードレイアウトを示す説明図である。新にハッシュ値フィールドが設けられている。ＣＰＵ１１は置換処理の際、記憶部１５に記憶したハッシュ関数に基づき、置換元のオブジェクトＴのハッシュ値及び置換先のオブジェクトＴのハッシュ値を算出する。ＣＰＵ１１はオブジェクトデータに対応付けて算出したハッシュ値をハッシュ値フィールドに記憶する。
【００４７】
図１６は実施の形態２に係るリンクテーブル１５４のレコードレイアウトを示す説明図である。実施の形態１ではオブジェクトデータを記憶していたが実施の形態２ではオブジェクトＴのハッシュ値を記憶する。ＣＰＵ１１は置換処理の際、置換元のオブジェクトＴのハッシュ値を置換元ハッシュ値フィールドに記憶する。さらにＣＰＵ１１は置換先のオブジェクトＴのハッシュ値に関連付けて、置換先のオブジェクトＴのハッシュ値を、置換先ハッシュ値フィールドに記憶する。図１６の例では、置換元のテキストデータである「○×システム構成図」のハッシュ値「１２１２」と、置換先の画像のハッシュ値「１６ＡＦ」とが関連付けて記憶されている。
【００４８】
図１７乃至図１９は置換処理の手順を示すフローチャートである。ＣＰＵ１１は入力部１３を通じて、オブジェクトＴに対するコピー処理を受け付けたか否かを判断する（ステップＳ１７１）。ＣＰＵ１１はコピー処理を受け付けていないと判断した場合（ステップＳ１７１でＮＯ）、コピー処理を受け付けるまで待機する。ＣＰＵ１１はコピー処理を受け付けたと判断した場合（ステップＳ１７１でＹＥＳ）、ステップＳ１７２へ移行する。ＣＰＵ１１はＲＡＭ１２に置換先のオブジェクトデータを記憶する（ステップＳ１７２）。
【００４９】
ＣＰＵ１１は置換元のオブジェクトＴの選択を受け付ける（ステップＳ１７３）。ＣＰＵ１１は置換処理を受け付けたか否かを判断する（ステップＳ１７４）。ＣＰＵ１１は置換処理を受け付けていない場合（ステップＳ１７４でＮＯ）、置換処理を受け付けるまで待機する。ＣＰＵ１１は置換処理を受け付けた場合（ステップＳ１７４でＹＥＳ）、置換元のオブジェクトデータを退避テーブル１５２に記憶する（ステップＳ１７５）。ＣＰＵ１１は置換元のオブジェクトデータの形式及びサイズを退避テーブル１５２に記憶する（ステップＳ１７６）。ＣＰＵ１１は置換元のオブジェクトＴのカテゴリを記憶部１５から抽出し、抽出したカテゴリを退避テーブル１５２に記憶する（ステップＳ１７７）。
【００５０】
ＣＰＵ１１は置換先のオブジェクトデータをＲＡＭ１２から読み出す（ステップＳ１７８）。ＣＰＵ１１は記憶部１５に予め記憶または制御プログラム１５Ｐに予め記述されたハッシュ関数を読み出す。ＣＰＵ１１は読み出したハッシュ関数に基づき、置換先のオブジェクトデータのハッシュ値を算出する（ステップＳ１７９）。ＣＰＵ１１は置換先のオブジェクトデータのハッシュ値が既に、オブジェクトテーブル１５３に記憶されているか否かを判断する（ステップＳ１８１）。
【００５１】
ＣＰＵ１１は記憶されていないと判断した場合（ステップＳ１８１でＮＯ）、置換先のオブジェクトデータ、ハッシュ値をオブジェクトテーブル１５３に記憶する（ステップＳ１８２）。ＣＰＵ１１は、ハッシュ値に対応付けて置換先のオブジェクトＴの形式及びサイズをオブジェクトテーブル１５３に記憶する（ステップＳ１８３）。ＣＰＵ１１は置換先のオブジェクトＴのカテゴリを記憶部１５から抽出し、抽出したカテゴリを、ハッシュ値に対応付けてオブジェクトテーブル１５３に記憶する（ステップＳ１８４）。ＣＰＵ１１は置換先のオブジェクトＴの省略データを生成する（ステップＳ１８５）。ＣＰＵ１１は生成した置換先のオブジェクトＴの省略データを、ハッシュ値に対応付けてオブジェクトテーブル１５３に記憶する（ステップＳ１８６）。
【００５２】
その後処理をステップＳ１８７へ移行させる。ＣＰＵ１１は置換先のオブジェクトデータのハッシュ値が既に記憶されていると判断した場合（ステップＳ１８１でＹＥＳ）、処理をステップＳ１８７へ移行させる。ＣＰＵ１１は置換先のオブジェクトＴのハッシュ値に対応付けて時計部１８から出力される日時を記憶する（ステップＳ１８７）。これにより、置換先のオブジェクトＴに関する各種データがハッシュ値に対応付けて記憶されることとなる。ＣＰＵ１１は置換元のオブジェクトデータを退避テーブル１５２から読み出す（ステップＳ１８８）。
【００５３】
ＣＰＵ１１は読み出したハッシュ関数に基づき、置換元のオブジェクトデータのハッシュ値を算出する（ステップＳ１８９）。ＣＰＵ１１は置換元のオブジェクトデータのハッシュ値が既にオブジェクトテーブル１５３に記憶されているか否か判断する（ステップＳ１９１）。ＣＰＵ１１は記憶されていないと判断した場合（ステップＳ１９１でＮＯ）、置換元のオブジェクトデータのカテゴリ、形式、サイズを退避テーブル１５２から読み出す（ステップＳ１９２）。
【００５４】
ＣＰＵ１１は置換元のオブジェクトＴの省略データを生成する（ステップＳ１９３）。ＣＰＵ１１は置換元のオブジェクトデータ、ハッシュ値、カテゴリ、形式、サイズ及び省略データをオブジェクトテーブル１５３に対応付けて記憶する（ステップＳ１９４）。なお、本実施形態では、ハッシュ値に対応付けてカテゴリ、形式、サイズ及び省略データの全てを記憶する例を挙げたがこれに限るものではない。ハッシュ値及びオブジェクトデータに対応付けて、カテゴリ、形式、サイズまたは省略データのいずれか一つ、または、これらのいずれかの組み合わせであっても良い。その後処理をステップＳ１９５へ移行させる。
【００５５】
ＣＰＵ１１は置換元のオブジェクトデータのハッシュ値が既に記憶されていると判断した場合（ステップＳ１９１でＹＥＳ）、処理をステップＳ１９５へ移行させる。ＣＰＵ１１は置換先のオブジェクトＴのハッシュ値に対応付けて日時を記憶する（ステップＳ１９５）。なお、ＣＰＵ１１はステップＳ１７４における置換処理時に時計部１８から出力される日時を利用日時として、オブジェクトテーブル１５３に記憶すればよい。なお、既にハッシュ値が記憶されており過去に置換した際の日時が記憶されている場合は、今回置換した際の日時に更新する。なお、本実施形態では置換処理時の日時としたが、多少の時間帯は前後しても良い。
【００５６】
ＣＰＵ１１はステップＳ１７９で算出した置換先のオブジェクトデータのハッシュ値と、ステップＳ１８９で算出した置換元のオブジェクトデータのハッシュ値との組み合わせがリンクテーブル１５４に記憶されているか否かを判断する（ステップＳ１９６）。ＣＰＵ１１は組み合わせが登録されていると判断した場合（ステップＳ１９６でＹＥＳ）、処理を終了する。一方、ＣＰＵ１１は組み合わせが登録されていないと判断した場合（ステップＳ１９６でＮＯ）、ステップＳ１９７へ移行する。
【００５７】
ＣＰＵ１１はリンクテーブル１５４に置換元のオブジェクトＴのハッシュ値と、置換先のオブジェクトＴのハッシュ値との組み合わせをリンクテーブル１５４に記憶する（ステップＳ１９７）。これにより、置換処理が発生する度に、置換先及び置換元のハッシュ値の組み合わせが図１６の如く蓄積されることになる。
【００５８】
図２０乃至図２２は置換処理の手順を示すフローチャートである。ＣＰＵ１１は入力部１３を介して、文字入力を受け付けたか否かを判断する（ステップＳ２０１）。ＣＰＵ１１は文字入力を受け付けていないと判断した場合（ステップＳ２０１でＮＯ）、文字入力を受け付けるまで待機する。ＣＰＵ１１は文字入力を受け付けたと判断した場合（ステップＳ２０１でＹＥＳ）、文例ファイル１５１を参照し、候補となる文例を抽出する（ステップＳ２０２）。ＣＰＵ１１は文例候補Ｌ１を図７に示すように表示部１４に表示する（ステップＳ２０３）。ＣＰＵ１１は文例候補Ｌ１のハッシュ値を算出する（ステップＳ２０４）。
【００５９】
ＣＰＵ１１は全ての文例候補Ｌ１のハッシュ値を算出したか否かを判断する（ステップＳ２０５）。ＣＰＵ１１は全ての文例候補Ｌ１のハッシュ値を算出していないと判断した場合（ステップＳ２０５でＮＯ）、処理をステップＳ２０４へ戻す。これにより複数の全ての文例候補Ｌ１のハッシュ値が算出される。ＣＰＵ１１は全ての文例候補Ｌ１のハッシュ値を算出したと判断した場合（ステップＳ２０５でＹＥＳ）、処理をステップＳ２０６へ移行させる。
【００６０】
ＣＰＵ１１は各文例候補Ｌ１のハッシュ値に対応する置換元のハッシュ値がリンクテーブル１５４に存在するか否かを判断する（ステップＳ２０６）。具体的には、ＣＰＵ１１は置換元である各文例候補Ｌ１のハッシュ値を用いて、リンクテーブル１５４の置換元ハッシュ値フィールドに、当該ハッシュ値が存在するか否かを判断する。
【００６１】
ＣＰＵ１１は置換元のハッシュ値が存在しないと判断した場合（ステップＳ２０６でＮＯ）、ステップＳ２０７へ移行する。ＣＰＵ１１は入力部１３を通じて文例候補Ｌ１から一の文例候補Ｌ１の選択を受け付ける（ステップＳ２０７）。ＣＰＵ１１は選択された文例を入力し、表示部１４に表示する（ステップＳ２０８）。ＣＰＵ１１は置換元の文例候補Ｌ１のハッシュ値に対応する置換元のハッシュ値が存在すると判断した場合（ステップＳ２０６でＹＥＳ）、ステップＳ２０９へ移行する。ＣＰＵ１１は存在すると判断した文例候補Ｌ１の近傍にアイコンを表示する（ステップＳ２０９）。
【００６２】
ＣＰＵ１１はリンクテーブル１５４を参照し、ステップＳ２０６で対応するハッシュ値が記憶されていると判断された文例候補Ｌ１のハッシュ値に対応する置換先のハッシュ値を読み出す（ステップＳ２１１）。ＣＰＵ１１は置換先のハッシュ値に基づき、オブジェクトテーブル１５３から置換先のオブジェクトデータを読み出す（ステップＳ２１２）。ＣＰＵ１１は置換先のオブジェクトデータを参照し、対応する置換先のオブジェクトＴのカテゴリ、形式、サイズ及び利用日時をオブジェクトテーブル１５３から抽出する（ステップＳ２１３）。
【００６３】
ＣＰＵ１１は置換先のオブジェクトＴのカテゴリ、形式、サイズ及び利用日時をリンク欄Ｌ２上に表示する（ステップＳ２１４）。なお、ＣＰＵ１１は表示部１４に表示したリンク欄Ｌ２と、リンク欄Ｌ２に表示される置換先オブジェクトＴのハッシュ値とを対応付けて記憶している。ＣＰＵ１１は置換先のオブジェクトデータを参照し、対応する置換先のオブジェクトＴの省略データをオブジェクトテーブル１５３から抽出する（ステップＳ２１５）。ＣＰＵ１１は置換先のオブジェクトＴの省略データを、表示部１４に表示する（ステップＳ２１６）。ＣＰＵ１１は表示部１４に表示したサムネイルＬ３と、サムネイルＬ３で表示される置換先オブジェクトＴのハッシュ値とを対応付けて記憶している。なお、一つの文例候補Ｌ１に対し、複数の置換先のオブジェクトＴが存在する場合、実施の形態１で述べたように、日時が新しいものが上側となるようにリンク欄Ｌ２及び省略データを順次表示部１４に表示すればよい。
【００６４】
ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３（省略データ）のいずれかの選択を受け付けたか否かを判断する（ステップＳ２１７）。ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３の選択を受け付けていないと判断した場合（ステップＳ２１７でＮＯ）、ステップＳ２１８へ移行させる。ＣＰＵ１１は文例候補Ｌ１の選択を受け付けたか否かを判断する（ステップＳ２１８）。ＣＰＵ１１は文例候補Ｌ１の選択を受け付けていないと判断した場合（ステップＳ２１８でＮＯ）、処理をステップＳ２１７へ戻す。ＣＰＵ１１は文例候補Ｌ１の選択を受け付けたと判断した場合（ステップＳ２１８でＹＥＳ）、文例候補Ｌ１を表示部１４から消去する（ステップＳ２１９）。ＣＰＵ１１は代わりに選択された文例をアプリケーションＡに入力し、入力された文例を表示部１４に表示する（ステップＳ２２１）。
【００６５】
ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３の選択を受け付けたと判断した場合（ステップＳ２１７でＹＥＳ）、処理をステップＳ２２２へ移行させる。ＣＰＵ１１はリンク欄Ｌ２またはサムネイルＬ３に対応付けて記憶されたハッシュ値を読み出す。ＣＰＵ１１は選択されたリンクＬ２またはサムネイルＬ３に対応する置換先のオブジェクトデータを、読み出したハッシュ値を用いて、オブジェクトテーブル１５３から抽出する（ステップＳ２２２）。ＣＰＵ１１は文例候補Ｌ１を表示部１４から消去する。ＣＰＵ１１は入力文字を置換先のオブジェクトデータに置換する（ステップＳ２２３）。ＣＰＵ１１は置換先のオブジェクトデータを表示部１４に表示する（ステップＳ２２４）。ＣＰＵ１１は日時を時計部１８から取得する（ステップＳ２２５）。ＣＰＵ１１はオブジェクトテーブル１５３を参照し、置換先のオブジェクトデータの利用日時を更新する（ステップＳ２２６）。
【００６６】
図２３及び図２４は置換処理の手順を示すフローチャートである。ＣＰＵ１１は表示部１４に表示されたオブジェクトＴの選択を、入力部１３を介して受け付けたか否かを判断する（ステップＳ２３１）。ＣＰＵ１１はオブジェクトＴの選択を受け付けていないと判断した場合（ステップＳ２３１でＮＯ）、受け付けるまで待機する。ＣＰＵ１１はオブジェクトＴの選択を受け付けたと判断した場合（ステップＳ２３１でＹＥＳ）、処理をステップＳ２３２へ移行させる。ＣＰＵ１１は置換元のオブジェクトデータのハッシュ値を、記憶部１５に記憶したハッシュ関数に基づき算出する（ステップＳ２３２）。ＣＰＵ１１は置換元のオブジェクトＴのハッシュ値が、リンクテーブル１５４に存在するか否か判断する（ステップＳ２３３）。
【００６７】
ＣＰＵ１１は置換元のオブジェクトＴのハッシュ値が存在しないと判断した場合（ステップＳ２３３でＮＯ）、処理を終了する。ＣＰＵ１１は置換元のオブジェクトＴのハッシュ値が存在すると判断した場合（ステップＳ２３３でＹＥＳ）、リンクテーブル１５４から当該ハッシュ値に対応する置換先のハッシュ値を読み出す（ステップＳ２３４）。ＣＰＵ１１は置換先のハッシュ値に対応する置換先のオブジェクトデータを、オブジェクトテーブル１５３から読み出す（ステップＳ２３５）。
【００６８】
ＣＰＵ１１は読み出した置換先のオブジェクトデータに対応するカテゴリ、形式、サイズ及び利用日時を、オブジェクトテーブル１５３から抽出する（ステップＳ２３６）。ＣＰＵ１１は置換先のオブジェクトＴの省略データをオブジェクトテーブル１５３から抽出する（ステップＳ２３７）。ＣＰＵ１１は置換元のオブジェクトＴに対応する置換先のオブジェクトＴが複数存在するか否かを判断する（ステップＳ２３８）。
【００６９】
ＣＰＵ１１は複数存在すると判断した場合（ステップＳ２３８でＹＥＳ）、全ての置換先のオブジェクトＴに対する抽出処理が終了したか否かを判断する（ステップＳ２３９）。ＣＰＵ１１は全ての置換先のオブジェクトＴに対する抽出処理が終了していないと判断した場合（ステップＳ２３９でＮＯ）、処理をステップＳ２３６へ移行させる。ＣＰＵ１１は抽出処理を終えていない置換先のオブジェクトＴについて同様の処理を実行する。ＣＰＵ１１は置換先のオブジェクトＴは複数存在しないと判断した場合（ステップＳ２３８でＮＯ）、処理をステップＳ２４１に移行させる。ＣＰＵ１１は全ての置換先のオブジェクトＴに対する処理を終了したと判断した場合（ステップＳ２３９でＹＥＳ）、処理をステップＳ２４１へ移行させる。
【００７０】
ＣＰＵ１１はリンク欄Ｌ２に置換先のオブジェクトＴのカテゴリ、形式、サイズ、利用日時を、利用日時順にソートした上で、表示部１４に表示する（ステップＳ２４１）。ＣＰＵ１１はリンク欄Ｌ２表示した置換先のオブジェクトＴのカテゴリ等に対応付けて置換先オブジェクトＴのハッシュ値をＲＡＭ１２に記憶している。ＣＰＵ１１は対応する各オブジェクトＴのリンク欄Ｌ２近傍に、省略データを表示する（ステップＳ２４２）。ＣＰＵ１１は表示した置換先オブジェクトＴの省略データに対応付けて置換先オブジェクトＴのハッシュ値をＲＡＭ１２に記憶している。ＣＰＵ１１はリンク欄Ｌ２または省略データの選択を、入力部１３から受け付けたか否かを判断する（ステップＳ２４３）。ＣＰＵ１１は受け付けていないと判断した場合（ステップＳ２４３でＮＯ）、受け付けるまで待機する。ＣＰＵ１１はリンク欄Ｌ２または省略データの選択を受け付けた場合（ステップＳ２４３でＹＥＳ）、対応する置換先のオブジェクトデータを、オブジェクトテーブル１５３から抽出する（ステップＳ２４４）。具体的にはＣＰＵ１１は選択されたリンク欄Ｌ２または省略データに対応付けてＲＡＭ１２に記憶されたハッシュ値を用いて、オブジェクトテーブル１５３からハッシュ値に対応するオブジェクトデータを読み出す。
【００７１】
ＣＰＵ１１はステップＳ２３１で選択された選択文字を、抽出した置換先のオブジェクトデータに置換する（ステップＳ２４５）。ＣＰＵ１１は置換先のオブジェクトデータを表示部１４に表示する（ステップＳ２４６）。ＣＰＵ１１は日時を時計部１８から取得する（ステップＳ２４７）。ＣＰＵ１１はオブジェクトテーブル１５３を参照し、置換先のオブジェクトデータの利用日時を更新する（ステップＳ２４８）。このようにハッシュ値を用いて置換元及び置換先のオブジェクトＴを関連付けることができ、様々な形式のオブジェクトＴを効率よく抽出することが可能となる。
【００７２】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００７３】
実施の形態３
実施の形態３はリンク数を用いる形態に関する。図２５は実施の形態３に係るパーソナルコンピュータ１のハードウェア群を示すブロック図である。ＲＡＭ１２には新にリンクワークテーブル１５５が設けられている。なお、リンクワークテーブル１５５の詳細については後述する。図２６は実施の形態３に係るリンクテーブル１５４のレコードレイアウトを示す説明図である。実施の形態３の如く、置換元のハッシュ値と置換先のハッシュ値とをリンクテーブル１５４に記憶する場合、逆のリンク関係を併せて記憶しても良い。すなわち、ＣＰＵ１１は置換元のオブジェクトＴが、置換先のオブジェクトＴに置換された場合、置換元のオブジェクトＴのハッシュ値をリンクテーブル１５４の置換元ハッシュ値フィールドに記憶する。これにより図２６のレコード第１行目に示すように置換元であることを示す置換元情報である置換元ハッシュ値フィールドに置換元のオブジェクトＴのハッシュ値「１２１２」が記憶される。
【００７４】
次に、ＣＰＵ１１は置換元ハッシュ値フィールドに記憶された置換元のオブジェクトＴのハッシュ値「１２１２」に対応付けて、置換先のオブジェクトＴのハッシュ値をリンクテーブル１５４の置換先ハッシュ値フィールドに記憶する。これにより図２６のレコード第１行目に示すように置換先であることを示す置換先情報である置換先ハッシュ値フィールドに置換先のオブジェクトＴのハッシュ値「１６ＡＦ」が記憶される。
【００７５】
さらに、ＣＰＵ１１は置換先のオブジェクトＴのハッシュ値「１６ＡＦ」を、置換元ハッシュ値フィールドに記憶する。これにより図２６のレコード第２行目に示すように置換元情報である置換元ハッシュ値フィールドに置換先のオブジェクトＴのハッシュ値「１６ＡＦ」が記憶される。最後に、ＣＰＵ１１は置換元ハッシュ値フィールドに記憶された置換先のオブジェクトＴのハッシュ値に対応付けて、置換元ハッシュ値フィールドに記憶された置換元のオブジェクトＴのハッシュ値「１２１２」を、置換先ハッシュ値フィールドに記憶する。
【００７６】
これにより図２６のレコード第２行目に示すように置換先情報である置換先ハッシュ値フィールドに置換元のオブジェクトＴのハッシュ値「１２１２」が記憶される。例えば図２の例では、文字から画像へ置換されたことを示すハッシュ値の関連付けに加え、画像から文字へ置換されたことを示すハッシュ値の関連付けも追加して記憶される。なお、本実施形態で述べる関連付けに関する記憶方法は、実施の形態２で用いても良い。実施の形態１の場合、ハッシュ値に代えてオブジェクトデータそのものを用いて記憶すればよい。
【００７７】
図２７及び図２８はリンク記憶処理の手順を示すフローチャートである。ステップＳ１９５、Ｓ２２６及びＳ２４８の後、以下の処理を行う。ＣＰＵ１１は置換元のオブジェクトＴのハッシュ値と、置換先オブジェクトＴのハッシュ値とを読み出す（ステップＳ２７１）。ＣＰＵ１１は置換元ハッシュ値フィールドの置換元オブジェクトＴのハッシュ値と、置換先ハッシュ値フィールドの置換先オブジェクトＴのハッシュ値との組み合わせがリンクテーブル１５４に記憶されているか否かを判断する（ステップＳ２７２）。
【００７８】
ＣＰＵ１１は組み合わせがリンクテーブル１５４に記憶されていないと判断した場合（ステップＳ２７２でＮＯ）、ステップＳ２７３へ移行する。ＣＰＵ１１はリンクテーブル１５４の置換元ハッシュ値フィールドに置換元オブジェクトＴのハッシュ値を記憶する（ステップＳ２７３）。ＣＰＵ１１は置換元オブジェクトＴのハッシュ値に対応付けて、置換先ハッシュ値フィールドに置換先オブジェクトＴのハッシュ値を記憶する（ステップＳ２７４）。ＣＰＵ１１は組み合わせが記憶されていると判断した場合（ステップＳ２７２でＹＥＳ）、ステップＳ２７３及び２７４の処理をスキップする。
【００７９】
ＣＰＵ１１は置換元ハッシュ値フィールドの置換先オブジェクトＴのハッシュ値と、置換先ハッシュ値フィールドの置換元オブジェクトＴのハッシュ値との組み合わせがリンクテーブル１５４に記憶されているか否かを判断する（ステップＳ２７５）。
【００８０】
ＣＰＵ１１はステップＳ２７５における組み合わせがリンクテーブル１５４に記憶されていないと判断した場合（ステップＳ２７５でＮＯ）、ステップＳ２７６へ移行する。ＣＰＵ１１はリンクテーブル１５４の置換元ハッシュ値フィールドに置換先オブジェクトＴのハッシュ値を記憶する（ステップＳ２７６）。ＣＰＵ１１は置換先オブジェクトＴのハッシュ値に対応付けて、置換先ハッシュ値フィールドに置換元オブジェクトＴのハッシュ値を記憶する（ステップＳ２７７）。ＣＰＵ１１はステップＳ２７５における組み合わせが記憶されていると判断した場合（ステップＳ２７５でＹＥＳ）、ステップＳ２７６及びＳ２７７の処理をスキップする。これにより置換元オブジェクトＴと置換先オブジェクトＴとの相互リンク関係が記憶される。以下ではステップＳ２７３及びＳ２７４によるリンクを順リンクといい、ステップＳ２７６及びＳ２７７によるリンクを逆リンクという。
【００８１】
実施の形態１及び２ではリンクテーブル１５４の置換元ハッシュ値テーブルに記憶されたハッシュ値に対応する置換先ハッシュ値テーブルに記憶したハッシュ値を抽出する例を挙げた。この場合、一のオブジェクトＴのハッシュ値から他のオブジェクトＴへのハッシュ値までに至るまでのリンク数は１である。リンク数は１に限るものではなく複数であっても良い。すなわち、第１オブジェクトＴ（一のオブジェクトＴ）のハッシュ値にリンクする第２オブジェクトＴ（他のオブジェクトＴ）のハッシュ値、さらに当該ハッシュ値にリンクする第３オブジェクトＴ（さらに他のオブジェクトＴ）のハッシュ値を抽出しても良い。
【００８２】
この場合、リンク数は、一のオブジェクトＴと他のオブジェクトＴ間と、他のオブジェクトＴとさらに異なる他のオブジェクトＴ間との２つとなる。例えば図２６の例では、リンク数が１の場合、置換元ハッシュ値「１２１２」に対応する置換先ハッシュ値「１６ＡＦ」が抽出される。またリンク数が２の場合、リンク数１の「１６ＡＦ」に加えて、置換先ハッシュ値「１２１２」が抽出される。記憶部１５に予め閾値となる閾リンク数を記憶しておく。ＣＰＵ１１は記憶部１５に記憶した閾リンク数を読み出し、閾リンク数以下のリンク数を有するハッシュ値を抽出する。以下では閾リンク数を４であるものとして詳細な処理を説明する。なお、閾リンク数はユーザが入力部１３から適宜の値を入力し、設定することができる。ＣＰＵ１１は入力された閾リンク数を記憶部１５に記憶する。
【００８３】
図２９乃至図３３は閾リンク数に基づくリンク抽出処理の手順を示す説明図である。図２９Ａにおいて白三角で示す矢印は順リンクを示し、置換元のオブジェクトＴのハッシュ値Ａから置換先のオブジェクトＴのハッシュ値Ｂに置換された例を示す。なお、以下では図２９乃至図３３におけるＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｈ、Ｉ、Ｊ、Ｈ及びＺはオブジェクトＴのハッシュ値であるものとして説明する。図２９Ａにおける置換先及び置換元の関係に基づき、図２９Ａに示すリンクテーブル１５４が構築される。
【００８４】
ＣＰＵ１１は図２７及び図２８で述べた処理を行い、図２９Ｂに示す逆リンクをリンクテーブル１５４に記憶する。図２９Ｂの黒三角で示す矢印は逆リンクを示す。ここで、置換元のオブジェクトＴのハッシュ値がＡ、閾リンク数４であるとして、閾リンク数４以下の置換先オブジェクトＴのハッシュ値抽出手順を説明する。まず、ＣＰＵ１１はリンク数の初期値１から１を減じ、リンク数０を算出する。ＣＰＵ１１はスタートのハッシュ値Ａからリンク数０のハッシュ値を抽出する。この場合、スタート地点のハッシュ値Ａのみが抽出される。ＣＰＵ１１はハッシュ値Ａに対応する各種データをオブジェクトテーブル１５３から読み出す。ＣＰＵ１１はリンクワークテーブル１５５にオブジェクトテーブル１５３から読み出したハッシュ値、各種データ及びリンク数を記憶する。
【００８５】
図３４はリンクワークテーブル１５５のレコードレイアウトを示す説明図である。ＣＰＵ１１はハッシュ値に対応する各種データとして、オブジェクトテーブル１５３から、オブジェクトデータ、カテゴリ、形式、サイズ、省略データ及び利用日時等を読み出す。以下、オブジェクトテーブル１５３に記憶したハッシュ値に対応するオブジェクトデータ、カテゴリ、形式、サイズ、省略データ及び利用日時を各種データという。ＣＰＵ１１は読み出した各種データをハッシュ値に対応付けて記憶する。さらにＣＰＵ１１はリンク数フィールドにハッシュ値を抽出した際のリンク数をリンク数フィールドに記憶する。上述した例ではリンク数０が記憶される。なお、図３０乃至図３３に記載したリンクワークテーブル１５５は各種データの記載を省略している。
【００８６】
続いてＣＰＵ１１はリンク数をインクリメントし、リンク数１とする。ＣＰＵ１１は、リンクテーブル１５４を参照し、置換元のハッシュ値から、置換先のハッシュ値までのリンク数が１のハッシュ値を抽出する。図３０Ｂの例では、Ａから１駒で進むことのできるハッシュ値Ｚ、Ｂ、Ｃ、及びＤとなる。ＣＰＵ１１はリンクワークテーブル１５５に抽出したハッシュ値及びリンク数１を対応付けて記憶する。
【００８７】
ＣＰＵ１１はリンク数をインクリメントし、リンク数２とする。ＣＰＵ１１は、リンクテーブル１５４を参照し、置換元のハッシュ値から、置換先のハッシュ値までのリンク数が２のハッシュ値を抽出する。図３１Ａの例では、リンク数１の置換元のハッシュ値Ｂ、Ｃ、Ｄ、Ｚから１駒で、進むことのできるハッシュ値Ａ、Ｅ、Ｈ、及びＩとなる。ＣＰＵ１１はリンクワークテーブル１５５に抽出したハッシュ値及びリンク数２を対応付けて記憶する。リンク数が複数となった場合、同一のハッシュ値が抽出されることとなる。例えば、Ａ→Ｃ→Ａの場合、さらにハッシュ値Ａが抽出される。ＣＰＵ１１は重複を除去すべく、リンクワークテーブル１５５に同一のハッシュ値が記憶されている場合、リンク数の小さい方のハッシュ値をレコードから削除する。また同一リンク数に同一のハッシュ値が複数記憶されている場合、一つのハッシュ値を残し、他のハッシュ値を削除する。
【００８８】
図３１Ｂの例では、ハッシュ値Ａは既にリンク数０に存在するので、リンク数２のハッシュ値Ａは削除される。ハッシュ値Ｈはリンク数２に複数存在することから、一のハッシュ値Ｈのレコードを削除する。ＣＰＵ１１はリンク数をインクリメントし、リンク数３とする。ＣＰＵ１１は、リンクテーブル１５４を参照し、置換元のハッシュ値から、置換先のハッシュ値までのリンク数が３のハッシュ値を抽出する。図３２Ａの例では、リンク数２のハッシュ値Ｅ、Ｈ、Ｉから１駒で進むことのできるハッシュ値Ｃ、Ｅ、Ｈ、Ｄ及びＪとなる。ＣＰＵ１１はリンクワークテーブル１５５に抽出したハッシュ値及びリンク数３を対応付けて記憶する。
【００８９】
ＣＰＵ１１は削除処理を行う。図３２Ｂの例では、ハッシュ値Ｃは既にリンク数１に存在するので、リンク数３のハッシュ値Ｃは削除される。ハッシュ値Ｅは既にリンク数２に存在するので、リンク数３のハッシュ値Ｅはリンクワークテーブル１５５から削除される。ハッシュ値Ｈは既にリンク数２に存在するので、リンク数３のハッシュ値Ｈは削除される。ハッシュ値Ｄは既にリンク数１に存在するので、リンク数３のハッシュ値Ｄは削除される。
【００９０】
ＣＰＵ１１はリンク数をインクリメントし、リンク数４とする。ＣＰＵ１１は、リンクテーブル１５４を参照し、置換元のハッシュ値から、置換先のハッシュ値までのリンク数が４のハッシュ値を抽出する。図３３Ａの例では、リンク数３のハッシュ値Ｊから１駒で進むことのできるハッシュ値Ｅとなる。ＣＰＵ１１はリンクワークテーブル１５５に抽出したハッシュ値及びリンク数４を対応付けて記憶する。ＣＰＵ１１はリンク数２のハッシュ値Ｅが、リンクワークテーブル１５５に記憶されているので、リンク数の大きいリンク数４のハッシュ値は削除される。以上述べた処理により、閾リンク数以下のリンク数を持つハッシュ値を抽出することができる。なお、本実施形態ではリンクワークテーブル１５５をＲＡＭ１２に記憶する例を挙げたがこれに限るものではない。記憶部１５に記憶しても良い。
【００９１】
図３５乃至図３７は閾リンク数に応じたハッシュ値の抽出処理手順を示すフローチャートである。ＣＰＵ１１はステップＳ２０６でＹＥＳの後、または、ステップＳ２３３でＹＥＳの後、以下の処理を行う。ＣＰＵ１１は記憶部１５に記憶した閾リンク数を読み出す（ステップＳ３５１）。ＣＰＵ１１は置換元オブジェクトＴのハッシュ値を読み出す（ステップＳ３５２）。ＣＰＵ１１は変数であるリンク数に初期値である０を代入する（ステップＳ３５３）。
【００９２】
ＣＰＵ１１は置換元オブジェクトＴのハッシュ値に対応する各種データを、オブジェクトテーブル１５３から読み出す（ステップＳ３５４）。ＣＰＵ１１はリンクワークテーブル１５５に置換元オブジェクトＴのハッシュ値に対応する各種データ及びリンク数０をハッシュ値に対応付けて記憶する（ステップＳ３５５）。ＣＰＵ１１はリンク数をインクリメントする（ステップＳ３５６）。ＣＰＵ１１は、リンク数は、ステップＳ３５１で読み出した閾リンク数以下であるか否かを判断する（ステップＳ３５７）。ＣＰＵ１１は、リンク数は閾リンク数以下でないと判断した場合（ステップＳ３５７でＮＯ）、処理をステップＳ３７１へ移行させる。
【００９３】
ＣＰＵ１１はリンク数が閾リンク数以下であると判断した場合（ステップＳ３５７でＹＥＳ）、処理をステップＳ３５８へ移行させる。ＣＰＵ１１はリンク数から１を減じたリンク数のハッシュ値が、リンクワークテーブル１５５に記憶されているか否かを判断する（ステップＳ３５８）。ＣＰＵ１１は記憶されていないと判断した場合（ステップＳ３５８でＮＯ）、処理をステップＳ３７１へ移行させる。ＣＰＵ１１は記憶されていると判断した場合（ステップＳ３５８でＹＥＳ）、リンク数から１を減じたリンク数のハッシュ値を、リンクワークテーブル１５５から読み出す（ステップＳ３５９）。
【００９４】
ＣＰＵ１１は読み出したハッシュ値がリンクテーブル１５４の置換元フィールドに記憶されているか否かを判断する（ステップＳ３６１）。ＣＰＵ１１は記憶されていないと判断した場合（ステップＳ３６１でＮＯ）、処理をステップＳ３７１へ移行させる。ＣＰＵ１１は記憶されていると判断した場合（ステップＳ３６１でＹＥＳ）、処理をステップＳ３６２へ移行させる。ＣＰＵ１１は対応する置換先フィールドのハッシュ値をリンクテーブル１５４から抽出する（ステップＳ３６２）。
【００９５】
ＣＰＵ１１は読み出したハッシュ値に対応する各種データをオブジェクトテーブル１５３から読み出す（ステップＳ３６３）。ＣＰＵ１１は読み出した各種データを、ステップＳ３６２で抽出したハッシュ値に対応付けてリンクワークテーブル１５５に記憶する（ステップＳ３６４）。ＣＰＵ１１はステップＳ３６２で抽出したハッシュ値に対応付けてリンク数を、リンクワークテーブル１５５に記憶する（ステップＳ３６５）。
【００９６】
ＣＰＵ１１はリンクワークテーブル１５５に同一ハッシュ値が記憶されているか否かを判断する（ステップＳ３６６）。ＣＰＵ１１は同一ハッシュ値が記憶されていない場合（ステップＳ３６６でＮＯ）、処理をステップＳ３５６へ移行させる。ＣＰＵ１１は同一ハッシュ値が記憶されていると判断した場合（ステップＳ３６６でＹＥＳ）、同一ハッシュ値のリンク数が同一であるか否かを判断する（ステップＳ３６７）。ＣＰＵ１１はリンク数が同一であると判断した場合（ステップＳ３６７でＹＥＳ）、一つのハッシュ値を残して、同一リンク数の同一ハッシュ値を削除する（ステップＳ３６８）。ＣＰＵ１１はその後処理をステップＳ３５６へ移行させる。
【００９７】
ＣＰＵ１１はリンク数が同一でないと判断した場合（ステップＳ３６７でＮＯ）、ステップＳ３６９へ移行させる。ＣＰＵ１１はリンク数最小のハッシュ値を残して他の同一ハッシュ値を削除する（ステップＳ３６９）。ＣＰＵ１１はその後処理をステップＳ３５６へ移行させる。以上の処理を繰り返すことによって、リンク数が閾リンク数に達するまでリンクワークテーブル１５５に情報が蓄積される。ＣＰＵ１１はリンクワークテーブル１５５からリンク数０のレコードを削除する（ステップＳ３７１）。ＣＰＵ１１は利用日時が新しいもの順に、または、リンク数の値の小さいもの順にリンクワークテーブル１５５を並び替える（ステップＳ３７２）。
【００９８】
図３８はリンクワークテーブル１５５を用いたリンク欄Ｌ２及び省略データの表示処理手順を示すフローチャートである。ステップＳ３７２の後以下の処理を行う。ＣＰＵ１１は置換先のハッシュ値が存在した文例候補Ｌ１にアイコンを表示する（ステップＳ３８１）。ＣＰＵ１１はリンクワークテーブル１５５から置換先オブジェクトＴのカテゴリ、形式、サイズ及び利用日時を抽出する（ステップＳ３８２）。ＣＰＵ１１はリンク欄Ｌ２に置換先オブジェクトＴのカテゴリ、形式、サイズ及び利用日時を利用日時順に表示する（ステップＳ３８３）。ＣＰＵ１１は複数のリンク欄Ｌ２が存在する場合、リンク欄Ｌ２に表示するカテゴリ、形式、サイズ及び利用日時に対応付けて対応するハッシュ値をＲＡＭ１２に記憶しておく。
【００９９】
ＣＰＵ１１は置換先オブジェクトＴの省略データをリンクワークテーブル１５５から抽出する（ステップＳ３８４）。ＣＰＵ１１は複数の省略データが存在する場合、省略データに対応付けて対応するハッシュ値をＲＡＭ１２に記憶しておく。ＣＰＵ１１は置換先の省略データをリンク欄Ｌ２に対応付けて表示部１４に表示する（ステップＳ３８５）。以降ＣＰＵ１１は処理をステップＳ２１７へ移行させる。ＣＰＵ１１はリンク欄Ｌ２が選択された場合、ＲＡＭ１２に対応付けて記憶したハッシュ値に対応するオブジェクトデータをリンクワークテーブル１５５から読み出して置換する。またＣＰＵ１１は省略データが選択された場合、ＲＡＭ１２に対応付けて記憶したハッシュ値に対応するオブジェクトデータをリンクワークテーブル１５５から読み出して置換する。
【０１００】
ＣＰＵ１１はステップＳ２２６で述べたように、置換先オブジェクトＴのハッシュ値を参照し、オブジェクトテーブル１５３の利用日時を更新する。また図２７及び図２８で説明したように、ステップＳ３５２で読み出した置換元のオブジェクトＴのハッシュ値と、選択された置換先のオブジェクトＴのハッシュ値との対応付け処理を、順リンク及び逆リンクについて行う。なお、文例候補Ｌ１の選択ではなく、オブジェクトＴを選択した場合の処理も同様であるので、詳細な説明は省略する。これにより、ユーザ自身の過去の置換履歴を有効活用して、編集効率を向上させることが可能となる。また閾リンク数を適宜設定することで、好みに応じて過去の置換履歴を活用することが可能となる。
【０１０１】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【０１０２】
実施の形態４
図３９は上述した形態のパーソナルコンピュータ１の動作を示す機能ブロック図である。ＣＰＵ１１が制御プログラム１５Ｐ等を実行することにより、パーソナルコンピュータ１は以下のように動作する。パーソナルコンピュータ１は検出部１０１、記憶処理部１０２、及び抽出部１０３等を含む。検出部１０１は表示部１４に表示された一のオブジェクトＴが記憶部１５に記憶された他のオブジェクトＴへ置換されたか否かを検出する。記憶処理部１０２は検出部１０１により置換されたことを検出した場合に、他のオブジェクトＴ及び一のオブジェクトＴを関連付けて記憶部１５に記憶する。抽出部１０３は一のオブジェクトＴが表示部１４に表示される場合に、記憶部１５を参照し他のオブジェクトＴを抽出する。
【０１０３】
図４０は実施の形態４に係るパーソナルコンピュータ１のハードウェア群を示すブロック図である。パーソナルコンピュータ１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１０ＡにCD-ROM、DVD（Digital Versatile Disc）ディスクまたはUSBメモリ等の可搬型記録媒体１Ａを読み取らせて記憶部１５に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１Ｂをパーソナルコンピュータ１内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【０１０４】
図４０に示すパーソナルコンピュータ１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１Ａまたは半導体メモリ１Ｂから読み取り、或いは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム１５Ｐとしてインストールされ、ＲＡＭ１２にロードして実行される。これにより、上述したパーソナルコンピュータ１として機能する。
【０１０５】
本実施の形態４は以上の如きであり、その他は実施の形態１乃至３と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【０１０６】
以上の実施の形態１乃至４を含む実施形態に関し、さらに以下の付記を開示する。
【０１０７】
（付記１）
制御部及び表示部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
前記表示部に表示された一のオブジェクトが記憶部に一時的に記憶された他のオブジェクトへ置換されたか否かを前記制御部により検出し、
置換されたことを検出した場合に、前記制御部により前記他のオブジェクト及び一のオブジェクトを関連付けて記憶部に記憶し、
前記一のオブジェクトが前記表示部に表示される場合に、前記制御部により前記記憶部を参照し、前記一のオブジェクトに関連付けられた他のオブジェクトを抽出する
処理を実行させるプログラム。
【０１０８】
（付記２）
前記一のオブジェクトを前記制御部により抽出した前記他のオブジェクトへ置換し、
置換された前記他のオブジェクトを前記制御部により前記表示部に表示する
付記１に記載のプログラム。
【０１０９】
（付記３）
記憶する処理は、
置換されたことを検出した場合に、前記制御部により前記他のオブジェクトのハッシュ値と、前記一のオブジェクトのハッシュ値とを算出し、
前記制御部により前記他のオブジェクト及び該他のオブジェクトのハッシュ値と、一のオブジェクト及び一のオブジェクトのハッシュ値とを関連付けて記憶する
付記１または２に記載のプログラム。
【０１１０】
（付記４）
記憶する処理は、
他のオブジェクトのハッシュ値に対応付けて該他のオブジェクトのサムネイルを記憶する
付記３に記載のプログラム。
【０１１１】
（付記５）
記憶する処理は、
一のオブジェクトのハッシュ値に対応付けて該一のオブジェクトのサムネイルを記憶する
付記４に記載のプログラム。
【０１１２】
（付記６）
記憶する処理は、
置換されたことを検出した場合に、他のオブジェクトのハッシュ値に対応付けて日時を記憶し、
置換されたことを検出した場合に、一のオブジェクトのハッシュ値に対応付けて日時を記憶する
付記３乃至５のいずれか一つに記載のプログラム。
【０１１３】
（付記７）
記憶する処理は、
他のオブジェクトのハッシュ値に対応付けて該他のオブジェクトの属性を記憶し、
一のオブジェクトのハッシュ値に対応付けて該一のオブジェクトの属性を記憶する
付記３乃至６のいずれか一つに記載のプログラム。
【０１１４】
（付記８）
オブジェクトはテキストデータを含み、
記憶する処理は、
他のオブジェクトのハッシュ値に対応付けて該他のオブジェクトのテキストデータの一部を記憶する
付記３乃至７のいずれか一つに記載のプログラム。
【０１１５】
（付記９）
オブジェクトはテキストデータを含み、
記憶する処理は、
一のオブジェクトのハッシュ値に対応付けて該一のオブジェクトのテキストデータの一部を記憶する
付記３乃至８のいずれか一つに記載のプログラム。
【０１１６】
（付記１０）
抽出する処理は、
前記一のオブジェクトが前記表示部に表示される場合、該一のオブジェクトのハッシュ値を算出し、
記憶部を参照し、前記一のオブジェクトのハッシュ値に対応する他のオブジェクトのハッシュ値を抽出する
付記３乃至９のいずれか一つに記載のプログラム。
【０１１７】
（付記１１）
記憶部を参照し、前記一のオブジェクトのハッシュ値に対応する他のオブジェクトのハッシュ値に係るサムネイルを前記表示部に表示する
付記１０に記載のプログラム。
【０１１８】
（付記１２）
記憶部を参照し、前記一のオブジェクトのハッシュ値に対応する他のオブジェクトのハッシュ値に係る属性を前記表示部に表示する
付記１０に記載のプログラム。
【０１１９】
（付記１３）
記憶部を参照し、前記一のオブジェクトのハッシュ値に対応する他のオブジェクトのハッシュ値に係るテキストデータの一部を表示部に表示する
付記１０に記載のプログラム。
【０１２０】
（付記１４）
前記一のオブジェクトのハッシュ値に関連する他のオブジェクトのハッシュ値が記憶部に複数記憶されている場合、前記他のオブジェクトのハッシュ値に対応付けて記憶部に記憶した日時に基づいて順に表示部に表示する
付記１０乃至１３のいずれか一つに記載のプログラム。
【０１２１】
（付記１５）
抽出された他のオブジェクトのハッシュ値に係るサムネイルまたは属性が表示部に表示されている場合に、サムネイルまたは属性の選択を受け付け、
受け付けたサムネイルまたは属性に係るハッシュ値に対応する他のオブジェクトを抽出する
付記１０乃至１４のいずれか一つに記載のプログラム。
【０１２２】
（付記１６）
前記他のオブジェクトが抽出され前記一のオブジェクトが前記他のオブジェクトへ置換された場合に、記憶部に記憶した前記他のオブジェクトのハッシュ値に対応する日時を更新する
付記１４または１５に記載のプログラム。
【０１２３】
（付記１７）
記憶する処理は、
置換されたことを検出した場合に、前記他のオブジェクトのハッシュ値及び置換先であることを示す置換先情報と、前記一のオブジェクトのハッシュ値及び置換元であることを示す置換元情報とを対応付けて記憶し、
前記他のオブジェクトのハッシュ値及び置換元情報と、前記一のオブジェクトのハッシュ値及び置換先情報とを対応付けて記憶する
付記３乃至１６のいずれか一つに記載のプログラム。
【０１２４】
（付記１８）
記憶部に記憶した閾値を読み出し、
前記記憶部に記憶した複数のオブジェクトのハッシュ値間の対応関係に基づき、一のオブジェクトのハッシュ値から他のオブジェクトのハッシュ値へ至るまでのリンク数が閾値以下の他のオブジェクトのハッシュ値を抽出する
付記１７に記載のプログラム。
【０１２５】
（付記１９）
記憶部を参照し、抽出した他のオブジェクトのハッシュ値に対応するサムネイル、属性またはテキストデータを表示部に表示する
付記１８に記載のプログラム。
【０１２６】
（付記２０）
情報処理を行う情報処理装置において、
表示部に表示された一のオブジェクトが記憶部に一時的に記憶された他のオブジェクトへ置換されたか否かを検出する検出部と、
該検出部により置換されたことを検出した場合に、前記他のオブジェクト及び一のオブジェクトを関連付けて記憶部に記憶する記憶処理部と、
前記一のオブジェクトが前記表示部に表示される場合に、前記記憶部を参照し、前記一のオブジェクトに関連付けられた他のオブジェクトを抽出する抽出部と
を備える情報処理装置。
【符号の説明】
【０１２７】
１      パーソナルコンピュータ
１Ａ    可搬型記録媒体
１Ｂ    半導体メモリ
１０Ａ  読み取り部
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１４    表示部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
１８    時計部
１０１  検出部
１０２  記憶処理部
１０３  抽出部
１５１  文例ファイル
１５２  退避テーブル
１５３  オブジェクトテーブル
１５４  リンクテーブル
１５５  リンクワークテーブル
Ａ、Ａ１、Ａ２  アプリケーション
Ｌ１    文例候補
Ｌ２    リンク欄
Ｌ３    サムネイル
Ｌ４    一部文字データ
Ｔ、Ｔ１、Ｔ２  オブジェクト
Ｎ      通信網
【図１】
0005672094.tif 000002
【図２】
0005672094.tif 000003
【図３】
0005672094.tif 000004
【図４】
0005672094.tif 000005
【図５】
0005672094.tif 000006
【図６】
0005672094.tif 000007
【図７】
0005672094.tif 000008
【図８】
0005672094.tif 000009
【図９】
0005672094.tif 000010
【図１０】
0005672094.tif 000011
【図１１】
0005672094.tif 000012
【図１２】
0005672094.tif 000013
【図１３】
0005672094.tif 000014
【図１４】
0005672094.tif 000015
【図１５】
0005672094.tif 000016
【図１６】
0005672094.tif 000017
【図１７】
0005672094.tif 000018
【図１８】
0005672094.tif 000019
【図１９】
0005672094.tif 000020
【図２０】
0005672094.tif 000021
【図２１】
0005672094.tif 000022
【図２２】
0005672094.tif 000023
【図２３】
0005672094.tif 000024
【図２４】
0005672094.tif 000025
【図２５】
0005672094.tif 000026
【図２６】
0005672094.tif 000027
【図２７】
0005672094.tif 000028
【図２８】
0005672094.tif 000029
【図２９】
0005672094.tif 000030
【図３０】
0005672094.tif 000031
【図３１】
0005672094.tif 000032
【図３２】
0005672094.tif 000033
【図３３】
0005672094.tif 000034
【図３４】
0005672094.tif 000035
【図３５】
0005672094.tif 000036
【図３６】
0005672094.tif 000037
【図３７】
0005672094.tif 000038
【図３８】
0005672094.tif 000039
【図３９】
0005672094.tif 000040
【図４０】
0005672094.tif 000041