(58)【調査した分野】(Int.Cl.,DB名)
前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、前記表示部は、当該空でない入力欄に対応する表示欄に警告を表示する、
請求項1に記載の入力装置。
前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、前記表示部は、当該空でない入力欄に対応する前記表示欄に、前記抽出された文字列に関連付けられた情報を表示する、
請求項2に記載の入力装置。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述した技術では、入力フォームにおける入力ミスを解消できないケースが存在した。
【0007】
特許文献1が開示する技術では、特定の欄(第1のフィールド)に入力された文字列をもとに、他の特定の欄(第2のフィールド)の内容を補完し、または修正することができる。しかし、元となるデータが入力される欄(第1のフィールド)と、補完または修正の対象の欄(第2のフィールド)の関係が固定されており、例えばこの処理装置は、第2のフィールドに入力された文字列をもとに第1のフィールドの内容を修正することはできなかった。そのため、第1のフィールドに誤った情報を入力してしまった場合には、従来技術では入力フォームにおける入力ミスを十分に解消できなかった。
【0008】
本発明は、このような問題点に鑑みてなされたものである。すなわち、本発明の目的は、ユーザによる入力フォームへの情報入力の際に発生する入力ミスを低減することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の第1の観点に係る入力装置は、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示部、
ユーザによる操作を検知する検知部、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ部、を備え、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示部は、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
(a)前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
(b)前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完部
をさらに備えることを特徴とする。
【0010】
上記目的を達成するため、本発明の第2の観点に係るフォーム入力方法は、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示ステップと、
ユーザによる操作を検知する検知ステップと、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリステップと、を備え、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示ステップでは、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
(a)前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
(b)前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完ステップ
をさらに備えることを特徴とする。
【0011】
上記目的を達成するため、本発明の第3の観点に係る記録媒体は、
コンピュータに、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示手順、
ユーザによる操作を検知する検知手順、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ手順、を実行させ、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示手順では、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
(a)前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
(b)前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完手順
をさらに実行させるプログラムを記録している。
【0012】
上記目的を達成するため、本発明の第4の観点に係るプログラムは、
コンピュータに、
任意の順序で入力可能な複数の入力欄を有するフォームを表示する表示手順、
ユーザによる操作を検知する検知手順、
前記複数の入力欄のいずれかにおける文字列の入力および編集の操作が検知されると、前記複数の入力欄のうち空でない入力欄に入力済の文字列により、データベースを検索するクエリを発して、当該クエリにマッチする結果を受け付けるクエリ手順、を実行させ、
前記受け付けられた結果の数が、所定の閾値以下であれば、前記表示手順では、当該結果を、前記フォームとともに表示し、
前記表示された結果からいずれかを選択する指示の操作が検知されると、
(a)前記複数の入力欄のうち空である入力欄に、当該入力欄に対して前記選択された結果から抽出された文字列を入力し、
(b)前記空でない入力欄に入力済の文字列と、当該入力欄に対して前記選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、前記複数の入力欄に対する入力を補完する補完手順
をさらに実行させる。
【発明の効果】
【0013】
本発明によれば、ユーザによる入力フォームへの情報入力の際に生じる入力ミスを低減させることができる。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について添付図面を参照しつつ説明する。
【0016】
<実施の形態>
本発明の実施の形態に係る入力装置10は、ユーザから、情報の入力を受け付けるための装置である。入力装置10は、フォームによる情報収集を行うための一般的な機能を備え、例えば、ユーザが入力すべき情報の項目ごとに入力欄を表示し、各入力欄に入力された情報を入力データとして受け付ける機能を有する。
【0017】
本実施の形態における入力装置10は、インターネットを通じて顧客に商品を販売しているユーザ(ショップの経営者または担当者など)が、顧客に商品を販売するための商品ページを作成する際に、商品の情報の入力を受け付けるための装置である。特に、入力フォームにユーザが入力した情報に基づいて、未入力の入力欄に自動的に情報を入力したり、あるいは入力済みの入力欄における入力ミスを検知したり訂正したりすることで、ユーザによる商品ページの作成をサポートするものである。ここで、「入力」とは、空である入力欄に文字列を追加する行為をさし、「編集」とは、空ではない入力欄に入力されている文字列を削除したり、入れ替えたり、追加したりする行為をさす。
【0018】
本実施の形態では、入力装置10は、ショップの経営者であるユーザが直接操作することができる一種の端末装置であり、ネットワークを介して電子市場サーバ(複数のショップにより作成された商品ページを保有し、商品ページをウェブサイトとしてインターネット上に公開するサーバ)に接続する。ユーザが商品ページを作成する際には、ユーザは、入力装置10のウェブブラウザを介して電子市場サーバに接続し、商品ページを作成する操作を行う。入力装置10は、電子市場サーバから提供される入力フォームを形成する命令を含むHTML文書(HyperText Mark-up Language)を受信する。入力装置10が、受信したHTML文書に含まれる、あるいはHTML文書に記載されたリンク先に存在するジョブスクリプト(JavaScript(登録商標)等により記述されたもの)等を実行することにより、入力装置10の画面に、電子市場サーバに情報を提供するための入力フォームが表示される。
【0019】
本実施の形態に係る入力装置10は、
図1に示すように、機能面では、表示部11、検知部12、クエリ部13、補完部14を備える。
【0020】
表示部11は、ユーザ1に、任意の順序で入力可能な複数の入力欄を有するフォームを表示する。
【0021】
検知部12は、ユーザ1が表示部11によって表示されたフォームの入力欄に文字列を入力すると、ユーザ1による操作を検知する。
【0022】
クエリ部13は、表示部11が表示した入力欄のいずれかに、ユーザ1による文字列の入力または編集の操作が検知されると、入力欄に入力済みの文字列により、データベース19を検索するクエリを発する。また、クエリ部13は、発したクエリに対してデータベース19から返される結果(クエリにマッチする結果)を受け付ける。データベース19は、本実施の形態では、電子市場サーバ内にあることを想定しているが、それに限られず、入力装置10の内部にあるものでもあってもよいし、また他の装置が有するものであってもよい。
【0023】
なお、表示部11は、クエリ部13が受け付けた結果の数が、所定の閾値以下であれば、クエリ部13が受け付けた結果を、フォームとともに表示する。
【0024】
補完部14は、表示部11が表示した結果を受け、ユーザの指示に基づいて入力欄の内容を自動的に補完し、あるいは入力欄の内容に矛盾がある場合は警告を発する。具体的には、検知部12が、ユーザ1が表示結果のうちいずれかを選択する指示の操作をしたことを検出すると、補完部14は、入力されていない入力欄に、ユーザ1が選択した結果から抽出された文字列を自動的に入力する。または、補完部14は、すでに入力欄に入力されている文字列と、ユーザ1が選択した結果から抽出された文字列が矛盾する場合、ユーザ1に警告する。ここで、矛盾とは、ユーザ1が選択した結果をもとにデータベース19から抽出された情報と、すでに入力欄に入力されている文字列とが一致しない関係を指す。このようにして、補完部14は、表示部11が表示した入力欄に対する入力を補完する。
【0025】
入力装置10は、上述の構成を有することにより、ユーザ1が入力欄に入力した内容に基づいて、まだ入力されていない入力欄に入力されるべき情報を自動的に入力し、あるいは互いに矛盾する入力内容があるとそれをユーザ1に警告する。そのため、ユーザ1による入力ミスを低減することができる。また、こういった処理をユーザからの検索指示なくして実行するため、ユーザは特段の操作なくフォームの入力を続けることができ、労力を低減することができる。
【0026】
本実施の形態に係る入力装置10は、
図2に示すように、ハードウェアとして、CPU(Central Processing Unit)110、ROM(Read Only Memory)111、RAM(Random Access Memory)112、記憶装置120、操作デバイス130、ディスプレイ140、ネットワークインターフェース150を備え、これらが内部バス190を介して互いに接続された構成を有する。
【0027】
CPU110は、ROM111、RAM112および記憶装置120が記憶するプログラムを実行することにより、入力装置10の全体を制御する。CPU110は、必要に応じてROM111、RAM112、記憶装置120から実行するプログラムを読み出し、また必要に応じてRAM112、記憶装置120上にデータを保存する。
【0028】
ROM111は、CPU110が稼動する上で必要となるプログラム、例えば入力装置10の起動時にCPU110が最初に実行するプログラム等を記憶する。
【0029】
RAM112は、CPU110がプログラムを実行する際にワークエリアとして機能する。すなわち、RAM112は、CPU110が実行中のプログラム、あるいは、CPU110がプログラムを実行する上で必要となる一時的なデータを記録し、CPU110からの要求に応じてCPU110に提供する。
【0030】
記憶装置120は、ハードディスクドライブやフラッシュメモリ等の記憶装置を備え、入力装置10が稼動するために必要なデータを記憶する。特に、後述するデータベース19を記録するものであってもよい。
【0031】
記憶装置120は、例えば、CPU110が実行するためのプログラム、あるいはCPU110がプログラムを実行する上で参照するデータを記録し、CPU110からの要求に応じてCPU110に提供する。また、記憶装置120は、CPU110からの要求に応じ、CPU110から出力されたデータを記録する。
【0032】
操作デバイス130は、キーボードやマウス等を備え、ユーザ1による入力操作を受け付けてCPU110に伝達する。
【0033】
ディスプレイ140は、液晶ディスプレイもしくはブラウン管モニタを備え、ユーザ1に必要な情報を表示する。
【0034】
ネットワークインターフェース150は、入力装置10をネットワーク(図示せず)に接続する。入力装置10が、ネットワークを介して他機器に情報を送信し、あるいは他機器から情報を受信する際、ネットワークインターフェース150は、CPU110から後述する内部バス190を介して受信した情報を、ネットワークを介して他機器へ送信し、また他機器からネットワークを介して受信した情報を、内部バス190を介してCPU110へ送信する。一例として、入力装置10は、ネットワークインターフェース150を介し、図示しない電子市場サーバが有するデータベース19にクエリを発し、またデータベース19からクエリにマッチする結果を受け付ける。
【0035】
ネットワークインターフェース150は、例えばケーブルを介して入力装置10をネットワークに接続してもよいし、あるいは無線通信により入力装置10をネットワークに接続してもよい。
【0036】
内部バス190は、入力装置10内の構成要素(CPU110、ROM111、RAM112、記憶装置120、操作デバイス130、ディスプレイ140、ネットワークインターフェース150等)間での情報のやり取りを中継する。例えば、CPU110が必要なデータを記憶装置120から読み出すとき、CPU110は、内部バス190を介して記憶装置120からデータを読み出す。
【0037】
入力装置10は、ここまで述べた各ハードウェアを協同して動作させることにより、前述した各機能を実現する要素(表示部11、検知部12、クエリ部13、および補完部14)として機能する。例えば、CPU110がディスプレイ140を介し、後述する入力フォームをユーザに表示することで、表示部11としての機能を実現する。また、CPU110が、操作デバイス130を介してユーザによる操作を検知することにより、検知部12としての機能を実現する。クエリ部13および補完部14についても同様であり、詳しくは後述する。
【0038】
本実施の形態において、クエリ部13がクエリを発し、あるいはクエリ部13が検索の結果を受け付けるデータベース19は、入力装置10が有するものであってもよいし、また入力装置10とは異なる他の装置が有するものでもあってもよい。入力装置10がデータベース19を有する場合、データベース19は記憶装置120に記録される。入力装置10とは異なる他の装置がデータベース19を有する場合、入力装置10は、ネットワークインターフェース150を介してデータベース19にクエリを発し、あるいは検索の結果を受け付ける。
【0039】
データベース19の検索にあたっては、部分一致検索により検索が実行される。そのため、クエリに複数の文字列が検索ワードとして含まれていた場合でも、検索の結果においてすべての検索ワードが含まれているとは限らない。場合によっては、クエリに含まれる文字列とは矛盾する内容が検索結果として戻されるケースも存在する。
【0040】
また、本実施の形態においては、入力装置10が操作デバイス130およびディスプレイ140を備えるが、本発明はこれに限られない。例えば、入力装置10にネットワークインターフェース150を介してネットワーク接続によりユーザからの操作を受け付け、あるいはユーザに情報を表示することもできる。この場合、ユーザは、入力装置10にネットワーク接続する他の機器が備える操作デバイスを通じて入力装置10に指示を入力し、また当該他の機器が備えるディスプレイを通じて入力装置10からの情報を受け取る。
【0041】
データベース19は、複数の文字列データが連結したレコードを複数記録する。
図3に示すように、データベース19に含まれるレコードR1は、「商品名」の属性を有する文字列データI01、「ジャンル名」の属性を有する文字列データI02、「メーカー型番」の属性を有する文字列データI03、「商品説明」の属性を有する文字列データI04、「JAN(Japanese Article Number)コード」の属性を有する文字列データI05などを含み、これらが連結された構造を有する。ほかにも、レコードR1は、「価格」など他の属性を有する文字列データを含んでいてもよい。
【0042】
表示部11は、ユーザ1に、
図4に例を示す入力フォームを表示する。入力フォームは、入力欄(入力欄A11〜A15)、入力例欄(B11〜B15)、保存ボタンA21、終了ボタンA22などを含むものである。
【0043】
入力欄は、ユーザ1が入力した文字列を受け付け、表示することができる欄である。入力フォームは、任意の順序で入力可能な複数の入力欄を有する。入力欄は、入力装置10が受け付ける情報の項目(属性)ごとに設けられ、それぞれの属性に対応付けられている。
図4に示した例においては、入力フォームは、属性「商品名」の入力を受け付ける入力欄A11、属性「ジャンル名」の入力を受け付ける入力欄A12、属性「メーカー型番」の入力を受け付ける入力欄A13、属性「商品説明」の入力を受け付ける入力欄A14、属性「JANコード」の入力を受け付ける入力欄A15を有する。
【0044】
また、入力フォームは、それぞれの入力欄に対応する入力例欄を有する。入力例欄は、入力装置10がユーザ1に対し警告や他の情報を含むメッセージを表示するための表示欄である。
図4に示した例では、属性「商品名」の入力欄A11に対応する入力例欄B11、属性「ジャンル名」の入力欄A12に対応する入力例欄B12、属性「メーカー型番」の入力欄A13に対応する入力例欄B13、属性「商品説明」の入力欄A14に対応する入力例欄B14、属性「JANコード」の入力欄A15に対応する入力例欄B15が示されている。
【0045】
入力装置10は、表示部11が表示した各入力欄へのユーザ1による入力を受け付け、各入力欄の文字列を編集する機能を提供する。ユーザ1が保存ボタンA21をクリックすると、入力装置10は各入力欄に入力された文字列を連結してレコードを作成し、作成したレコードを電子市場サーバにあるデータベース19に記録する。また、ユーザ1が終了ボタンA22をクリックすると、入力フォームによる情報受け付けを終了する。ほかにも、入力装置10は、情報機器において入力された情報を受け付けるための一般的な機能を有するが、詳細については説明を割愛する。
【0046】
また入力装置10は、ユーザ1が操作デバイス130を介して入力欄に文字列を入力すると、文字列を入力する操作がなされたことを検出し、入力された文字列によりデータベース19を検索するクエリを発し、候補表示処理を開始する。一方で、入力装置10は、候補表示処理を行いつつ、並行してユーザ1による操作を受け付けるため、候補表示処理はいわゆるバックグラウンドジョブとして実行される。ここから、入力装置10による候補表示処理について説明する。
【0047】
検知部12が、ユーザ1によっていずれかの入力欄に文字列が入力されたことを検出すると、入力装置10は、
図5に示す候補表示処理を開始する。
【0048】
候補表示処理の最初に、CPU110は、ユーザ1によって入力された入力欄および入力された文字列を検出する(ステップS11)。具体的には、ユーザ1が入力フォームのどの入力欄(A11〜A15)に文字列を入力したかを検出し、また入力が検出された入力欄に入力されている文字列を検出する。
【0049】
次にCPU110は、データベース19を検索するクエリを発行する(ステップS12)。具体的には、CPU110は、文字列が入力済みの入力欄に入力された文字列と、当該入力欄の属性とを関連付け、これら(入力された文字列および関連付けられた属性)を含むクエリを生成する。CPU110は、生成したクエリをデータベース19に発する。
【0050】
ステップS12において、文字列が入力済みの入力欄が複数あった場合、CPU110は、それら複数の入力欄に入力済みの複数の文字列について、それぞれの入力欄の属性に関連付け、それぞれの入力された文字列および関連付けられた属性をすべて含むクエリを1つ生成し、データベース19に発する。
【0051】
CPU110がクエリを発行すると、当該クエリに応じてデータベース19の検索が実行される。具体的には、データベース19では、クエリに含まれる文字列を、クエリにおいて当該文字列に関連付けられている属性として有するレコードが検索される。データベース19に該当するレコードが存在する場合、当該レコードが検索結果として戻される。クエリが複数の文字列を含むものである場合、各文字列を、それぞれ関連づけられた属性として有するレコードが部分一致検索により検索される。検索が終了すると、データベース19から、マッチする結果が検索結果として戻される。このとき、マッチする結果の数に制限はなく、該当するレコードがなければ0件でもいいし、また複数のレコードが該当すれば複数でもよい。
【0052】
データベース19の検索結果が戻されると、CPU110は、戻された検索結果を受け付ける(ステップS13)。具体的には、データベース19から戻された結果をRAM112あるいは記憶装置120に記録する。ステップS12およびステップS13の処理を行うことにより、CPU110は、クエリ部13としての機能を実現する。
【0053】
次にCPU110は、ステップS13で受け付けた結果の数が、所定の閾値以下であるか否かを判定する(ステップS14)。具体的には、RAM112あるいは記憶装置120に記録されている、データベース19から戻された結果を参照し、そこに含まれるレコードの数をカウントし、その数が所定の閾値以下であるかを判定する。結果の数を所定の閾値以下ではないと判定した場合(ステップS14:NO)、CPU110は、そのまま候補表示処理を終了する。
【0054】
ステップS14で結果の数を所定の閾値以下であるとした場合(ステップS14:YES)、CPU110は、ステップS13で受け付けた結果を入力フォームとともに表示する(ステップS15)。具体的には、CPU110は、データベース19から戻された結果に含まれる文字列を、その文字列に関連付けられた属性に対応する入力欄の候補としてわかるように、それまで表示していた入力フォーム上に表示する。このとき、データベース19から戻された内容に複数の検索結果がある場合、入力欄ごとに、それぞれの結果に含まれる文字列を表示する。
【0055】
ステップS15を終えると、CPU110は、補完処理を開始する(ステップS16)。補完処理を開始すると、CPU110は、候補表示処理を終了する。
【0056】
続いて、
図6を参照し、入力装置10による補完処理について説明する。補完処理を開始する際、上述の通り、入力装置10は、候補表示処理において検索した結果を表示している状態にある。
【0057】
補完処理の最初に、CPU110は、候補表示処理において表示した結果に対してユーザ1による入力があるかないかを判定する(ステップS21)。具体的には、表示された内容に結果が1つしかない場合、ユーザ1が表示された結果をクリックすると、CPU110は、ユーザによる入力があったと判定する。表示された内容に複数の結果が含まれる場合、ユーザ1が、表示された複数の結果のうち1つをクリックすると、CPU110は、ユーザによる入力があったと判定する。入力がない場合(ステップS21:NO)、CPU110は入力がなされるまで待機する。
【0058】
ステップS21においてユーザ1により入力がなされると(ステップS21:YES)、CPU110は、ユーザ1によりなされた選択入力を受け付ける(ステップS22)。具体的には、CPU110は、ユーザ1がクリックした部分を読み取り、読み取った場所に表示されている結果の内容(クリックした部分に表示されている文字列、および当該文字列の属性)を、ユーザ1による選択入力(選択された結果)として受け付ける。
【0059】
続いてCPU110は、ユーザ1による選択入力を受け付けたことを受けて、それまで表示していた検索の結果を消去する(ステップS23)。その結果、ディスプレイ140には、入力フォームが表示される。
【0060】
次にCPU110は、表示している入力フォームにおいて空である入力欄(文字列が何も入力されていない入力欄、未入力の入力欄)があるか否か判定する(ステップS24)。具体的には、CPU110は、入力フォームにおいて表示されている各入力欄に、ユーザによって既に文字列が入力されているか否かを検証し、何も文字列が入力されていない入力欄があるかどうか判定する。
【0061】
空である入力欄があると判定した場合(ステップS24:YES)、CPU110は、選択入力に対応する内容を入力欄に自動入力する(ステップS25)。具体的には、CPU110は、データベース19から戻された検索結果を読み出し、ユーザによる選択入力に対応するレコードを抽出する。そのうえでCPU110は、抽出したレコードから、空であると判定された入力欄に対応する属性の文字列を抽出する。CPU110は、空であると判定された入力欄に、抽出された文字列を入力する。なお、空であると判定された入力欄が複数存在する場合、空であると判定された各入力欄にそれぞれ抽出された文字列を入力する。
【0062】
ステップS25を終え、あるいはステップS24で空である入力欄がないと判定すると(ステップS24:NO)、次にCPU110は、選択入力と矛盾する入力欄があるか判定する(ステップS26)。具体的には、CPU110は、データベース19から戻された検索結果から、ユーザによる選択入力に対応するレコードを抽出する。そのうえで、CPU110は、その時点での各入力欄に入力されている文字列と、抽出されたレコードにおける各入力欄に対応する属性の文字列とを比較する。CPU110は、比較の結果、ある入力欄に入力されている文字列が、抽出されたレコードにおいて対応する属性の文字列と一致しなかった場合に、選択入力と矛盾する入力欄があると判定する。逆に、すべての入力欄に入力されている文字列が、それぞれ入力されている文字列を抽出されたレコードにおいて対応する属性の文字列と一致した場合、選択入力と矛盾する入力欄はないと判定する。
【0063】
選択入力と矛盾する入力欄があると判定した場合(ステップS26:YES)、CPU110は、矛盾が検出された入力欄について警告を表示する(ステップS27)。具体的には、入力されている文字列が、抽出されたレコードにおいて対応する属性の文字列と一致しない入力欄について、当該入力欄に対応する入力例欄に、ユーザに注意を喚起するための警告メッセージを表示する。矛盾が検出された入力欄が複数ある場合、矛盾が検出されたそれぞれの入力欄について、対応する入力例欄に警告メッセージを表示する。ユーザ1は、入力例欄を参照することにより、当該入力欄には本来あるべきでない文字列が入力されていることを知ることができる。
【0064】
ステップS27を終え、あるいは選択入力と矛盾する入力欄がないと判定した場合(ステップS26:NO)、CPU110は補完処理を終了する。
【0065】
ここまで述べた候補表示処理または補完処理の実行中に、検知部12がユーザ1からの入力を検出すると、入力装置10は実行中の検索処理または補完処理を終了する。そのうえで入力装置10は、ユーザ1からそれまでに入力された文字列により新たにクエリを発し、候補表示処理を開始する。このようにすることで、ユーザ1は、フォームの入力欄へ文字列を入力する都度、特段の操作なく入力された文字列に対応する検索結果を参照できる。検索結果が表示されたとき、ユーザ1は、表示された検索結果を無視してフォームの入力欄への文字列入力を継続することもできるし、逆に、表示された候補から1つを選択することもできる。
【0066】
ここから、入力フォームそのものを参照しつつ、ここまで述べた候補表示処理および補完処理を説明する。一例として、
図7に示すように、属性「商品名」の文字列入力を受け付ける入力欄A11に、文字列「ハードディスク」をユーザ1が入力した場合について説明する。
【0067】
ユーザ1が、入力フォームに含まれる入力欄A11に文字列「ハードディスク」を入力すると、入力装置10は、検知部12の機能により、文字列「ハードディスク」を入力欄A11に入力する操作がなされたことを検知する。そして入力装置10は、クエリ部13の機能により、空でない入力欄(A11)に入力済みの文字列(「ハードディスク」)をもとに、データベース19を検索するクエリを発する。このクエリには、文字列「ハードディスク」に加え、その文字列が入力された入力欄A11の属性(商品名)を示す情報も含まれる。
【0068】
データベース19を検索した結果を入力装置10が受け取ると、入力装置10は、その結果を評価し(結果の数が所定の閾値以下であるかを判定し)、基準に合致するものを入力フォームとともに表示する。
図8に示した例においては、ジャンル名を示す入力欄A12に対し、検索の結果が結果ウィンドウC12として表示されている。これは、検索の結果として、属性「ジャンル名」にあたる文字列が所定の閾値以下の数だけ戻されたため、入力装置10がその結果を入力フォームとともに表示したことを意味している。
図8の例では、結果ウィンドウC12に、検索結果として、それぞれ「パソコン周辺機器」「外付けストレージ・ドライブ」「家電製品」を示す計3つの文字列が表示されている。
【0069】
一方、属性「メーカー型番」にあたる入力欄A13、属性「商品説明」にあたる入力欄A14、属性「JANコード」にあたる入力欄A15においては検索の結果が表示されない。これは、商品名「ハードディスク」に基づく検索の結果、それぞれの属性については検索の結果の数が多く、所定の閾値を超えていたため、入力装置10がその結果を表示しなかったことを意味している。
【0070】
図8に示された状態から、ユーザ1が、結果ウィンドウC12にある「パソコン周辺機器」が表示されている領域をクリックしたとする。すると入力装置10は、表示されている検索結果(結果ウィンドウC12)から、いずれか1つ(「パソコン周辺機器」を示す結果)を選択する指示の操作がなされたと検知し、選択された結果から抽出された文字列を空である入力欄に入力する。この場合、入力装置10は、選択された結果(「パソコン周辺機器」)から抽出された文字列「パソコン周辺機器」を、
図9に示すように、入力欄A12に自動で入力する。このように、入力装置10は、入力された入力欄の内容をもとに、空である入力欄の内容候補をユーザ1に提示し、情報入力をサポートする。
【0071】
入力装置10が自動で入力する対象となる入力欄は、1つに限られない。別の例として、ユーザ1が、入力欄A11に文字列「ハードディスク2TB」を、入力欄A12に文字列「パソコン周辺機器」を入力した例を
図10に示す。この例では、入力済みの入力欄(入力欄A11および入力欄A12)に入力された文字列に基づいてデータベース19が検索され、その結果、メーカー型番を示す入力欄A13に対し結果ウィンドウC13が、JANコードを示す入力欄A15に対し結果ウィンドウC15が表示されている。
【0072】
図10に示された状態から、ユーザ1が、結果ウィンドウC13のうち1つ「ABC−T2000U3W2」が表示されている領域をクリックしたとする。すると入力装置10は、表示されている検索結果(結果ウィンドウC13)から、いずれか1つを選択する指示の操作がなされたと検知し、選択された結果から抽出された文字列を空である入力欄に入力する。この場合、入力装置10は、選択された結果(「ABC−T2000U3W2」)から、属性「メーカー型番」については文字列「ABC−T2000U3W2」を抽出し、かつ、属性「JANコード」については文字列「4973543002401」を抽出する。そして、
図11に示すように、入力装置10は、抽出された文字列「ABC−T2000U3W2」を入力欄A13に、抽出された文字列「4973543002401」を入力欄A15に、それぞれ自動で入力する。
【0073】
また、前述のとおり、データベース19の検索は部分一致検索でなされるため、必ずしも入力済みの入力欄と合致する結果だけが表示されるわけではない。入力済みの入力欄と矛盾する内容が検索の結果として表示され、それがユーザにより選択されるケースも生じうる。
【0074】
図12には、選択された結果と矛盾する入力に警告が表示された入力フォームが示されている。これは、
図10の例と同様に属性「メーカー型番」に関して文字列「ABC−T2000U3W2」が選択された際の表示であるが、属性「ジャンル名」を示す入力欄A12に「メンズファッション」という文字列が入力されていたケースである。選択された結果(商品名「ハードディスク2TB」、ジャンル名「パソコン周辺機器」、メーカー型番「ABC−T2000U3W2」)から属性「ジャンル名」として抽出される文字列は「パソコン周辺機器」であり、入力欄A12に入力された文字列「メンズファッション」とは一致しない。そのため、入力装置10は、入力欄A12に対応付けられた入力例欄B12に、矛盾が生じていることを示すメッセージを表示している。
【0075】
矛盾する入力が存在する場合に、入力装置10が表示するのは警告に限らない。例えば、
図13に示すように、入力例欄B12に、警告を示すマーク(!)とともに、選択された結果から抽出された文字列「パソコン周辺機器」を示すものであってもよいし、他にも、選択された結果から抽出された文字列に関連付けられた情報を表示するものであってもよい。
【0076】
このように、本実施の形態に係る入力装置10は、ユーザにより入力欄に入力された内容をもとに、未入力の入力欄を補完し、あるいは入力済みの入力欄における誤った入力を検出しユーザに警告できる。そのため、入力装置10によれば、ユーザによる入力フォームへの情報入力の際に生じる入力ミスを低減させることができる。
【0077】
本実施の形態に係る入力装置10は、入力済みの文字列をもとに検索を行うが、マッチした件数が所定の数より多い場合は検索結果を表示しない。そのため、マッチした結果の数が役に立つ程度に少ない場合のみ候補を表示できるため、効果的にユーザによる入力をサポートすることができる。
【0078】
入力装置10が表示している入力フォームは複数の入力欄を有し、その入力の順序は任意である。そのため、ユーザ1は、例えば商品名を入力欄A11に入力することでメーカー型番やJANコードを表示させることができるし、逆にJANコードを入力欄A15に入力することで商品名を表示させることも可能である。
【0079】
また、入力装置10は、ユーザ1からの検索開始の指示操作によらずに検索を実行し、結果を表示する。ユーザ1は、別ウィンドウ等で検索指示を入力する操作を要さずに入力装置10による入力サポートを受けることができる。そのため、入力装置10は、ユーザ1へ負担をかけることなく入力ミスを低減することができる。また、ユーザ1は、検索の実行中あるいは検索結果が表示されている間も文字列の入力を継続することができるため、入力サポートを要しないユーザによる操作への悪影響を避けることができる。
【0080】
上述した実施の形態においては、入力装置10が検索のためクエリを発するデータベース19は1つである例を示したが、これに限られない。例えば、顧客に商品をインターネット経由で販売するショップが集合したインターネット市場等において、市場の管理者が準備する公式データベースと、また各ショップのユーザが入力した結果を蓄積する商品データベースとがある場合、入力装置10はこれら複数のデータベースにそれぞれクエリを発するものであってもよい。
【0081】
さらに、複数のデータベースは異なる優先度を有するものであってもよい。この場合、入力装置は、優先度の異なる複数のデータベースにクエリを発して、それぞれのデータベースから当該クエリにマッチする結果を受け付ける。そのうえで、受け付けた結果の数が、所定の閾値以下であった場合に、優先度が高い前記データベースからマッチした結果を、優先度が低い前記データベースからマッチした結果より優先して表示することができる。
【0082】
異なる優先度を有する複数のデータベースを用いたケースの一例として、入力装置は、優先度の高い、市場の管理者が準備する公式データベースと、優先度の低い、各ショップのユーザが蓄積した商品データベースとに検索のためのクエリを発するものである例を想定する。公式データベースは、市場の管理者が準備するため、正確な情報が網羅的に記録されている。一方、商品データベースは、実際に商品を販売している各ショップ(ユーザの属するショップとは異なるショップを含む)が入力したデータの集合であるため、公式データベースには存在しない情報(販売価格や、クーポン発行などのキャンペーン実施情報、送料の設定など)を含む。
【0083】
入力装置が、公式データベースと商品データベースとの両方に検索クエリを発することにより、例えば商品のメーカー型番やJANコードなど正確性が必要な情報を、より信頼性の高い公式データベースの情報を優先して表示することができる。一方で、ユーザが他ショップでの情報(販売価格やキャンペーン実施情報)を知りたい場合には、正確性が必要な情報(メーカー型番やJANコード)を入力して検索することにより、それらの情報を参照することができる。
【0084】
さらに、入力装置は、特定の属性の情報については、それに応じた処理をした上で表示するものとしてもよい。たとえば、メーカー型番およびJANコードを入力欄に入力された場合に、入力装置が検索結果における販売価格の分布を集計することも可能である。入力装置が他ショップにおける販売価格の分布を集計し、販売価格の平均値、最頻値、中央値などを表示することにより、ユーザに当該商品の推奨価格を提示することも可能である。
【0085】
特定の属性の情報に関する処理について別の例として、入力装置が、入力されたメーカー型番およびJANコードに基づいて、当該商品に関する他ショップでのキャンペーン実施状態を検索することも可能である。この場合、ユーザは他ショップでキャンペーンが実施されていないことが確認した上で、その商品ページに顧客へのクーポン発行用のボタンを設置することが可能となる。さらに、入力装置は、他ショップでのキャンペーンが実施されていないことを検出し、その場合にクーポン発行用のボタンを設置するかユーザに確認するものであってもよい。
【0086】
特定の属性の情報に関する処理についてさらに別の例として、入力装置が、入力されたメーカー型番およびJANコードに基づいて、当該商品に関する他ショップでの送料の取り扱いを検索するものであってもよい。ユーザは、他ショップでの当該商品に関する送料の設定を調べ、他ショップで送料無料に設定しているところがなければ、その商品についての送料を無料に設定することで差別化をはかることができる。
【0087】
また、本実施の形態においては、ショップの経営者が商品ページを作成する際の入力をサポートする入力装置について説明したが、本発明はこれに限定されない。他の例として、ショップの経営者に限定されない一般の人による、住所録への新しいデータの入力をサポートする場合の動作について以下説明する。
【0088】
例えば、住所録へのデータ入力をサポートする入力装置は、「郵便番号」、「電話番号」、「住所」の属性を有する3つの入力欄を持つ入力フォームを表示するものとする。
【0089】
日本においては、郵便番号は7桁の数値データから構成される。郵便番号データは、最初の2桁が地域番号、次の3桁が郵便区番号を示すなど、桁が下がるに従って地域を狭く特定できるように地域ごとに割り振られている。そのため、例えば、郵便番号の最初の1桁が「1」であれば、それに対応した住所は「東京都」内であることが特定できるし、また郵便番号の最初の2桁が「12」であれば、それに対応した住所は「東京都足立区 または東京都葛飾区」と特定することができる。また、郵便番号の7桁すべてが明らかとなれば、対応する住所の住居表示を特定することができ、例えば郵便番号が「120−0034」であれば、それに対応した住所は「東京都足立区千住」であることを特定することができる。電話番号も同様であり、桁が下がるに従って地域を狭く特定できるように地域ごとに割り振られている。
【0090】
この入力装置は、一例としてユーザが「郵便番号」の入力欄に最初の2桁を示す文字列を入力すると、入力された郵便番号の最初の2桁を示す文字列に基づいてデータベースを検索し、その検索結果に従って、対応する都道府県に属するレコードをデータベースから抽出する。ユーザが、「郵便番号」の入力欄に文字列「12」を入力した場合、データベースから抽出されるレコードはすべて住所が「東京都足立区」か「東京都葛飾区」のものである。そのため、入力装置は、抽出された結果の数が2であると判断し、「住所」の入力欄に検索結果として文字列「東京都足立区」と「東京都葛飾区」とを表示する。また、「電話番号」の入力欄には、東京都足立区および東京都葛飾区はいずれも市外局番が「03」であることから、文字列「03」を表示する。ユーザは、表示された検索結果を選択することもできるし、続けて郵便番号を入力することもできる。
【0091】
ユーザが、表示された結果から属性「住所」の文字列「東京都足立区」をクリックした場合、入力装置は、属性「住所」の入力欄に、文字列「東京都足立区」を入力する。さらに入力装置は、新しく入力された内容に基づいて、「住所」に入力された文字列「東京都足立区」に基づいてクエリを発し、その結果、該当する住所に対応する郵便番号として「120」「121」「123」を抽出し、これを新たに検索結果として表示してもよい。
【0092】
ユーザが郵便番号欄への入力を継続し、郵便番号欄に「120−0034」と入力したとする。その場合、入力装置は新たに入力内容に基づいてデータベースにクエリを発し、「住所」の入力欄に検索結果として文字列「東京都足立区千住」を表示する。このように、ユーザは、入力装置によるサポートを受けながら入力フォームへ情報を入力することができる。
【0093】
この入力装置に係る別の操作例として、最初にユーザが入力フォームの「住所」の入力欄に「東京都足立区千住」と入力したとする。その場合、この入力装置は、検索の結果から、郵便番号を「120−0034」と抽出し、電話番号の最初の2桁を「03」と抽出し、抽出した結果を各入力欄に表示する。このように、ユーザが入力フォームに入力する順序は任意である。
【0094】
さらに、入力装置のサポートを得て入力欄に入力した内容を後から編集することも可能である。例えば、住所の入力欄に「東京都足立区千住」と入力し、表示された選択候補から郵便番号を「120−0034」と入力した後に、郵便番号の入力欄を編集し、別の番号とすることも可能である。その場合、郵便番号の入力欄の内容が抽出された結果と異なるため、入力装置は警告を表示する。警告が表示されている場合であっても、ユーザがデータを保存する操作をした場合、その操作に従って入力装置はデータを記録する。
【0095】
本実施の形態においては、文字列と文字列が一致しない場合を矛盾する場合として扱った。しかし、これには限定されない。例えば、特定の文字列に対し、許容される複数の文字列をあらかじめ限定(ホワイトリスト)しておき、文字列が一致しない場合でも、特定の文字列とホワイトリストに含まれる文字列との組み合わせであれば矛盾しないと扱ってもよい。逆に、特定の文字列に対し、許容されない複数の文字列を設定(ブラックリスト)し、特定の文字列とブラックリストに含まれる文字列の組み合わせだけを矛盾するとして扱ってもよい。ほかにも、任意の排他的な取り扱いが可能である。
【0096】
本発明の実施の形態に係る入力装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、DVD(Digital Versatile Disk)、MO(Magnet Optical Disk)などのコンピュータ読み取り可能な記録媒体に記憶して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行するソースプログラム解析システムを構成しても良い。さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0097】
また、本発明の実施の形態に係る入力装置は、1台で実現されるものに限定されない。複数のコンピュータが上述した各部の機能を分担することにより、それらの複数のコンピュータからなる一つのシステムとして各機能を提供するものであってもよい。
【0098】
ここまで本発明の好ましい実施の形態について詳述したが、これらの実施の形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
表示部(11)は、複数の入力欄を有するフォームを表示する。検知部(12)は、ユーザによる操作を検知する。クエリ部(13)は、検知部(12)が入力欄のいずれかにおける文字列の入力および編集の操作を検知すると、入力済の文字列により、データベース(19)を検索するクエリを発して、当該クエリにマッチする結果を受け付ける。受け付けた結果の数が、所定の閾値以下であれば、表示部(11)は、当該結果を、フォームとともに表示する。補完部(14)は、表示された結果からいずれかを選択する指示の操作が検知されると、(a)空である入力欄に、選択された結果から抽出された文字列を入力し、(b)空でない入力欄に入力済の文字列と、当該入力欄に対して選択された結果から抽出された文字列と、が矛盾すれば、警告することにより、入力を補完する。