以下、購入装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理システム1000のブロック図である。
情報処理システム1000は、購入装置1、WEBサーバ2、およびユーザ端末3を備える。購入装置1、WEBサーバ2、およびユーザ端末3は、インターネット等のネットワークや通信回線等を介して、相互に通信可能に接続されている。ここでは、説明の便宜上、WEBサーバ2が一つである場合を例に挙げて示しているが、WEBサーバ装置200は、複数であっても良い。かかることはユーザ端末3においても同様である。
購入装置1は、購入情報受付部101、購入情報格納部102、階層情報格納部103、ノード指定受付部104、購入条件受付部105、購入指定格納部106、編集指示受付部107、階層情報変更部108、優先順位情報格納部109、優先順位設定部110、削除設定格納部120、予算格納部121、提供情報取得部122、購入部123、削除部124、および予算更新部125を備える。
WEBサーバ2は、送信要求受信部201、WEBページ情報格納部202、WEBページ情報送信部203を備える。
ユーザ端末3は、送信要求送信部300、受信部301、出力部302、操作受付部303、操作情報送信部304を備える。
購入情報受付部101は、1以上の購入情報を受け付ける。購入情報は、購入対象物または購入対象物の分類項目を示す情報である。購入対象物は、例えば、ユーザの購入対象となりうるものである。購入対象物は、無形物であっても有形物であっても良い。購入対象物は、例えば、商品やサービスである。購入対象物を示す情報とは、例えば、購入対象物の識別情報である。購入対象物の識別情報は、例えば、商品名やサービス名や、商品コードやサービスコード等である。購入対象物の分類項目とは、購入対象物の属する分類やジャンル、カテゴリーの項目である。分類項目を示す情報は、例えば、分類項目の識別情報であり、例えば、分類名、ジャンル名、カテゴリー名や、分類コード、ジャンルコード、カテゴリーコード等である。購入情報とは、例えば、ユーザが購入を希望する購入対象物や購入対象物に属する分類項目を示す情報である。購入情報は、例えば、購入の対象となる購入対象物や分類項目を示す情報と考えてもよい。購入対象物は、階層化されていてもよい。購入対象物が階層化されているということは、例えば、購入対象物が階層的に分類されていることと考えても良い。階層的に分類されているということは、例えば、購入対象物が、階層化された分類項目で分類されていることであり、例えば、購入対象物が、大分類で分類されているとともに、中分類でも分類され、さらに小分類でも分類されていること等である。購入情報受付部101は、例えば、受け付けた購入情報を、後述する購入情報格納部102等の記憶媒体に蓄積する。
購入情報受付部101は、購入情報が示す購入対象物や、購入対象物の分類項目等を1以上のノードと対応付けて有する階層情報を、購入情報とともに受け付けるようにしても良い。階層情報については後述する。購入情報受付部101は、例えば、受け付けた階層情報を、当該階層情報とともに受け付けた購入対象物と対応付けて階層情報格納部103に蓄積する。
購入情報は、ユーザ識別情報と対応付けて蓄積されることが好ましい。このユーザ識別情報は、例えば、購入情報受付部101に対して購入情報の入力、あるいは送信を行ったユーザのユーザ識別情報である。ユーザ識別情報とは、例えば、ユーザの氏名や、ユーザのメールアドレス、ユーザの電話番号、ユーザの会員番号、ユーザに割り当てられた(あるいはユーザが選択した)コード等である。
購入情報受付部101は、さらに、購入情報に加えて、購入時期やコメントを更に受け付け、受け付けた購入時期やコメントを購入情報と対応付けて後述する購入情報格納部102や図示しない記憶媒体等に蓄積してもよい。例えば、現在は購入する予定がない購入対象物についての購入情報を受け付ける際に、購入時期(例えば「5年後」等)の入力を受け付けてもよい。この購入時期が到来した場合に(例えば、5年後)、購入装置1がユーザに購入のきっかけを与えてもよい。例えば、後述する購入情報の木構造を示す画像に、購入時期が到来するまでは購入情報を表示せず、購入時期が到来した場合に、購入を勧める表示等を行うようにしてもよい。その画像に、「○○才の自分へ、よくがんばった。この商品を買ったらいかが。」というような購入時期とともに受け付けたコメントを更に表示してもよい。
また、購入情報受付部101は、購入情報に加えて、さらに、商品の送付先を示す送付先情報を受け付けるようにし、受け付けた送付先情報を購入情報と対応付けて後述する購入情報格納部102図示しない記憶媒体等に蓄積してもよい。送付先情報を受け付けることで、本人は利用しないが本人以外の利用(例えば、下宿している息子や娘、遠くの孫、単身赴任の夫、実家の親兄弟など)を想定して購入情報を蓄積することができる。
ここでの受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。購入情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。ここでは、一例として、購入情報受付部101が、ネットワーク等を介して、ユーザ端末3から購入情報、あるいは、購入情報と階層情報との組等を受信する場合を例に挙げて説明する。購入情報受付部101は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア、通信手段やその制御ソフトウェア等で実現され得る。
購入情報格納部102には、購入情報が格納される。例えば、購入情報格納部102には、購入情報受付部101が受け付けた購入情報が格納される。ここでの格納は、一時記憶も含む概念である。
購入情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは他の格納部においても同様である。
階層情報格納部103には、階層情報が格納される。階層情報は、購入対象物の階層構造を示す情報や、階層対象物の分類項目の階層構造を示す情報である。階層情報は、購入対象物や、階層対象物の分類項目の階層関係、例えば、階層構造内における位置等を示す情報と考えても良い。階層情報は、例えば、木構造で示すことが可能な情報である。階層構造は、例えば、上位階層から下位階層に向かって分岐した構造を有している。ここでは、分岐点をノードと呼ぶ。なお、最上位階層の端点と、末端の端点も、ここでは、ノードと考える。ノードには、例えば、ノード識別情報が対応付けられている。最上位階層から最下位階層に向かってノードを辿った場合の、最も下位の階層のノード(即ち、末端のノード)以外のノードは、例えば、購入対象物の分類項目と対応付けられている。最も下位の階層のノードは、購入対象物または購入対象物の分類項目と対応付けられている。階層情報は、ネスト構造、階層化されたグループ関係、従属関係を示す情報と考えても良い。この場合、ノードは、一の階層のグループやネストに相当するものと考えても良い。
階層情報格納部103には、例えば、購入情報格納部102に格納されている購入情報が示す購入対象物または購入対象物の分類情報についての、階層関係を示す階層情報が格納される。購入情報格納部102に格納されている購入情報が示す購入対象物または購入対象物の分類項目は、例えば、階層情報格納部103に格納される階層情報の一のノードと対応付けられる。購入情報が示す購入対象物または購入対象物の分類項目の識別情報を、例えば、この購入対象物または購入対象物の分類項目が対応付けられたノードのノード識別情報として用いても良い。
階層情報格納部103には、例えば、購入情報受付部101が購入情報と同時に受け付けた階層情報が、購入情報と対応付けて蓄積される。ただし、階層情報は、同時に受け付けなくても良い。階層情報格納部103には、例えば、購入情報格納部102に格納されている各購入情報に含まれる購入対象情報または分類情報の階層を示す階層情報が格納される。
また、後述する編集指示受付部107が、購入対象物または購入対象物の分類項目についての階層情報を階層情報格納部103に蓄積しても良い。
また、購入情報受付部101が購入情報を蓄積する際に、当該購入情報についての階層情報として予めデフォルト等で指定された階層情報や、予め指定されたルールに従って作成された階層情報等を、購入情報格納部102に蓄積されるようにしても良い。
また、購入情報格納部102には、予め購入対象物の分類の階層構造を示す階層情報が格納されているようにしても良い。この場合、この階層情報のいずれかのノードに、購入情報受付部101が受け付けた階層情報に含まれる購入対象物または購入対象物の分類項目が対応付けて蓄積されるようにしても良い。
階層情報は、購入対象物や、購入対象物の分類等の階層構造や木構造が示すことが可能な情報であればどのような情報であっても良い。例えば、階層情報は、ノード間の従属関係を示す複数の情報で構成される。また、階層情報は、最上位の階層(例えばルート)等からノードを辿って下位の所望の階層の購入対象物または購入対象淵に辿りつくまでの複数のパス(経路)を、ノード名やノード番号等のノードの識別情報(以下、ノード識別情報と称す)等を用いて示す情報で構成されていても良い。
ノード指定受付部104は、1以上のノード指定を受け付ける。ノード指定は、階層情報格納部103に格納されている階層情報の1以上のノードを指定する情報である。例えば、ノード指定受付部104は、購入の対象となる購入対象物や分類項目が対応付けられたノードを指定する情報であるノード指定を受け付ける。ノード指定は、例えば、購入の対象となる購入対象物または購入の対象となる購入対象物の分類項目と対応付けられたノードを指定する情報と考えてもよい。ノード指定受付部104は、例えば、ユーザにより、購入を希望する購入対象物や分類項目と対応付けられたノードとして指定されたノードのノード識別情報を、ノード指定として後述する購入指定格納部106等に蓄積する。ノード指定受付部104は、既に受付済のノード指定を変更したり削除したりする操作を受け付けても良い。ノード指定受付部104は、ノード指定をどのように受け付けても良く、例えば、階層情報格納部103に格納されている階層情報を用いて、階層情報を示す複数のノードを備えた木構造を示す情報を、後述する購入情報出力部126等から出力し、この木構造を示す情報の1以上のノードに対して、ノードを指定する操作を受け付けた場合に、このノードについてのノード指定を受け付けても良い。また、ノード指定受付部104は、購入情報が受け付けた購入情報に対応するノードについては、このノードを指定するノード指定を、デフォルトで受け付けるようにしても良い。また、階層情報が階層情報格納部102に蓄積される際等に、この階層情報の購入情報が対応付けられている一のノードのノード識別情報を、ノード指定として、階層情報から読み出しても良い。ここでの受け付けは、このような読み出しも含む概念である。
ノード指定は、ノード指定の入力や送信を行ったユーザのユーザ識別情報と対応付けて蓄積されることが好ましい。
ノード指定の受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。ここでは,一例として、ユーザ端末3からネットワークを介してノード指定を受け付ける場合を例に挙げて説明する。
ノード指定受付部104は、受け付けたノード指定を、後述する購入指定格納部106等に蓄積する。例えば、ユーザに対応するノードの識別情報を、ノード指定を示す情報として、後述する購入指定格納部106等に蓄積する。
ノード指定の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。ノード指定受付部104は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェアや、通信手段とその制御ソフトウェア等で実現され得る。
購入条件受付部105は、購入条件を受け付ける。購入条件は、一のノード指定に対応付けられた情報であって、購入対象物についての購入に関する条件である。購入条件は、例えば、購入対象物を購入するか否かの判断に用いられる条件の一つである。購入条件は、例えば、ユーザが指定する条件である。購入条件受付部105が受け付けた購入条件は、例えば、ノード指定と対応付けられて購入指定格納部106に蓄積される。一のノード指定に対応付けられた購入条件とは、一のノード指定が示すノードに対応付けられた購入条件と考えても良い。
例えば、購入条件は、購入対象物についての料金に関する条件であり、例えば、料金の上限や下限である。また、料金の割引率である。また、購入条件は、購入対象物の属性についての条件であってもよく、購入対象物のメーカーや、仕様(大きさや材質、色、性能、速度、容量等)や、ラインナップ名やシリーズ名等に関する条件であっても良い。例えば、購入条件は、ノード指定が「テレビ」という分類項目と対応付けられたノードを指定するノード指定である場合、画面サイズの範囲や、フルハイビジョン対応である等の仕様を指定する条件であってもよい。
また、購入条件とは、購入時期を指定する条件である購入時期条件を有していてもよい。ここでの時期とは、期間と考えても良い。購入時期条件とは、例えば、購入対象物を購入可能な時期を示す条件であり、時期を指定可能な条件であればどのような条件であってもよい。購入時期条件は、例えば、ボーナス月や、月末、年始、7月、10月等の時期を特定可能な条件であればよい。例えば、ボーナス月等については、例えば、6月や7月等、予め期間を特定する情報と対応付けておくことで、この対応付けられた期間等をボーナス時期が示す時期として用いるようにしても良い。購入時期条件は、例えば、時期の開始日時と終了日時との組合せや、開始日時と継続時間(継続日数も含む)との組合せで構成されていても良いし、7月、8月のように期間を特定可能な情報で構成されていても良い。ここでの日時は、日付と時刻とを含む情報であっても良いし、日付のみの情報であっても良い。また、日時は、年月日の情報であっても良いし、月日や、日だけの情報であっても良い。かかることは以下においても同様である。なお、購入時期条件か設定されているノード指定が示すノードについては、購入のタイミングが、この購入時期条件が示す時期である場合に、後述する購入部123等が、このノードに対応する購入対象物または分類項目が示す購入対象物を、購入の候補となるようにすることが好ましい。例えば、購入時期条件が示す時期である場合に、このノードについての後述する優先順位が、他のものよりも高くなるようにして、購入の候補として、購入するか否かの判断が行われる順番が早くなるようにしても良い。また、この時期である場合にのみ、購入の候補となるようにし、その他の時期は、購入の候補から除外されるようにしても良い。なお、対応する購入時期条件が示す時期が重なる複数のノード指定が存在する場合には、元々の優先順位の高い方の優先順位を高くなるよう、各ノード指定に対応する購入対象物等についての優先順位を一時的に設定するようにすればよい。
また、購入条件は、同時に購入できない購入対象物を指定する条件(例えば、同時購入できない購入対象物を指定する情報等)である拒否条件を有していてもよい。ここでの購入対象物は、一の分類項目に属する購入対象物の一つと考えても良い。拒否条件は、例えば、同時に購入できない購入対象物の組合せを示す情報である。同時に購入できない購入対象物の組合せとは、アルコールと風邪薬、ビデオディスクプレーヤーとビデオディスクプレーヤー付きテレビ等である。拒否条件は、同時に購入できない購入対象物(あるいは分類項目に属する購入対象物)がそれぞれ対応付けられている複数のノードを示すノード指定に対してそれぞれ付与された同時購入できない購入対象物(あるいは分類項目に属する購入対象物)であることを示す情報(例えばフラグ等の情報)を含むものであってもよいし、一の購入対象物(あるいは分類項目に属する購入対象物)に対応付けられているノードを示すノード指定に対して付与された、同時購入できない購入対象物(あるいは同時購入できない購入対象物が属する分類項目)の識別情報や、購入対象物(あるいは同時購入できない購入対象物が属する分類項目)が対応付けられたノードの指定を有する条件であっても良い。
また、購入条件は、同時に購入する必要がある購入対象物を指定する条件である同時条件を有していてもよい。ここでの購入対象物は、一の分類項目に属する購入対象物の一つと考えても良い。同時条件は、例えば、同時に購入する必要がある購入対象物の組み合わせを指定する条件である。同時に購入する必要がある購入対象物とは、例えば、机と椅子や、テレビとテレビ台等である。同時条件は、同時に購入する必要がある購入対象物(あるいは分類項目)がそれぞれ対応付けられている複数のノードを示すノード指定に対してそれぞれ付与された同時購入する必要がある購入対象物(あるいは分類項目)であることを示す情報を含むものであってもよいし、一の購入対象物(あるいは分類項目)に対応付けられているノードを示すノード指定に対して付与された同時購入する必要がある購入対象物(あるいは分類項目)の識別情報や、購入対象物(あるいは分類項目)のノードの指定を有する条件であっても良い。
購入条件受付部105は、一のノード指定について受け付けた購入条件を、例えば、このノード指定(例えば、指定されたノード識別情報)と対応付けて、後述する購入指定格納部106等に蓄積する。
購入条件の受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。ここでは、一例として、ユーザ端末3からネットワークを介して購入条件を受け付ける場合を例に挙げて説明する。購入条件の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。購入条件受付部105は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア、通信手段とその制御ソフトウェア等で実現され得る。
購入指定格納部106には、ノード指定受付部104が受け付けたノード指定が格納される。ノード指定は、例えば、ノードを指定する操作によって指定されたノードの識別情報である。また、購入指定格納部106には、ノード指定と購入情報とが対応付けて格納されていても良い。
購入指定格納部106は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
編集指示受付部107は、階層情報に格納されている階層情報に対する編集指示を受け付ける。編集指示は、階層情報を編集する指示である。編集指示は、例えば、階層情報が示す階層構造あるいは階層関係を変更する操作である。例えば、編集指示は、1以上のノードの従属先を変更することである。例えば従属先を変更したノードに従属しているノードが存在している場合、これらのノードも元の従属先と同じノードに従属するよう、従属関係を変更するようにしてもよい。また、編集指示とは、新しい1以上のノードを追加することでもよい。追加するノードのノード識別情報は、例えば、予め用意されているノード識別情報の中からユーザが適宜選択可能なものとしても良い。また、編集指示とは、ノードを削除することであっても良い。また、編集指示は、ノードの識別情報を変更することであっても良い。
編集指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。編集指示受付部107は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
階層情報変更部108は、編集指示受付部が受け付けた編集指示に応じて階層情報を変更する。そして、階層情報変更部108は、変更した階層情報を階層情報格納部103に蓄積する。階層情報変更部108は、上位の階層のノードの従属関係を変更する場合、この上位の階層のノードと、このノードに従属する下位のノードとの従属関係が変更されないように階層情報を変更することが好ましい。なお、ノードが変更された場合、変更されたノードと、このノードに対応付けられた購入対象物や分類項目の情報との対応関係は維持されるようにすることが好ましい。
優先順位情報格納部109には、優先順位情報が格納される。優先順位情報は、階層情報が示すノードに対する優先順位を示す情報である。ここでの優先順位とは、購入時の判断の際に、優先的に購入される順位を示す情報である。優先順位情報は、階層情報が蓄積される際に、予め指定されたルール等にしたがって自動的に、後述する優先順位設定部110等により付与されてもよい。例えば、購入情報受付部101が、購入情報を受け付ける際に、受付順に優先度が高くなるよう、購入情報に含まれる購入対象物や購入対象物の分類項目と対応付けられたノードに優先順位情報が付与されても良い。また、図示しない受付部等を介してユーザが各ノードに対して指定した優先順位情報が、優先順位設定部110等により各ノードに付与されても良い。また、編集指示受付部107が受け付けた編集指示に応じて、優先順位設定部110が、各ノードの優先順位を変更するようにしても良い。例えば、予め、階層構造におけるノード間の階層関係(ノード間の位置関係)と、優先順位情報との対応関係を示す情報を、図示しない記憶媒体等に蓄積しておくようにし、編集指示によって、ノードの位置が変更された場合に、優先順位設定部110が、上記の対応関係を示す情報を用いて、優先順位を各ノードに設定し直すようにしても良い。優先順位情報は、優先する順番を示す番号であっても良いし、優先度の高さを示す値であっても良い。優先順位情報は、例えば、ノードの識別情報と対応付けられて、優先順位情報格納部109に蓄積される。
優先順位情報は、優先順位情報の入力や送信を行ったユーザのユーザ識別情報と対応付けて蓄積されることが好ましい。
優先順位設定部110は、階層情報が示す各ノードに対して、優先順位情報を付与する。優先順位情報を付与するということは、例えば、ノードの識別情報と優先順位情報とが対応付けて優先順位情報格納部109に蓄積することである。優先順位設定部110は、上述したように、階層情報が蓄積される際に、予め指定されたルール等にしたがって自動的に優先順位情報を付与してもよい。例えば、優先順位設定部110は、例えば、購入情報の受付順に従って優先度が高くなるよう、購入情報に含まれる購入対象物または購入対象物の分類項目と対応付けられたノードに優先順位情報を付与する。また、図示しない受付部等を介してユーザが階層情報のノードに対して指定した優先順位を示す優先順位情報を、優先順位設定部110が付与するようにしても良い。優先順位設定部110は、例えば、各ノードの優先順位を、1以上の階層情報が示す階層構造内の各ノードの位置関係(階層関係)に応じて設定する。また、優先順位設定部110は、階層情報が変更された場合に、変更に応じて優先順位情報を再付与したり、優先順位情報の対応付けを変更したりするようにしても良い。
削除設定格納部120には、1以上の削除設定情報が格納される。削除設定情報は、ノード指定に対応付けられた情報であって、対応するノード指定が示すノードについて、予め指定された量の購入対象物が購入された場合に、このノード指定を削除することを設定するための設定情報である。なお、ノード指定を削除するということは、結果的にノード指定が削除されることであればよく、ノード指定が示すノードを削除すること等であっても良い。予め指定された量は、通常は「1」であるが、複数であっても良い。ノード指定が示すノードについて購入対象物を購入するということは、ノード指定に対応するノードまたは当該指定されたノードに従属するノードに対応付けられた購入情報が示す購入対象物または購入情報が示す分類項目に属する購入対象物のうちの1以上の購入対象物を購入することである。削除設定情報は、削除設定がされているノード指定を示す情報を有する情報である。更に、削除設定情報は、このノード指定に対して削除設定がされていることを示す情報を含んでいても良い。例えば、ノード指定が示すノードの識別情報と同じノードの識別情報であってもよい。削除設定情報が、削除設定格納部120に蓄積される過程は問わない。ノード指定受付部104が、ユーザ端末3等からネットワーク等を介して一のノードについてノード指定を受け付ける際に、このノードについての削除設定情報も受け付けるようにし、受け付けた削除設定情報が、削除設定格納部120に蓄積されるようにしても良い。あるいはデフォルトで指定された削除設定情報が、各ノード指定に対応付けられて蓄積されるようにしても良い。
予算格納部121には、購入対象物の購入に利用可能な金額を示す情報である予算情報が格納される。予算情報の初期値(金額)がどのように設定されるかは問わない。例えばデフォルトの値が設定されても良いし、ユーザ端末3等からネットワーク等を介して送信された予算情報の初期値を、図示しない受信部等が受信し、この初期値を、予算情報として設定するようにしても良い。予算情報が示す金額は、例えば、後述する購入部123が購入対象物の購入を行った場合に、購入に用いられた金額分だけ、金額が減算される。また、予算情報が示す金額は、例えば、後述する予算更新部125により、予め指定されたタイミング等に加算される。予算情報は、ユーザ識別情報と対応付けて蓄積されることが好ましい。
提供情報取得部122は、1以上の提供情報を取得する。提供情報は、購入情報格納部102に格納されている1以上の購入情報が示す購入対象物または分類項目に属する購入対象物のうちの1以上についての提供金額を有する情報である。また、提供情報は、提供金額に対応する購入対象物を示す情報を更に有していても良い。提供情報取得部122は、例えば、購入情報格納部102に格納されている購入情報を用いて、提供情報を取得する。ただし、提供情報取得部122は、結果的に、購入情報格納部102に格納されている購入情報が示す購入対象物また分類項目に属する購入対象物について提供情報を取得すればよく、必ずしも購入情報格納部102に格納されている購入情報を直接用いて提供情報を取得しなくてもよい。例えば、提供情報取得部122は、上述した階層情報に含まれるノードのノード識別情報として、用いられる購入情報を用いて、この購入情報が示す購入対象物また分類項目に属する購入対象物について提供情報を取得しても良い。
提供金額とは、各購入対象物が提供される金額である。提供金額は、例えば、購入対象物の代金であっても良いし、購入対象物の代金に、消費税や、送料や、サービス料やこれらに相当する値等を加えた料金であっても良い。提供情報は、例えば、提供金額と、この提供金額で購入対象物を購入可能な購入先に関する情報(言い換えれば、この提供金額で購入対象物を提供する提供者に関する情報)を有していても良い。購入先に関する情報とは、購入対象物の購入先や注文先を示す情報である。例えば、購入対象物の購入が可能なWEBサイト(いわゆるショッピングサイト)のURL等のアドレス情報や、購入対象物の注文が可能なメールアドレスや、発注書の発送が可能な住所やファクシミリ番号や、注文が可能な電話番号等の情報である。また、提供情報は、購入対象物の発送日の情報等をさらに有していても良い。ここでの提供とは、例えば、商品の販売やサービスの提供を含む概念である。
提供情報取得部122は、例えば、インターネット上のWEBサイトを検索することにより、購入対象物の1以上についての提供情報を取得する。例えば、提供情報取得部122は、インターネット上の、予め指定されたいわゆる検索エンジンを提供するWEBサーバにおいて、1以上の購入対象物についての検索を行い、検出されたWEBページから、当該購入対象物の提供金額と、購入対象物の購入先の情報、例えば、このWEBページのURL等のアドレス情報や、注文先のメールアドレスや、電話番号や、ファクシミリ番号等を有する提供情報を取得する。検索の際には、購入対象物の購入が可能なショッピングサイトを、検索対象として絞り込むための条件を加えるようにしてもよい。また、提供情報取得部122は、予め指定された1以上の、様々な分野の複数の購入対象物についての価格とその提供者についての情報提供を行うWEBサイトや、予め指定された1以上のショッピングサイトについて、購入対象物についての検索を行うようにして、提供情報を取得するようにしても良い。ここでの購入対象物についての検索とは、例えば、購入情報格納部102に格納されている1以上の購入情報が示す購入対象物の識別情報(例えば、商品名や商品コード)を検索キーとして用いた検索や、購入情報格納部102に格納されている1以上の購入情報が示す購入対象物が属する分類項目の識別情報(例えば、テレビ等の商品の分類名や分類コード等)を検索キーとして用いた検索である。
なお、後述する購入部123が購入対象物の購入先として利用する一のWEBサイト(例えば、ショッピングサイト)が予め指定されている場合等においては、提供情報は、提供情報取得部122は、このWEBサイト内において購入対象物についての検索を行って、提供金額を取得するようにすればよく、購入先の情報は取得しなくて良い。かかることは、購入対象物の購入先が固定である場合においては同様である。
提供情報取得部122は、例えば、購入対象物を検出できなかったり、購入対象物について売り切れや入荷待ち等の情報しか取得できなかったりしたこと等により、購入対象物(あるいは、分類項目に属する購入対象物)についての提供金額を含む提供情報が取得できなかった場合、購入対象物(あるいは、分類項目に属する購入対象物)が購入不可であることを示す購入不可情報等を取得するようにしても良い。
なお、提供情報取得部122は、予め図示しない記憶媒体等に蓄積されている購入対象物の識別情報等と、提供金額と、購入先の情報とを有するデータベースから、購入対象物についての提供情報を取得するための検索を行っても良い。
なお、ノード指定受付部104が受け付けたノード指定により、ノードが指定されている場合、当該ノード指定に対応するノードに対応する購入情報、または当該ノード指定に対応するノードに従属するノードに対応する購入情報についてのみ、提供情報取得部122は提供情報を取得することが好ましい。ここでの一のノードに従属するノードとは、例えば、一のノードの直系の階層が下位のノードを意味する。下位であれば、一階層だけ下位であっても、二階層以上下位であっても良い。
なお、提供情報取得部122は、インターネット等のネットワーク等を介して、WEBサーバ(図示せず)等との間で検索等を行うための、通信手段(図示せず)を有していてもよい。なお、検索の処理等については、公知の技術であるので詳細な説明は省略する。
購入部123は、提供情報取得部122が取得した1以上の提供情報を用いて、1以上の提供情報にそれぞれ対応する購入対象物のうちの1以上を、購入対象物に対応する提供金額の合計が、予算情報が示す金額以下となる範囲で購入する。購入部123は、予算情報が示す金額以下となる範囲で、購入金額が最大となるよう、購入対象物を購入することが好ましい。購入部123は、予算情報が示す金額以下となる範囲で、購入対象物を順次購入しても良いし、予算情報が示す金額以下となる範囲の購入対象物についての購入を決定した時点で、購入を行うようにしても良い。例えば、購入部123は、購入の候補となる購入対象物の中から、予算情報が示す金額以下となる範囲で購入対象物を購入する。
ここでの購入とは、例えば、最終的に購入に至ることが確実な処理を意味する。例えば、購入は、購入対象物を提供するいわゆるショッピングサイト等のWEBサイトにおいて、クレジットカード番号等を用いて、決済処理も含めた購入処理を行うことや、いわゆる代引きで購入処理を行うことである。また、購入は、注文のためのメールや指示を送信することや、注文のための書類等を出力して送付することであってもよい。購入部123が行う購入は、購入対象物に対応する購入情報と対応付けられたユーザ識別情報が示すユーザについて行われる購入である。このユーザについての購入代行と考えても良い。なお、注文の際に必要となるユーザの氏名、住所、電話番号、メールアドレス、クレジットカードや電子マネーやプリペイドカードの識別情報や、ショッピングサイト等のユーザID等の情報は、例えば、予め図示しない記憶媒体等に、購入情報と対応付けられているユーザ識別情報と同じユーザ識別情報と対応付けて蓄積しておくようにすればよい。
購入部123は、例えば、ノード指定に対応する1以上のノードまたは当該ノードの下位に従属するノードに対応付けられた購入情報が示す購入対象物または購入情報が示す分類項目に属する購入対象物のうちの1以上を購入する。
購入部123は、例えば、購入情報格納部102に格納されている一の購入情報が、購入対象物を示す購入情報である場合、この購入対象物を購入の候補とする。そして、購入部123は、購入の候補の中から予算情報が示す金額以下となる範囲で購入対象物を購入する。
また、購入部123は、例えば、購入情報格納部102に格納されている一の購入情報が、購入対象物の分類項目を示す購入情報である場合、通常、この分類項目に属する購入対象物を購入の候補とする。そして、購入部123は、購入の候補の中から予算情報が示す金額以下となる範囲で購入対象物を購入する。分類項目に属する購入対象物が複数である場合、どのようにして一の購入対象物を、予算情報が示す金額以下となる範囲で購入対象物を購入する際の、購入の候補に選択しても良い。例えば、対応する提供金額が最も低いものを選択しても良いし、ランダムに選択しても良い。また、選択の条件が購入条件で指定されている場合、この条件で選択を行うようにしても良い。また、購入部123は、分類項目に属する購入対象物の予め指定された数を、購入するようにしても良い。予め指定された数は、通常は1であるが、2以上としても良い。この予め指定された数は、上述したノード指定と対応付けられた削除情報についての指定量であってもよい。
なお、購入の候補とするということは、購入部123が購入する購入対象物を選出する際の選出元の集団(母集団)とすることである。購入の候補となった購入対象物は、予算情報が示す金額以下の範囲に収まるか否かの判断の対象となり得る。上述したように、購入部123は、購入の候補となった購入対象物の中から、予算情報が示す金額以下となる範囲で購入対象物を購入する。ただし、購入の候補とするということは、購入の候補に設定する等の明示的な処理が行われることでなくても良く、結果的に購入の候補となれば良い。かかることは以下においても同様である。
ここで、以下に、上述したようなノード指定や、購入条件が存在する場合の購入部123の処理の例について説明する。なお、以下において、購入対象物を購入するということは、購入対象物を購入の候補としたうえで、この候補の中から、予算情報が示す金額以下となる範囲で、購入対象物を購入することであってもよい。
(a)ノード指定がある場合
購入部123は、ノード指定に対応する1以上のノード、またはノード指定に対応する1以上のノードの下位に従属するノード、に対応付けられた購入情報が示す購入対象物または購入情報が示す分類項目に属する購入対象物のうちの1以上を購入する。ここでの下位に従属するノードとは、例えば、ノード指定が指定するノードの直系となる下位の全ての階層の従属するノードを指すと考えても良い。例えば、ノード指定が指定するノードに従属するノードに更に従属するノードも含むと考えて良い。つまり、いわゆるサブツリー等も含むと考えても良い。
例えば、購入部123は、ノード指定に対応する一のノードが、従属するノードを持たないノードである場合、このノードに対応付けられた購入情報が示す購入対象物、または、この購入情報が示す分類項目に属する購入対象物のうちの予め指定された数を購入する。なお、分類項目に属する購入対象物のうちの予め指定された数を選択する処理は、上記と同様の処理が利用可能である。かかることは、以下においても同様である。
また、購入部123は、例えば、ノード指定に対応するノードに、購入対象物(あるいは分類項目)を示す購入情報と対応付けられた1以上のノードが従属しており、この購入情報と対応付けられたノードにさらに従属するノードが存在しない場合、この購入情報が示す購入対象物(あるいは、分類項目に属する購入対象物)を購入する。
また、購入部123は、例えば、ノード指定に対応する一のノードに、従属するノードを1以上有する1以上のノードが従属している場合、ノード指定に対応する一のノードに従属するノードのうちの、従属するノードを1以上有する各ノードについて、同様の判断処理を繰り返す。これにより、ノード指定に対応するノードまたはこれに従属するノードのうちの、従属するノードが存在しないノード(例えば、ノード指定に対応するノードに従属するノードのうちの末端のノード)に対応付けられた購入情報によって特定される購入対象物が、購入の候補となる。つまり、再帰的に判断処理を繰り返して購入の候補を取得しても良い。
(b)ノード指定と購入条件とがある場合
購入部123は、購入条件が対応付けられているノード指定がある場合、ノード指定に対応する1以上のノードまたはこのノードに従属するノードに対応付けられた購入情報が示す購入対象物または購入情報が示す分類項目に属する購入対象物のうちの、各ノード指定に対応付けられた購入条件を満たす購入対象物の1以上を購入するようにしてもよい。なお、ノード指定に対応する購入対象物を購入する処理は、購入条件を満たすか否かの判断によって、購入対象物を選択する点を除けば、上記の処理と同様である。
なお、購入部123は、結果的に、購入条件を満たす購入対象物を購入することができればよい。即ち、購入条件を満たす購入対象物を購入の候補とすることができればよい。例えば、購入部123が、購入条件を満たす購入対象物を購入する代わりに、上述した提供情報取得部122等が、購入条件を満たす購入対象物についての提供情報を選択的に取得するようにして、この提供情報を用いて、購入部123が購入対象物の購入を行っても良い。
また、購入条件のうちの購入時期情報が対応付けられているノード指定がある場合、購入部123は、購入時期条件が示す時期に、購入時期条件と対応付けられたノード指定に対応する1以上のノードまたはノードに従属するノードに対応付けられた購入情報が示す購入対象物または購入情報が示す分類項目に属する購入対象物のうちの1以上を購入する。購入部123は、例えば、現在の日時の情報を、図示しない時計やカレンダー等から取得して、この日時が、購入時期情報が示す期間内に含まれているか否かを判断し、期間内に含まれている場合、現在が、購入時期条件が示す時期であると判断し、含まれていない場合、購入時期条件が示す時期でないと判断する。なお、購入時期情報が示す時期には、この購入時期情報に対応する購入情報が示す購入対象物または購入情報が示す分類項目に属する購入対象物については、他の購入対象物よりも優先的に(例えば、最初に)購入が可能であるか否かを判断するようにしても良い。
購入部123は、購入条件が示すノードのうちの、優先順位情報が示す優先順位が高いノードに対応付けられた購入情報が示す購入対象物または分類項目に属する購入対象物を優先的に購入するようにしてもよい。優先的に購入するということは、他のものよりも先に購入が可能であるか否かを判断することである。優先的に購入するということは、予算情報が示す予算の範囲で購入可能であるか否かを判断することと考えても良い。例えば、購入部123は、優先順位が高いノードに対応付けられた購入情報から順番に、この購入情報に対応する購入対象物の提供金額を取得し、この提供金額と、既に購入することを決定した購入対象物および既に購入済の購入対象物の提供金額との合計が、予算情報が示す金額以下であるか否かを判断し、この金額以下であれば、この購入対象物を購入することを決定する。
購入部123は、拒否条件と対応付けられたノード指定が示すノードに対応する購入対象物については、拒否条件が示す購入対象物を同時に購入しない場合にのみ、購入を行う。例えば、拒否条件と対応付けられたノード指定が示すノードに対応する購入対象物については、拒否条件が示す購入対象物が既に購入されているか、あるいは購入することが決定されているか否かを判断し、購入されていない場合にのみ、当該購入対象物を購入する。例えば、一の購入対象物(あるいは分類項目)を示すノード指定に対して、一の拒否条件(例えば、同時に購入しない購入対象物や分類項目の識別情報を有する拒否条件)が対応付けられている場合、購入部123は、一の拒否条件(例えば、同じ識別情報を有する拒否条件)が対応付けられたノード指定に対応する購入対象物(あるいは分類項目に属する購入対象物)が既に購入されている、あるいは購入されることが決定されているか否かを判断し、購入されていない、あるいは購入が決定されていない場合にだけ、一の購入対象物(あるいは分類項目に属する購入対象物)を購入するようにしても良い。
購入部123は、同時条件と対応付けられたノード指定が示すノードに対応する購入対象物については、同時条件が示す購入対象物と同時に購入が可能な場合にのみ、購入を行う。具体的には、購入部123は、同時条件と対応付けられたノード指定が示すノードに対応する購入対象物については、この購入対象物の提供金額と、この同時条件が示す購入対象物の提供金額と、購入部123が購入する他の購入対象物の提供金額との合計金額が、前記予算情報が示す金額以下となる場合にのみ、購入を行う。購入部123が購入する他の購入対象物の提供金額とは、例えば、既に、購入部123が購入済である、あるいは購入を決定した1以上の購入対象物の提供金額の合計である。例えば、同時条件と対応付けられたノード指定が示すノードに対応する購入対象物(あるいは分類項目)については、同時条件が示す他の購入対象物(あるいは分類項目)との組を、一の購入の対象として扱う。例えば、一の購入対象物(あるいは分類項目)を示すノード指定に対して一の同時条件(例えば、同時に購入する購入対象物や分類項目の識別情報を有する同時条件)が対応付けられている場合、購入部123は、同時条件が示すノード指定に対応する購入対象物(あるいは分類項目に属する購入対象物)と、上記の一の購入対象物(あるいは分類項目に属する購入対象物)との組について、予算情報が示す金額以下(既に他の購入対象物の購入が決定している、あるいは購入済である場合は、その残高)の範囲で購入できるか否かの判断を行う。
なお、購入部123は、例えば、提供情報取得部122が、購入不可情報を取得した購入対象物(あるいは分類項目)、や提供情報を取得できなかった購入対象物(あるいは分類項目)については、購入の対象から除外するようにして良い。
購入部123は、購入情報格納部102に格納されている購入情報が示す購入対象物または分類項目が示す購入対象物についての、予算情報が示す金額以下の範囲での購入が終了した時点における、予算格納部121に格納されている予算情報が示す金額と、購入部123が購入した1以上の購入対象物の提供金額の合計との差を取得する。例えば、購入部123は、1以上の購入対象物が購入される毎に、予算情報から、順次、購入対象物の提供金額を減算することで、最終的に、予算情報が示す金額と、購入部123が購入した1以上の購入対象物の提供金額の合計との差を取得するようにしても良い。あるいは、購入時とは別に、購入済の購入対象物の提供金額の合計を算出し、予算情報が示す金額からこの合計を算出することで、上記の差を取得しても良い。
購入部123は、購入情報についての購入を行う処理を行うタイミング等は問わない。購入部123による上記の購入のための処理は、繰り返し行われることが好ましい。例えば、購入部123は、予めユーザやデフォルト等で指定された一定または不定のタイミング毎にくり返し行うようにしても良い。例えば、毎月の指定された日や、毎月の指定された週の指定された曜日に購入の処理を行うようにしても良い。これにより、例えば、毎月の小遣いから、購入対象物を購入することができる。また、ユーザ等により購入を行う指示を受け付けた場合に、購入の処理を行うようにしても良い。
削除部124は、削除設定情報と対応付けられたノード指定に対応するノードについて、購入部123が、この削除設定情報が示す量の購入対象物を購入した場合に、ノード指定を削除する。なお、結果的には、ノード指定も削除されることから、削除部124は、削除設定情報と対応付けられたノード指定が指定するノード、およびそのノードに従属するノード等を削除しても良い。
予算更新部125は、購入部123が取得した予算情報が示す金額と購入した購入対象物の提供金額の合計との差と、予め指定された金額との合計金額を示す情報を用いて、前記予算格納部に格納されている予算情報を更新する。予め指定された金額とは、予算情報の金額に対して補充される金額であり、一定であっても不定であっても良い。この予め指定された金額は、デフォルトで指定された金額であっても、ユーザ等が指定した金額であっても良い。予算更新部125は、購入処理が終わったタイミングや、予め指定された一定または不定のタイミングで上記の差と、予め指定された金額との合計金額で予算情報を更新するということは、前回の購入の処理における残高を、次回の予算に繰り越すこと(貯金すること)と考えても良い。
購入情報出力部126は、購入情報格納部102に格納されている購入情報に関する情報である購入関連情報を出力する。購入関連情報は、例えば、購入情報に関する表示を行うための情報である。購入関連情報は、購入情報そのものであっても良いし、例えば、階層情報格納部103に格納されている階層情報が示す階層構造を木構造で示した情報や、この木構造の各購入情報が対応付けられたノード上、あるいはその近傍に、対応付けられ購入情報が示す購入対象物の識別情報または分類項目の識別情報を配置した情報を出力してもよい。また、ノードの近傍には、購入条件が設定されていることや、ノード指定されていることや、削除設定されていることを示す情報を配置しても良い。このような木構造の情報は、購入情報出力部126が取得しても良いし、他の処理部等が取得したものを受け取ってもよい。例えば、購入情報出力部126は、優先順位設定部110が優先順位情報を設定する際等に取得した木構造を示す情報を受け取って出力するようにしても良い。購入情報出力部126は、例えば、図示しない受付部が、購入関連情報の出力を要求する情報を受け付けた場合に、購入関連情報を出力する。購入情報出力部126は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。ここでの出力とは、ディスプレイへの表示、プリンタによる紙等への印字、外部の装置への送信等を含む概念である。購入情報出力部126は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
WEBサーバ2は、WEBページを提供するサーバである。WEBサーバ2は、どのようなWEBページを提供するものであってもよい。例えば、購入対象物についてのWEBページを提供するサーバであっても良い。また、WEBサーバ2は、いわゆるWEBページを検索するための検索エンジン等としての機能を提供するするサーバであっても良い。またWEBページは、いわゆる決済等を行うことが可能なショッピングサイト等として機能するサーバであってもよい。また、購入対象物についての価格等の情報を分類項目別に有しており、これらのWEBページを検索キーが示す分類項目ごとに出力するサーバであっても良い。なお、WEBサーバ2は、検索の処理を行う処理部(図示せず)や、検索に用いられるデータ等が格納された格納部(図示せず)等を有していても良い。なお、WEBサーバ2における、検索エンジンやショッピングのための決済等の処理を行う構成については、公知の技術であるので、ここでは詳細な説明は省略する。
送信要求受信部201は、購入装置1やユーザ端末3等から、WEBページ情報の送信要求をインターネット等のネットワークを介して受信する。WEBページ情報は、WEBページを出力するための情報である。送信要求は、WEBページ情報の送信を要求する情報である。要求情報や、WEBサーバ2が、WEBページ情報の送信を要求されたことを判断可能な情報であればよく、送信を指示する情報等は有していなくても良い。送信要求は、例えば、送信対象となるWEBページのURL等である。また、送信要求は、購入情報(例えば、購入対象物の識別情報や、購入対象物の分類項目の識別情報)等の情報を更に有していてもよい。
送信要求受信部201は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。送信要求受信部201は、通信デバイスを含むと考えても、含まないと考えても良い。
WEBページ情報格納部202は、1以上のWEBページ情報が格納される。WEBページ情報格納部202に格納されるWEBページ情報は、予め用意されたWEBページ情報であっても良いし、送信要求情報等に応じて動的に作成されたWEBページ情報が、一時記憶されたものであってもよい。例えば、検索結果等に応じてWEBページ情報を動的に生成する処理及び構成は、公知の技術であるので、ここでは説明を省略する。
WEBページ情報送信部203は、送信要求に応じたWEBページ情報を、WEBページ情報格納部202から取得し、取得したWEBページ情報を送信要求の送信元に送信する。WEBページ情報送信部203は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。WEBページ情報送信部203は、通信デバイスを含むと考えても、含まないと考えても良い。
ユーザ端末3は、ユーザが利用する情報端末である。ユーザ端末3は、例えば、インターネット等のネットワークを介して通信が可能なコンピュータや、スマートフォンや、携帯電話、スレート型端末等の携帯情報端末である。
送信要求送信部300は、送信要求をWEBサーバ2に送信する。また、送信要求送信部300は、購入関連情報を要求する情報を、購入装置1に対して送信する。通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。送信要求送信部300は、通信デバイスを含むと考えても、含まないと考えても良い。
受信部301は、購入装置1から送信される購入関連情報を受信する。また、送信要求に応じてWEBサーバ2から送信されるWEBページ情報を受信する。受信部301は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。受信部301は、通信デバイスを含むと考えても、含まないと考えても良い。
出力部302は、受信部301が受信した購入関連情報を出力する。また、受信部301が受信したWEBページ情報を出力する。ここでの出力とは、ディスプレイへの表示、プリンタによる紙等への印字、外部の装置への送信等を含む概念である。出力部302は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
操作受付部303は、ユーザによる操作を受け付ける。例えば、操作受付部303は、例えば、WEBページ情報に対する操作を受け付ける。WEBページ情報に対する操作とは、例えば、WEBページ情報が示すWEBページに表示されている購入対象物や購入対象物の分類項目を示す情報を、購入情報として、購入装置1に登録(送信)させるための操作や、WEBページ情報を用いて購入対象物等についての検索を行う操作等である。
また、例えば、操作受付部303は、購入情報や、階層情報、購入条件等を購入装置1に登録(送信)させるための操作であって、これらの情報を入力する操作を受け付ける。例えば、操作受付部303は、購入対象物の識別情報、例えば製品名や、製品ジャンルの識別情報等を入力する操作を、キーボード等を介して受け付ける。また、例えば、購入対象物についての、上限価格等の購入条件を入力する操作を受け付ける。
また、操作受付部303は、例えば、購入関連情報に関する操作を受け付ける。購入関連情報に関する操作とは、例えば、購入関連情報が示すノードに対してノード指定を行う操作や、購入条件を設定する操作や、階層情報を編集するための操作や、優先順位を変更する操作や、削除設定を行う操作等である。
操作受付部303が受け付ける操作の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。操作受付部303は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
操作情報送信部304は、操作受付部303が受け付けた操作に応じた情報を送信する。例えば、操作情報送信部304は、操作受付部303が受け付けた購入対象物や購入対象物の分類項目を指定する操作に応じて、これらの購入対象物や購入対象物の分類項目を示す購入情報を送信する。また、操作受付部303が受け付けたノード指定の操作や、購入条件を設定する操作や、階層情報を編集するための操作等にそれぞれ応じて、階層情報が示すノードに対してノード指定を行う指示や、購入条件を設定する指示や、階層情報の編集を行う指示や、優先順位を変更する指示等を、購入装置1に送信する。また、操作情報送信部304は、WEBサーバ2に対して、操作受付部303が受け付けた検索を行う操作に応じて、WEBサーバ2に対して、検索キー等を含むクエリを送信する。操作情報送信部304は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。操作情報送信部304は、通信デバイスを含むと考えても、含まないと考えても良い。
なお、購入装置1も、提供情報を取得するための手段等として、送信要求送信部300や受信部301等と同様の構成を有していても良い。
次に、購入装置1の動作について図2のフローチャートを用いて説明する。
(ステップS101)購入情報受付部101は、購入情報を受け付けたか否かを判断する。ここでの受け付けは、受信でもよい。かかることは、以下の他の情報を受け付けるステップにおいても同様である。受け付けた場合、ステップS102に進み、受け付けていない場合、ステップS108に進む。
(ステップS102)購入情報受付部101は、ステップS101で受け付けた購入情報を購入情報格納部102に蓄積する。
(ステップS103)購入情報受付部101は、購入情報とともに、階層情報も受け付けたか否かを判断する。受け付けた場合、ステップS104に進み、受け付けていない場合、ステップS105に進む。
(ステップS104)購入情報受付部101は、ステップS103で受け付けた階層情報を、ステップS101で受け付けた購入情報と対応付けて階層情報格納部103に蓄積する。そして、ステップS106に進む。
(ステップS105)購入情報受付部101は、デフォルトで予め指定されている階層情報を、ステップS102で蓄積した購入情報と対応付けて階層情報格納部103に蓄積する。そして、ステップS106に進む。
(ステップS106)ノード指定受付部104は、ステップS104およびステップS105で蓄積された階層情報が示すノードのうちの、ステップS101で受付部101が受け付けた購入情報に対応するノードを指定する情報を、ノード指定として受け付け、購入指定格納部106に蓄積する。
(ステップS107)優先順位設定部110は、階層情報が示す各ノードに対して、階層構造に応じた優先順位情報を付与する。具体的には、優先順位情報を各ノードの識別情報と対応付けて蓄積する。階層構造に応じた優先順位情報とは、ノードの階層構造内の位置関係によって付与された優先順位情報である。優先順位設定部110は、例えば、階層情報格納部103に蓄積された順番が早い階層情報に含まれるノードから順番に、一の地点から、一定方向にノードの配列が広がるようノードを木構造化して配置した場合における、一の地点側のノードからノードの広がる方向に向かって順番に、優先順位が低くなるよう各ノードに優先順位情報を割り当てる。そして、ステップS101に戻る。
(ステップS108)ノード指定受付部104は、階層情報が示す1以上のノードに対して、ノード指定を受け付けたか否かを判断する。このノード指定の受け付けは、既存のノード指定の変更や削除であっても良い。受け付けた場合、ステップS109に進み、受け付けていない場合、ステップS110に進む。
(ステップS109)ノード指定受付部104は、ステップS108で受け付けたノード指定を、購入指定格納部106に蓄積する。ステップS108でノード指定の変更や削除を受け付けた場合は、ノード指定の変更や削除を行う。そして、ステップS101に戻る。
(ステップS110)購入条件受付部105は、1以上のノード指定に対して購入条件を受け付けたか否かを判断する。受け付けた場合、ステップS111に進み、受け付けていない場合、ステップS112に進む。
(ステップS111)購入条件受付部105は、ステップS110で受け付けた購入条件を、ノード指定と対応付けて、購入指定格納部106に蓄積する。そして、ステップS101に戻る。
(ステップS112)ノード指定受付部104は、1以上のノード指定に対して、削除設定情報を受け付けたか否かを判断する。受け付けた場合、ステップS113に進み、受け付けていない場合、ステップS114に進む。
(ステップS113)ノード指定受付部104は、ステップS112で受け付けた削除設定情報を、ノード指定と対応付けて、削除設定格納部120に蓄積する。そして、ステップS101に戻る。
(ステップS114)購入情報出力部126は、購入装置1の図示しない受付部等が、購入関連情報の出力指示を受け付けたか否かを判断する。受け付けた場合、ステップS115に進み、受け付けていない場合、ステップS116に進む。
(ステップS115)購入情報出力部126は、購入関連情報を取得し、出力(例えば、送信)する。例えば、購入情報を、階層情報を用いて階層化して示した情報や、階層情報を用いて取得される木構造を示す情報等を、出力指示の送信元(例えば、ユーザ端末3)等に購入関連情報として送信する。この画像は、編集指示の入力インターフェースの一部として機能する画像であっても良い。そして、ステップS101に戻る。
(ステップS116)編集指示受付部107は、階層情報に対する編集指示を受け付けたか否かを判断する。受け付けた場合、ステップS117に進み、受け付けていない場合、ステップS119に進む。
(ステップS117)階層情報変更部108は、編集指示に応じて、階層情報を変更する。階層情報変更部108は、変更した階層情報で、階層情報格納部103に格納されている階層情報を更新する。
(ステップS118)優先順位設定部110は、変更された階層情報を用いて優先順位情報を取得して、優先順位情報を更新する。
(ステップS119)購入部123は、購入の処理を行うための予め指定されたタイミングであるか否かを判断する。予め指定されたタイミングである場合、ステップS120に進み、タイミングでない場合、ステップS101に戻る。
(ステップS120)購入装置1は、購入対象物に対する購入処理を行う。この処理の詳細については、後述する。
(ステップS121)購入部123は、購入処理の結果として残った予算の残金を取得する。即ち、予算情報が示す金額から購入対象物の提供金額の合計を減算した値を取得する。
(ステップS122)予算更新部125は、ステップS121で取得した金額と、予め指定されている金額との合計を算出し、算出した値で、予算格納部121に格納されている予算情報の値を更新する。そして、ステップS101に戻る。
なお、図1のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、購入装置1が購入対象物を購入する動作について図3のフローチャートを用いて説明する。この動作は、上記のステップS120に示した動作の詳細な動作に相当する。
(ステップS201)購入部123は、ノード指定と、購入時期条件とが対応付けられたノードがあるか否かを判断する。ある場合、ステップS202に進み、ない場合、ステップS205に進む。
(ステップS202)購入部123は、図示しない時計等から現在の日時を取得する。なお、既にステップS119等で日時を取得している場合はこの処理は省略可能である。
(ステップS203)購入部123は、ステップS201で検出されたノードの中に、現在の日時が購入時期条件を満たすノードがあるか否かを判断する。例えば、現在の日時が、購入時期条件が示す時期内の日時であるか否かを判断して、時期内の日時であれば、この購入時期条件に対応するノードを検出し、時期内の日でなければ、このノードは検出しない。そして、1以上のノードが検出された場合、現在の日時が購入時期条件を満たすノードがあるとして、ステップS204に進み、ノードがない場合、ステップS205に進む。
(ステップS204)購入部123は、ステップS203で検出したノードの優先順位情報を、一時的に他のノードよりも高い優先順位を示す値に設定する。
(ステップS205)購入部123は、予算格納部121に格納されている予算情報を読み出す。
(ステップS206)購入部123は、カウンターmの値に1を代入する。
(ステップS207)購入部123は、ノード指定が示すノードであって、対応する優先順位情報が示す順位が、m番目に高いノードを検出する処理を行う。
(ステップS208)購入部123は、ステップS207において、ノードが検出されたか否かを判断する。ノードが検出された場合、ステップS209に進み、検出されなかった場合、上位の処理にリターンする。ここでは、検出されたノードをm番目のノードと呼ぶ。
(ステップS209)購入部123は、m番目のノードに対応付けられた購入条件が、拒否条件であるか否かを判断する。なお、ここでは、拒否条件は、例えば、同時に購入できない購入対象物あるいは分類項目を示す情報(例えば、購入情報や、購入情報と対応付けられたノード識別情報等)を有しているものとする。拒否条件である場合、ステップS210に進み、拒否条件でない場合、ステップS211に進む。
(ステップS210)購入部123は、m番目のノードに対応付けられた拒否条件が示す購入対象物(あるいは、拒否条件が示す分類項目に属する購入対象物)が購入済であるか否かを判断する。購入済である場合、ステップS220に進み、購入済でない場合、ステップS211に進む。
(ステップS211)購入部123は、m番目のノードに対応付けられた購入条件が、同時条件であるか否かを判断する。ここでは、同時条件は、例えば、同時に購入する必要がある購入対象物あるいは分類項目を示す情報(例えば、購入情報や、購入情報と対応付けられたノード識別情報等)を有しているものとする。同時条件である場合、ステップS213に進み、同時条件でない場合、ステップS212に進む。
(ステップS212)提供情報取得部122は、m番目のノードに対応する購入情報に対応した購入対象物であって、m番目のノードに対応した購入条件(ただし、拒否条件、同時条件は除く)を満たす購入対象物の提供情報を取得する。そして、ステップS214に進む。なお、例えば、購入条件が購入時期条件であって、現在の日時が、この購入時期条件が示す時期に含まれない場合には、提供情報取得部122は、購入条件を満たさないと判断して、提供情報を取得しないようにしても良い。
(ステップS213)購入部123は、m番目のノードに対応付けられた同時条件が示す購入対象物あるいは分類項目と対応付けられたノードであって、m番目のノードよりも優先順位が高いノードがあるか否かを判断する。ある場合、ステップS214に進み、ない場合、ステップS220に進む。
(ステップS214)購入部123は、ステップS212で取得した提供情報が示す提供金額が、予算の残金以内であるか(即ち、予算情報が示す金額の残金以内であるか)否かを判断する。ステップS212で取得した提供情報の数が、予め購入数として指定された数以上であった場合、予め指定されているルールにしたがって、あるいはランダムに、指定された数の提供情報を取得し、この提供情報について、上記の判断を行う。残金以内である場合、ステップS215に進み、以内でない場合、ステップS220に進む。なお、1以上の購入対象物の購入が行われていない場合、この残金は、ステップS205で読み出した予算情報が示す値と同じ値となる。
(ステップS215)購入部123は、提供情報が示す提供金額で、購入対象物を購入する。
(ステップS216)購入部123は、予算の残金を算出する。具体的には、予算の残金から、購入した購入対象物の提供金額を減算する。
(ステップS217)削除部124は、m番目のノードに対応する削除設定情報が示す指定量の購入対象物を購入したか否かを判断する。購入した場合、ステップS218に進み、購入していない場合、ステップS219に進む。なお、削除設定情報がm番目のノードに設定されていない場合、この判断処理は行わず、ステップS219に進む。
(ステップS218)削除部124は、m番目のノードに対応するノード指定を削除する。
(ステップS219)購入部123は、カウンターmの値を1インクリメントする。
(ステップS220)提供情報取得部122は、m番目のノードと、m番目のノードに対応する同時条件が示すノードとにそれぞれ対応する購入情報が示す購入対象物または分類項目が示す購入対象物であって、それぞれのノードに対応付けられた購入条件を満たす購入対象物の提供情報をそれぞれ取得する。そして、ステップS221に進む。
(ステップS221)購入部123は、ステップS220で各ノードについて取得した提供情報が示す提供金額の合計が、予算の残金以内であるか(即ち、予算情報が示す金額の残金以内であるか)否かを判断する。各ノードに就いて取得した提供情報の数が、予め購入数として指定された数以上であった場合、予め指定されているルールにしたがって、あるいはランダムに、指定された数の提供情報を取得し、この提供情報について、上記の判断を行う。残金以内である場合、ステップS215に進み、以内でない場合、ステップS219に進む。
なお、ここでは、提供情報取得部122が、ノードに対応付けられた購入条件を満たす提供情報を、購入情報について取得する場合を例に挙げて説明したが、提供情報取得部122が、購入条件についての判断を行わずに購入情報についての提供情報を取得して、取得した提供情報を用いて、購入部123が、購入条件を満たす購入対象物を検出して、購入するようにしても良い。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、WEBサーバ2の動作の一例について、簡単に説明する。ただし、WEBサーバ2の動作は、WEBサーバ2が提供する機能(例えば、検索エンジンとしての機能、WEBページを単に出力する機能)等によって、動作等が異なる場合がある。
送信要求受信部201が、WEBページの送信要求を受け付けると、WEBページ情報送信部203は、WEBページ情報格納部202から送信要求が示すWEBページ情報を読み出して、読み出したWEBページ情報を、送信要求の送信元となる購入装置1やユーザ端末3に送信する。なお、例えば、送信要求受信部201が、送信要求とともにクエリ(例えば購入情報等)を受信した場合、図示しない処理部等が、このクエリを用いた検索等を行い、この検索結果を含むWEBページ情報を作成し、WEBページ情報格納部202に一時記憶し、このWEBページ情報を、WEBページ情報送信部203が送信要求の送信元に送信する。また、例えば、1以上の購入対象物に対して決算を行う指示を送信要求受信部201等が受信すると、図示しない処理部等が、この購入対象物を購入するための処理を行う。そして、WEBページ情報送信部203は、購入処理の結果を示すWEBページ情報を購入装置1に送信する。なお、一のWEBサーバ2が上記の全ての処理を行う必要はない。WEBサーバ2毎に実行できる処理が予め指定されていても良い。
次に、ユーザ端末3の動作の一例について簡単に説明する。
操作受付部303が、ユーザ等による一のWEBページを出力させるための操作(例えばURLの入力)等を受け付けると、送信要求送信部300は、このWEBページの情報の送信要求を、一のWEBサーバ2等に送信する。受信部301は、この送信要求に応じてWEBサーバ2が送信したWEBページ情報を受信し、受信したWEBページ情報を出力部302が出力(例えば、表示)する。
操作受付部303が、出力部302が出力したWEBページ情報を用いて購入情報を登録する操作、例えば、ユーザが、WEBページ上に出力されている商品名やサービス名等を、購入対象物を示す購入情報として登録する操作や、商品やサービスの分類名等を、購入対象物の分類項目を示す購入情報として登録する操作を受け付けたとすると、操作情報送信部304は、操作受付部303が受け付けた操作に応じて,購入情報を購入装置1に送信する。また、操作受付部303が、更に、購入情報に対応する階層情報や、購入条件を受け付け、受け付けた階層情報や購入条件を、購入情報とともに購入装置1に送信してもよい。また、ユーザが、購入装置1に、購入関連情報の出力を要求する操作を行うと、操作受付部303がこの操作を受け付け、購入関連情報の出力を要求する情報を、購入装置1に送信する。受信部301は、この操作に応じて購入装置1が送信した購入関連情報を受信し、出力部302が受信した情報を出力(例えば、表示する)。表示される情報は、例えば、操作を行ったユーザに対応する購入情報を、当該購入情報に対応する階層情報を用いて階層化して(例えば木構造化)して示した画像情報等である。ユーザが、この購入関連情報を階層化して示した画像等を利用して、階層情報を編集する操作や、ノードを指定する操作や削除設定等を行う操作を行うと、操作受付部303は、階層情報を編集する操作や、ノードを指定する操作や、削除設定を行う操作を受け付け、この操作に応じた編集指示やノード指定や、削除設定を行う指示等を、操作情報送信部304が購入装置1に送信する。
以下、本実施の形態における情報処理システム1000の具体的な動作について説明する。情報処理システム1000の概念図は図4である。情報処理システム1000は、ここでは複数のWEBサーバ2を有しているものとする。例えば、WEBサーバ2a〜2c等は、それぞれ異なるショッピングサイトを提供するWEBサーバであるとする。また、情報処理システム1000は、ここでは複数のユーザ端末3を有しているものとする。例えば、ユーザ端末3a〜3c等は、それぞれ異なるユーザが利用するユーザ端末であるとする。
まず、ユーザ端末3aを利用するユーザAが、ユーザ端末3aに対してWEBサーバ2aのURLを入力して、WEBサーバ2aが提供するショッピングサイトの一のWEBページを表示させる操作を行ったとすると、送信要求送信部300は、WEBページの送信要求、ここでは、入力されたURLをWEBサーバ2aに送信する。
WEBサーバ2aの送信要求受信部201が、上記の送信要求を受信すると、WEBページ情報送信部203は、の送信要求が指定するWEBページ情報をWEBページ情報格納部202から読み出して、ユーザ端末3aに送信する。
ユーザ端末3aの受信部301は、WEBサーバ2aから送信されるWEBページ情報を受信し、受信したWEBページ情報が示すWEBページを、ここでは一例として、出力部302が図示しないモニタ等に表示する。
図5は、WEBページの表示例を示す図である。図5においては、各購入対象物、即ちここでは各商品の下には、各購入対象物を示す情報を登録するためのボタン50a〜50dが設けられており、このボタンには、各購入対象物を示す購入情報が対応付けられているものとする。更に、このショッピングサイトが扱う購入対象物は、分類項目によって階層化されて分類されており、ボタン50a〜50dには、この階層化された分類における、各購入対象物の位置を示す階層情報がそれぞれ対応付けられているものとする。そして、ボタン50a〜50dをマウスやタッチパネル等を操作して押すと、押されたボタン50a〜50dに対応する購入情報と階層情報とが、購入装置1に送信されるよう、予め設定されているものとする。例えば、ボタン50aには、購入対象物を示す購入情報「DTV201232」と、階層情報「商品/AV機器/テレビ/DTV201232」とが対応付けられている。階層情報は、最上位の階層から、購入対象物に至るまでに経由する分類項目の識別情報または購入対象物の識別情報を、「/」(スラッシュ)で区切ることで、購入対象物の階層を示している。ここでの分類項目の識別情報は、一例として分類項目名(カテゴリー名やジャンル名等)であり、購入対象物の識別情報は、一例として、購入対象物名(商品名や、商品コード等)である。この階層情報における分類項目の識別情報または購入対象物の識別情報が、購入対象物の階層構造におけるノードのノード識別情報とする。ノード識別情報が示す分類項目または購入対象物が、各ノードに対応する分類項目または購入対象物である。例えば、ボタン50aに対応付けられた階層情報は、最上位の第1階層(即ちルート)は、ノード識別情報が「商品」であるノードで、第2階層は、ノード識別情報が「AV機器」であるノードで、第3階層は、ノード識別情報が「テレビ」であるノードで、第4階層が、購入対象物を示す購入情報が対応付けられているノードであることを示している。つまり、この階層情報は、購入情報「DTV201232」が、ショッピングサイトが扱う商品のうちの、「AV機器」という分類の中の、「テレビ」という分類に属する商品であることを示している。なお、階層情報は、上記と同様の内容を、XML等のマークアップ言語等で示した情報であっても良い。
また、WEBページの左端には、このWEBページ内に表示されている購入対象物が属している分類の分類項目名が、階層の高いものから順に配列されており、各分類項目名の横のボタン51a〜51bには、このショッピングサイトが扱う購入対象物全体の階層構造における、各分類項目の位置を示す階層情報が対応付けられているものとする。そして、ボタン51a〜51bが押されると、押されたボタン51a〜51bに対応する購入情報と階層情報とが、購入装置1に送信されるよう予め設定されているものとする。例えば、ボタン51aには、購入情報「AV機器」と、「商品/AV機器」という階層情報が対応付けられている。この階層情報は、最上位の第1階層(即ちルート)が、ノード識別情報が「商品」であるノードで、第2階層が、このボタン51aに対応する購入情報「AV機器」がノード識別情報(分類項目名)であるノードであることを示している。また、ボタン51bに対応付けられている階層情報は、「商品/AV機器/テレビ」であり、この階層情報は、第1階層が、ノード識別情報が「商品」であるノードで、第2階層が、ノード識別情報が「AV機器」であるノードで、第3階層が、このボタン51bに対応する購入情報「テレビ」がノード識別情報(分類項目名)であるノードであることを示している。
なお、ここでは、階層情報の末端が「/」である場合、その直前のノード識別情報が示すノードが、下位の階層を持ち得るノード、即ち、分類項目が対応付けられたノードであることを示すものとする。また、階層情報の末端が「/」でない場合、末端のノード識別情報が示すノードが、購入対象物と対応付けられたノードであることを示すものとする。
ユーザAが、商品(購入対象物)についての購入情報を登録するために、例えば、ボタン51aを押したとすると、操作受付部303がこの操作を受け付け、操作情報送信部304は、購入対象物を示す購入情報「DTV201232」と、階層情報「商品/AV機器/テレビ/DTV201232」と、このユーザ端末3aのユーザAのユーザ識別情報「tyamada」とを購入装置1に送信する。
購入装置1の購入情報受付部101は、ユーザ端末3aから送信される購入情報「DTV201232」と、階層情報「商品/AV機器/テレビ/DTV201232」と、ユーザ識別情報「tyamada」とを受信し、購入情報とユーザ識別情報とを対応付けて、購入情報格納部102に蓄積する。
図6は、購入情報格納部102に格納される購入情報を管理する購入情報管理情報である。購入情報管理情報は、「購入ID」と、「ユーザID」という項目を有している。「購入ID」は、購入情報管理情報のレコード(行)を管理するために蓄積時に付与される識別情報である。「ユーザID」は、購入情報を登録した(入力した)ユーザのユーザ識別情報である。「購入情報」は購入情報である。ここでは、既に他の購入情報が登録されており、上記の購入情報を含む新たなレコードが購入情報管理情報に追記されたものとする。
また、購入情報受付部101は、階層情報を、ユーザAのユーザ識別情報「tyamada」と対応付けて、階層情報格納部103に格納する。
図7は、階層情報格納部103に格納されている階層情報を管理する階層情報管理情報である。階層情報管理情報は、ユーザ識別情報である「ユーザID」と、階層情報である「階層情報」という項目を有している。図7において、購入情報格納部102に格納されている購入情報に対応する階層情報は、「階層情報」の右端の購入情報が、購入情報格納部102に格納されている購入情報と一致する階層情報である。ここでは、既に、他の階層情報が登録されており、上記の購入情報を含む新たなレコード(行)が階層情報管理情報に追記されたものとする。ここでは、既に、階層情報の左側の「商品/AV機器/テレビ/」までの部分が一致する階層情報が存在していたとすると、その次のレコード(図7においては、上から二行目のレコードの直下のレコード)として、上記の新たなレコードを登録する。
ここで、例えば、購入情報受付部101が受け付けた購入情報が、階層情報と対応付けられていなかった場合、購入情報は、上記と同様に購入情報格納部102に蓄積されるとともに、階層情報が対応付けられていない購入情報のための予め指定された階層情報(例えば、「商品/階層指定なし/"購入情報"」等が、この購入情報の階層情報として階層情報管理情報に格納される。ここでの「"購入情報"」の部分には、購入情報受付部101が受け付けた購入情報が配置されるものとする。例えば、上記の図6においては、「購入ID」が「103113」である「リップクリーム」と、「購入ID」が「103113」である「日焼け止め」という購入情報が、階層情報と対応付けられていなかった購入情報であり、これらの購入情報に対応する階層情報は、図7に示すように、それぞれ「商品/階層指定なし/リップクリーム」および「商品/階層指定なし/日焼け止め」となっている。
また、購入情報が購入情報格納部102に格納される際には、ここでは、格納される購入情報が対応付けられているノードのノード識別情報をノード指定として階層情報や購入情報等から読み出し、購入指定格納部106に蓄積する。ここではノード指定は、ノード識別情報、即ち分類項目の識別情報または購入対象物の識別情報であるとする。
図8は、購入指定格納部106に格納されているノード指定と、ノード指定に対応付けられた購入条件とを管理する購入指定管理情報である。購入指定管理情報は、「ユーザID」と、「ノード指定」と、「購入条件」という項目を有している。「購入条件」は更に「一般条件」、「拒否条件」、「同時条件」、「購入時期条件」という項目を有している。「ユーザID」は、ユーザ識別情報である。「ノード指定」は、ノード指定であり、ここでは、ノード指定に対応するノードの識別情報(分類項目または購入対象物のいずれかの識別情報)を示している。「購入条件」は購入条件である。「一般条件」は、購入条件のうちの、拒否条件と同時条件と購入時期条件を除いた条件である。「拒否条件」は拒否条件、「同時条件」は同時条件である。「購入時期条件」は購入時期条件である。なお、ここでは、「一般条件」は、自然言語で表しているが、「一般条件」は、例えば、これらの自然言語に相当する一以上の関数や、メソッド名や、「if」、「then」等で示される制御構文等で構成されていてもよい。また、「一般条件」は、これらの自然言語に対応する判断処理等を行うためのアルゴリズムであっても良い。
優先順位設定部110は、購入情報格納部102に新たに購入情報が蓄積されたため、階層情報格納部103に格納されているユーザ識別情報「tyamada」と対応付けられている1以上の階層情報が示す各ノードに対して、優先順位情報を設定する。
優先順位設定部110は、まず、ユーザ識別情報「tyamada」と対応付けられている階層情報を図7に示した階層情報管理情報から読み出し、読み出した階層情報を用いて、予め指定されたアルゴリズム等を用いて木構造を取得する。例えば、図7に示した階層情報管理情報のユーザ識別情報「tyamada」と対応付けられたレコードのうちの最も上方にあるレコードに含まれる階層情報を読み出し、読み出した階層情報に含まれるノード識別情報を左側のものが上位の階層となるように連結して木構造化する。次に、ユーザ識別情報「tyamada」と対応付けられたレコードのうちの上から二番目のレコードに含まれる階層情報を読み出し、読み出した階層情報に含まれるノード識別情報のうちの左側のものから順番に、既に木構造化されているノード識別情報と一致するものがあるか否かを判断していく。一致しないノード識別情報が最初に検出された時点で、検出されたノード識別情報以降のノード識別情報を、既に木構造化されているノード識別情報のうちの、上記で検出されたノード識別情報の直前のノード識別情報と一致するノード識別情報に、左側のものが上位の階層となるように連結していく。この時、直前のノード識別情報に、既に連結されているノード識別情報が存在する場合、そのノード識別情報に対して、予め指定された側に、上記の一致しないノード識別情報以降のノード識別情報を従属させていく。同様の処理を、二番目以降のレコードについても繰り返すことで、木構造を取得することができる。なお、ここでは、ノード識別情報が「階層指定なし」であるノードとこれに従属するノードについては、他のノードよりも常に下方に配置するものとする。なお、木構造は上記以外の処理により取得しても良い。
図9は、優先順位設定部110が取得した木構造の情報を示す図である。各ノードは、ノード識別情報を配置している。ここでは、購入対象物に対応付けられたノードについては、楕円で示し、他のノードは、矩形で示している。購入対象物に対応するノードであるか否かは、上述したように、階層情報の右端が「/」であるか否かにより判断可能である。また、ここでは、一例として、優先順位設定部110は、図8に示したノード指定により指定されているノードに対して、ノード指定がされていることを示すマークである指定マーク80を配置した木構造の情報を取得する。また、同様に、購入条件が設定されているノードに対しても、購入条件が設定されていることを示すマークである条件マーク81を配置する。なお、この木構造の情報は、例えば、木構造を表示可能な画像情報や、木構造を表示可能なWEBページの情報等として作成され、図示しない記憶媒体等に蓄積される。また、ここでは、この木構造の情報の、各ノード等を示す図形等には、各ノード等に対する購入条件を入力するためのボタン等や、階層構造を変更するための指示を受け付けるためのインターフェースが設けられるものとする。
次に、優先順位設定部110は、上記で取得した木構造を走査して、各ノードに優先順位情報を付与する。ここでは、図9に示した木構造においては、木構造の一方の側(ここでは例として上方側)に位置するノードほど、優先順位が高く、さらに、上位の階層のノードほど(ここでは例として左側に位置するノードほど)、優先順位が高くなるような優先順位情報を付与する。具体的には、いわゆる前順走査を行って、検出されたノードに対して、検出された順番に、値が1ずつ増加する連番の優先順位情報を付与する。この優先順位情報は、優先順位が高いほど値が高くなる優先順位情報である。例えば、「商品」には「1」が、「テレビ」には「2」が、「ITV201232」には「3」が、「文具」には、6」が付与される。そして、優先順位設定部110は、各ノードのノード識別情報と、各ノードに設定した優先順位情報とを対応付けて、優先順位情報格納部109に蓄積する。なお、優先順位情報は、ノード指定と対応付けられているノードにのみ付与するようにしても良い。ここでは、この木構造を示す情報を、購入関連情報として図示しない記憶媒体等に一時記憶させる。
図10は、優先順位情報格納部109に格納された優先順位情報を管理するための優先順位管理情報を示す図である。優先順位管理情報は、「ユーザID」、「ノードID」と、「優先順位」という項目を有している。「ユーザID」は、図6等と同様のユーザ識別情報、「ノードID」はノード識別情報である。「優先順位」は優先順位情報である。このようにして、木構造内の位置関係に応じて、優先順位が設定される。具体的には、図9の木構造において上側のノードほど優先順位が高くなるよう、優先順位情報が設定される。なお、左側から横方向に向かってノードが広がる木構造の場合は、このように優先順位を設定することが好ましいが、上側から下方向に向かってノードが広がる木構造の場合は、例えば、横方向が、右側(あるいは左側)に近いほど優先順位が高くなるよう、優先順位情報が設定されるようにすることが好ましい。このようにすることで、木構造から、購入が行われる優先順位を直感的に把握することができる。
ここで、ユーザAが、購入装置1に蓄積された購入情報等を管理するために、購入情報を出力させる指示を、ユーザ端末3aを介して、購入装置1に対して送信したとする。購入装置1の図示しない受信部等がこの指示を受信すると、購入情報出力部126は、上記で優先順位設定部110が取得して記憶媒体等に蓄積した購入関連情報である木構造の情報を取得して、ユーザ端末3aに送信する。
ユーザ端末3aの受信部301が、購入関連情報を受信すると、出力部302は、この情報を用いて、図示しないモニタ等に木構造を表示する。
ユーザ端末3aのモニタには、図9と同様の木構造が表示さえる。
ここで、ユーザAが、ユーザ端末3aのモニタに表示された木構造の図において、「テレビ」というノード識別情報が表示されているノード91を、マウス等を操作して押したとすると、このノード91の近傍にメニューが表示される。
図11は、ノード91近傍に表示されたメニュー10を示す図である。
そして、ユーザAがメニュー10のうちの、「ノード指定」という項目をマウス等で選択する操作を行ったとすると、操作情報送信部304は、「テレビ」というノード識別情報が示すノードに対するノード指定を、購入装置1に送信する。
購入装置1のノード指定受付部104は、このユーザ端末3aから送信された「テレビ」というノード識別情報に対応するノードに対するノード指定を受け付け、この「テレビ」というノード識別情報を有するノード指定を含むレコードを購入指定管理情報に追記する。また、ノード指定受付部104は、階層情報を参照して、このノード指定が指定するノードよりも下位の階層のノードに対するノード指定を削除する。ここでは、購入指定管理情報から、「ノード指定」が「ITV201232」、「PTV20140」、および「DTV201232」であるがレコードが削除される。
図12は、ノード指定受付部104により変更された購入指定管理情報を示す図である。
また、変更された購入指定管理情報に応じて、優先順位設定部110は、図10に示した木構造について、ノード指定がされていることを示す指定マーク80の配置を変更した購入関連情報を取得する。具体的には、「ITV201232」、「PTV20140」、および「DTV201232」というノードに表示されていた指定マーク80が削除され、代わりに、「テレビ」というノードに指定マーク80が配置された木構造の情報を示す購入関連情報を取得する。そして、購入情報出力部126は、変更した木構造の情報をユーザ端末3に送信する。これにより、ユーザ端末3における木構造の表示が更新される。
次に、ユーザが、ユーザ端末3aに表示されている木構造の情報において、「ボールペン」というノード識別情報が表示されているノードを押し、その近傍に表示される図11と同様のメニュー10から、「一般条件設定」という項目を選択し、購入条件を入力したとする。ただし、入力できる購入条件は、拒否条件と、同時条件と、購入時期条件とを除いたものとする。ここでは、「優先度設定なし AND 500円以内 AND 黒色ペン OR 赤色ペン OR 黄色ペン」という購入条件を入力したとする。入力された購入条件は、予め指定されている条件の書式等に沿ったものであるとする。この購入条件は、提供金額が、500円以内で、かつ、色が、黒色、赤色、または黄色のいずれかであるもののうちの一つを、優先度を付けずにランダムに取得することを指定する条件であるとする。操作情報送信部304は、この購入条件とノード識別情報「ボールペン」とを購入装置1に送信する。購入条件受付部105は、この購入条件を受信し、図12に示した購入指定管理情報の「ノードID」が「ボールペン」であるレコードの「一般条件」の値として、受信した購入条件を格納する。また、購入条件が変更されたため、優先順位設定部110は、直前に出力された木構造の情報に対して、ノード識別情報が「ボールペン」であるノードに、条件マーク81を配置した木構造の情報を購入関連情報として取得し、ユーザ端末3に送信する。これにより、ユーザ端末3における木構造の表示が更新される。
また、ユーザが、「万年筆」というノード識別情報が表示されているノードを押し、図11と同様のメニュー10から、「拒否条件設定」という項目を選択し、購入条件のうちの拒否条件を入力したとする。具体的には、この項目を選択すると、この木構造に示されているノードのうちの、ノード指定されているノードのノード識別情報のリストが表示される。このリストから、同時に購入したくない1以上のノード識別情報を選択する。例えば、ここでは、「ボールペン」を選択したとする。操作情報送信部304は、「万年筆」というノード識別情報と、「ボールペン」というノード識別情報との組を対象とした拒否条件を購入装置1に送信する。購入条件受付部105は、この拒否条件を受信し、図12と同様の購入指定管理情報の「ノードID」が「万年筆」であるレコードの「拒否条件」の値として、「万年筆」および「ボールペン」のうちの、同じレコードの「ノードID」の値である「万年筆」を除いた値である「ボールペン」を蓄積する。また、図12に示した購入指定管理情報の「ノードID」が「ボールペン」であるレコードの「拒否条件」の値として、「万年筆」および「ボールペン」のうちの、同じレコードの「ノードID」の値である「ボールペン」を除いた値である「ボールペン」を蓄積する。また、購入条件が変更されたため、優先順位設定部110は、直前に出力された木構造の情報に対して、ノード識別情報が「万年筆」であるノードと「ボールペン」であるノードとに、条件マーク81を配置した木構造の情報を取得し、ユーザ端末3に送信する。これにより、ユーザ端末3における木構造の表示が更新される。
また、ユーザが、「テレビ」というノード識別情報が表示されているノードを押し、図11と同様のメニュー10から、「同時条件設定」という項目を選択し、購入条件のうちの同時条件を入力したとする。具体的には、この項目を選択すると、この木構造に示されているノードのうちの、ノード指定されているノードのノード識別情報のリストが表示される。このリストから、同時に購入したい1以上のノード識別情報を選択する。例えば、ここでは、「テレビ台」を選択したとする。操作情報送信部304は、「テレビ」というノード識別情報と、「テレビ台」というノード識別情報との組を対象とした同時条件を購入装置1に送信する。購入条件受付部105は、この同時条件を受信し、図12と同様の購入指定管理情報の「ノードID」が「テレビ」であるレコードの「同時条件」の値として、「テレビ」および「テレビ台」のうちの、同じレコードの「ノードID」の値である「テレビ」を除いた値である「テレビ台」を蓄積する。また、図12に示した購入指定管理情報の「ノードID」が「テレビ台」であるレコードの「拒否条件」の値として、「テレビ」および「テレビ台」のうちの、同じレコードの「ノードID」の値である「テレビ台」を除いた値である「テレビ」を蓄積する。また、購入条件が変更されたため、上記の拒否条件の場合と同様に、ユーザ端末3における木構造の表示が更新される。
次に、ユーザが「オモチャ」というノード識別情報が表示されているノードを押し、図11と同様のメニュー10から、「時期設定」という項目を選択したとすると、購入時期を選択するリスト(図示せず)が表示される。そして、そのリストから、「ボーナス時期」という時期を選択したとする。この「ボーナス時期」とは、例えば、現在の日付が、7月または12月のいずれかである、という条件と対応付けられているものとする。操作情報送信部304は、「オモチャ」というノード識別情報と、「ボーナス時期」という購入時期条件とを、購入装置1に送信する。ノード指定受付部104は、この購入時期条件等を受信し、図12と同様の購入指定管理情報の「ノードID」が「オモチャ」であるレコードの「購入時期条件」の値として、「ボーナス時期」を蓄積する。また、購入条件が変更されたため、上記の拒否条件等の場合と同様に、ユーザ端末3における木構造の表示が更新される。つまり、ノード識別情報が「オモチャ」のノードに条件マーク81が表示される。
図13は、上記のようにしてノード指定や、購入条件等が変更された購入指定管理情報を示す図である。
また、ユーザが、「テレビ」というノード識別情報が表示されているノードを押し、図11と同様のメニュー10から、「削除設定」という項目を選択したとする。操作情報送信部304は、「テレビ」というノード識別情報と、削除設定を行う指示とを、購入装置1に送信する。ノード指定受付部104は、この削除設定を行う指示等を受信し、ノード識別情報が「テレビ」であるノード指定に対する削除設定情報を削除設定格納部120に蓄積する。ここでは、ノード指定が示すノード識別情報「テレビ」を、削除設定格納部120に蓄積する。ここでの削除設定情報は、一のノード指定に関して一の購入対象物が購入された時点でこのノード指定を削除する設定を示す情報であるとする。削除設定情報が設定されたため、優先順位設定部110は、直前に出力された木構造の情報に対して、ノード識別情報が「テレビ」であるノード指定が示すノードに、削除設定情報が対応付けられたことを示すマークである削除マークを配置した木構造を示す購入関連情報を取得し、ユーザ端末3に送信する。これにより、ユーザ端末3における木構造の表示が更新される。
同様にして、ノード識別情報が「万年筆」および「テレビ台」であるノードを指定するノード指定に対しても削除設定情報が設定されたとする。
図14は、上記のようにして、削除設定格納部120に蓄積された削除設定情報を管理する削除設定管理情報を示す図である。削除設定管理情報は、「ユーザID」と「ノード指定」とを有する。「ユーザID」は、ユーザ識別情報である。「ノード指定」は、削除設定情報が設定されたノード指定であり、ここでは、ノード指定が指定するノード識別情報を示している。
また、ユーザが、出力部302が出力する購入関連情報が示す木構造の画像において、ノード識別情報が「商品」というノードを選択した状態で、図示しないメニュー10等から、新規のノードを作成するメニュー10項目を選択すると、ノード識別情報を入力するフィールド(図示せず)が表示されたとする。そして、このフィールドに「美容品」というノード識別情報を入力したとすると、ユーザ端末3aの木構造内の「商品」というノードに直属のノードとして、ノード識別情報が「美容品」というノードが生成されたとする。このノードは、ノード識別情報が「階層指定なし」というノードと、「オモチャ」というノードとの間に配置されたとする。そして、ユーザが、マウス等を操作して、このノードをマウス等でドラッグして、ノード識別情報が「テレビ」であるノードと、「文具」というノードとの下方に移動させると、この位置に、「美容品」というノードが移動する。
更に、この移動後の「美容品」というノード上に、「階層指定なし」というノードに従属していた「リップクリーム」というノードと、「日焼け止め」というノードとを順次重ねると、これらが、「階層指定なし」というノードに従属するノードから、「美容品」というノードに従属するノードに変更される。なお、移動させたノードに、従属しているノードが存在していた場合、これらも従属元のノードと共に移動するようにして良い。なお、木構造のノード等をマウスの操作等で移動させる処理等は、公知の技術であるので、ここでは詳細な説明は省略する。
そして、ユーザが、図示しないノードの編集を確定するボタンを押すと、階層情報の変更内容を示す情報が、階層情報の編集を指示する情報として、操作情報送信部304から購入装置1に送信される。例えば、変更の対象となった階層情報と、変更後に得られた階層情報とが、操作情報送信部304から購入装置1に送信される。ここでは、「商品/階層指定なし/リップクリーム/」という階層情報と、「商品/階層指定なし/日焼け止め/」という階層情報と、という階層情報が変更対象の階層情報として送信される。また、「商品/美容品/リップクリーム/」という階層情報と、「商品/美容品/日焼け止め/」という階層情報と、「商品/階層指定なし/」という階層情報が変更後に得られた階層情報として送信される。また、ここでは、一例として、変更後に得られた階層情報については、これらの階層情報が他の階層情報のどのレコードの直後に挿入されるかを示す情報が、購入関連情報等から取得され、操作情報送信部304から送信される。例えば、「商品/美容品/リップクリーム/」という階層情報と、「商品/美容品/日焼け止め/」という階層情報については、「商品/AV機器/テレビ/DTV201232」の直後のレコードとして挿入されることを示す情報が対応付けて送信され、「商品/階層指定なし/」という階層情報については、「商品/オモチャ/ゲーム機/」という階層情報の直後のレコードとして挿入されることを示す情報が対応付けて送信される。
なお、変更を示す情報は、変更内容が判断可能な情報であればよく、例えば、変更後の木構造を示す全ての階層情報を、変更を示す情報として送信しても良い。
編集指示受付部107が、ユーザ端末3aから送信される編集指示を受け付けると、階層情報変更部108は、この編集指示に応じて、階層情報を編集する。ここでは、変更対象となった階層情報と、変更後に得られた階層情報とを編集指示として受信しており、階層情報変更部108は、変更対象となった階層情報に一致する階層情報を、図7に示した階層情報管理情報から検索して削除する。また、階層情報変更部108は、変更後に得られた階層情報を階層情報管理情報に追記する。
図15は、編集指示に応じて編集された階層情報管理情報を示す図である。
また、階層情報が変更されたため、上記の拒否条件の場合と同様に、変更された購入関連情報がユーザ端末3aに送信され、ユーザ端末3aにおける木構造の表示が更新される。
図16は、上記の編集指示等に応じて編集された購入関連情報を用いて表示した木構造を示す図である。マーク82は、削除設定情報が対応付けられたノードであることを示す削除マークである。
また、優先順位設定部110は、この編集された階層情報管理情報について、再度、上記と同様に優先順位情報を設定し、設定した優先順位情報で、優先順位情報格納部109に格納されている優先順位情報を更新(例えば、上書き)する。
図17は、優先順位情報格納部109に格納されている更新された優先順位情報を管理する優先順位管理情報を示す図である。
ここで、購入部123が、図示しない時計等から、現在の日時を取得し、取得した日時が、購入の処理を行うための予め指定された日時になったか否かを判断し、予め指定された日時になったと判断されたとする。例えば、予め指定された日時が、毎月25日であったとし、時計等から取得した日時が「6月25日」であったとする。
購入部123は、ノード指定と、購入時期条件とに対応付けられたノードが、階層情報の中にあるか否かを判断する。具体的には、購入部123は、階層指定格納部106に格納されているノード指定の中に、購入時期条件と対応付けられたノード指定があるか否かを判断する。ここでは、図13に示した購入指定管理情報において、購入時期条件を有するレコードがあるか否かを判断する。ここでは、「ノード指定」が「オモチャ」であるレコードが、購入時期条件を有するレコードとして検出される。
このため、購入部123は、上記で取得した現在の日時である「6月25日」が、検出したレコードの購入時期条件である「ボーナス時期」を満たすか否かを判断する。「ボーナス時期」という購入時期条件は、上述したように現在の日時が「7月」または「12月」のいずれか一方であることを指定する条件と対応付けられており、購入部123は、この「7月」または「12月」のいずれかであるという条件を読み出し、現在が「7月」または「12月」のいずれかであるか否かを判断する。ここでは、いずれでもないため、この購入時期条件と対応付けられたノード指定が示すノードである「オモチャ」についての優先順位の変更は行わない。
購入部123は、予算格納部121に格納されている予算情報を読み出す。ここでは、読み出した予算情報は、金額「10000円」を示す予算情報であったとする。この予算情報の示す金額は、例えば、ユーザAが予め指定した金額であるとする。
購入部123は、まず、ノード指定が示すノードであって、対応する優先順位情報が示す順位が、1番目に高いノードを検出する。具体的には、購入部123は、図10に示した優先順位管理情報から、「ノードID」を、対応する「優先順位」の値が、優先順位が高いことを示すものから順番に読み出し、図13に示した購入指定管理情報の「ノード指定」の中に、一致するものがあるか否かを判断する。一致するものがある場合、この「ノードID」が示すノードが、優先順位情報が示す優先順位が一番高いノードとなる。ここでは、「ノードID」が「テレビ」であるノードが検出されたとする。
次に、購入部123は、図13に示した購入指定管理情報の、「ノードID」が「テレビ」であるノードに対応付けられた購入条件が、「拒否条件」であるか否かを判断する。ここでは、「拒否条件」の値がないため、「拒否条件」でないと判断する。
次に、購入部123は、図13に示した購入指定管理情報の、「ノードID」が「テレビ」であるノードに対応付けられた購入条件が、「同時条件」であるか否かを判断する。ここでは、「同時条件」の値が「テレビ台」であるため、同時条件があると判断する。
次に、購入部123は、「ノードID」が「テレビ」であるノードと、「ノードID」が「テレビ台」であるノードとに対応付けられた拒否条件や同時条件、購入時期条件以外の購入条件をそれぞれ取得する。ここでは、いずれのノードにも同時条件以外の購入条件がないため、購入条件は取得しない。
提供情報取得部122は、まず、「ノードID」が「テレビ」であるノードについて、このノードに対応付けられた購入情報が示す購入対象物または分類項目が示す購入対象物であって、それぞれのノードに対応付けられた購入条件を満たす購入対象物の提供情報をそれぞれ取得する。ここでは、図13に示した購入指定管理情報において、「ノード指定」が「テレビ」であるノードに、購入条件のうちの「一般条件」がないため、提供情報取得部122は、「ノードID」が「テレビ」であるノードに対応付けられた購入情報が示す購入対象物または分類項目が示す購入対象物についての提供情報を取得する。
まず、提供情報取得部122は、図15に示す階層情報管理情報において、「ノードID」が「テレビ」であるノードを含む階層情報管理情報を検索し、検出した階層情報において、「ノードID」が「テレビ」であるノードに従属するノードの「ノードID」を取得する。ここでは、「ノードID」が「テレビ」であるノードを含む階層情報管理情報のレコードが3つ検出され、各レコードから、「ITV201232」、「PTV20140」、「DTV201232」という3つの「ノードID」を取得する。
次に、提供情報取得部122は、これらの「ノードID」が示すノードに更に従属するノードがあるか否かを判断する。ここでは、これらに対応する階層情報から、従属するノードがないという判断結果を取得する。
次に、提供情報取得部122は、ここで取得した「ノードID」である購入情報が、購入対象物であるか分類項目であるかを判断する。ここでは、上記の「ノードID」を取得した階層情報の末尾が「/」でないため、購入対象物であると判断する。このため、提供情報取得部122は、上記の3つの「ノードID」をそれぞれ検索キーとして用いて、これらと一致する識別情報を有する購入対象物についての購入金額を、予め指定された1以上の検索サイト、ショッピングサイト、またはインターネット上の複数のショッピングサイトによる購入対象物についての提供金額を収集して階層化して分類管理し、この提供金額等を検索して提供するサイト(以下、金額提供サイトと称す)等を用いて、検索により順次取得する。例えば、まず、提供情報取得部122は、「ITV201232」を、購入対象物を示す検索キーとして、図示しない通信手段等を介して、予め指定された金額提供サイトを提供するWEBサーバ2bに送信する。そして、提供情報取得部122は、このWEBサーバ2bが検索結果として送信した「ITV201232」について1以上の提供金額と、このWEBサーバ2bのアドレス情報(例えばURL等)とを有する提供情報を取得する。
なお、各購入対象物について複数の提供金額が取得された場合、提供情報取得部122は、複数の提供金額を取得しても良いし、複数の提供金額の中から選出した一の提供金額を取得しても良い。なお、一の提供金額はどのように選出しても良い。例えば、ランダムに選出しても良いし、提供金額が最も安いものを選出しても良い。また、予め登録されている提供者が提示する提供金額を優先的に選出しても良い。提供情報取得部122は、ここでは、取得した提供情報のうちの最も安い提供金額を有する提供情報を取得する。例えば、最も安い提供金額が「29000円」であったとする。提供情報取得部122は、この提供金額を有する提供情報を、購入情報「ITV201232」と対応付けて、図示しないメモリ等の記憶媒体に一時記憶する。同様に、「PTV20140」、および「DTV201232」についても提供金額を有する提供情報取得し、一時記憶する。「PTV20140」について取得した提供金額は「27000円」、「DTV201232」について取得した提供金額は「34000円」であったとする。
購入部123は、「ノードID」が「テレビ」であるノードについて、上記の3つの購入対象物についての提供情報が取得されたため、これらの購入対象物のうちの一の購入対象物を選択する。一の購入対象物はどのように選択してもよく、例えば、提供金額が最も安いものを選択しても良いし、ランダムに選択しても良い。ここでは、提供金額が最も安いものを取得するものとすると、購入部123は、購入対象物の識別情報である「PTV20140」と、その提供金額である「27000円」を含む提供情報との組を取得する。なお、かかる処理は、以下の、ノード指定に対応するノードまたはノードに従属するノードが購入対象物である場合の処理においても同様である。
同様に、提供情報取得部122は、「ノードID」が「テレビ台」であるノードを含む階層情報管理情報を検索し、検出した階層情報において、「ノードID」が「テレビ台」であるノードに従属するノードの「ノードID」を取得する。ここでは、従属するノードがないため、提供情報取得部122は、この「テレビ台」が、購入対象物を示す購入情報であるか、分類項目を示す購入情報であるか否かを判断する。ここでは、階層情報の末尾が「/」であるため、分類項目であると判断する。このため、提供情報取得部122は、WEBサーバ2bが提供する予め指定された金額提供サイト(図示せず)に対して、分類項目「テレビ台」を、図示しない通信手段等を介して、分類項目を指定する検索キーとして送信する。
WEBサーバ2bは、金額提供サイト(図示せず)が有している「テレビ台」という分類項目に属する購入対象物の識別情報と、その提供金額と、この購入対象物をこの提供金額で提供(即ち販売)するショッピングサイト等のアドレス情報(例えばURL等)とを有する提供情報との1以上の組を、購入装置1に送信する。なお、一の購入対象物について提供金額が複数存在する場合、そのうちの一つ、あるいは予め指定された数を取得するようにしても良い。また、購入対象物の識別情報と提供情報との組が複数存在する場合、この複数の組のうちの一部のみを選出して、購入装置1に送信するようにしても良い。この選出の処理は、上記の購入部123が複数の購入対象物と提供情報との組から一の購入対象物と提供情報との組を選出する処理等と同様の処理が利用可能である。
提供情報取得部122は、「テレビ台」という分類項目に属する購入対象物の識別情報と、その提供金額と、この購入対象物をこの提供金額で提供(即ち販売)するショッピングサイト等のアドレス情報(例えばURL等)とを有する提供情報との1以上の組をWEBサーバ2bから取得する。なお、一の購入対象物について提供金額が複数存在する場合、提供情報取得部122は、そのうちの一つ、あるいは予め指定された数を取得するようにしても良い。また、購入対象物の識別情報と提供情報との組が複数存在する場合、提供情報取得部122は、この複数の組のうちの一部のみを選出して、購入装置1に送信するようにしても良い。この選出の処理は、上記の購入部123が複数の購入対象物と提供情報との組から一の購入対象物と提供情報との組を選出する処理等と同様の処理が利用可能である。
ここで提供情報取得部122が取得した購入対象物の識別情報と、その提供情報との組は、「テレビスタンド28型ロータイプ」という購入対象物の識別情報と、提供金額「3000円」を有する提供情報との第一の組と、「テレビキャビネットA30TL」という購入対象物の識別情報と、提供金額「6000円」を有する提供情報との第二の組であったとする。
購入部123は、「ノードID」が「テレビ台」であるノードについて、上記の2つの購入対象物についての提供情報が取得されたため、これらの購入対象物のうちの一の購入対象物を選択する。ここでは、上記と同様に提供金額が最も安いものを取得するものとすると、購入部123は、購入対象物の識別情報である「テレビスタンド28型ロータイプ」と、その提供金額である「3000円」を含む提供情報との組を取得する。なお、上記の処理は、以下の、ノード指定に対応するノードまたはノードに従属するノードが分類項目である場合の処理においても同様である。
なお、提供情報取得部122が、WEBサーバ2a等が送信する検索結果から、購入条件を満たすものを選択する代わりに、購入条件も検索条件としてWEBサーバ2aに送信し、WEBサーバ2aに、購入条件を満たす購入対象物を検索させるようにしてもよい。
次に、購入部123は、この提供金額が「27000円」である購入対象物「PTV20140」と、同時条件により同時に購入することが指定されている提供金額が「3000円」である購入対象物「テレビスタンド28型ロータイプ」を、それぞれ予め指定された指定量だけ購入した場合の合計金額が、予算情報の残金以内であるか否かを判断する。ここでは、購入対象物の購入、あるいは購入の決定が、まだ行われていないため、予算情報の残金は、予算格納部121から読み出した予算情報が示す金額である「10000円」となる。また、予め指定された指定量は「1」であるとする。このため、購入部123は、提供金額「27000円」と提供金額「3000円」との合計が、予算情報の残金である「10000円」以内であるか否かを判断する。ここでは残金以内でないと判断されるため、購入部123は、このノード指定に対する購入対象物を購入しない。
次に、購入部123は、ノード指定が示すノードであって、対応する優先順位情報が示す順位が、2番目に高いノードを検出する。具体的には、購入部123は、図10に示した優先順位管理情報から、対応する「優先順位」の値が、上記の「2」よりも大きいことを示す「ノードID」を順番に読み出し、図13に示した購入指定管理情報の「ノード指定」の中に、一致するものがあるか否かを判断する。一致するものがある場合、この「ノードID」が示すノードが、優先順位情報が示す優先順位が2番目に高いノードとなる。ここでは、「ノードID」が「リップクリーム」であるノードが検出されたとする。
次に、購入部123は、この「ノードID」が「リップクリーム」であるノードに対して「拒否条件」や「同時条件」が対応付けられているか否かを、上記と同様に、図13の購入指定管理情報から判断する。ここでは、いずれも対応付けられていないと判断される。
また、提供情報取得部122は、この「ノードID」が「リップクリーム」であるノードに対する「一般条件」があるか否かを判断する。ここでは、図13に示した購入指定管理情報において、「ノード指定」が「リップクリーム」であるノードに、購入条件のうちの「一般条件」がない。このため、提供情報取得部122は、「ノードID」が「リップクリーム」であるノードに対応付けられた購入情報が示す購入対象物または分類項目が示す購入対象物についての提供情報を取得する。
ここでは、提供情報取得部122は、上記の分類項目を示す識別情報である「テレビ台」について、購入対象物の識別情報と、提供情報とを取得する場合と同様の処理により、「リップクリーム」についての、購入対象物の識別情報と、提供金額と、この購入対象物をこの提供金額で提供(即ち販売)するショッピングサイト等のアドレス情報(例えばURL等)とを有する提供情報との1以上の組を取得する。ここでは複数の組が取得されたとする。
そして、購入部123が、提供情報取得部122が取得した購入対象物の識別情報と、提供情報との複数の組から、上記と同様に、最も安価な提供金額を有する提供情報と、購入対象物の識別情報との組を取得する。取得した組は、「メディカルリップクリームUV01」という購入対象物の識別情報と、提供金額が「300円」である提供情報を有していたとする。
購入部123は、上記の識別情報が「メディカルリップクリームUV01」である購入対象物を指定量、ここでは1個だけ購入する場合の金額が、予算の残高、ここでは「10000円」以内であるか否かを判断する。ここでは、予算の残高は「10000円」であるので、予算の残高以内になると判断される。このため、購入部123は、この提供情報が示すアドレス情報が示すショッピングサイトから、識別情報が「メディカルリップクリームUV01」である購入対象物を、1個だけ購入する処理を行う。例えば、このショッピングサイトが、WEBサーバ2cが提供するWEBサイトであったとし、ユーザAがこのショッピングサイトにおいて、購入対象物を購入する際に利用可能な必要なユーザアカウントや、住所や、クレジットカード番号等の情報が登録されており、購入装置1が、このユーザアカウントの情報を図示しない記憶媒体等に格納されていたとすると、購入部123は、このユーザアカウントの情報をWEBサーバ2cに上記の購入対象物を購入する指示とともに送信することで、購入対象物を購入する処理を行う。
そして、購入部123は、上記の予算情報である「10000円」から、「メディカルリップクリームUV01」の購入金額「300円」を減算して、予算の残金「9700円」を取得する。
削除部124は、「リップクリーム」というノードを指定するノード指定に対して、削除設定情報が設定されているか否かを判断する。ここでは、図14に示した削除設定情報に、「ノード指定」に「リップクリーム」と一致するものがないため、この「リップクリーム」というノードを指定するノード指定に対して、削除設定情報が設定されていないと判断する。このため、このノード指定に対する削除を行うか否かの判断処理は行わない。
次に、購入部123は、上記と同様に、優先順位情報が3番目に高いノードとして、「ノードID」が、「日焼け止め」というノードを検出し、上記と同様の処理を行って、この「日焼け止め」というノードについて、購入対象物の購入を行う。例えば、識別情報が「日焼けプロテクトSPF40」である購入対象物を購入する処理を行い、その購入金額「1000円」を予算の残高である「9700円」から減算して、「8700円」という残金を取得したとする。
次に、購入部123は、上記と同様に、優先順位情報が示す優先順位が4番目に高いノードとして、「ノードID」が、「万年筆」というノードを検出する。
次に、購入部123は、この「ノードID」が「万年筆」であるノードに対して拒否条件が対応付けられているか否かを、図13の購入指定管理情報から判断する。ここでは、図13の購入指定管理情報において、「ノードID」が「万年筆」であるレコードの「拒否条件」が「ボールペン」であるため、拒否条件が対応付けられていると判断する。購入部123は、この「拒否条件」が示す購入対象物、即ち識別情報が「ボールペン」である分類項目に対応する購入対象物が、既に購入済であるか否かを判断する。例えば、優先順位情報が示す順位が、購入済の購入対象物に対応する「ノードID」の値を、図示しない記憶媒体に蓄積しておくようにして、この「ノードID」の中に、「万年筆」と一致するものがあるか否かを判断する。例えば、上記で購入した購入対象物に対応する「ノードID」の値は、「リップクリーム」と、「日焼け止め」であり、「ボールペン」とは一致しないため、購入部123は、拒否条件を満たす購入対象物は購入していないと判断する。
次に、提供情報取得部122は、この「ノードID」が「万年筆」であるノードについて、図13に示した購入指定管理情報の「一般条件」の値を取得する。取得した「一般条件」は、「10000円以内 AND 5000円以上 AND 割引率が一番高いもの」という条件であるとする。
そして、提供情報取得部122は、「万年筆」が分類項目の識別情報であるため、上記の分類項目を示す識別情報である「テレビ台」について、購入対象物の識別情報と、提供情報とを取得する場合と同様の処理により、「万年筆」についての、購入対象物の識別情報と、提供金額と、この購入対象物をこの提供金額で提供(即ち販売)するショッピングサイト等のアドレス情報(例えばURL等)とを有する提供情報との1以上の組を取得する。このとき、購入対象物として、上記で取得した「一般条件」の値が示す条件を満たす購入対象物を取得する。具体的には、対応する提供金額が5000円以上、10000円以内で、割引率が一番高いもの」という条件を満たす購入対象物を取得する。例えば、WEBサーバ2bが提供する金額提供サイトにおいては、各購入対象物に対して、定価や参考価格等に対する、提供金額の割引率(例えば、20%オフ等)の情報が対応付けられているものとし、WEBサーバ2bが、更に、この割引率の情報を含む提供情報を、購入装置1に送信するものとすると、提供情報取得部122は、WEBサーバ2bから送信される購入対象物の識別情報と対応付けられて送信される提供情報の中から、提供金額が示す値が、5000円以上、10000円以内であって、提供情報が有する割引率の値が最も大きい提供情報を検出し、この提供情報と、この提供情報と対応付けられた購入対象物の識別情報を取得する。例えば、ここでは、提供情報取得部122は、提供金額が8500円で、割引率が40%であることを示す提供情報と、この提供情報と対応付けられた「エベレスト2000」という購入対象物の識別情報とを取得したとする。
購入部123は、上記の識別情報が「エベレスト2000」である購入対象物を指定量、ここでは1個だけ購入する場合の金額が、予算の残高、ここでは「8700円」以内であるか否かを判断する。ここでは、予算の残高は「8700円」であるので、予算の残高以内になると判断される。このため、購入部123は、この提供情報が示すアドレス情報が示すショッピングサイトから、識別情報が「エベレスト2000」である購入対象物を、1個だけ購入する処理を行う。例えば、このショッピングサイトが、WEBサーバ2cが提供するWEBサイトであったとすると、このショッピングサイトから購入対象物を購入する処理を行う。
そして、購入部123は、上記の予算の残高である「8700円」から、「エベレスト2000」の購入金額「8500円」を減算して、予算の残金「200円」を取得する。
削除部124は、「エベレスト2000」というノードを指定するノード指定に対して、削除設定情報が設定されているか否かを判断する。ここでは、図14に示した削除設定情報に、「ノード指定」に「万年筆」と一致するものがあるため、この「万年筆」というノードを指定するノード指定に対して、削除設定情報が設定されていると判断する。このため、削除部124は、図14に示した削除設定情報から削除する。
次に、購入部123は、上記と同様に、優先順位情報が示す優先順位が5番目に高いノードとして、「ノードID」が、「ボールペン」というノードを検出する。
次に、購入部123は、この「ノードID」が「ボールペン」であるノードに対して拒否条件が対応付けられているか否かを、図13の購入指定管理情報から判断する。ここでは、図13の購入指定管理情報において、「ノードID」が「ボールペン」であるレコードの「拒否条件」が「万年筆」であるため、拒否条件が対応付けられていると判断する。購入部123は、この「拒否条件」が示す購入対象物、即ち識別情報が「ボールペン」である分類項目に対応する購入対象物が、既に購入済であるか否かを判断する。ここでは、既に購入済であるため、購入部123は、拒否条件を満たす購入対象物が購入されていると判断する。このため、購入部123は、このノードについての購入処理は行わない。
なお、ここでは、このノードについての提供情報を取得しないが、仮に、この「ボールペン」についての購入処理が行われたとすると、この「ボールペン」に対応する「一般条件」は、図13に示す購入指定管理情報が示すように、「優先度設定なし AND 500円以内 AND 黒色ペン OR 赤色ペン OR 黄色ペン」であるため、提供情報取得部122は、識別情報が「ボールペン」であって、黒色ペン、赤色ペン、または黄色ペンのいずれかである購入対象物についての、提供金額が500円以内である提供情報を取得する。
ここで、その後の優先順位情報が示す優先順位が6番目以降の残りのノードに対して、上記のような処理を行った結果、ノード指定に対応するノードに関して購入に至る購入対象物がなかったとする。
予算更新部125は、上記の購入の処理により得られた予算の残金である200円を取得し、予め指定された予算を補充するための金額である10000円と、この残金との合計金額を示す予算情報で、予算格納部121に格納されている予算情報を更新(例えば、上書き)する。これにより、前回の購入処理により余った予算の残金と、予め指定された金額との合計が、次回の予算となるため、予め指定された金額では購入できない購入対象物も、処理を繰り返すことで購入することが可能となる。
なお、各購入対象物について複数の提供金額が取得された場合、複数の提供金額をそれぞれ取得しても良いし、複数の提供金額の中から選出した一の提供金額を取得しても良い。一の提供金額はどのように選出しても良い。例えば、ランダムに選出しても良いし、提供金額が最も安いものを選出しても良い。また、予め登録されている提供者が提示する提供金額を優先的に選出しても良い。
ここで、仮に、購入部123が、購入の処理を行うための日時になったと判断した日時が「7月25日」であり、購入部123が、この日時を、「ノード指定」が「オモチャ」であるレコードの購入時期条件である「ボーナス時期」を満たす日時であると判断したとする。
この場合、優先順位設定部110は、購入時期条件と対応付けられたノード指定についての優先度を、他のものよりも高い優先度に一時的に設定する。例えば、「ノード指定」が「オモチャ」というノードに割り当てられている優先度を、既存のノードに割り当てられている優先度よりも高い優先度を示す値、例えば「P1」、「P2」等の値に一時的に設定する。例えば、「P1」は、優先度が最も高いことを示す優先順位情報であり、「P2」は、その次に優先度が高いことを示す優先順位情報であるとする。そして、これらの優先度が割り当てられたノード指定から順番に購入対象物の購入の処理を行う。
ここでは、「オモチャ」というノード指定には、一般条件や、拒否条件や同時条件が設定されていないため、これらの条件についての判断処理等は行わない。
まず、購入部123は、「ノードID」が「オモチャ」というノードに従属しているノードを、図15に示した階層情報管理情報から検出する。ここでは、「ノードID」が「オモチャ」というノードに従属するノードとして、「ノードID」が「人形」というノードと「ゲーム機」というノードが検出される。「ゲーム機」というノードには更なる従属ノードが存在せず、このノード識別情報は分類項目を示す情報であるため、上述したような分類項目について提供情報を取得する場合と同様に、「ゲーム機」というノードについて、購入対象物の識別情報と、提供情報との組を取得する。また、「人形」というノードには、更なる従属ノードが存在するため、「ガジラシリーズ」という「ノードID」と、「仮面ファイター」という「ノードID」とを取得する。「仮面ファイター」というノードには更なる従属ノードが存在せず、このノード識別情報は購入対象物を示す情報であるため、上述したような購入対象物について提供情報を取得する場合と同様に、「仮面ファイター」という購入対象物の識別情報と、提供情報との組を取得する。また、「ガジラシリーズ」というノードには「ガジラ」、「ボスラ」、「バドラ」という更なる従属ノードが存在し、これらのノード識別情報は購入対象物を示す情報であるため、上述したような購入対象物について提供情報を取得する場合と同様に、「ガジラ」、「ボスラ」、「バドラ」という購入対象物の識別情報のそれぞれと、これらにそれぞれ対応する提供情報との組を取得する。そして、このようにして取得した購入対象物の識別情報と、提供情報との複数の組の中から、購入部123が、購入する購入対象物を決定し、購入のための処理を行う。このように、購入時期条件と対応付けられたノードについては、この条件が示す時期においては、優先度を高くすることで、他の購入対象物や分類項目に対して、確実に購入の候補となるようにすることができる。購入時期条件と対応付けられたノードについては、この条件が満たす時期以外の時期においては、購入条件を満たさない等と判断して、提供情報取得部122等が提供情報等を取得しないようにしても良いし、元々の優先度に応じて、他のノード指定が示すノードと同様の購入の判断等の処理を行うようにしても良い。
なお、その後の処理等については、上記と同様であるので、ここでは説明は省略する。
以上、本実施の形態によれば、ユーザが指定した購入対象物や分類項目に属する購入対象物を、予算情報が示す金額の範囲以内で適切に購入することができる。
なお、本実施の形態においては、購入装置1が購入した購入対象物を示す情報を、メール等を用いて、図示しない送信部等から、購入を行ったユーザのユーザ端末3等に送信するようにしても良い。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(購入情報受付部やノード指定受付部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態において、階層情報変更部108、優先順位設定部110、提供情報取得部122、購入部123、削除部124、予算更新部125等の各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における購入装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、購入対象物または購入対象物の分類項目を示す情報である購入情報が格納される購入情報格納部と、購入対象物の購入に利用可能な金額を示す情報である予算情報が格納される予算格納部と、にアクセス可能なコンピュータを、購入情報を受け付ける購入情報受付部と、購入情報格納部に格納されている1以上の購入情報が示す購入対象物また分類項目に属する購入対象物のうちの1以上について、各購入対象物が提供される金額である提供金額を有する情報である1以上の提供情報を取得する提供情報取得部と、提供情報取得部が取得した1以上の提供情報を用いて、1以上の提供情報にそれぞれ対応する購入対象物のうちの1以上を、購入対象物に対応する提供金額の合計が、予算情報が示す金額以下となる範囲で購入する購入部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図18は、上記プログラムを実行して、上記実施の形態による購入装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図18において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図19は、コンピュータシステム900の内部構成を示す図である。図19において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による購入装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による購入装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。