以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、情報処理システムに対して本発明を適用した場合の実施形態である。
[1.第1実施形態]
[1−1.情報処理システムの構成及び機能概要]
先ず、本実施形態に係る情報処理システムSの構成及び機能概要について、図1を用いて説明する。図1は、本実施形態に係る情報処理システムSの概要構成の一例を示す図である。
図1に示すように、情報処理システムSは、電子商店街サーバ1と、複数の店舗端末2と、複数のユーザ端末3と、を含んで構成されている。そして、電子商店街サーバ1と各店舗端末2及び各ユーザ端末3とは、ネットワークNWを介して、例えば、通信プロトコルにTCP/IP等を用いて相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
電子商店街サーバ1は、商品の購入が可能な電子商店街に関する各種処理を実行するサーバ装置である。電子商店街サーバ1は、本発明における情報処理装置の一例である。電子商店街を利用するユーザは、電子商店街において所望の店舗から所望の商品を購入することができる。電子商店街サーバ1は、店舗端末2やユーザ端末3からのリクエストに応じて、例えば電子商店街のウェブページを送信したり、商品の検索や注文等に関する処理を行ったりする。なお、本発明が適用可能なウェブサイトは電子商店街に限られるものではない。例えば、単一の販売元から商品が販売される電子商取引のウェブサイトに本発明が適用されてもよい。
店舗端末2は、電子商店街に出店している店舗の従業員等により利用される端末装置である。店舗端末2は、従業員等からの操作に基づいて電子商店街サーバ1等のサーバ装置にアクセスする。これにより、店舗端末2は、サーバ装置からウェブページを受信して表示する。店舗端末2には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。従業員は、店舗端末2を利用することにより、例えば、販売する商品の情報を電子商店街に登録したり、商品の注文内容を確認したりする。
ユーザ端末3は、電子商店街から商品を購入するユーザの端末装置である。ユーザ端末3は、ユーザからの操作に基づいて電子商店街サーバ1にアクセスすることにより、電子商店街サーバ1からウェブページを受信して表示する。ユーザ端末3には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ユーザ端末3としては、例えば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、スマートフォン等の携帯情報端末、携帯電話機等が用いられる。
[1−2.電子商店街のウェブページ]
次に、電子商店街のウェブページについて、図2及び図3を用いて説明する。電子商店街は、様々なウェブページにより構成されている。例えば、トップページ、検索結果ページ、商品ページ等がある。トップページは、電子商店街の最上位に位置するウェブページである。また、トップページは、ユーザが検索条件を入力するためのウェブページである。電子商店街サーバ1は、入力された検索条件に合致する商品を検索する。図2は、トップページの一例を示す図である。図2に示すように、トップページは、検索語入力領域110、注文受け付け可能指定チェックボックス120、検索ボタン130等を含む。検索語入力領域110は、1又は複数の検索語を入力するための入力領域である。検索語は、検索条件の一例である。ユーザは、例えば空白又はコンマ等で区切られた複数の検索語を、検索語入力領域110に入力することができる。注文受け付け可能指定チェックボックス120は、店舗が注文を受け付け可能な商品のみを検索することを指定するか否かを選択するためのチェックボックスである。この選択も検索条件の一例である。注文の受け付けが可能な商品は、例えば店舗に在庫がある商品であってもよい。或いは、注文の受け付けが可能な商品は、例えば店舗に在庫がある商品及び店舗が生産者等から取り寄せることが可能な商品の少なくとも何れか一方であってもよい。なお、注文受け付け可能指定チェックボックス120は存在しなくてもよい。この場合、電子商店街サーバ1は、例えば注文の受け付けが可能な商品のみを常に検索してもよい。検索ボタン130は、入力された検索条件を用いて商品を検索することを電子商店街サーバ1に要求するためのボタンである。なお、トップページにおいて、例えば商品のジャンル等を検索条件として指定可能であってもよい。商品のジャンルは、本発明における商品区分の一例である。
電子商店街サーバ1は、商品の検索を実行すると、検索結果ページをユーザ端末3へ送信する。検索結果ページには、商品の検索結果が表示される。具体的に、検索結果ページには、検索条件に合致する商品の一覧が表示される。
検索結果ページの中からユーザが何れかの商品を選択すると、電子商店街サーバ1は、商品ページをユーザ端末3へ送信する。商品ページには、選択された商品の詳細な情報が表示される。商品ページは、店舗により設計又は作成されてもよい。商品ページには、商品の詳細な情報として、例えば商品名、商品の画像、商品ID、価格、商品の説明等が表示される。また、商品ページには、商品の属性に関する情報が表示される場合がある。各商品は、一般的に、属性区分が互いに異なる複数の属性を有する。属性は、属性区分を識別する情報と属性値との組により示される。属性区分を識別する情報は、例えば属性名であってもよい。属性名は、属性区分の名称である。商品の中には、一部の複数の属性の組み合わせが異なるバリエーションが存在する商品がある。このような複数の商品は、一部の属性の組み合わせが異なることを除き、同一商品とみなされる場合がある。バリエーションを生じさせる属性の属性区分の例として、サイズ、カラー、デザイン、材質、容量、重量、処理能力等が挙げられる。1つのウェブページに、このような同一とみなされる複数の商品のそれぞれが有する属性の組み合わせに関する情報が含まれている場合がある。例えば、複数の商品のそれぞれが有する属性の組み合わせに関連付けて、注文の受け付けが可能か否かを示す情報が含まれている場合がある。この場合、1つのウェブページの中に、属性の組み合わせのそれぞれについて、注文の受け付けが可能か否かを示す情報が含まれている。このようなウェブページは、例えば、ユーザが複数の属性の組み合わせを選択することにより、注文したい商品をユーザが選択することができるように構成されてもよい。
図3(a)は、複数の属性の組み合わせについてバリエーションが存在する或る商品の商品ページの一例を示す図である。また、商品の詳細な情報に加えて、商品ページには、買い物かご追加ボタン210が表示される。買い物かご追加ボタン210は、商品を買い物かごに入れて、後でその商品の注文手続きを行うためのボタンである。また、商品ページには、例えばテーブル220が表示されてもよい。テーブル220は、複数の属性区分の属性の組み合わせのそれぞれについて、注文の受け付けが可能か否かを示す。例えば、テーブル220の各見出しのセルに、属性値を示す語が表示される。具体的に、第1行の各見出しのセルに、或る属性区分の属性値を示す語が1又は複数表示され、第1列の各見出しのセルに、別の属性区分の属性値を示す語が1又は複数表示される。属性値を示す語を、属性値語という。属性値語から、属性値語に対応する属性を特定することが可能な場合がある。属性値語は、本発明における属性語の一例である。見出し以外の各セルには、そのセルの行と列の組み合わせに対応する属性値語が示す属性の組み合わせに対して、注文の受け付けが可能か否かを示す情報が表示される。例えば、注文の受け付けが可能である属性の組み合わせに対応するセルには、ラジオボタンが表示されてもよい。このラジオボタンは、対応する属性の組み合わせを選択するためのボタンである。ユーザは、ラジオボタンを操作することにより、所望の属性の組み合わせを選択した後に、買い物かご追加ボタン210を選択して、選択した属性の組み合わせを有する商品を買い物かごに入れる。その後、ユーザは、買い物かごに入れた商品を注文することができる。注文の受け付けが不可能な属性の組み合わせに対応するセルには、注文の受け付けが不可能であることを示す情報が表示されてもよい。例えば、「X」等の記号又は文字等が表示されてもよい。注文の受け付けが可能か否かを示す情報は、例えば在庫情報に基づいて表示されてもよい。この在庫情報は、或る属性の組み合わせを有する商品の注文が受け付け可能であるか否かを特定可能な情報である。在庫情報は、本発明の可不可情報の一例である。
図3(a)が示すウェブページには、商品としてシャツABCに関する情報が表示されている。テーブル220は、シャツのサイズとカラーの属性区分について、属性の組み合わせに対して注文の受け付けが可能であるか否かが示されている。このウェブページにおけるテーブル220には、第1行のセルに、カラーの属性値語として、「ネイビー」、「ブラック」及び「ホワイト」が表示され、第1列のセルに、サイズの属性値語として、「S」、「M」及び「L」が表示されている。そして、組み合わせ「ネイビー、S」、「ネイビー、M」、「ブラック、S」、「ブラック、M」、「ブラック、L」、及び「ホワイト、S」は注文の受け付けが可能である。一方、組み合わせ「ネイビー、L」、「ホワイト、M」、及び「ホワイト、L」は注文の受け付けが不可能である。
なお、本実施形態においては、便宜上、2つの属性区分の属性の組み合わせについて説明する。しかしながら、例えば3つ以上の属性区分の属性の組み合わせについて注文の受け付けが可能であるかがテーブルで示されてもよい。例えば、ユーザによるタブの操作により複数のテーブルが択一的に表示されてもよい。この場合、3番目の属性区分がタブに関連付けられている。また例えば、ウェブページに複数のテーブルが表示されてもよい。この場合、3番目の属性区分がテーブルに関連付けられている。本発明が適用可能な属性区分は、カラー、サイズのみに限定されるものではない。また、本発明が適用可能な商品は、衣服に限定されるものではない。
テーブルと異なる要素により、複数の属性区分の属性の組み合わせのそれぞれについて、注文の受け付けが可能か否かを示す情報が表示されてもよい。図3(b)は、複数の属性の組み合わせについてバリエーションが存在する別の商品の商品ページの一例を示す図である。図3(b)が示すウェブページには、商品としてシャツDEFに関する情報が表示されている。また、図3(b)に示すウェブページには、買い物かご追加ボタン210、ドロップダウンリスト220及び230が表示されている。ドロップダウンリスト220は、例えばM及びLの中から何れかのサイズを選択するためのドロップダウンリストである。現在はLが選択されている。ドロップダウンリスト230は、例えばネイビー、ブラック及びホワイトの中から何れかのカラーを選択するためのドロップダウンリストである。現在、ブラック及びホワイトの中から何れかが選択されようとしている。サイズがLの場合、ネイビーの注文は不可能である。ドロップダウンリスト220及び230において、ユーザは、例えばサイズとカラーの複数の組み合わせのうち注文の受け付けが可能な組み合わせのみを選択することができるように、商品ページが構成されてもよい。或いは、注文の受け付けが不可能なサイズとカラーの組み合わせを選択した場合、ユーザが買い物かご追加ボタンを選択することができないように、ウェブページが構成されてもよい。図3(b)に示すウェブページの場合、例えば、組み合わせ「ブラック、L」及び「ホワイト、L」のみが、注文の受け付けが可能である。ドロップダウンリストの数を増やすことで、3つ以上の属性区分の属性の組み合わせについての情報を表示可能である。
なお、複数の属性区分の属性の組み合わせに関する情報の表示方法は、テーブルやドロップダウンリストに限られるものではない。また、複数の属性区分の属性の組み合わせが複数存在すればよい。従って、例えば一部の属性区分については、選択可能な属性が1つのみ存在し、残りの属性区分については、複数の属性の中から属性の選択が可能であってもよい。例えば、カラーからはホワイトのみが選択可能であり、サイズからはMとLの中から何れかを選択可能であるとする。この場合の属性の組み合わせの数は2個である。
複数の属性区分の属性の組み合わせについてバリエーションが存在する商品については、例えば必ず1つのウェブページに、その複数の属性区分の属性の組み合わせに関する情報が表示されるように、ウェブページが作成されてもよい。或いは、例えば属性の組み合わせごとに、別々のウェブページで情報が表示されるようなウェブページの作成も許容されてもよい。この場合、ウェブページごとに、そのウェブページに対応する属性の組み合わせの情報が表示される。例えば、ウェブページには、属性の組み合わせを示す属性値が表示されたり、属性区分ごとに、属性名と属性値語とが対応付けて表示されたりしてもよい。この場合、ウェブページに、注文が受け付け可能であるか否かを示す情報は表示されなくてもよい。或いは、或る店舗は、属性の組み合わせについてバリエーションが存在する商品において、1つの組み合わせを有する商品のみを販売するかもしれない。この場合は、その1つのウェブページに、その1つの組み合わせを示す属性値語が表示されたり、属性区分ごとに、属性名と属性値とが対応付けて表示されたりしてもよい。この場合も、ウェブページに、注文が受け付け可能であるか否かを示す情報は表示されなくてもよい。
電子商店街で販売される商品の中に、複数の属性区分の属性の組み合わせについてバリエーションがない商品が存在してもよいし、存在しなくてもよい。バリエーションがない商品のウェブページにおいては、複数の属性区分の属性の組み合わせに関する情報は表示されない。
[1−3.電子商店街サーバの構成]
次に、電子商店街サーバ1の構成について、図4及び図5を用いて説明する。図4(a)は、本実施形態に係る電子商店街サーバ1の概要構成の一例を示すブロック図である。図4(a)に示すように、電子商店街サーバ1は、通信部11と、記憶部12と、入出力インターフェース13と、システム制御部14と、を備えている。そして、システム制御部14と入出力インターフェース13とは、システムバス15を介して接続されている。
通信部11は、ネットワークNWに接続して、店舗端末2やユーザ端末3等との通信状態を制御するようになっている。
記憶部12は、例えば、ハードディスクドライブ等により構成されている。記憶部12は、本発明における可不可情報記憶手段、タグ記憶手段、表示情報記憶手段のそれぞれの一例である。この記憶部12には、会員DB12a、ジャンルDB12b、商品DB12c、商品ページソースDB12d、在庫DB12e、タグDB12f、検索履歴DB12g、閲覧履歴12h、注文履歴12i等のデータベースが構築されている。「DB」は、データベースの略語である。
図5(a)は、会員DB12aに登録される内容の一例を示す図である。会員DB12aには、電子商店街に会員登録しているユーザに関する会員情報が登録される。具体的に、会員DB12aには、ユーザID、パスワード、ニックネーム、氏名、生年月日、性別、郵便番号、住所、電話番号、電子メールアドレス、クレジットカード情報等のユーザの属性が、ユーザごとに対応付けて登録される。
図5(b)は、ジャンルDB12bに登録される内容の一例を示す図である。ジャンルDB12bには、商品のジャンルに関するジャンル情報が登録されている。具体的に、ジャンルDB12bには、ジャンルID、ジャンル名、ジャンルのレベル、親ジャンルID、子ジャンルIDリスト、属性定義情報等のジャンルの属性が、ジャンルごとに対応付けて登録される。ジャンル情報は、例えば、電子商店街の管理者により設定される。
商品のジャンルは、木構造で階層的に定義されている。具体的に、木構造の各ノードが、ジャンルに相当する。ノードの深さが、そのノードに相当するジャンルのレベル(階層)に相当する。ノードの深さは、根に位置するノード(以下、「根ノード」という)からの距離である。レベルの値が大きいほど、そのノードの深さが深く、レベルの値が小さいほど、そのノードの深さが浅い。根ノードが有する子ノードに相当するジャンルがレベル1のジャンルである。レベル1のジャンルが最上位のジャンルである。レベル1の各ジャンルに対しては、子ノードに相当するジャンルが、レベル2のジャンルとして定義されている。ここで、或るジャンルJ1の子ノードに相当するジャンルJ2を、ジャンルJ1の「子ジャンル」という。また、このときのジャンルJ1を、ジャンルJ2の「親ジャンル」という。子ジャンルは、親ジャンルを更に複数に区分したときに、同じような商品が属する範囲である。従って、子ジャンルは親ジャンルに属する。或るジャンルの祖先ノードに相当するジャンルを、「祖先ジャンル」という。例えば、ジャンルJ3がジャンルJ2の子ジャンルであるとする。この場合、ジャンルJ1及びJ2は、それぞれジャンルJ3の祖先ジャンルである。ジャンルJ3の商品は、ジャンルJ3に属するとともに、ジャンルJ3の祖先ジャンルにも属する。従って、ジャンルJ3の商品は、ジャンルJ1〜J3の何れにも属する。或るジャンルの子孫ノードに相当するジャンルを、「子孫ジャンル」という。ジャンルJ2及びJ3は、ジャンルJ1の子孫ジャンルである。
ジャンルIDは、ジャンル情報によって定義されるジャンルの識別情報である。親ジャンルIDは、ジャンル情報によって定義されるジャンルの親ジャンルのジャンルIDである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルの子ジャンルのジャンルIDのリストである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルが子ジャンルを有する場合に設定される。
図5(c)は、属性定義情報に登録される内容の一例を示す情報である。属性定義情報は、ジャンルIDが示すジャンルに含まれる商品のうち少なくとも一部の商品が有する可能性がある属性を定義する情報である。属性定義情報は、商品が有する可能性がある属性の属性区分ごとに登録される。具体的に、属性定義情報には、属性名、属性値情報等が登録される。属性値情報は、属性名が示す属性区分において、商品が有する可能性がある属性値を定義する情報である。例えば、商品が有する可能性がある複数の属性値の属性値語が属性値情報に列挙されてもよい。また例えば、属性値が数値で表される場合、単位を示す文字が属性値情報に登録されてもよい。例えば、属性区分が記憶容量である場合、「バイト」、「byte」等の文字が属性値情報に登録されてもよい。或るジャンルに対してジャンルDB12bに登録されている属性定義情報によって、そのジャンルの全ての子孫ジャンルの属性が定義可能である場合、子孫ジャンルに対する属性定義情報はジャンルDB12bに登録されてもよいし、登録されなくてもよい。
図5(d)は、商品DB12cに登録される内容の一例を示す図である。商品DB12cには、電子商店街で販売されている商品に関する商品情報が登録される。商品情報は、店舗により登録される情報を含む。具体的に、商品DB12cには、商品情報として、店舗ID、商品ID、商品コード、ジャンルID、商品名等が、店舗が販売する商品ごとに対応付けて登録される。店舗IDは、商品の販売元の店舗を示す。商品IDは、店舗が、販売する商品を管理するための商品の識別情報である。商品IDは、本発明の商品識別情報の一例である。商品コードは、商品を識別するコード番号である。複数の店舗で同一の商品が販売される場合、同一の商品コードがそれぞれの商品に対して付与される。商品コードとしては、例えば、JAN(Japanese Article Number Code)コードがある。ジャンルIDは、商品が属するジャンルを示す。商品情報に設定されるジャンルIDは、基本的に、階層が最も深いジャンルのジャンルIDである。つまり、最も細分化されたジャンルのジャンルIDが設定される。商品名は、店舗が付けた商品の名称である。
図5(e)は、商品ページソースDB12dに登録される内容の一例を示す図である。商品ページソースDB12dには、商品ページの情報が登録される。具体的に、商品ページソースDB12dには、商品ID、商品ページソース情報、及び商品ページのURL(Uniform Resource Locator)等が対応付けて登録される。商品IDは、商品ページに対応する商品を示す。商品ページソース情報は、商品ページの表示内容、レイアウト等を示す情報である。商品ページソース情報は、商品ページの表示に用いられる。例えば、商品ページソース情報は、HTML(HyperText Markup Language)文書、XML(Extensible Markup Language)文書等であってもよい。システム制御部14は、ユーザ端末3から商品ページのURLを受信すると、URLに対応する商品ページソース情報をユーザ端末3へ送信する。ユーザ端末3は、受信した商品ページソース情報に基づいて、商品ページをディスプレイに表示する。商品ページソース情報は、本発明の表示情報の一例である。
図5(f)は、在庫DB12eに登録される内容の一例を示す図である。在庫DB12eには、商品の注文の受け付けが可能であるか否かを示す在庫情報が登録される。
在庫DB12eには、在庫情報として、在庫ID、商品ID、在庫状況等が対応付けて登録されている。商品IDは、在庫状況によって、注文の受け付けが可能であるかが示される商品を示す。在庫状況は、商品の受け付けが可能であるか否かを示す。例えば、在庫状況は、「注文受け付け可能」又は「注文受け付け不可能」に設定されてもよい。また例えば、在庫状況は、「在庫あり」又は「在庫なし」に設定されてもよい。在庫状況が「在庫あり」の場合、注文の受け付けが可能であり、在庫状況が「在庫なし」の場合、注文の受け付けが不可能である。また例えば、在庫状況には、在庫数が設定されてもよい。在庫状況に1以上の在庫数が設定されている場合、注文の受け付けが可能であり、在庫状況が0に設定されている場合、注文の受け付けが不可能である。在庫状況は、例えば店舗の従業員による変更操作に基づいて変更されてもよい。或いは、例えばユーザ端末3からの注文の要求やキャンセルの要求等に基づいて、電子商店街サーバ1が在庫状況を更新してもよい。
属性の組み合わせについてバリエーションが存在する商品であって、且つ1つの商品ページに属性の複数の組み合わせに関する情報が表示される商品については、属性の組み合わせごとに在庫情報が登録される。1つの商品ページに対して1つの商品IDが割り当てられる。従って、この場の各在庫情報に対応付けられる商品IDは同一である。一方、属性の組み合わせについてバリエーションが存在する商品であっても、属性の組み合わせごとに商品ページが異なる場合、商品ページごとに1つの在庫情報が登録される。この場合、在庫情報ごとに商品IDが異なる。また、バリエーションが存在しない商品についても1つの在庫情報が登録される。
図5(g)は、タグDB12fに登録される内容の一例を示す図である。タグDB12fには、ユーザにより検索された検索条件に基づいて商品が検索されるときに用いられるタグが登録される。タグは、電子商店街サーバ1により生成される。具体的に、タグDB12fには、タグごとに、商品ID及びタグが対応付けて登録される。タグは、商品IDが示す商品が有する複数の属性の組み合わせであって、注文の受け付けが可能な組み合わせを示す。
図5(h)は、検索履歴DB12gに登録される内容の一例を示す図である。検索履歴DB12gには、電子商店街サーバ1により実行された検索の履歴が登録される。具体的に、検索履歴DB12gには、検索履歴として、ユーザID、検索日時、及び検索条件等が対応付けて登録される。ユーザIDは、検索を要求したユーザを示す。検索日時は、検索が実行された日時を示す。検索条件は、ユーザが入力した条件である。
図5(i)は、閲覧履歴DB12hに登録される内容の一例を示す図である。閲覧履歴DB12hには、ユーザによる商品ページの閲覧の履歴が登録される。具体的に、閲覧履歴DB12hには、閲覧履歴として、ユーザID、商品ID、及び閲覧日時等が対応付けて登録される。ユーザIDは、商品ページを閲覧を要求したユーザを示す。商品IDは、閲覧された商品ページに対応する商品を示す。閲覧日時は、商品ページが閲覧された日時を示す。
図5(j)は、注文履歴DB12iに登録される内容の一例を示す図である。注文履歴DB12iには、ユーザによる商品の注文の履歴が登録される。具体的に、注文履歴DB12iには、注文履歴として、ユーザID、商品ID、注文日時、複数の商品属性等が対応付けて登録される。ユーザIDは、商品を注文したユーザを示す。商品IDは、注文された商品を示す。注文日時は、商品が注文された日時を示す。商品属性は、注文された商品が有する属性を示す。具体的に、例えば図3(a)又は図3(c)に示すような商品ページにおいて、商品を買い物かごに入れるときに、ユーザが選択した属性の組み合わせを構成する属性ごとに、システム制御部14は、商品属性を注文履歴DB12iに登録する。システム制御部14は、例えば商品名と属性値語とを所定の記号又は文字で接続して、商品属性を生成してもよい。なお、本実施形態においては、検索履歴DB12g、閲覧履歴DB12h、注文履歴DB12iは必須ではない。
次に、記憶部12に記憶されるその他の情報について説明する。記憶部12には、ウェブページを表示するための各種データ、例えばHTML(HyperText Markup Language)文書、XML(Extensible Markup Language)文書、画像データ、テキストデータ、電子文書等が記憶されている。また、記憶部12には、各種の設定値が記憶されている。
また、記憶部12には、オペレーティングシステム、WWW(World Wide Web)サーバプログラム、DBMS(Database Management System)、電子商取引制御プログラム等の各種プログラムが記憶されている。電子商取引制御プログラムは、電子商店街における電子商取引に関する処理を行うためのプログラムである。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしてもよいし、磁気テープ、光ディスク、メモリカード等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。また、電子商取引制御プログラム等は、プログラム製品であってもよい。
入出力インターフェース13は、通信部11及び記憶部12とシステム制御部14との間のインターフェース処理を行うようになっている。
システム制御部14は、CPU(Central Processing Unit)14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c等により構成されている。CPU14aは、プロセッサの一例である。なお、本発明は、CPUと異なる様々なプロセッサに対しても適用可能である。記憶部12、ROM14b及びRAM14cは、それぞれメモリの一例である。なお、本発明は、ハードディスク、ROM及びRAMと異なる様々なメモリに対しても適用可能である。
なお、電子商店街サーバ1が、複数のサーバ装置で構成されてもよい。例えば、電子商店街において商品の注文等の処理を行うサーバ装置、店舗端末2やユーザ端末3からのリクエストに応じてウェブページを送信するサーバ装置、タグを生成するサーバ装置、タグを検索するサーバ装置及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されてもよい。
[1−4.システム制御部の機能概要]
次に、図4(b)、図6乃至図7を用いて、システム制御部14の機能概要について説明する。図4(b)は、本実施形態に係る宿泊施設予約サーバ1のシステム制御部14の機能ブロックの一例を示す図である。システム制御部14は、CPU14aが、電子商取引管理プログラム等のプログラムを読み出し実行することにより、図4(b)に示すように、属性抽出部141、タグ登録部142、検索部143等として機能する。属性抽出部141は、本発明における抽出手段及び第2抽出手段の一例である。タグ登録部142は、本発明における制御手段の一例である。検索部143は、本発明における特定手段、検索手段、第1検索手段及び第2検索手段の一例である。
上述したように、電子商店街においては、属性の組み合わせについてバリエーションが存在する商品について、1つの商品ページで、属性の組み合わせに関する情報が表示される場合がある。この場合、従来では、ユーザが検索条件を指定して検索を行い、検索結果からの選択により表示された商品ページにおいて、ユーザが所望しない属性の組み合わせを有しない商品の注文は可能であるが、ユーザが所望する属性の組み合わせを有する商品の注文は可能ではないことがある。以下にこの問題点を具体的に説明する。
トップページにおいて、ユーザが、例えば検索語入力領域110に、所望する商品の一般名称と、所望する商品の属性値をそれぞれ示す2以上の語とを含む複数の検索語を入力したとする。また、ユーザは、注文受け付け可能指定チェックボックス120において、注文の受け付けが可能な商品の検索を指定する。このように検索条件が入力された場合に、従来の情報処理装置は、入力された検索語に基づいて全文検索を行う。すなわち、従来の情報処理装置は、入力された複数の検索語の全てを含む商品ページソース情報を検索する。そして、従来の情報処理装置は、在庫DB12eに登録された在庫状況に基づいて、商品ページソース情報が検索された商品のうち、注文の受け付けが可能な商品を検索する。属性の組み合わせについてバリエーションが存在する商品に対しては、属性の組み合わせごとに在庫状況が在庫DB12eに登録されている。すなわち、1つの商品ページに対して複数の在庫状況が登録されている。このような商品の場合、属性の組み合わせごとに登録された複数の在庫状況の中に、注文の受け付けが可能であることを示す在庫状況が少なくとも1つ存在する場合、従来の情報処理装置は、注文の受け付けが可能な商品として判定する。従って、ユーザが入力した属性値が示す属性の組み合わせを有する商品の注文は可能ではないにもかかわらず、その商品のウェブページが検索されてしまう場合がある。
例えば、ユーザが複数の検索語「シャツ ホワイト M」を入力したとする。「ホワイト」は、カラーの属性値であり、「M」は、サイズの属性値である。図3(a)に示すウェブページには、「シャツ」、「ホワイト」、「L」がそれぞれ表示されている。カラーがホワイトであり、且つサイズがLであるシャツABCの注文の受け付けは不可能である。しかしながら、別の組み合わせ、例えばカラーがネイビーであり、且つサイズがSであるシャツABCの注文の受け付けは可能である。従って、図3(a)に示すウェブページが検索されてしまう。
そこで、システム制御部14は、注文が可能な属性の組み合わせについてのみ、その組み合わせを示すタグであって、その組み合わせを構成する複数の属性の論理積の検索条件に対応するタグを商品IDに関連付けてタグDB12fに登録する。そして、検索条件として、属性値を示す語を含む複数の検索語が入力された場合、入力された属性値が示す属性を全て含むタグに関連付けられた商品IDをタグDB12fにから検索する。これにより、ユーザが所望する属性の組み合わせを有する商品のうち、注文の受け付けが可能な商品の商品ページのみを検索可能とする。そのための属性抽出部141、タグ登録部142、及び検索部143の具体的な機能を説明する。
属性抽出部141は、商品ページソース情報から、複数の属性区分のそれぞれから選択された複数の属性の組み合わせのうち、その組み合わせを有する商品の注文の受け付けが可能か否かを示す在庫状況が在庫DB12eにそれぞれ記憶されている複数の組み合わせを特定する。
例えば、属性抽出部141は、先ず商品ページソース情報から在庫IDを検索する。商品ページにおいて、注文の受け付けが可能か否かを示す情報は、在庫状況に基づいて表示される。具体的に、商品ページソース情報には、属性の組み合わせごとに、その組み合わせに対応する在庫状況の在庫IDが、その組み合わせに関連付けて記述されている。例えば、ユーザ端末3は、商品ページソース情報に記述されたコード、スクリプト又はプログラムに従って、在庫IDに対応する在庫状況を参照して、注文の受け付けが可能か否かを示す情報を表示する。例えば、ユーザ端末3は、図3(a)に示すテーブル220、又は図3(b)に示すドロップダウンリスト220及び230等を表示する。
商品ページソース情報から在庫IDが発見された場合、属性抽出部141は、商品ページソース情報から、在庫IDごとに、在庫IDに関連付けられた属性の組み合わせを抽出する。例えば、図3(a)のように、注文の受け付けが可能か否かがテーブルで表示される場合、属性抽出部141は、在庫IDが記述されたセルに対する各見出しのセル等の記述部分から、属性値語を抽出する。これにより、第1行の見出しのセル、第1列の見出しのセル等から、それぞれ属性値語のセットが抽出される。また、属性抽出部141は、ジャンルDB12bから、商品ページソース情報に対応する商品のジャンルに対応する属性定義情報を取得する。属性抽出部141は、例えば抽出されたセットごとに、属性値語のセットと属性定義情報の属性値情報とを比較して、属性値語のセットの属性区分を特定する。例えば、セットに含まれる属性値語のうち所定割合以上の属性値が、属性値情報に含まれる何れかの属性値語と一致するとする。この場合に、属性抽出部141は、その属性定義情報に含まれる属性名を、属性値語のセットの属性区分を特定する情報として取得してもよい。属性値語のセットの属性区分の候補が複数見つかる場合があるかもしれない。その場合、属性抽出部141は、例えば商品ページソース情報から更に属性名を検索してもよい。そして、属性抽出部141は、候補の中から属性名が発見された属性区分を、属性値語のセットの属性区分として特定してもよい。属性値語が数字を含む場合、属性抽出部141は、例えば属性値語に、単位を示す語が含まれているか否かを判定し、或いは、商品ページソース情報から、更に単位を示す語又は属性名を検索してもよい。そして、属性抽出部141は、この判定結果又は検索結果に基づいて、属性値語のセットに対応する属性区分を特定してもよい。
例えば、図3(b)のように、注文の受け付けが可能か否かがドロップダウンリストで表示される場合、属性抽出部141は、ドロップダウンリストの記述部分から、リストに表示される複数の属性値語のセットと複数の在庫IDを対応付けて抽出することができる。また、一般的には、ドロップダウンリストの記述部分又はその付近に、属性値語のセットに対応する属性項目の属性名が記述されている。従って、これらの情報に基づいて、属性抽出部141は、属性の組み合わせを抽出することができる。
属性抽出部141は、例えば商品ページソース情報から抽出された属性ごとに、属性名と属性値語とを所定の記号又は文字で接続して、商品属性を生成してもよい。そして、属性抽出部141は、商品ページソース情報から抽出された属性の組み合わせごとに、その組み合わせに対応する商品属性の組み合わせを特定する。
例えば、或る商品ページは、1つの属性区分についてのみ複数の属性の中から所望の属性が選択可能に構成されているかもしれない。例えば、商品ページが、見出しの列及び行を除いて行数が1、列数が3のテーブルを含むとする。このテーブルの第1行の見出しのセルに、「ネイビー」、「ブラック」、「ホワイト」が表示され、第1列の見出しのセルには何も表示されていなかったとする。この場合、テーブルからは、カラーの属性のみが特定可能である。属性抽出部141、例えば商品ページソース情報の中から、別の属性区分の属性を抽出してもよい。例えば、商品ページに、「この商品のデザインは水玉模様です。」と表示される場合、属性抽出部141は、属性として、水玉模様のデザインを抽出してもよい。この場合、属性抽出部141は、組み合わせ「ネイビー、水玉模様」、「ブラック、水玉模様」、及び「ホワイト、水玉模様」を抽出してもよい。
また例えば、在庫IDが記述されていない商品ページソース情報が存在するかもしれない。この場合の商品ページには、特定の属性の組み合わせを1つ有する商品のみの情報が表示されているかもしれない。そこで、抽出部141は、在庫IDとは無関係に、このような商品ページソース情報から属性の組み合わせを1つ抽出してもよいし、抽出しなくてもよい。
タグ登録部142は、1つの商品ページソース情報から属性抽出部141により属性の組み合わせが複数抽出された場合、組み合わせごとに、その組み合わせに関連付けられた在庫IDに対応する在庫状況を参照する。そして、タグ登録部142は、抽出された複数の組み合わせのうち、注文の受け付けが可能である組み合わせごとに、その組み合わせを示すタグであって、そのタグを構成する属性の論理積の検索条件に対応するタグを、対応する商品の商品IDに関連付けてタグDB12fに記憶させる。対応する商品の商品IDは、属性の組み合わせが抽出された商品ページソース情報に関連付けられた商品IDである。一方、タグ登録部142は、注文の受け付けが不可能である組み合わせについては、その組み合わせを示すタグをタグDB12fに記憶させない。もし、注文の受け付けが不可能である組み合わせを示すタグが、対応する商品の商品IDに関連付けてタグDB12fに記憶されている場合、タグ登録部142は、そのタグをタグDB12fから削除する。
タグ登録部142は、例えば注文の受け付けが可能である組み合わせに対応する複数の商品属性を、論理積を示す所定の記号又は文字で接続して、タグを生成してもよい。タグ登録部142は、生成したタグを、商品ページソース情報の商品IDに対応付けて、タグDB12fに登録する。
以下に、属性の抽出及びタグの登録の具体例を示す。図6(a)は、ジャンル「トップス」について、ジャンルDB12bに登録された属性定義情報の例を示す図である。図6(a)に示すように、属性名が「カラー」である属性定義情報と、属性名が「サイズ」である属性定義情報とが登録されている。「カラー」に対する属性値語として、例えば「ホワイト」、「ブラック」、「ネイビー」、「レッド」等が登録されている。「サイズ」に対する属性値語として、例えば「S」、「M」、「L」、「XL」等が登録されている。
図6(b)は、図3(a)及び図3(b)に示す商品ページについて、タグDB12fに登録されたタグの例である。抽出部141は、図3(a)に示す商品ページのソース情報から、在庫IDに関連付けられた属性値のセットとして、「ネイビー」、「ブラック」及び「ホワイト」のセットと、「S」、「M」及び「L」のセットとを抽出する。抽出部141は、ジャンルDB12bに登録された属性定義情報に基づいて、「ネイビー」、「ブラック」及び「ホワイト」は、カラーの属性値語であると判定し、「S」、「M」及び「L」は、サイズの属性値語であると判定する。そして、抽出部141は、在庫IDが記述されたセルの行及び列に基づき、組み合わせ「ネイビー、S」、「ネイビー、M」、「ネイビー、L」、「ブラック、S」、「ブラック、M」、「ブラック、L」、「ホワイト、S」、「ホワイト、M」、「ホワイト、L」を抽出する。
これらの組み合わせの中で、注文の受け付けが可能な組み合わせは、「ネイビー、S」、「ネイビー、M」、「ブラック、S」、「ブラック、M」、「ブラック、L」、「ホワイト、S」である。そこで、タグ登録部142は、例えば、タグ「カラー=ネイビー*サイズ=S」、「カラー=ネイビー*サイズ=M」、「カラー=ブラック*サイズ=S」、「カラー=ブラック*サイズ=M」、「カラー=ブラック*サイズ=L」、及び「カラー=ホワイト*サイズ=S」を、それぞれシャツABCの商品IDに対応付けてタグDB12fに登録する。「*」は、論理積を示す。
タグ登録部142は、タグ「カラー=ネイビー*サイズ=L」、「カラー=ホワイト*サイズ=M」、及び「カラー=ホワイト*サイズ=L」は登録しない。もし、タグDB12fにこれらのタグが既に登録されている場合、タグ登録部142は、これらのタグをタグDB12fから削除する。
抽出部141は、図3(b)に示す商品ページのソース情報から、在庫IDに関連付けられた属性値をセットして、例えば、「ネイビー」、「ブラック」及び「ホワイト」のセットと、「M」及び「L」のセットとを抽出する。
これらの組み合わせの中で、注文の受け付けが可能な組み合わせは、「ブラック、L」及び「ホワイト、L」であるとする。そこで、タグ登録部142は、例えば、タグ「カラー=ブラック*サイズ=L」、「カラー=ブラック*サイズ=S」を、それぞれシャツDEFの商品IDに対応付けてタグDB12fに登録する。タグ登録部142は、他の組み合わせに対応するタグは登録しない。
本実施形態においては、属性名及び属性値語を含むタグが生成される。しかしながら、タグ登録部142は、例えば属性名及び属性値語のうち属性値語のみを含むタグを生成してもよい。例えば、「ネイビー*S」、「ネイビー*M」等といったタグが生成されてもよい。
なお、抽出部141により商品ページソース情報から在庫IDに関係なく属性の組み合わせが1つのみ抽出された場合、タグ登録部142は、その組み合わせを示すタグをタグDB12fに記憶させてもよいし、記憶させなくてもよい。
検索部143は、ユーザにより入力された検索条件に基づいて、商品ページソース情報を検索し、又は、商品ページソース情報とタグの両方を検索する。例えば、ユーザが注文受け付け可能指定チェックボックス120で、注文の受け付けが可能な商品の検索を指定したとする。この場合、検索部143は、例えばユーザにより入力された複数の検索語の中から、属性値語と、属性値を示さない語とを特定する。属性値を示さない語を、非属性語という。複数の検索語が属性値語を含まない場合、検索部143は、商品ページソースDB12dから、複数の検索語の全てを含む商品ページソース情報に対応する商品IDのうち、注文の受け付けが可能であることを示す在庫状況に対応する商品IDを検索する。複数の検索語が1又は複数の属性値語を含む場合、複数の検索語のうち非属性値語を含む商品ページソース情報に対応する商品IDのうち、1又は複数の属性値語が示す属性を含む組み合わせを示すタグに対応する商品IDを検索する。
属性値語及び非属性語の特定方法の例について説明する。検索部143は、例えば複数の検索語の中で1番目の検索語を、非属性語に決定してもよい。検索部143は、例えばジャンルDB12bに基づいて、1番目の検索語が、ジャンル名であるか否かを判定してもよい。1番目の検索語がジャンル名と一致するか類似する場合、そのジャンル名に対応するジャンルIDを特定する。類似する語は、例えば同義語、意味が類似する語等であってもよい。検索部143は、例えば特定したジャンルIDに対応する属性定義情報に基づいて、2番目以降の検索語のそれぞれが、属性値語であるか否かを判定してもよい。例えば、検索語が、属性定義情報の属性値情報に含まれる何れかの属性値語と一致又は類似する場合、検索部143は検索語を属性語と判定し、検索語が、属性定義情報の属性値情報に含まれる何れの属性値語とも一致も類似もしない場合、検索部143は検索語を非属性語と判定してもよい。1番目の検索語がジャンル名と一致も類似もしない場合、検索部143は、例えば全ての検索語が非属性語と判定してもよい。
或いは、検索部143は、例えば複数の検索語の中から、ジャンル名に一致又は類似する検索語を抽出してもよい。そして、検索部143は、ジャンル名に一致又は類似すると判定された検索語を非属性語に決定し、そのジャンル名に対応するジャンルIDを特定する。検索部143は、例えば特定したジャンルIDに対応する属性定義情報に基づいて、その他の検索語のそれぞれが、属性値語であるか否かを判定してもよい。
検索部143は、抽出された属性値語ごとに、対応する属性名と属性値語とを所定の記号又は文字で接続して、属性条件を生成する。そして、検索部143は、生成された1又は複数の属性条件の全部を少なくとも含むタグをタグDB12fから検索する。
以下に検索の具体例を示す。図7は、検索の実行例を示す図である。図7に示すように、ユーザが複数の検索語「シャツ ホワイト M」を入力し、且つ注文の受け付けが可能な商品を指定したとする。ジャンルDB12bには、トップスの子孫ジャンルの1つのジャンル名として「シャツ」が登録されているとする。従って、検索部143は、検索語「シャツ」をジャンル名且つ非属性値語と判定する。また、検索部143は、トップスの属性定義情報に基づいて、検索語「ホワイト」を、カラーの属性と判定し、検索語「M」をサイズの属性値語と判定する。
検索部143は、例えば複数の検索語のうち非属性語「シャツ」を含む商品ページソース情報を商品ページソースDB12dから検索し、検索された商品ページソース情報に対応する商品IDを、中間の検索結果として取得する。
また、検索部143は、各属性値語と属性名を接続して、例えば属性条件「カラー=ホワイト」、「サイズ=M」を生成する。検索部143は、中間の検索結果として取得された商品IDに関連付けてタグDB12fに登録されているタグの中から、「カラー=ホワイト」と「サイズ=M」との論理積の検索条件に合致するタグを検索する。すなわち、検索部143は、「カラー=ホワイト」と「サイズ=M」との全てを含むタグを検索する。そして、検索部143は、検索されたタグに対応する商品IDを、最終的な検索結果として取得する。
なお、検索部143は、例えば先に1又は複数の属性条件に合致するタグを検索して、対応する商品IDを中間の検索結果として取得してもよい。そして、検索部143は、中間の検索結果として取得された商品IDに対応する商品ページソース情報の中から、非属性値語を含む商品ページソース情報を検索し、対応する商品IDを最終の検索結果として取得してもよい。
本実施形態においては、商品の属性の条件が検索語として入力される。しかしながら、例えばトップページに、全文検索に用いられる検索語を入力するための検索語入力領域とは別に、タグを検索するための語を入力するためのタグ検索語入力領域が含まれてもよい。この場合、検索部143は、検索語入力領域に入力された語を非属性値語に決定し、タグ検索語入力領域に入力された語を属性値語に決定する。そして、検索部143は、属性値語に対応する属性名を特定して属性条件を生成する。また、例えばトップページに、1又は複数の属性を検索条件として指定するための要素が表示されてもよい。この場合、例えば属性区分と属性値との組み合わせが指定可能にトップページが構成されてもよい。この場合、検索部143は、指定された組み合わせに対応する属性条件を生成する。
本実施形態においては、属性名と属性値語とで属性条件が構成される。しかしながら、タグDB12fに登録されるタグが、属性名と属性値語とのうち属性値語のみを含む場合、属性条件は属性値語のみで構成されてもよい。
なお、属性抽出部141及びタグ登録部142を備える装置と、検索部143を備えるサーバ装置とが異なっていてもよい。この場合、属性抽出部141及びタグ登録部142を備える装置が、本発明における情報処理装置の一例である。属性抽出部141及びタグ登録部142を備える装置は、例えばサーバ装置であってもよいし、端末装置であってもよい。
[1−5.情報処理システムの動作]
次に、情報処理システムSの動作について、図8及び図11を用いて説明する。
図8は、本実施形態に係る電子商店街サーバ1のタグDB更新処理の一例を示すフローチャートである。タグDB更新処理は、タグDB12fを更新するための処理である。例えば、システム制御部14は、所定の期間ごとに、全ての商品に対してタグDB更新処理を実行してもよい。また例えば、システム制御部14は、在庫DB12eに登録されている何れかの在庫状況が更新されたとき、その在庫状況に対応する商品についてのみタグDB更新処理を実行してもよい。
図8に示すように、タグ登録部142は、対象商品の商品IDを取得する(ステップS11)。次いで、属性抽出部141は、属性定義情報を取得する(ステップS12)。具体的に、属性抽出部141は、対象商品の商品IDに対応するジャンルIDを商品情報DB12cから取得する。次いで、属性抽出部141は、取得したジャンルIDに対応する属性定義情報をジャンルDB12bから取得する。対応する属性定義情報が登録されていない場合、属性抽出部141は、ジャンルDB12bに登録されている親ジャンルIDに基づいて、対象商品のジャンルIDが示すジャンルの祖先ジャンルのジャンルIDを特定する。そして、属性抽出部141は、特定したジャンルIDに対応する属性定義情報を取得する。
次いで、属性抽出部141は、対象商品の商品IDに対応して商品ページソースDB12dに登録されている商品ページソース情報から、在庫IDを検索する(ステップS13)。次いで、属性抽出部141は、検索の結果、商品ページソース情報が複数の在庫IDを含むか否かを判定する(ステップS14)。このとき、属性抽出部141は、商品ページソース情報が複数の在庫IDを含むと判定した場合には(ステップS14:YES)、ステップS15に進む。一方、属性抽出部141は、商品ページソース情報が複数の在庫IDを含まないと判定した場合には(ステップS14:NO)、ステップS22に進む。
ステップS15において、属性抽出部141は、属性定義情報に基づいて、検索された在庫IDごとに、商品ページソース情報から在庫IDに関連付けられた属性の組み合わせを抽出する。具体的に、属性抽出部141は、在庫IDに関連付けられた属性値語を抽出し、属性値語に対応する属性名を属性定義情報から取得する。次いで、属性抽出部141は、抽出された属性ごとに、属性名と属性値語を接続して、商品属性を生成する(ステップS16)。
次いで、タグ登録部142は、番号iを1に設定する(ステップS17)。次いで、タグ登録部142は、複数の在庫IDのうち1番目の在庫IDに関連付けられた複数の属性の組み合わせに対応する商品属性を接続して、タグを生成する(ステップS18)。このとき、タグ登録部142は、所定の基準に基づいて、タグに含まれる商品属性の順番を決定する。例えば、タグ登録部142は、商品属性の文字列の文字コードの値が小さい順で商品属性を接続してもよい。次いで、タグ登録部142は、タグ登録制御処理を実行する(ステップS19)。
図9は、本実施形態に係る電子商店街サーバ1のタグ登録制御処理の一例を示すフローチャートである。図9に示すように、タグ登録部142は、1番目の在庫IDに対応する在庫状況を在庫DB12eから取得する。そして、タグ登録部142は、在庫状況が、注文の受け付けが可能であることを示すか否かを判定する(ステップS31)。このとき、タグ登録部142は、取得した在庫状況が、注文の受け付けが可能であることを示すと判定した場合には(ステップS31:YES)、ステップS32に進む。一方、タグ登録部142は、在庫状況が、注文の受け付けが可能であることを示していないと判定した場合には(ステップS31:NO)、ステップS34に進む。
ステップS32において、タグ登録部142は、生成されたタグが、対象商品の商品IDに関連付けてタグDB12fに登録されているか否かを判定する。このとき、タグ登録部142は、生成されたタグが対象商品の商品IDに関連付けて登録されていると判定した場合には(ステップS32:YES)、タグ登録制御処理を終了させる。一方、タグ登録部142は、生成されたタグが対象商品の商品IDに関連付けて登録されていないと判定した場合には(ステップS32:NO)、ステップS33に進む。ステップS33において、タグ登録部142は、生成されたタグを、対象商品の商品IDに関連付けてタグDB12fに登録する。そして、タグ登録部142は、タグ登録制御処理を終了させる。
ステップS34において、タグ登録部142は、生成されたタグが、対象商品の商品IDに関連付けてタグDB12fに登録されているか否かを判定する。このとき、タグ登録部142は、生成されたタグが対象商品の商品IDに関連付けて登録されていると判定した場合には(ステップS34:YES)、ステップS35に進む。ステップS35において、タグ登録部142は、対象商品の商品IDに関連付けて登録されているタグであって、生成されたタグと一致するタグを、タグDB12fから削除する。そして、タグ登録部142は、タグ登録制御処理を終了させる。一方、タグ登録部142は、生成されたタグが対象商品の商品IDに関連付けて登録されていないと判定した場合には(ステップS34:NO)、タグ登録制御処理を終了させる。
タグ登録制御処理が終わると、タグ登録部142は、番号iが、検索された在庫IDの数の値未満であるか否かを判定する(ステップS20)。このとき、タグ登録部142は、番号iが在庫IDの数の値未満であると判定した場合には(ステップS20:YES)、ステップS21に進む。ステップS21において、タグ登録部142は、番号iに1を加算して、ステップS18に進む。一方、タグ登録部142は、番号iが在庫IDの数の値未満ではないと判定した場合には(ステップS20:NO)、タグDB更新処理を終了させる。
ステップS22において、属性抽出部141は、属性定義情報に基づいて、対象商品の商品ページソース情報において、商品ページ上に表示されるテキストから、複数の属性区分の属性値語を検索する。次いで、属性抽出部141は、検索の結果、商品ページソース情報が、複数の属性区分の属性値語を含むか否かを判定する(ステップS23)。このとき、属性抽出部141は、商品ページソース情報が複数の属性区分の属性値語を含むと判定した場合には(ステップS23:YES)、ステップS24に進む。一方、属性抽出部141は、商品ページソース情報が複数の属性区分の属性値語を含まないと判定した場合には(ステップS23:NO)、タグDB更新処理を終了させる。
ステップS24において、属性抽出部141は、抽出された属性値ごとに、属性名と属性値語を接続して、商品属性を生成する。次いで、タグ登録部142は、複数の商品属性を接続して接続してタグを生成する(ステップS25)。次いで、属性抽出部141は、タグ登録制御処理を実行する(ステップS26)。これにより、タグ登録部142は、生成したタグをタグDB12fに登録又は生成したタグをタグDB12fから削除する。そして、タグ登録部142は、タグDB更新処理を終了させる。
図10及び図11は、本実施形態に係る電子商店街サーバ1の検索処理の一例を示すフローチャートである。ユーザがトップページにおいて、1又は複数の検索語を入力し、注文の受け付けが可能な商品の検索を指定するか否かを選択する。そして、ユーザが検索ボタン130を選択すると、ユーザ端末3は検索要求を電子商店街サーバ1へ送信する。検索要求は、例えば、検索を要求したユーザのユーザID及び検索条件を含む。検索条件は、入力された検索語及び注文の受け付けが可能な商品の検索を指定するか否かの選択結果を含む。システム制御部14は、電子商店街サーバ1がユーザ端末3から検索要求を受信したときに、検索処理を実行する。
図10に示すように、検索部143は、検索要求に含まれる検索条件に基づいて、注文の受け付けが可能な商品の検索が指定されたか否かを判定する(ステップS41)。このとき、検索部143は、注文の受け付けが可能な商品の検索が指定されていると判定した場合には(ステップS41:YES)、ステップS44に進む。一方、検索部143は、注文の受け付けが可能な商品の検索が指定されていないと判定した場合には(ステップS41:NO)、ステップS42に進む。
ステップS42において、検索部143は、検索要求に含まれる1又は複数の検索語の全てを含む商品ページソース情報を商品ページソースDB12dから検索する。次いで、検索部143は、検索された商品ページソース情報に対応する商品IDを商品ページソースDB12dから取得する。そして、検索部143は、取得した商品IDを含む検索結果リストを生成する。
次いで、検索部143は、検索結果リストに基づいて、検索結果ページを生成する。そして、検索部143は、生成した検索結果ページをユーザ端末3へ送信する(ステップS43)。具体的に、検索結果リストに含まれる商品IDに対応する商品の情報を商品DB12bから取得して、検索された商品の一覧の情報を、検索結果ページのHTML文書に追加する。また、検索部143は、検索された商品の商品ページのURLに基づいて、商品ページへのリンクを、検索結果ページのHTML文書に追加する。そして、検索部143は、HTML文書を送信する。また、検索部143は、検索履歴を検索履歴DB12gに登録する。具体的に、検索部143は、現在日時を検索日時として取得する。また、検索部143は、検索要求からユーザIDを取得する。そして、検索部143は、ユーザID、検索日時及び検索条件を含む検索履歴を生成して登録する。そして、検索部143は、検索処理を終了させる。
ステップS44において、検索部143は、検索要求に含まれる1又は複数の検索語を取得する。次いで、検索部143は、検索語の数が2以上であるか否かを判定する。このとき、検索部143は、検索語の数が2以上であると判定した場合には(ステップS44:YES)、ステップS45に進む。一方、検索部143は、検索語の数が2以上ではないと判定した場合には(ステップS44:NO)、ステップS56に進む。
ステップS45において、検索部143は、検索要求から取得された検索語のうち1番目の検索語を選択する。そして、検索部143は、1番目の検索語が、ジャンルDB12bに登録されている何れかのジャンル名と一致又は類似するか否かを判定する。このとき、検索部143は、1番目の検索語が、ジャンルDB12bに登録されている何れかのジャンル名と一致又は類似すると判定した場合には(ステップS45:YES)、ステップS46に進む。一方、検索部143は、1番目の検索語が、ジャンルDB12bに登録されている何れのジャンル名とも一致も類似もしないと判定した場合には(ステップS45:NO)、ステップS56に進む。
ステップS46において、検索部143は、1番目の検索語を非属性語に決定する。次いで、検索部143は、属性定義情報を取得する(ステップS47)。具体的に、検索部143は、1番目の検索語に一致又は類似するジャンル名に対応するジャンルIDを商品情報DB12cから取得する。次いで、属性抽出部141は、取得したジャンルIDに対応する属性定義情報をジャンルDB12bから取得する。対応する属性定義情報が登録されていない場合、属性抽出部141は、ジャンルDB12bに登録されている親ジャンルIDに基づいて、取得したジャンルIDが示すジャンルの祖先ジャンルのジャンルIDを特定する。そして、属性抽出部141は、特定したジャンルIDに対応する属性定義情報を取得する。
次いで、検索部143は、番号iを2に設定する(ステップS48)。次いで、検索部143は、検索要求から取得された検索語のうちi番目の検索語を選択する。そして、検索部143は、i番目の検索語が、取得された属性値情報が示す何れかの属性値語と一致又は類似するか否かを判定する(ステップS49)。このとき、検索部143は、検索語が何れかの属性値語と一致又は類似すると判定した場合には(ステップS49:YES)、ステップS50に進む。一方、検索部143は、検索語が何れの属性値語とも一致も類似もしないと判定した場合には(ステップS49:NO)、ステップS52に進む。
ステップS50において、検索部143は、i番目の検索語を属性値語に決定する。次いで、検索部143は、i番目の検索語と一致又は類似する属性値語に対応する属性名を属性定義情報から取得する。そして、検索部143は、取得した属性名とi番目の検索語とを接続して、属性条件を生成する(ステップS51)。次いで、検索部143は、ステップS53に進む。ステップS51において、検索部143は、i番目の検索語を非属性値語に決定して、ステップS53に進む。
ステップS53において、検索部143は、番号iが検索語の数の値未満であるか否かを判定する。このとき、検索部143は、番号iが検索語の数の値未満であると判定した場合には(ステップS53:YES)、ステップS54に進む。ステップS54において、検索部143は、番号iに1を加算して、ステップS49に進む。一方、検索部143は、番号iが検索語の数の値未満ではないと判定した場合には(ステップS53:NO)、ステップS55に進む。
ステップS55において、検索部143は、属性値語に決定された検索語の数が1以上であるか否かを判定する(ステップS55)。このとき、検索部143は、属性値語に決定された検索語の数が1以上であると判定した場合には(ステップS55:YES)、ステップS61に進む。一方、検索部143は、属性値語に決定された検索語の数が1以上ではないと判定した場合には(ステップS55:NO)、ステップS56に進む。
ステップS56において、検索部143は、検索要求に含まれる1又は複数の検索語の全てを含む商品ページソース情報を商品ページソースDB12dから検索する。次いで、検索部143は、検索された商品ページソース情報に対応する商品IDを商品ページソースDB12dから取得する。そして、検索部143は、取得した商品IDを含む中間リストを生成する。
次いで、検索部143は、中間リストから、注文の受け付けが可能である商品の商品IDを検索する(ステップS57)。具体的に、検索部143は、中間リストに含まれる商品IDごとに、商品IDに対応する1又は複数の在庫状況を在庫DB12eから取得する。そして、検索部143は、取得された1又は複数の在庫状況の中に、注文の受け付けが可能であることを示す在庫状況が1つ以上存在する商品IDを、注文の受け付けが可能である商品の商品IDに決定する。次いで、検索部143は、注文の受け付けが可能である商品の商品IDを含む検索結果リストを生成して、ステップS43に進む。
ステップS61において、検索部143は、図11に示すように、検索結果リストを初期化する。次いで、検索部143は、検索要求に含まれる検索語のうち非属性値語に決定された1又は複数の検索語の全てを含む商品ページソース情報を商品ページソースDB12dから検索する(ステップS62)。次いで、検索部143は、検索された商品ページソース情報に対応する商品IDを商品ページソースDB12dから取得する。そして、検索部143は、取得した商品IDを含む中間リストを生成する。
次いで、検索部143は、番号iを1に設定する(ステップS63)。次いで、検索部143は、中間リストに含まれる商品IDのうちi番目の商品IDを選択する。そして、検索部143は、i番目の商品IDに関連付けられたタグをタグDB12fから検索する(ステップS64)。次いで、検索部143は、検索された1又は複数のタグの中に、生成された1又は複数の属性条件が示す1又は複数の商品属性の全てを少なくとも含むタグが存在するか否かを判定する(ステップS65)。属性条件が示す商品属性は、例えば、属性条件に含まれる属性名と一致する属性名を含み、且つ属性条件に含まれる属性値語と一致又は類似する属性値語を含む商品属性であってもよい。このとき、検索部143は、1又は複数の属性条件が示す1又は複数の商品属性の全てを少なくとも含むタグが存在すると判定した場合には(ステップS65:YES)、ステップS66に進む。ステップS66において、検索部143は、i番目の商品IDを検索結果リストに追加して、ステップS67に進む。一方、検索部143は、1又は複数の属性条件が示す1又は複数の商品属性の全てを少なくとも含むタグが存在しないと判定した場合には(ステップS65:NO)、ステップS67に進む。
ステップS67において、検索部143は、番号iが、中間リストに含まれる商品IDの数の値未満であるか否かを判定する。このとき、検索部143は、番号iが商品IDの数の値未満であると判定した場合には(ステップS67:YES)、ステップS68に進む。ステップS68において、検索部143は、番号iに1を加算して、ステップS64に進む。一方、検索部143は、番号iが商品IDの数の値未満ではないと判定した場合には(ステップS67:NO)、ステップS43に進む。そして、検索部143は、検索結果リストに基づいて検索結果ページを生成、送信する。検索履歴DB12gに検索履歴を登録するとき、検索部143は、例えば生成した属性条件を検索履歴に含めてもよい。
以上説明したように、本実施形態によれば、システム制御部14が、商品が有する、属性区分が異なる複数の属性同士の組み合わせのうち、その組み合わせを有する商品の注文の受け付けが可能か否かを示す在庫情報が関連付けられた組み合わせを、商品ページソース情報から複数抽出する。また、システム制御部14が、抽出された複数の組み合わせのうち、注文の受け付けが可能であることを在庫情報が示す組み合わせごとに、その組み合わせを示すタグであって、その組み合わせを構成する複数の属性の論理積の検索条件に対応するタグを、商品IDに関連付けて記憶部12に記憶させる。一方、注文の受け付けが不可能であることを在庫情報が示す組み合わせを示すタグが記憶部12に記憶されている場合、システム制御部14は、そのタグを削除する。従って、ユーザが所望する属性の組み合わせを有し、且つ注文の受け付けが可能な商品の商品ページのみを検索することができる。
また、システム制御部14が、在庫状況が記憶部12に記憶された組み合わせが抽出されなかった場合、複数の属性区分の属性の組み合わせを1つ、商品ページソース情報から抽出してもよい。また、システム制御部14が、商品IDに関連付けてタグDB12fに記憶された在庫状況が注文の受け付けが可能であることを示す場合にのみ、抽出された組み合わせを示すタグをタグDB12fに記憶させてもよい。この場合、1つの組み合わせにのみ対応している商品ページが存在しても、タグDB12fの検索により、ユーザが所望する属性の組み合わせを有し、且つ注文の受け付けが可能な商品の商品ページのみを検索することができる。
また、システム制御部14が、入力された複数の検索語が属性値語を含まない場合、商品ページソースDB12dから、複数の検索語を含む商品ページソース情報に関連付けられた商品IDのうち、注文の受け付けが可能な商品の商品IDを検索してもよい。一方、システム制御部14が、複数の検索語が商品の属性を示す1又は複数の属性値語を含む場合、複数の検索語のうち非属性値語を含む商品ページソース情報に関連付けられた商品IDの中から、1又は複数の属性値語が示す属性を含む組み合わせを示すタグに関連付けられた商品IDを検索してもよい。この場合、複数の検索語が属性値語を含むか否かに関わらず、適切な検索を実行することができる。
[2.第2実施形態]
[2−1.システム制御部の機能概要]
次に、第2実施形態におけるシステム制御部14の機能概要を、図12を用いて説明する。図12は、検索の過程の一例を示す図である。トップページにおいて、例えば、ユーザが、注文の受け付けが可能な商品の検索を指定する。また、ユーザは、検索条件の少なくとも一部として、タグが示す複数の属性の組み合わせの一部の属性と一致する属性を指定する。この属性を第1属性と称する。例えば、図12に示すように、複数の検索語として、「シャツ ネイビー」が入力されたとする。この場合、「ネイビー」が第1属性に相当する。そして、ユーザ端末3は、検索要求を電子商店街サーバ1へ送信する。この検索要求を第1検索要求と称する。
第1検索要求を受信した場合、検索部143は、指定された第1属性を少なくとも含むタグを検索し、タグに対応する商品IDに基づいて検索結果ページをユーザ端末3へ送信する。ユーザは検索結果から、属性の組み合わせについてバリエーションが存在する商品を選択することにより、ユーザ端末3は、選択された商品の商品ページを表示する。商品ページにおいては、第1属性を含む1又は複数の組み合わせのうち、少なくとも1つの組み合わせの注文の受け付けが可能である。例えば、ユーザがシャツABCを選択して、図3(a)に示す商品ページが表示されたとする。
ここで、ユーザは商品を注文しなかったとする。その後、トップページにおいて、ユーザが、注文の受け付けが可能な商品の検索を指定し、検索条件の少なくとも一部として、第1属性と同一の属性区分に属する属性を指定したとする。この属性を第2属性と称する。例えば、図12に示すように、複数の検索語として、「カットソー ホワイト」が入力されたとする。この場合、「ホワイト」が第2属性に相当する。そして、ユーザ端末3は、検索要求を電子商店街サーバ1へ送信する。この検索要求を第2検索要求と称する。
第2検索要求を受信した場合、検索部143は、検索条件に含まれる第2属性の属性区分が第1属性の属性区分と一致するので、商品ページが表示された商品の属性の複数の組み合わせのうち、第1属性を含む組み合わせを特定する。次いで、検索部143は、在庫DB12eに基づいて、第1属性を含む組み合わせのうち、注文の受け付けが不可能な組み合わせを特定する。そして、検索部143は、注文の受け付けが不可能な組み合わせから、第1属性以外の属性を特定する。この属性を第3属性と称する。例えば、図3(a)に示すように、「ネイビー」を含む組み合わせのうち、「ネイビー、L」の注文の受け付けが不可能である。この場合、「L」が第3属性に相当する。
検索部143は、タグDB12fから、第2検索要求の検索条件に含まれる第2属性と、特定した第3属性との両方を少なくとも含むタグに関連付けられた商品IDを検索する。例えば、検索部143は、先ず第2属性を含むタグを検索し、検索されたタグの中から第3属性を含むタグを検索してもよい。検索部143は、例えば第2属性と第3属性との両方を含むタグに対応する商品の情報が、第2属性を含むが第3属性を含まないタグに対応する商品の情報よりも優先的に表示されるように、検索結果ページを生成してもよい。例えば、第2属性と第3属性との両方を含むタグに対応する商品の情報の表示順が、第2属性を含み且つ第3属性を含まないタグに対応する商品の情報の表示順よりも前の順番であってもよい。例えば、表示順が前である商品の情報ほど、検索結果ページにおいて見やすい位置に表示され、又は商品の情報が掲載された検索結果ページを表示させるためにページを切り替える操作の回数が少なくなる。例えば、図12に示すように、検索結果ページにおいて、検索語「カットソー ホワイト L」に対する検索結果が上位に表示され、検索語「カットソー ホワイト」に対する検索結果のうち、検索語「カットソー ホワイト L」に対する検索結果を除く検索結果が下位に表示される。なお、検索部143は、例えば第2属性と第3属性との両方を含むタグに関連付けられた商品IDのみを検索してもよい。
上述のような検索を行う理由を説明する。第1検索要求から、ユーザは第1属性を少なくとも有する商品を欲しいと考えていた蓋然性がある。第1検索要求に基づく検索の結果、表示される商品ページにおいて、第1属性を含む属性の組み合わせのうち少なくとも1つの組み合わせは注文の受け付けが可能である。しかしながら、ユーザは第1属性を有する商品を購入しなかった。これらの行動から、第1属性を含む属性の組み合わせのうち、注文の受け付けが不可能であった組み合わせを有する商品が仮に注文可能であったら、ユーザは注文を行ったのかもしれないと考えることができる。すなわち、注文の受け付けが不可能であった組み合わせにおいて、第3属性を有する商品をユーザは欲しいと考えていた可能性がある。そこで、ユーザが商品を注文しなかった状態で検索要求を送信した場合、第1属性と属性区分が同一である第2属性が指定されていれば、検索部143は、ユーザは、第2属性と第3属性の両方を有する商品を欲しいと考えている可能性があると判断することができる。これにより、ユーザが望む属性を有する商品であって、注文の受け付けが可能な商品をユーザが見付けやすくなる。
検索部143は、例えば第1属性と第2属性とが一致する場合にのみ、第2属性と第3属性とを含むタグに関連付けられた商品IDを検索してもよい。
検索部143は、例えば前回の検索要求を、第1検索要求と識別してもよい。また例えば、検索部143は、所定回数前の検索要求を、第1検索要求と識別してもよい。また例えば、検索部143は、前回から所定回数前までの検索要求を第1検索要求の候補に決定し、候補の中から第1検索要求を決定してもよい。また例えば、検索部143は、現時点から所定時間前までの間の検索要求を第1検索要求の候補に決定し、候補の中から第1検索要求を決定してもよい。また例えば、検索部143は、ユーザが電子商店街に最後にログインしてから現時点までの間の検索要求を第1検索要求の候補に決定し、候補の中から第1検索要求を決定してもよい。
なお、商品ページソース情報からの属性の抽出、タグの生成及び登録については、第1実施形態と同様である。
[2−2.情報処理システムの動作]
次に、情報処理システムSの動作について、図13及び図14を用いて説明する。図13は、本実施形態に係る電子商店街サーバ1の検索処理の一例を示すフローチャートである。図13において、図11と同様の処理については同様の符号が付されている。ユーザ端末3から検索要求を受信したとき、システム制御部14は、図10に示すような処理を実行する。今回受信した検索要求が第2検索要求である。ステップS55において、検索部143は、属性値語に決定された検索語の数が1以上であると判定した場合には(ステップS55:YES)、ステップS71に進む。ステップS71において、検索部143は、図13に示すように、属性条件追加処理を実行する。
図14は、本実施形態に係る電子商店街サーバ1の属性条件追加処理の一例を示すフローチャートである。図14に示すように、検索部143は、検索要求から、検索を要求したユーザのユーザIDを取得する。そして、検索部143は、取得したユーザIDに対応する検索履歴を検索履歴DB12gから検索する(ステップS81)。次いで、検索部143は、検索された検索履歴の中で、検索日時が最新である検索履歴を対象検索履歴に決定する(ステップS82)。対象検索履歴は、第1検索要求に対応する検索履歴として扱われる。
次いで、検索部143は、対象検索履歴に含まれる属性条件の数をカウントする。そして、検索部143は、受信した検索要求に基づいて生成した属性条件の数が、対象検索履歴に含まれる属性条件の数と一致するか否かを判定する(ステップS83)。このとき、検索部143は、生成した属性条件の数が、対象検索履歴に含まれる属性条件の数と一致すると判定した場合には(ステップS83:YES)、ステップS84に進む。一方、検索部143は、生成した属性条件の数が、対象検索履歴に含まれる属性条件の数と一致しないと判定した場合には(ステップS83:NO)、属性条件追加処理を終了させる。
ステップS84において、検索部143は、生成した1又は複数の属性条件のそれぞれから属性名を第1属性名として取得する。また、検索部143は、対象検索履歴に含まれる1又は複数属性条件のそれぞれから属性名を第2属性名として取得する。そして、検索部143は、取得された1又は複数の第1属性名の組み合わせと、取得された1又は複数の第2属性名の組み合わせとが一致するか否かを判定する(ステップS85)。このとき、検索部143は、第1属性名の組み合わせと1又は複数の第2属性名の組み合わせとが一致すると判定した場合には(ステップS85:YES)、ステップS86に進む。この場合、対象検索履歴に含まれる1又は複数属性条件は、第1属性に相当し、今回生成された1又は複数属性条件は、第2属性に相当する。一方、検索部143は、第1属性名の組み合わせと1又は複数の第2属性名の組み合わせとが一致しないと判定した場合には(ステップS85:NO)、属性条件追加処理を終了させる。
ステップS86において、検索部143は、検索を要求したユーザのユーザIDに対応する閲覧履歴のうち、閲覧日時が対象検索履歴の検索日時よりも後である閲覧履歴を、閲覧履歴DB12hから検索する。次いで、検索部143は、検索を要求したユーザのユーザIDに対応する注文履歴のうち、注文された商品の商品IDが、検索された閲覧履歴の商品IDと一致し、且つ、注文日時が、検索された閲覧履歴の閲覧日時よりも後である閲覧履歴を、閲覧履歴DB12hから検索する(ステップS87)。次いで、検索部143は、該当する検索履歴が発見されたか否かを判定する(ステップS88)。このとき、検索部143は、該当する検索履歴が発見されたと判定した場合には(ステップS88:YES)、属性条件追加処理を終了させる。一方、検索部143は、該当する検索履歴が発見されなかったと判定した場合には(ステップS88:NO)、ステップS89に進む。
ステップS89において、検索部143は、検索された閲覧履歴から商品IDを取得する。次いで、検索部143は、取得した商品IDが示す商品に対応する複数の商品属性の組み合わせを取得する。例えば、検索部143は、取得した商品IDに対応する商品ページソース情報から、在庫IDに関連付けられた属性の組み合わせを抽出してもよい。或いは、図8に示すタグDB更新処理において、属性抽出部141が、商品ページソース情報から在庫IDと属性の組み合わせを抽出したとき、在庫IDに対応付けて、属性の組み合わせに対応する商品属性の組み合わせを在庫DB12eに登録しておいてもよい。そして、検索部143が、在庫DB12eから、商品IDに対応する商品属性の組み合わせを取得してもよい。
次いで、検索部143は、取得された組み合わせの何れかから、組み合わせを構成する商品属性の数をカウントする。そして、検索部143は、商品属性の数が、対象検索履歴に含まれる属性条件の組み合わせの数よりも多いか否かを判定する(ステップS90)。このとき、検索部143は、商品属性の数が属性条件の組み合わせの数よりも多いと判定した場合には(ステップS90:YES)、ステップS91に進む。一方、検索部143は、商品属性の数が属性条件の組み合わせの数よりも多くはないと判定した場合には(ステップS90:NO)、属性条件追加処理を終了させる。
ステップS91において、検索部143は、取得された商品属性の組み合わせのうち、対象検索履歴に含まれる1又は複数の属性条件の組み合わせを含む組み合わせを、1又は複数特定する。次いで、検索部143は、特定された組み合わせに関連付けられた在庫IDに対応する在庫状況を在庫DB12eから取得する。そして、検索部143は、在庫状況に基づいて、特定された組み合わせの中に、注文の受け付けが不可能な組み合わせが存在するか否かを判定する(ステップS92)。このとき、検索部143は、注文の受け付けが不可能な組み合わせが存在すると判定した場合には(ステップS92:YES)、ステップS93に進む。一方、検索部143は、注文の受け付けが不可能な組み合わせが存在しないと判定した場合には(ステップS92:NO)、属性条件追加処理を終了させる。
ステップS93において、検索部143は、注文の受け付けが不可能な組み合わせから、対象検索履歴に含まれる属性条件以外の1又は複数の商品属性を取得する。次いで、検索部143は、取得した商品属性を追加属性条件に決定する(ステップS94)。追加属性条件は、第3属性に相当する。そして、検索部143は、属性条件追加処理を終了させる。
なお、注文の受け付けが不可能な組み合わせが複数存在する場合、検索部143は、例えば追加属性条件を決定しなくてもよいし、所定の条件に基づいて、何れかの組み合わせを追加属性条件に決定してもよい。
属性条件追加処理が終わると、検索部143は、図13に示すように、第1検索結果リスト及び第2検索結果リストを初期化する(ステップS72)。次いで、検索部143は、ステップS62〜S65を実行する。ステップS65において、検索部143は、1又は複数の属性条件が示す1又は複数の商品属性の全てを少なくとも含むタグが存在すると判定した場合には(ステップS65:YES)、ステップS73に進む。一方、検索部143は、1又は複数の属性条件が示す1又は複数の商品属性の全てを少なくとも含むタグが存在しないと判定した場合には(ステップS65:NO)、ステップS67に進む。
ステップS73において、検索部143は、属性条件追加処理において追加属性条件が決定されたか否かを判定する。このとき、検索部143は、追加属性条件が決定されたと判定した場合には(ステップS73:YES)、ステップS74に進む。一方、検索部143は、追加属性条件が決定されなかったと判定した場合には(ステップS73:NO)、ステップS75に進む。
ステップS74において、検索部143は、ステップS65の判定により特定されたタグであって、生成された1又は複数の属性条件が示す1又は複数の商品属性の全てを含むタグの中に、追加属性条件として決定された1又は複数の商品属性の全てを含むタグが存在するか否かを判定する。このとき、検索部143は、追加属性条件として決定された1又は複数の商品属性の全てを含むタグが存在すると判定した場合には(ステップS74:YES)、ステップS75に進む。一方、検索部143は、追加属性条件として決定された1又は複数の商品属性の全てを含むタグが存在しないと判定した場合には(ステップS74:NO)、ステップS76に進む。
ステップS75において、検索部143は、i番目の商品IDを第1検索結果リストに追加して、ステップS67に進む。ステップS76において、検索部143は、i番目の商品IDを第2検索結果リストに追加して、ステップS67に進む。
ステップS67において、検索部143は、番号iが商品IDの数の値未満であると判定した場合には(ステップS67:YES)、ステップS68に進む。ステップS68において、検索部143は、番号iに1を加算して、ステップS64に進む。一方、検索部143は、番号iが商品IDの数の値未満ではないと判定した場合には(ステップS67:NO)、ステップS77に進む。
ステップS77において、検索部143は、第1検索結果リスト及び第2検索結果リストに基づいて、検索結果ページを生成し、検索結果ページをユーザ端末3へ送信する。具体的に、検索部143は、第1検索結果リストに含まれる商品IDに対して、商品の情報の表示順を1番から順にN番まで決定する。Nは、第1検索結果リストに含まれる商品IDの数である。次いで、検索部143は、第2検索結果リストに含まれる商品IDに対して、商品の情報の表示順をN+1番から順に決定する。そして、検索部143は、表示順が前である商品IDほど、商品の情報が優先的に表示されるように、検索結果ページのHTML文書を生成する。次いで、検索部143は、検索結果ページのHTML文書を送信して、検索履歴を登録する。そして、検索部143は、検索処理を終了させる。なお、追加属性条件が決定されていない場合、第2検索結果リストに商品IDは登録されていない。従って、検索部143は、実質的に第1検索結果リストに基づいて検索結果ページを生成する。この場合の処理は、図10に示すステップS43と同様である。
以上説明したように、本実施形態によれば、システム制御部14が、検索条件として指定された第1属性を含む第1検索要求に基づいてタグDB12fから検索されたタグであって、そのタグが示す組み合わせの一部の属性が第1属性であるタグに関連付けられた商品IDが示す商品の商品ページが表示された後にその商品が購入されていない状態で、第1属性と属性区分が同一である何れかの第2属性を含む第2検索要求が受け付けられた場合、第1属性を含むその商品の複数の属性の組み合わせのうち、注文の受け付けが不可能であることを在庫状況が示す組み合わせから、第1属性以外の第3属性を特定する。また、システム制御部14が第2属性と第3属性との組み合わせを示すタグに関連付けられた商品IDをタグDB12fから検索する。従って、第1検索要求においてユーザは検索条件として指定しなかったものの、ユーザが所望する可能性がある属性を有する商品を、第2検索要求が受け付けられたときに検索することができる。
[3.第3実施形態]
[3−1.システム制御部の機能概要]
次に、第3実施形態におけるシステム制御部14の機能概要を説明する。検索部143は、第2実施形態と同様に、第2属性と第3属性との両方を含むタグを検索する。第3実施形態において、検索部143は、第1検索要求から商品のジャンルを特定する。このジャンルを第1ジャンルと称する。また、検索部143は、第2検索要求から商品のジャンルを特定する。このジャンルを第2ジャンルと称する。そして、検索部143は、第1ジャンルと第2ジャンルとの共通性が所定の条件を満たす場合にのみ、検索部143は、第2属性と第3属性との両方を含むタグに関連付けられた商品IDを検索する。一方、ジャンルの共通性が所定の条件を満たさない場合、検索部143は、第2属性と第3属性との両方を含むタグに関連付けられた商品IDを検索しない。その理由は、或るジャンルについて、ユーザは第3属性を有する商品を欲しいと考えていたとしても、全く異なるジャンルについては、ユーザは第3属性を有する商品を欲しいとは考えていないかもしれないからである。本実施形態によれば、ユーザが望んではいない属性を有する商品が検索されて、ユーザが望む商品をユーザが見付けにくくなることを防止することができる。
所定の条件は、例えば第1ジャンルと第2ジャンルとが一致することであってもよい。或いは、所定の条件は、例えば第1ジャンル及び第1ジャンルの祖先ジャンルのうち所定の基準レベルのジャンルと、第2ジャンル及び第2ジャンルの祖先ジャンルのうち所定の基準レベルのジャンルとが一致することであってもよい。比較される祖先ジャンルの基準レベルは、例えば全ジャンルで共通であってもよいし、ジャンルごとにジャンルDB12bに登録されていてもよい。また例えば、商品に関する所定の特徴ごとに、同一又は類似する特徴を有する複数のジャンルを定義する情報が記憶部12に記憶されてもよい。そして、検索部143は、この情報に基づいて、例えば第1ジャンルの特徴と第2ジャンルの特徴とが同一又は類似する場合、所定の条件を満たすと判定してもよい。
例えば、図12に示すように、第1検索要求の検索語「シャツ ネイビー」において、「シャツ」がジャンル名である。また、第2検索要求の検索語「カットソー ホワイト」において、「カットソー」がジャンル名である。「シャツ」及び「カットソー」のレベルはレベル3であり、これらのジャンルの親ジャンルは、例えば「トップス」であるとする。基準レベルがレベル2である場合、検索部143は、第2属性「カラー=ホワイト」と第3属性「サイズ=L」を含むタグを検索してもよい。そして、検索部143は、この検索の結果を、第2属性「カラー=ホワイト」を含むタグの検索結果よりも優先的に表示させる。一方、第2検索要求の検索語として、例えば「レギンス ホワイト」が入力されたとする。「レギンス」はジャンル名である。「レギンス」のレベルはレベル3であるとする。「レギンス」の親ジャンルは、例えば「ボトムス」であるとする。「ボトムス」と「トップス」の親ジャンルは、例えば「ファッション」であるとする。しかしながら、ジャンルの共通性は、基準レベルであるレベル2の祖先ジャンルで判断される。「ボトムス」は「トップス」と一致しないので、検索部143は、第2属性「カラー=ホワイト」と第3属性「サイズ=L」を含むタグを検索せずに、第2属性「カラー=ホワイト」を含むタグを検索してもよい。
本実施形態においては、入力された検索語から商品のジャンルが特定される。しかしながら、例えばユーザが商品のジャンルを検索条件として選択可能である場合、検索部143は、選択されたジャンルを特定してもよい。
[3−2.情報処理システムの動作]
次に、情報処理システムSの動作について、図15を用いて説明する。図15は、本実施形態に係る電子商店街サーバ1の属性条件追加処理の一例を示すフローチャートである。図15において、図14と同様の処理については同様の符号が付されている。
図15に示すように、検索部143は、ステップS81及びS82を実行する。次いで、検索部143は、対象検索履歴に含まれる1番目の検索語と一致又は類似するジャンル名をジャンルDB12bから検索し、検索されたジャンル名に対応するジャンルIDを取得する。次いで、検索部143は、記憶部12から基準レベルを取得する。そして、検索部143は、ジャンルDB12bに登録されている親ジャンルIDに基づいて、取得したジャンルIDが示すジャンル及びそのジャンルの祖先ジャンルのうち、基準レベルの祖先ジャンルのジャンルIDを取得する(ステップS101)。次いで、検索部143は、今回受信した検索要求に含まれる1番目の検索語と一致又は類似するジャンル名に対応するジャンルIDをジャンルDB12bから取得する。次いで、検索部143は、取得したジャンルIDが示すジャンル及びそのジャンルの祖先ジャンルのうち、基準レベルの祖先ジャンルのジャンルIDを取得する(ステップS102)。
次いで、検索部143は、ステップS101で取得されたジャンルIDとステップS102で取得されたジャンルIDとが一致するか否かを判定する(ステップS103)。このとき、検索部143は、ジャンルIDが一致すると判定した場合には(ステップS103:YES)、第2実施形態の場合と同様に、ステップS83〜S94を実行する。一方、検索部143は、ジャンルIDが一致しないと判定した場合には(ステップS103:NO)、属性条件追加処理を終了させる。
以上説明したように、本実施形態によれば、システム制御部14が、第1検索要求から特定される第1ジャンルと、第2検索要求から特定される第2ジャンルとの共通性が所定条件を満たす場合、第2属性と第3属性との組み合わせを示すタグに関連付けられた商品IDを検索する。一方、共通性が所定条件を満たさない場合、システム制御部14は、第2属性を含む組み合わせを示すタグに関連付けられた商品IDを検索する。従って、検索要求から特定される商品のジャンルの共通性に基づき、第1検索要求においてユーザが検索条件として指定しなかった第3属性が、ユーザが所望する可能性がある属性であるか否かを適切に判定することができる。
[4.第4実施形態]
[4−1.システム制御部の機能概要]
次に、第4実施形態におけるシステム制御部14の機能概要を、図16を用いて説明する。検索部143は、第2実施形態又は第3実施形態と同様に、第2属性と第3属性との両方を含むタグを検索する。第3実施形態において、検索部143は、第1検索要求の後、第2検索要求の前に第3検索要求が受け付けられ、且つ第3検索要求に基づいて検索された商品の中から第3属性を有する商品が注文された場合にのみ、第2属性と第3属性との両方を含むタグに関連付けられた商品IDを検索する。第3検索要求に対応してユーザは既に第3属性を有する商品を注文しているので、第2検索要求を行った時点でも、ユーザは第3属性を有する商品を欲している蓋然性がある。一方、ユーザが第3属性を有する商品を注文していない場合、ユーザは、第3属性を有する商品を欲してはいないかもしれない。本実施形態によれば、ユーザが望んではいない属性を有する商品が検索されて、ユーザが望む商品をユーザが見付けにくくなることを防止することができる。
以下に具体例を説明する。図16は、検索の過程の一例を示す図である。図16に示すように、例えば、ユーザが、トップページにおいて注文の受け付けが可能な商品の検索を指定し、検索語「シャツ L」を入力したとする。この場合、「L」が第1属性に相当する。ユーザ端末3は、検索語を含む第1検索要求を送信する。検索部143は、「サイズ=L」を少なくとも含むタグを検索し、タグに対応する商品IDに基づいて検索結果ページをユーザ端末3へ送信する。ユーザは、検索結果から、例えばシャツABCを選択して、図3(a)に示す商品ページが表示されたとする。
ユーザはシャツABCを注文せずに、トップページにおいて、例えば、検索語「セーター」を入力したとする。ユーザ端末3は、検索語を含む第3要求を送信する。検索部143は、第3要求に基づいて検索を実行し、検索結果ページをユーザ端末3へ送信する。ユーザは、検索結果ページから、例えばセーターXYZを選択して商品ページを表示させる。そして、ユーザは、カラーがネイビーであるセーターXYZを注文したとする。
その後、トップページにおいて、ユーザが、例えば注文の受け付けが可能な商品の検索を指定し、検索語「カットソー L」を入力したとする。この場合、「L」が第2属性に相当する。ユーザ端末3は、検索語を含む第2検索要求を送信する。この場合、第1属性の属性区分と第2属性の属性区分とが一致する。そして、第3属性の属性区分は「カラー」である。シャツABCについて、第1属性「L」を含む組み合わせのうち、注文が不可能な組み合わせは、「ネイビー、L」、及び「ホワイト、L」である。従って、第3属性は、「ネイビー」、「ホワイト」である。第3属性の属性区分「カラー」は、ユーザが注文したセーターXYZが有する属性の属性区分と一致する。ユーザが注文したセーターのカラーはネイビーであり、「ネイビー」は、第3属性の1つと一致する。
そこで、検索部143は、例えば商品ページソース情報が「カットソー」を含む商品のタグのうち、属性条件「サイズ=L」を含むタグを検索してもよい。そして、検索部143は、検索されたタグの中から、「カラー=ネイビー」を含むタグを検索してもよい。検索部143は、検索条件「カットソー、L、ネイビー」に対する検索結果が上位に表示され、検索語「カットソー、L」に対する検索結果のうち、検索語「カットソー、L、ネイビー」に対する検索結果を除く検索結果が下位に表示されるように、検索結果ページを生成してもよい。
検索部143は、例えば注文された商品が、第1属性の属性区分と同一の属性区分の属性を有する場合にのみ、第2属性と第3属性との両方を含むタグに関連付けられた商品IDを検索してもよい。また例えば、検索部143は、注文された商品が、第1属性及び第2属性の少なくとも一方と同一の属性を有する場合にのみ、第2属性と第3属性との両方を含むタグに関連付けられた商品IDを検索してもよい。
検索部143は、例えば前々回の検索要求を、第1検索要求と識別してもよい。また例えば、検索部143は、所定回数前の検索要求を、第1検索要求と識別してもよい。また例えば、検索部143は、前回から所定回数前までの検索要求を第1検索要求の候補に決定し、候補の中から第1検索要求を決定してもよい。また例えば、検索部143は、現時点から所定時間前までの間の検索要求を第1検索要求の候補に決定し、候補の中から第1検索要求を決定してもよい。また例えば、検索部143は、ユーザが電子商店街に最後にログインしてから現時点までの間の検索要求を第1検索要求の候補に決定し、候補の中から第1検索要求を決定してもよい。
[4−2.情報処理システムの動作]
次に、情報処理システムSの動作について、図17を用いて説明する。図17は、本実施形態に係る電子商店街サーバ1の属性条件追加処理の一例を示すフローチャートである。図17において、図14と同様の処理については同様の符号が付されている。
図17に示すように、検索部143は、ステップS81を実行する。次いで、検索部143は、ステップS81において検索された検索履歴の中で、検索日時が2番目に新しい検索履歴を対象検索履歴に決定する(ステップS111)。次いで、検索部143は、ステップ83〜S85を、第2実施形態の場合と同様に実行する。ステップS85において、検索部143は、第1属性名の組み合わせと1又は複数の第2属性名の組み合わせとが一致すると判定した場合には(ステップS85:YES)、ステップS112に進む。
ステップS112において、検索部143は、ステップS81で検索された検索履歴のうち、検索日時が最新の検索履歴からその検索日時を取得する。次いで、検索部143は、検索を要求したユーザのユーザIDに対応する閲覧履歴のうち、閲覧日時が、対象検索履歴の検索日時よりも後であり、且つ最新の検索履歴の検索日時よりも前である閲覧履歴を、閲覧履歴DB12hから検索する。次いで、検索部143は、ステップS87〜S93を、第2実施形態の場合と同様に実行する。
ステップS93の後、検索部143は、検索を要求したユーザのユーザIDに対応する注文履歴のうち、注文日時が、最新の検索履歴の検索日時よりも後である注文履歴を、注文履歴DB12iから検索する(ステップS113)。次いで、検索部143は、検索された注文履歴の中に、ステップS93において取得された商品属性を含む注文履歴が存在するか否かを判定する(ステップS114)。このとき、検索部143は、取得された商品属性を含む注文履歴が存在すると判定した場合には(ステップS114:YES)、ステップS94に進む。ステップS94において、検索部143は、取得した商品属性を追加属性条件に決定して、属性条件追加処理を終了させる。一方、検索部143は、取得された商品属性を含む注文履歴が存在しないと判定した場合には(ステップS114:NO)、属性条件追加処理を終了させる。
以上説明したように、本実施形態によれば、システム制御部14が、第1検索要求に基づく検索の後、第2検索要求が取得される前に、第3検索要求が受け付けられ、且つ第3検索要求に基づいて検索された商品の中から第3属性を有する商品が注文された場合、第2属性と第3属性との組み合わせを示すタグに関連付けられた商品IDを検索する。一方、第3属性を有する商品が注文されなかった場合、システム制御部14は、第2属性を含む組み合わせを示すタグに関連付けられた商品IDを検索する。従って、注文された商品の属性に基づき、第1検索要求においてユーザが検索条件として指定しなかった第3属性が、ユーザが所望する可能性がある属性であるか否かを適切に判定することができる。