(57)【特許請求の範囲】
【請求項１】
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示部、
ユーザによる操作を検知する検知部、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ部、を備え、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示部は、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完部
をさらに備えることを特徴とする入力装置。
【請求項２】
前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、前記表示部は、当該空でない入力欄に対応する表示欄に警告を表示する、
請求項１に記載の入力装置。
【請求項３】
前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、前記表示部は、当該空でない入力欄に対応する前記表示欄に、前記抽出された文字列に関連付けられた情報を表示する、
請求項２に記載の入力装置。
【請求項４】
優先度の異なる複数の前記データベースを備え、
前記クエリ部は、前記入力済の文字列により前記複数のデータベースを検索するクエリを発して、当該クエリにマッチする結果を受け付け、
前記表示部は、前記受け付けられた結果の数が、所定の閾値以下であった場合に、前記優先度が高い前記データベースからマッチした結果を、前記優先度が低い前記データベースからマッチした結果より優先して表示する、
請求項１から３のいずれか１項に記載の入力装置。
【請求項５】
フォーム入力装置が、任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示ステップと、
前記フォーム入力装置が、ユーザによる操作を検知する検知ステップと、
前記フォーム入力装置が、前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリステップと、を備え、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示ステップでは、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、前記フォーム入力装置が、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完ステップ
をさらに備えることを特徴とするフォーム入力方法。
【請求項６】
コンピュータに、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示手順、
ユーザによる操作を検知する検知手順、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ手順、を実行させ、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示手順では、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完手順
をさらに実行させるプログラムを記録した記録媒体。
【請求項７】
コンピュータに、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示手順、
ユーザによる操作を検知する検知手順、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ手順、を実行させ、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示手順では、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完手順
をさらに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力装置、フォーム入力方法、記録媒体およびプログラムに関する。
【背景技術】
【０００２】
近年、システムによる情報の取り扱いが一般的となり、ユーザがシステムに情報を入力することも日常的に行われている。ユーザがシステムに情報を入力する場合、ユーザは、システムが提示する入力フォームを介して情報を入力することが多い。入力フォームとは、ユーザが入力すべき情報について、項目ごとに個別の表示された入力欄を含むフォーマットを指す。システムは、入力フォームをユーザに対して表示し、ユーザにより各入力欄に入力された情報を入力データとして受け付ける。【０００３】
ユーザが入力フォームを介して情報を入力する場合、特に入力欄が多数あるケースでは、ある入力欄と他の入力欄で内容に矛盾が生じることがある。また、情報を入力しようとするユーザが、ある項目の情報（例えば、住所）を知っているが、対応する他の項目の情報（例えば、郵便番号）を知らないために、入力フォームへの情報入力に支障が出ることがある。このようなケースに備え、ユーザによる入力をサポートする技術が存在する。【０００４】
例えば、特許文献１は、特定の欄（第１のフィールド）に入力された文字列をもとに、他の特定の欄（第２のフィールド）の単語の候補を抽出し、抽出した単語をもとに第２のフィールドの入力文字列を補完し、または修正する処理装置を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７１９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述した技術では、入力フォームにおける入力ミスを解消できないケースが存在した。【０００７】
特許文献１が開示する技術では、特定の欄（第１のフィールド）に入力された文字列をもとに、他の特定の欄（第２のフィールド）の内容を補完し、または修正することができる。しかし、元となるデータが入力される欄（第１のフィールド）と、補完または修正の対象の欄（第２のフィールド）の関係が固定されており、例えばこの処理装置は、第２のフィールドに入力された文字列をもとに第１のフィールドの内容を修正することはできなかった。そのため、第１のフィールドに誤った情報を入力してしまった場合には、従来技術では入力フォームにおける入力ミスを十分に解消できなかった。【０００８】
本発明は、このような問題点に鑑みてなされたものである。すなわち、本発明の目的は、ユーザによる入力フォームへの情報入力の際に発生する入力ミスを低減することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点に係る入力装置は、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示部、
ユーザによる操作を検知する検知部、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ部、を備え、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示部は、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完部
をさらに備えることを特徴とする。【００１０】
上記目的を達成するため、本発明の第２の観点に係るフォーム入力方法は、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示ステップと、
ユーザによる操作を検知する検知ステップと、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリステップと、を備え、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示ステップでは、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完ステップ
をさらに備えることを特徴とする。【００１１】
上記目的を達成するため、本発明の第３の観点に係る記録媒体は、
コンピュータに、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示手順、
ユーザによる操作を検知する検知手順、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ手順、を実行させ、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示手順では、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完手順
をさらに実行させるプログラムを記録している。【００１２】
上記目的を達成するため、本発明の第４の観点に係るプログラムは、
コンピュータに、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示手順、
ユーザによる操作を検知する検知手順、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ手順、を実行させ、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示手順では、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
（ａ）前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
（ｂ）前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完手順
をさらに実行させる。
【発明の効果】
【００１３】
本発明によれば、ユーザによる入力フォームへの情報入力の際に生じる入力ミスを低減させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係る入力装置の機能構成を示すブロック図である。
【図２】入力装置のハードウェア構成を示すブロック図である。
【図３】データベースに記録されたレコードの一例を示した図である。
【図４】入力フォームの一例を示した図である。
【図５】候補表示処理を示すフローチャートである。
【図６】補完処理を示すフローチャートである。
【図７】ユーザが入力欄に文字列を入力した入力フォームの例を示す図である。
【図８】検索結果が表示されている入力フォームの例を示す図である。
【図９】表示された検索結果からユーザが一つの結果を選択した場合の入力フォームの例を示す図である。
【図１０】複数の入力欄に検索結果が表示されている入力フォームの例を示す図である。
【図１１】表示された検索結果からユーザが一つの結果を選択した場合の入力フォームの例を示す図である。
【図１２】入力例欄に警告が表示されている入力フォームの例を示す図である。
【図１３】入力例欄に警告とともに選択結果から抽出された文字列が表示されている入力フォームの例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について添付図面を参照しつつ説明する。
【００１６】
＜実施の形態＞
本発明の実施の形態に係る入力装置１０は、ユーザから、情報の入力を受け付けるための装置である。入力装置１０は、フォームによる情報収集を行うための一般的な機能を備え、例えば、ユーザが入力すべき情報の項目ごとに入力欄を表示し、各入力欄に入力された情報を入力データとして受け付ける機能を有する。
【００１７】
本実施の形態における入力装置１０は、インターネットを通じて顧客に商品を販売しているユーザ（ショップの経営者または担当者など）が、顧客に商品を販売するための商品ページを作成する際に、商品の情報の入力を受け付けるための装置である。特に、入力フォームにユーザが入力した情報に基づいて、未入力の入力欄に自動的に情報を入力したり、あるいは入力済みの入力欄における入力ミスを検知したり訂正したりすることで、ユーザによる商品ページの作成をサポートするものである。ここで、「入力」とは、空である入力欄に文字列を追加する行為をさし、「編集」とは、空ではない入力欄に入力されている文字列を削除したり、入れ替えたり、追加したりする行為をさす。
【００１８】
本実施の形態では、入力装置１０は、ショップの経営者であるユーザが直接操作することができる一種の端末装置であり、ネットワークを介して電子市場サーバ（複数のショップにより作成された商品ページを保有し、商品ページをウェブサイトとしてインターネット上に公開するサーバ）に接続する。ユーザが商品ページを作成する際には、ユーザは、入力装置１０のウェブブラウザを介して電子市場サーバに接続し、商品ページを作成する操作を行う。入力装置１０は、電子市場サーバから提供される入力フォームを形成する命令を含むＨＴＭＬ文書（HyperText Mark-up Language）を受信する。入力装置１０が、受信したＨＴＭＬ文書に含まれる、あるいはＨＴＭＬ文書に記載されたリンク先に存在するジョブスクリプト（JavaScript（登録商標）等により記述されたもの）等を実行することにより、入力装置１０の画面に、電子市場サーバに情報を提供するための入力フォームが表示される。
【００１９】
本実施の形態に係る入力装置１０は、図１に示すように、機能面では、表示部１１、検知部１２、クエリ部１３、補完部１４を備える。
【００２０】
表示部１１は、ユーザ１に、任意の順序で入力可能な複数の入力欄を有するフォームを表示する。
【００２１】
検知部１２は、ユーザ１が表示部１１によって表示されたフォームの入力欄に文字列を入力すると、ユーザ１による操作を検知する。
【００２２】
クエリ部１３は、表示部１１が表示した入力欄のいずれかに、ユーザ１による文字列の入力または編集の操作が検知されると、入力欄に入力済みの文字列により、データベース１９を検索するクエリを発する。また、クエリ部１３は、発したクエリに対してデータベース１９から返される結果（クエリにマッチする結果）を受け付ける。データベース１９は、本実施の形態では、電子市場サーバ内にあることを想定しているが、それに限られず、入力装置１０の内部にあるものでもあってもよいし、また他の装置が有するものであってもよい。
【００２３】
なお、表示部１１は、クエリ部１３が受け付けた結果の数が、所定の閾値以下であれば、クエリ部１３が受け付けた結果を、フォームとともに表示する。
【００２４】
補完部１４は、表示部１１が表示した結果を受け、ユーザの指示に基づいて入力欄の内容を自動的に補完し、あるいは入力欄の内容に矛盾がある場合は警告を発する。具体的には、検知部１２が、ユーザ１が表示結果のうちいずれかを選択する指示の操作をしたことを検出すると、補完部１４は、入力されていない入力欄に、ユーザ１が選択した結果から抽出された文字列を自動的に入力する。または、補完部１４は、すでに入力欄に入力されている文字列と、ユーザ１が選択した結果から抽出された文字列が矛盾する場合、ユーザ１に警告する。ここで、矛盾とは、ユーザ１が選択した結果をもとにデータベース１９から抽出された情報と、すでに入力欄に入力されている文字列とが一致しない関係を指す。このようにして、補完部１４は、表示部１１が表示した入力欄に対する入力を補完する。
【００２５】
入力装置１０は、上述の構成を有することにより、ユーザ１が入力欄に入力した内容に基づいて、まだ入力されていない入力欄に入力されるべき情報を自動的に入力し、あるいは互いに矛盾する入力内容があるとそれをユーザ１に警告する。そのため、ユーザ１による入力ミスを低減することができる。また、こういった処理をユーザからの検索指示なくして実行するため、ユーザは特段の操作なくフォームの入力を続けることができ、労力を低減することができる。
【００２６】
本実施の形態に係る入力装置１０は、図２に示すように、ハードウェアとして、ＣＰＵ（Central Processing Unit）１１０、ＲＯＭ（Read Only Memory）１１１、ＲＡＭ（Random Access Memory）１１２、記憶装置１２０、操作デバイス１３０、ディスプレイ１４０、ネットワークインターフェース１５０を備え、これらが内部バス１９０を介して互いに接続された構成を有する。
【００２７】
ＣＰＵ１１０は、ＲＯＭ１１１、ＲＡＭ１１２および記憶装置１２０が記憶するプログラムを実行することにより、入力装置１０の全体を制御する。ＣＰＵ１１０は、必要に応じてＲＯＭ１１１、ＲＡＭ１１２、記憶装置１２０から実行するプログラムを読み出し、また必要に応じてＲＡＭ１１２、記憶装置１２０上にデータを保存する。
【００２８】
ＲＯＭ１１１は、ＣＰＵ１１０が稼動する上で必要となるプログラム、例えば入力装置１０の起動時にＣＰＵ１１０が最初に実行するプログラム等を記憶する。
【００２９】
ＲＡＭ１１２は、ＣＰＵ１１０がプログラムを実行する際にワークエリアとして機能する。すなわち、ＲＡＭ１１２は、ＣＰＵ１１０が実行中のプログラム、あるいは、ＣＰＵ１１０がプログラムを実行する上で必要となる一時的なデータを記録し、ＣＰＵ１１０からの要求に応じてＣＰＵ１１０に提供する。
【００３０】
記憶装置１２０は、ハードディスクドライブやフラッシュメモリ等の記憶装置を備え、入力装置１０が稼動するために必要なデータを記憶する。特に、後述するデータベース１９を記録するものであってもよい。
【００３１】
記憶装置１２０は、例えば、ＣＰＵ１１０が実行するためのプログラム、あるいはＣＰＵ１１０がプログラムを実行する上で参照するデータを記録し、ＣＰＵ１１０からの要求に応じてＣＰＵ１１０に提供する。また、記憶装置１２０は、ＣＰＵ１１０からの要求に応じ、ＣＰＵ１１０から出力されたデータを記録する。
【００３２】
操作デバイス１３０は、キーボードやマウス等を備え、ユーザ１による入力操作を受け付けてＣＰＵ１１０に伝達する。
【００３３】
ディスプレイ１４０は、液晶ディスプレイもしくはブラウン管モニタを備え、ユーザ１に必要な情報を表示する。
【００３４】
ネットワークインターフェース１５０は、入力装置１０をネットワーク（図示せず）に接続する。入力装置１０が、ネットワークを介して他機器に情報を送信し、あるいは他機器から情報を受信する際、ネットワークインターフェース１５０は、ＣＰＵ１１０から後述する内部バス１９０を介して受信した情報を、ネットワークを介して他機器へ送信し、また他機器からネットワークを介して受信した情報を、内部バス１９０を介してＣＰＵ１１０へ送信する。一例として、入力装置１０は、ネットワークインターフェース１５０を介し、図示しない電子市場サーバが有するデータベース１９にクエリを発し、またデータベース１９からクエリにマッチする結果を受け付ける。
【００３５】
ネットワークインターフェース１５０は、例えばケーブルを介して入力装置１０をネットワークに接続してもよいし、あるいは無線通信により入力装置１０をネットワークに接続してもよい。
【００３６】
内部バス１９０は、入力装置１０内の構成要素（ＣＰＵ１１０、ＲＯＭ１１１、ＲＡＭ１１２、記憶装置１２０、操作デバイス１３０、ディスプレイ１４０、ネットワークインターフェース１５０等）間での情報のやり取りを中継する。例えば、ＣＰＵ１１０が必要なデータを記憶装置１２０から読み出すとき、ＣＰＵ１１０は、内部バス１９０を介して記憶装置１２０からデータを読み出す。
【００３７】
入力装置１０は、ここまで述べた各ハードウェアを協同して動作させることにより、前述した各機能を実現する要素（表示部１１、検知部１２、クエリ部１３、および補完部１４）として機能する。例えば、ＣＰＵ１１０がディスプレイ１４０を介し、後述する入力フォームをユーザに表示することで、表示部１１としての機能を実現する。また、ＣＰＵ１１０が、操作デバイス１３０を介してユーザによる操作を検知することにより、検知部１２としての機能を実現する。クエリ部１３および補完部１４についても同様であり、詳しくは後述する。
【００３８】
本実施の形態において、クエリ部１３がクエリを発し、あるいはクエリ部１３が検索の結果を受け付けるデータベース１９は、入力装置１０が有するものであってもよいし、また入力装置１０とは異なる他の装置が有するものでもあってもよい。入力装置１０がデータベース１９を有する場合、データベース１９は記憶装置１２０に記録される。入力装置１０とは異なる他の装置がデータベース１９を有する場合、入力装置１０は、ネットワークインターフェース１５０を介してデータベース１９にクエリを発し、あるいは検索の結果を受け付ける。
【００３９】
データベース１９の検索にあたっては、部分一致検索により検索が実行される。そのため、クエリに複数の文字列が検索ワードとして含まれていた場合でも、検索の結果においてすべての検索ワードが含まれているとは限らない。場合によっては、クエリに含まれる文字列とは矛盾する内容が検索結果として戻されるケースも存在する。
【００４０】
また、本実施の形態においては、入力装置１０が操作デバイス１３０およびディスプレイ１４０を備えるが、本発明はこれに限られない。例えば、入力装置１０にネットワークインターフェース１５０を介してネットワーク接続によりユーザからの操作を受け付け、あるいはユーザに情報を表示することもできる。この場合、ユーザは、入力装置１０にネットワーク接続する他の機器が備える操作デバイスを通じて入力装置１０に指示を入力し、また当該他の機器が備えるディスプレイを通じて入力装置１０からの情報を受け取る。
【００４１】
データベース１９は、複数の文字列データが連結したレコードを複数記録する。図３に示すように、データベース１９に含まれるレコードＲ１は、「商品名」の属性を有する文字列データＩ０１、「ジャンル名」の属性を有する文字列データＩ０２、「メーカー型番」の属性を有する文字列データＩ０３、「商品説明」の属性を有する文字列データＩ０４、「ＪＡＮ（Japanese Article Number）コード」の属性を有する文字列データＩ０５などを含み、これらが連結された構造を有する。ほかにも、レコードＲ１は、「価格」など他の属性を有する文字列データを含んでいてもよい。
【００４２】
表示部１１は、ユーザ１に、図４に例を示す入力フォームを表示する。入力フォームは、入力欄（入力欄Ａ１１〜Ａ１５）、入力例欄（Ｂ１１〜Ｂ１５）、保存ボタンＡ２１、終了ボタンＡ２２などを含むものである。
【００４３】
入力欄は、ユーザ１が入力した文字列を受け付け、表示することができる欄である。入力フォームは、任意の順序で入力可能な複数の入力欄を有する。入力欄は、入力装置１０が受け付ける情報の項目（属性）ごとに設けられ、それぞれの属性に対応付けられている。図４に示した例においては、入力フォームは、属性「商品名」の入力を受け付ける入力欄Ａ１１、属性「ジャンル名」の入力を受け付ける入力欄Ａ１２、属性「メーカー型番」の入力を受け付ける入力欄Ａ１３、属性「商品説明」の入力を受け付ける入力欄Ａ１４、属性「ＪＡＮコード」の入力を受け付ける入力欄Ａ１５を有する。
【００４４】
また、入力フォームは、それぞれの入力欄に対応する入力例欄を有する。入力例欄は、入力装置１０がユーザ１に対し警告や他の情報を含むメッセージを表示するための表示欄である。図４に示した例では、属性「商品名」の入力欄Ａ１１に対応する入力例欄Ｂ１１、属性「ジャンル名」の入力欄Ａ１２に対応する入力例欄Ｂ１２、属性「メーカー型番」の入力欄Ａ１３に対応する入力例欄Ｂ１３、属性「商品説明」の入力欄Ａ１４に対応する入力例欄Ｂ１４、属性「ＪＡＮコード」の入力欄Ａ１５に対応する入力例欄Ｂ１５が示されている。
【００４５】
入力装置１０は、表示部１１が表示した各入力欄へのユーザ１による入力を受け付け、各入力欄の文字列を編集する機能を提供する。ユーザ１が保存ボタンＡ２１をクリックすると、入力装置１０は各入力欄に入力された文字列を連結してレコードを作成し、作成したレコードを電子市場サーバにあるデータベース１９に記録する。また、ユーザ１が終了ボタンＡ２２をクリックすると、入力フォームによる情報受け付けを終了する。ほかにも、入力装置１０は、情報機器において入力された情報を受け付けるための一般的な機能を有するが、詳細については説明を割愛する。
【００４６】
また入力装置１０は、ユーザ１が操作デバイス１３０を介して入力欄に文字列を入力すると、文字列を入力する操作がなされたことを検出し、入力された文字列によりデータベース１９を検索するクエリを発し、候補表示処理を開始する。一方で、入力装置１０は、候補表示処理を行いつつ、並行してユーザ１による操作を受け付けるため、候補表示処理はいわゆるバックグラウンドジョブとして実行される。ここから、入力装置１０による候補表示処理について説明する。
【００４７】
検知部１２が、ユーザ１によっていずれかの入力欄に文字列が入力されたことを検出すると、入力装置１０は、図５に示す候補表示処理を開始する。
【００４８】
候補表示処理の最初に、ＣＰＵ１１０は、ユーザ１によって入力された入力欄および入力された文字列を検出する（ステップＳ１１）。具体的には、ユーザ１が入力フォームのどの入力欄（Ａ１１〜Ａ１５）に文字列を入力したかを検出し、また入力が検出された入力欄に入力されている文字列を検出する。
【００４９】
次にＣＰＵ１１０は、データベース１９を検索するクエリを発行する（ステップＳ１２）。具体的には、ＣＰＵ１１０は、文字列が入力済みの入力欄に入力された文字列と、当該入力欄の属性とを関連付け、これら（入力された文字列および関連付けられた属性）を含むクエリを生成する。ＣＰＵ１１０は、生成したクエリをデータベース１９に発する。
【００５０】
ステップＳ１２において、文字列が入力済みの入力欄が複数あった場合、ＣＰＵ１１０は、それら複数の入力欄に入力済みの複数の文字列について、それぞれの入力欄の属性に関連付け、それぞれの入力された文字列および関連付けられた属性をすべて含むクエリを１つ生成し、データベース１９に発する。
【００５１】
ＣＰＵ１１０がクエリを発行すると、当該クエリに応じてデータベース１９の検索が実行される。具体的には、データベース１９では、クエリに含まれる文字列を、クエリにおいて当該文字列に関連付けられている属性として有するレコードが検索される。データベース１９に該当するレコードが存在する場合、当該レコードが検索結果として戻される。クエリが複数の文字列を含むものである場合、各文字列を、それぞれ関連づけられた属性として有するレコードが部分一致検索により検索される。検索が終了すると、データベース１９から、マッチする結果が検索結果として戻される。このとき、マッチする結果の数に制限はなく、該当するレコードがなければ０件でもいいし、また複数のレコードが該当すれば複数でもよい。
【００５２】
データベース１９の検索結果が戻されると、ＣＰＵ１１０は、戻された検索結果を受け付ける（ステップＳ１３）。具体的には、データベース１９から戻された結果をＲＡＭ１１２あるいは記憶装置１２０に記録する。ステップＳ１２およびステップＳ１３の処理を行うことにより、ＣＰＵ１１０は、クエリ部１３としての機能を実現する。
【００５３】
次にＣＰＵ１１０は、ステップＳ１３で受け付けた結果の数が、所定の閾値以下であるか否かを判定する（ステップＳ１４）。具体的には、ＲＡＭ１１２あるいは記憶装置１２０に記録されている、データベース１９から戻された結果を参照し、そこに含まれるレコードの数をカウントし、その数が所定の閾値以下であるかを判定する。結果の数を所定の閾値以下ではないと判定した場合（ステップＳ１４：ＮＯ）、ＣＰＵ１１０は、そのまま候補表示処理を終了する。
【００５４】
ステップＳ１４で結果の数を所定の閾値以下であるとした場合（ステップＳ１４：ＹＥＳ）、ＣＰＵ１１０は、ステップＳ１３で受け付けた結果を入力フォームとともに表示する（ステップＳ１５）。具体的には、ＣＰＵ１１０は、データベース１９から戻された結果に含まれる文字列を、その文字列に関連付けられた属性に対応する入力欄の候補としてわかるように、それまで表示していた入力フォーム上に表示する。このとき、データベース１９から戻された内容に複数の検索結果がある場合、入力欄ごとに、それぞれの結果に含まれる文字列を表示する。
【００５５】
ステップＳ１５を終えると、ＣＰＵ１１０は、補完処理を開始する（ステップＳ１６）。補完処理を開始すると、ＣＰＵ１１０は、候補表示処理を終了する。
【００５６】
続いて、図６を参照し、入力装置１０による補完処理について説明する。補完処理を開始する際、上述の通り、入力装置１０は、候補表示処理において検索した結果を表示している状態にある。
【００５７】
補完処理の最初に、ＣＰＵ１１０は、候補表示処理において表示した結果に対してユーザ１による入力があるかないかを判定する（ステップＳ２１）。具体的には、表示された内容に結果が１つしかない場合、ユーザ１が表示された結果をクリックすると、ＣＰＵ１１０は、ユーザによる入力があったと判定する。表示された内容に複数の結果が含まれる場合、ユーザ１が、表示された複数の結果のうち１つをクリックすると、ＣＰＵ１１０は、ユーザによる入力があったと判定する。入力がない場合（ステップＳ２１：ＮＯ）、ＣＰＵ１１０は入力がなされるまで待機する。
【００５８】
ステップＳ２１においてユーザ１により入力がなされると（ステップＳ２１：ＹＥＳ）、ＣＰＵ１１０は、ユーザ１によりなされた選択入力を受け付ける（ステップＳ２２）。具体的には、ＣＰＵ１１０は、ユーザ１がクリックした部分を読み取り、読み取った場所に表示されている結果の内容（クリックした部分に表示されている文字列、および当該文字列の属性）を、ユーザ１による選択入力（選択された結果）として受け付ける。
【００５９】
続いてＣＰＵ１１０は、ユーザ１による選択入力を受け付けたことを受けて、それまで表示していた検索の結果を消去する（ステップＳ２３）。その結果、ディスプレイ１４０には、入力フォームが表示される。
【００６０】
次にＣＰＵ１１０は、表示している入力フォームにおいて空である入力欄（文字列が何も入力されていない入力欄、未入力の入力欄）があるか否か判定する（ステップＳ２４）。具体的には、ＣＰＵ１１０は、入力フォームにおいて表示されている各入力欄に、ユーザによって既に文字列が入力されているか否かを検証し、何も文字列が入力されていない入力欄があるかどうか判定する。
【００６１】
空である入力欄があると判定した場合（ステップＳ２４：ＹＥＳ）、ＣＰＵ１１０は、選択入力に対応する内容を入力欄に自動入力する（ステップＳ２５）。具体的には、ＣＰＵ１１０は、データベース１９から戻された検索結果を読み出し、ユーザによる選択入力に対応するレコードを抽出する。そのうえでＣＰＵ１１０は、抽出したレコードから、空であると判定された入力欄に対応する属性の文字列を抽出する。ＣＰＵ１１０は、空であると判定された入力欄に、抽出された文字列を入力する。なお、空であると判定された入力欄が複数存在する場合、空であると判定された各入力欄にそれぞれ抽出された文字列を入力する。
【００６２】
ステップＳ２５を終え、あるいはステップＳ２４で空である入力欄がないと判定すると（ステップＳ２４：ＮＯ）、次にＣＰＵ１１０は、選択入力と矛盾する入力欄があるか判定する（ステップＳ２６）。具体的には、ＣＰＵ１１０は、データベース１９から戻された検索結果から、ユーザによる選択入力に対応するレコードを抽出する。そのうえで、ＣＰＵ１１０は、その時点での各入力欄に入力されている文字列と、抽出されたレコードにおける各入力欄に対応する属性の文字列とを比較する。ＣＰＵ１１０は、比較の結果、ある入力欄に入力されている文字列が、抽出されたレコードにおいて対応する属性の文字列と一致しなかった場合に、選択入力と矛盾する入力欄があると判定する。逆に、すべての入力欄に入力されている文字列が、それぞれ入力されている文字列を抽出されたレコードにおいて対応する属性の文字列と一致した場合、選択入力と矛盾する入力欄はないと判定する。
【００６３】
選択入力と矛盾する入力欄があると判定した場合（ステップＳ２６：ＹＥＳ）、ＣＰＵ１１０は、矛盾が検出された入力欄について警告を表示する（ステップＳ２７）。具体的には、入力されている文字列が、抽出されたレコードにおいて対応する属性の文字列と一致しない入力欄について、当該入力欄に対応する入力例欄に、ユーザに注意を喚起するための警告メッセージを表示する。矛盾が検出された入力欄が複数ある場合、矛盾が検出されたそれぞれの入力欄について、対応する入力例欄に警告メッセージを表示する。ユーザ１は、入力例欄を参照することにより、当該入力欄には本来あるべきでない文字列が入力されていることを知ることができる。
【００６４】
ステップＳ２７を終え、あるいは選択入力と矛盾する入力欄がないと判定した場合（ステップＳ２６：ＮＯ）、ＣＰＵ１１０は補完処理を終了する。
【００６５】
ここまで述べた候補表示処理または補完処理の実行中に、検知部１２がユーザ１からの入力を検出すると、入力装置１０は実行中の検索処理または補完処理を終了する。そのうえで入力装置１０は、ユーザ１からそれまでに入力された文字列により新たにクエリを発し、候補表示処理を開始する。このようにすることで、ユーザ１は、フォームの入力欄へ文字列を入力する都度、特段の操作なく入力された文字列に対応する検索結果を参照できる。検索結果が表示されたとき、ユーザ１は、表示された検索結果を無視してフォームの入力欄への文字列入力を継続することもできるし、逆に、表示された候補から１つを選択することもできる。
【００６６】
ここから、入力フォームそのものを参照しつつ、ここまで述べた候補表示処理および補完処理を説明する。一例として、図７に示すように、属性「商品名」の文字列入力を受け付ける入力欄Ａ１１に、文字列「ハードディスク」をユーザ１が入力した場合について説明する。
【００６７】
ユーザ１が、入力フォームに含まれる入力欄Ａ１１に文字列「ハードディスク」を入力すると、入力装置１０は、検知部１２の機能により、文字列「ハードディスク」を入力欄Ａ１１に入力する操作がなされたことを検知する。そして入力装置１０は、クエリ部１３の機能により、空でない入力欄（Ａ１１）に入力済みの文字列（「ハードディスク」）をもとに、データベース１９を検索するクエリを発する。このクエリには、文字列「ハードディスク」に加え、その文字列が入力された入力欄Ａ１１の属性（商品名）を示す情報も含まれる。
【００６８】
データベース１９を検索した結果を入力装置１０が受け取ると、入力装置１０は、その結果を評価し（結果の数が所定の閾値以下であるかを判定し）、基準に合致するものを入力フォームとともに表示する。図８に示した例においては、ジャンル名を示す入力欄Ａ１２に対し、検索の結果が結果ウィンドウＣ１２として表示されている。これは、検索の結果として、属性「ジャンル名」にあたる文字列が所定の閾値以下の数だけ戻されたため、入力装置１０がその結果を入力フォームとともに表示したことを意味している。図８の例では、結果ウィンドウＣ１２に、検索結果として、それぞれ「パソコン周辺機器」「外付けストレージ・ドライブ」「家電製品」を示す計３つの文字列が表示されている。
【００６９】
一方、属性「メーカー型番」にあたる入力欄Ａ１３、属性「商品説明」にあたる入力欄Ａ１４、属性「ＪＡＮコード」にあたる入力欄Ａ１５においては検索の結果が表示されない。これは、商品名「ハードディスク」に基づく検索の結果、それぞれの属性については検索の結果の数が多く、所定の閾値を超えていたため、入力装置１０がその結果を表示しなかったことを意味している。
【００７０】
図８に示された状態から、ユーザ１が、結果ウィンドウＣ１２にある「パソコン周辺機器」が表示されている領域をクリックしたとする。すると入力装置１０は、表示されている検索結果（結果ウィンドウＣ１２）から、いずれか１つ（「パソコン周辺機器」を示す結果）を選択する指示の操作がなされたと検知し、選択された結果から抽出された文字列を空である入力欄に入力する。この場合、入力装置１０は、選択された結果（「パソコン周辺機器」）から抽出された文字列「パソコン周辺機器」を、図９に示すように、入力欄Ａ１２に自動で入力する。このように、入力装置１０は、入力された入力欄の内容をもとに、空である入力欄の内容候補をユーザ１に提示し、情報入力をサポートする。
【００７１】
入力装置１０が自動で入力する対象となる入力欄は、１つに限られない。別の例として、ユーザ１が、入力欄Ａ１１に文字列「ハードディスク２ＴＢ」を、入力欄Ａ１２に文字列「パソコン周辺機器」を入力した例を図１０に示す。この例では、入力済みの入力欄（入力欄Ａ１１および入力欄Ａ１２）に入力された文字列に基づいてデータベース１９が検索され、その結果、メーカー型番を示す入力欄Ａ１３に対し結果ウィンドウＣ１３が、ＪＡＮコードを示す入力欄Ａ１５に対し結果ウィンドウＣ１５が表示されている。
【００７２】
図１０に示された状態から、ユーザ１が、結果ウィンドウＣ１３のうち１つ「ＡＢＣ−Ｔ２０００Ｕ３Ｗ２」が表示されている領域をクリックしたとする。すると入力装置１０は、表示されている検索結果（結果ウィンドウＣ１３）から、いずれか１つを選択する指示の操作がなされたと検知し、選択された結果から抽出された文字列を空である入力欄に入力する。この場合、入力装置１０は、選択された結果（「ＡＢＣ−Ｔ２０００Ｕ３Ｗ２」）から、属性「メーカー型番」については文字列「ＡＢＣ−Ｔ２０００Ｕ３Ｗ２」を抽出し、かつ、属性「ＪＡＮコード」については文字列「４９７３５４３００２４０１」を抽出する。そして、図１１に示すように、入力装置１０は、抽出された文字列「ＡＢＣ−Ｔ２０００Ｕ３Ｗ２」を入力欄Ａ１３に、抽出された文字列「４９７３５４３００２４０１」を入力欄Ａ１５に、それぞれ自動で入力する。
【００７３】
また、前述のとおり、データベース１９の検索は部分一致検索でなされるため、必ずしも入力済みの入力欄と合致する結果だけが表示されるわけではない。入力済みの入力欄と矛盾する内容が検索の結果として表示され、それがユーザにより選択されるケースも生じうる。
【００７４】
図１２には、選択された結果と矛盾する入力に警告が表示された入力フォームが示されている。これは、図１０の例と同様に属性「メーカー型番」に関して文字列「ＡＢＣ−Ｔ２０００Ｕ３Ｗ２」が選択された際の表示であるが、属性「ジャンル名」を示す入力欄Ａ１２に「メンズファッション」という文字列が入力されていたケースである。選択された結果（商品名「ハードディスク２ＴＢ」、ジャンル名「パソコン周辺機器」、メーカー型番「ＡＢＣ−Ｔ２０００Ｕ３Ｗ２」）から属性「ジャンル名」として抽出される文字列は「パソコン周辺機器」であり、入力欄Ａ１２に入力された文字列「メンズファッション」とは一致しない。そのため、入力装置１０は、入力欄Ａ１２に対応付けられた入力例欄Ｂ１２に、矛盾が生じていることを示すメッセージを表示している。
【００７５】
矛盾する入力が存在する場合に、入力装置１０が表示するのは警告に限らない。例えば、図１３に示すように、入力例欄Ｂ１２に、警告を示すマーク（！）とともに、選択された結果から抽出された文字列「パソコン周辺機器」を示すものであってもよいし、他にも、選択された結果から抽出された文字列に関連付けられた情報を表示するものであってもよい。
【００７６】
このように、本実施の形態に係る入力装置１０は、ユーザにより入力欄に入力された内容をもとに、未入力の入力欄を補完し、あるいは入力済みの入力欄における誤った入力を検出しユーザに警告できる。そのため、入力装置１０によれば、ユーザによる入力フォームへの情報入力の際に生じる入力ミスを低減させることができる。
【００７７】
本実施の形態に係る入力装置１０は、入力済みの文字列をもとに検索を行うが、マッチした件数が所定の数より多い場合は検索結果を表示しない。そのため、マッチした結果の数が役に立つ程度に少ない場合のみ候補を表示できるため、効果的にユーザによる入力をサポートすることができる。
【００７８】
入力装置１０が表示している入力フォームは複数の入力欄を有し、その入力の順序は任意である。そのため、ユーザ１は、例えば商品名を入力欄Ａ１１に入力することでメーカー型番やＪＡＮコードを表示させることができるし、逆にＪＡＮコードを入力欄Ａ１５に入力することで商品名を表示させることも可能である。
【００７９】
また、入力装置１０は、ユーザ１からの検索開始の指示操作によらずに検索を実行し、結果を表示する。ユーザ１は、別ウィンドウ等で検索指示を入力する操作を要さずに入力装置１０による入力サポートを受けることができる。そのため、入力装置１０は、ユーザ１へ負担をかけることなく入力ミスを低減することができる。また、ユーザ１は、検索の実行中あるいは検索結果が表示されている間も文字列の入力を継続することができるため、入力サポートを要しないユーザによる操作への悪影響を避けることができる。
【００８０】
上述した実施の形態においては、入力装置１０が検索のためクエリを発するデータベース１９は１つである例を示したが、これに限られない。例えば、顧客に商品をインターネット経由で販売するショップが集合したインターネット市場等において、市場の管理者が準備する公式データベースと、また各ショップのユーザが入力した結果を蓄積する商品データベースとがある場合、入力装置１０はこれら複数のデータベースにそれぞれクエリを発するものであってもよい。
【００８１】
さらに、複数のデータベースは異なる優先度を有するものであってもよい。この場合、入力装置は、優先度の異なる複数のデータベースにクエリを発して、それぞれのデータベースから当該クエリにマッチする結果を受け付ける。そのうえで、受け付けた結果の数が、所定の閾値以下であった場合に、優先度が高い前記データベースからマッチした結果を、優先度が低い前記データベースからマッチした結果より優先して表示することができる。
【００８２】
異なる優先度を有する複数のデータベースを用いたケースの一例として、入力装置は、優先度の高い、市場の管理者が準備する公式データベースと、優先度の低い、各ショップのユーザが蓄積した商品データベースとに検索のためのクエリを発するものである例を想定する。公式データベースは、市場の管理者が準備するため、正確な情報が網羅的に記録されている。一方、商品データベースは、実際に商品を販売している各ショップ（ユーザの属するショップとは異なるショップを含む）が入力したデータの集合であるため、公式データベースには存在しない情報（販売価格や、クーポン発行などのキャンペーン実施情報、送料の設定など）を含む。
【００８３】
入力装置が、公式データベースと商品データベースとの両方に検索クエリを発することにより、例えば商品のメーカー型番やＪＡＮコードなど正確性が必要な情報を、より信頼性の高い公式データベースの情報を優先して表示することができる。一方で、ユーザが他ショップでの情報（販売価格やキャンペーン実施情報）を知りたい場合には、正確性が必要な情報（メーカー型番やＪＡＮコード）を入力して検索することにより、それらの情報を参照することができる。
【００８４】
さらに、入力装置は、特定の属性の情報については、それに応じた処理をした上で表示するものとしてもよい。たとえば、メーカー型番およびＪＡＮコードを入力欄に入力された場合に、入力装置が検索結果における販売価格の分布を集計することも可能である。入力装置が他ショップにおける販売価格の分布を集計し、販売価格の平均値、最頻値、中央値などを表示することにより、ユーザに当該商品の推奨価格を提示することも可能である。
【００８５】
特定の属性の情報に関する処理について別の例として、入力装置が、入力されたメーカー型番およびＪＡＮコードに基づいて、当該商品に関する他ショップでのキャンペーン実施状態を検索することも可能である。この場合、ユーザは他ショップでキャンペーンが実施されていないことが確認した上で、その商品ページに顧客へのクーポン発行用のボタンを設置することが可能となる。さらに、入力装置は、他ショップでのキャンペーンが実施されていないことを検出し、その場合にクーポン発行用のボタンを設置するかユーザに確認するものであってもよい。
【００８６】
特定の属性の情報に関する処理についてさらに別の例として、入力装置が、入力されたメーカー型番およびＪＡＮコードに基づいて、当該商品に関する他ショップでの送料の取り扱いを検索するものであってもよい。ユーザは、他ショップでの当該商品に関する送料の設定を調べ、他ショップで送料無料に設定しているところがなければ、その商品についての送料を無料に設定することで差別化をはかることができる。
【００８７】
また、本実施の形態においては、ショップの経営者が商品ページを作成する際の入力をサポートする入力装置について説明したが、本発明はこれに限定されない。他の例として、ショップの経営者に限定されない一般の人による、住所録への新しいデータの入力をサポートする場合の動作について以下説明する。
【００８８】
例えば、住所録へのデータ入力をサポートする入力装置は、「郵便番号」、「電話番号」、「住所」の属性を有する３つの入力欄を持つ入力フォームを表示するものとする。
【００８９】
日本においては、郵便番号は７桁の数値データから構成される。郵便番号データは、最初の２桁が地域番号、次の３桁が郵便区番号を示すなど、桁が下がるに従って地域を狭く特定できるように地域ごとに割り振られている。そのため、例えば、郵便番号の最初の１桁が「１」であれば、それに対応した住所は「東京都」内であることが特定できるし、また郵便番号の最初の２桁が「１２」であれば、それに対応した住所は「東京都足立区  または東京都葛飾区」と特定することができる。また、郵便番号の７桁すべてが明らかとなれば、対応する住所の住居表示を特定することができ、例えば郵便番号が「１２０−００３４」であれば、それに対応した住所は「東京都足立区千住」であることを特定することができる。電話番号も同様であり、桁が下がるに従って地域を狭く特定できるように地域ごとに割り振られている。
【００９０】
この入力装置は、一例としてユーザが「郵便番号」の入力欄に最初の２桁を示す文字列を入力すると、入力された郵便番号の最初の２桁を示す文字列に基づいてデータベースを検索し、その検索結果に従って、対応する都道府県に属するレコードをデータベースから抽出する。ユーザが、「郵便番号」の入力欄に文字列「１２」を入力した場合、データベースから抽出されるレコードはすべて住所が「東京都足立区」か「東京都葛飾区」のものである。そのため、入力装置は、抽出された結果の数が２であると判断し、「住所」の入力欄に検索結果として文字列「東京都足立区」と「東京都葛飾区」とを表示する。また、「電話番号」の入力欄には、東京都足立区および東京都葛飾区はいずれも市外局番が「０３」であることから、文字列「０３」を表示する。ユーザは、表示された検索結果を選択することもできるし、続けて郵便番号を入力することもできる。
【００９１】
ユーザが、表示された結果から属性「住所」の文字列「東京都足立区」をクリックした場合、入力装置は、属性「住所」の入力欄に、文字列「東京都足立区」を入力する。さらに入力装置は、新しく入力された内容に基づいて、「住所」に入力された文字列「東京都足立区」に基づいてクエリを発し、その結果、該当する住所に対応する郵便番号として「１２０」「１２１」「１２３」を抽出し、これを新たに検索結果として表示してもよい。
【００９２】
ユーザが郵便番号欄への入力を継続し、郵便番号欄に「１２０−００３４」と入力したとする。その場合、入力装置は新たに入力内容に基づいてデータベースにクエリを発し、「住所」の入力欄に検索結果として文字列「東京都足立区千住」を表示する。このように、ユーザは、入力装置によるサポートを受けながら入力フォームへ情報を入力することができる。
【００９３】
この入力装置に係る別の操作例として、最初にユーザが入力フォームの「住所」の入力欄に「東京都足立区千住」と入力したとする。その場合、この入力装置は、検索の結果から、郵便番号を「１２０−００３４」と抽出し、電話番号の最初の２桁を「０３」と抽出し、抽出した結果を各入力欄に表示する。このように、ユーザが入力フォームに入力する順序は任意である。
【００９４】
さらに、入力装置のサポートを得て入力欄に入力した内容を後から編集することも可能である。例えば、住所の入力欄に「東京都足立区千住」と入力し、表示された選択候補から郵便番号を「１２０−００３４」と入力した後に、郵便番号の入力欄を編集し、別の番号とすることも可能である。その場合、郵便番号の入力欄の内容が抽出された結果と異なるため、入力装置は警告を表示する。警告が表示されている場合であっても、ユーザがデータを保存する操作をした場合、その操作に従って入力装置はデータを記録する。
【００９５】
本実施の形態においては、文字列と文字列が一致しない場合を矛盾する場合として扱った。しかし、これには限定されない。例えば、特定の文字列に対し、許容される複数の文字列をあらかじめ限定（ホワイトリスト）しておき、文字列が一致しない場合でも、特定の文字列とホワイトリストに含まれる文字列との組み合わせであれば矛盾しないと扱ってもよい。逆に、特定の文字列に対し、許容されない複数の文字列を設定（ブラックリスト）し、特定の文字列とブラックリストに含まれる文字列の組み合わせだけを矛盾するとして扱ってもよい。ほかにも、任意の排他的な取り扱いが可能である。
【００９６】
本発明の実施の形態に係る入力装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magnet Optical Disk）などのコンピュータ読み取り可能な記録媒体に記憶して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行するソースプログラム解析システムを構成しても良い。さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【００９７】
また、本発明の実施の形態に係る入力装置は、１台で実現されるものに限定されない。複数のコンピュータが上述した各部の機能を分担することにより、それらの複数のコンピュータからなる一つのシステムとして各機能を提供するものであってもよい。
【００９８】
ここまで本発明の好ましい実施の形態について詳述したが、これらの実施の形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００９９】
１：ユーザ
１０：入力装置
１１：表示部
１２：検知部
１３：クエリ部
１４：補完部
１９：データベース
１１０：ＣＰＵ
１１１：ＲＯＭ
１１２：ＲＡＭ
１２０：記憶装置
１３０：操作デバイス
１４０：ディスプレイ
１５０：ネットワークインターフェース
１９０：内部バス
Ｉ０１，Ｉ０２、Ｉ０３，Ｉ０４，Ｉ０５：文字列データ
Ａ１１，Ａ１２，Ａ１３，Ａ１４，Ａ１５：入力欄
Ａ２１：保存ボタン
Ａ２２：終了ボタン
Ｂ１１，Ｂ１２，Ｂ１３，Ｂ１４，Ｂ１５：入力例欄
Ｃ１２，Ｃ１３，Ｃ１５：結果ウィンドウ
【要約】
表示部（１１）は、複数の入力欄を有するフォームを表示する。検知部（１２）は、ユーザによる操作を検知する。クエリ部（１３）は、検知部（１２）が入力欄のいずれかにおける文字列の入力および編集の操作を検知すると、入力済の文字列により、データベース（１９）を検索するクエリを発して、当該クエリにマッチする結果を受け付ける。受け付けた結果の数が、所定の閾値以下であれば、表示部（１１）は、当該結果を、フォームとともに表示する。補完部（１４）は、表示された結果からいずれかを選択する指示の操作が検知されると、（ａ）空である入力欄に、選択された結果から抽出された文字列を入力し、（ｂ）空でない入力欄に入力済の文字列と、当該入力欄に対して選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、入力を補完する。【図１】
0005753642.tif 000002
【図２】
0005753642.tif 000003
【図３】
0005753642.tif 000004
【図４】
0005753642.tif 000005
【図５】
0005753642.tif 000006
【図６】
0005753642.tif 000007
【図７】
0005753642.tif 000008
【図８】
0005753642.tif 000009
【図９】
0005753642.tif 000010
【図１０】
0005753642.tif 000011
【図１１】
0005753642.tif 000012
【図１２】
0005753642.tif 000013
【図１３】
0005753642.tif 000014