以下、図面を適宜参照し、本発明の様々な実施形態を説明する。なお、複数の図面において共通する構成要素には同一の参照符号が付されている。
図1は、本発明の一実施形態に係るシステムを概略的に示すブロック図である。図示のとおり、本発明の一実施形態に係るシステムは、サーバ10と、クライアント端末30とを備える。図1には、クライアント端末30が1つのみ図示されているが、サーバ10には、2以上のクライアント端末が通信可能に接続され得る。
図1に示す実施形態において、サーバ10は、クライアント端末30とインターネット等のネットワーク20を介して通信可能に接続されており、クライアント端末30に対して様々なオンラインゲームサービス、電子掲示板サービス、及びコンテンツ提供サービスを提供することができる。例えば、サーバ10は、クライアント端末30から受信したゲームメッセージを所定のゲームロジック(又は当該ゲームロジックを実現するためのプログラム)に従って処理し、その処理結果をクライアント端末30に送信することができる。また、サーバ10は、ゲームの進行に必要な様々なゲームデータをクライアント端末30に提供することができる。オンラインクイズゲーム、電子掲示板サービス、及びコンテンツ提供サービスを提供するための具体的な機能については後述する。
サーバ10の例示的な構成を説明する。サーバ10は、図示のとおり、プロセッサ11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ15とを備える。これらの各構成要素は、不図示のバスを介して互いに電気的に接続される。プロセッサ11は、ストレージ15からオペレーティングシステムやゲームロジックを実現する様々なプログラムに含まれる命令をメインメモリ12にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ12は、プロセッサ11が実行する命令を格納するために用いられ、例えば、DRAMによって構成される。
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、プロセッサ11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、ネットワーク20を介してクライアント端末30と通信可能に構成される。
ストレージ15は、例えば磁気ディスクドライブで構成され、例えばゲームロジックを実現するためのゲーム制御用プログラム等の様々なプログラムが記憶される。また、ストレージ15には、ゲームにおいて用いられる各種データや電子掲示板にユーザから投稿された投稿データも記憶され得る。また、後述するように、サーバ10は、ウェブ上をクローリングすることでユーザに提供するコンテンツを収集することができる。このようにして収集されたコンテンツをストレージ15に格納することができる。ストレージ15に記憶され得る各種データは、サーバ10と通信可能に接続されたサーバ10とは物理的に別体のストレージ(例えばストレージ25)やデータベースサーバに格納されてもよい。図1においては、ストレージ15が単一のユニットとして図示されているが、ストレージ15は複数の物理的に別体のストレージが集合したものであってもよい。つまり、本明細書において、ストレージ15に記憶されるデータは、単一のストレージに記憶されてもよいし、複数のストレージに分散して記憶されてもよい。また、本明細書及び特許請求の範囲において、単に「ストレージ」という場合には、文脈上許される限り、単一のストレージと複数のストレージの集合のいずれを指し示すこともある。
本発明の一実施形態におけるサーバ10は、階層構造を有する複数のウェブページから成るウェブサイトを管理するウェブサーバである。クライアント端末30は、このウェブページを表示するためのHTMLデータをサーバ10から取得し、取得したHTMLデータを解析して得られるゲーム画面をクライアント端末30のディスプレイに表示することができる。プレイヤは、このゲーム画面を介してクライアント端末30に対して様々な入力を提供することで、プレイヤキャラクタに対する操作指示を行ったりメニューの選択を行ってゲームを進行させることができる。ストレージ15は、このクライアント30に提供するためのHTMLデータを記憶できる。HTMLデータは、HTML等のマークアップ言語で記述されたHTMLコードから成る。このHTMLコードには、様々な画像が関連付けられる。また、HTMLデータには、ActionScriptやJavaScript(登録商標)等のスクリプト言語等で記述されたプログラムが埋め込まれ得る。このように、サーバ10は、ゲームサービスを提供するウェブサイトを管理しており、当該ウェブサイトを構成するウェブページをクライアント端末30からの要求に応じて配信することによりゲームを進行させることができる。このようなウェブページを介して提供されるゲームは、ブラウザゲームと称されることがある。
本発明の一実施形態においては、クライアント端末30においてOSやミドルウェア等の実行環境上でゲームアプリケーションプログラムを実行することにより、このゲームアプリケーションプログラムとサーバ10とが協働してオンラインゲームを提供することができる。このゲームアプリケーションプログラムは、例えば、ストレージ15やストレージ25に格納されており、クライアント端末30からの要求に応じて、クライアント端末30にダウンロードされる。このゲームアプリケーションプログラムには、クライアント端末30での実行時に、サーバ10から提供されるゲームデータを処理するための命令セットが含まれる。また、クライアント端末30には、当該命令セット実行時に参照される画像データ等の各種データもダウンロードされる。ゲームアプリケーションプログラムは、ストレージ15及び外部ストレージ25以外の不図示のストレージに格納されてもよい。このゲームアプリケーションプログラムをクライアント端末30で実行することにより、所定のクイズシーケンスが実行され、ユーザに対してクイズゲームが提供される。このゲームアプリケーションプログラムは、他のゲーム、例えば、アクションゲーム、ロールプレイングゲーム、野球ゲーム等の一部として、クイズシーケンスを実行するものであってもよい。例えば、野球ゲーム用のゲームアプリケーションプログラムを実行することにより、当該野球ゲームに登場する実在の野球プレイヤに関するクイズをユーザに提供することができる。サーバ10及びクライアント端末30(又はクライアント端末30で実行されるゲームアプリケーションプログラム)によって実現されるゲームの種類は、本明細書において明示されたものに限られない。
このように、ゲームアプリケーションプログラム(又は当該プログラムに含まれる命令)をクライアント端末30で実行することにより、このゲームアプリケーションプログラムの機能とサーバ10の機能とを連携させてゲームを進行させることができる。このようなゲームアプリケーションプログラムを利用して提供されるゲームは、アプリゲームと称されることがある。本発明は、ブラウザゲームとアプリゲームのいずれにも適用可能である。
上述したように、サーバ10は、電子掲示板サービスを提供することができる。例えば、サーバ10は、所定のユーザから投稿されたコメントを他のユーザからも閲覧可能に記憶する。ユーザは、例えば、クライアント端末30のブラウザやアプリケーションプログラムを利用して、他のユーザから投稿されたコメントを閲覧することができる。本発明の一実施形態においては、クイズゲーム用のゲームアプリケーションプログラムの機能を利用して電子掲示板サービスにおける他のユーザの投稿を閲覧することができる。ユーザは、様々なデータ形式でコメントを作成することができる。例えば、ユーザのコメントは、テキストデータ、画像データ、動画データ、及び/又はこれらを組み合わせたデータ形式である。
図1には、サーバ10を単一のユニットとして示しているが、サーバ10は、物理的に別体の複数のサーバが集合したものであってもよい。つまり、図1において、サーバ10が備える構成は複数の異なるサーバに分散して備えられていてもよい。また、サーバ10が実行するものとして説明されている機能は、複数のサーバによって分散して実行されてもよい。このように、サーバ10は、物理的に単一の構成を有するサーバに限られず、物理的に別体のサーバが集合したものを指すこともできる。また、サーバ10の機能の少なくとも一部は、クライアント端末30によって実行されてもよい。
続いて、クライアント端末30について説明する。本発明の一実施形態に係るクライアント端末30は、サーバ10から取得したゲーム用ウェブサイトのウェブページをウェブブラウザ上で表示するブラウザゲームの実行環境、又は、ゲームアプリケーションプログラムを実行するためのアプリケーション実行環境を実装した任意の情報処理装置であり、例えば、携帯電話機、スマートフォン、タブレット端末、パーソナルコンピュータ、電子書籍リーダー、ウェアラブルコンピュータ、及びゲーム用コンソールを含むがこれらには限られない。
本発明の一実施形態に係るクライアント端末30は、図示のとおり、プロセッサ31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ35と、を含み、これらの各構成要素が不図示のバスを介して互いに電気的に接続されている。
プロセッサ31は、ストレージ35からオペレーティングシステム等の様々なプログラムをメインメモリ32にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ32は、プロセッサ31が実行する命令を格納するために用いられ、例えば、DRAMによって構成される。
ユーザI/F33は、プレイヤの入力を受け付ける情報入力装置と、プロセッサ31Aの演算結果を出力する情報出力装置であり、タッチスクリーンを備える液晶ディスプレイなどの表示装置を含む。通信I/F34Aは、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、ネットワーク20を介してサーバ10と通信可能に構成される。
ストレージ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。また、ストレージ35は、サーバ10から通信I/F34を介してゲームアプリケーションプログラムを受信した場合には、この受信したゲームアプリケーションプログラムを記憶することができる。
クライアント端末30は、ブラウザの機能を用いて、HTML形式のファイル(HTMLデータ)を解釈して表示画面を生成し、生成した表示画面をクライアント端末に備えられたタッチパネル等の表示部に表示することができる。また、ブラウザはHTMLデータに記述されたスクリプトを解釈し、当該スクリプトに従った処理を実行することができる。
クライアント端末30においては、プレイヤの操作に応じてゲームアプリケーションプログラムが起動され、クライアント端末30に実装されたプラットフォーム上で実行される。クライアント端末30においてゲームアプリケーションプログラムが実行されると、例えば、プログラムにより指示されたアニメーションや操作用アイコンがクライアント端末30の画面に表示される。プレイヤは、クライアント端末30のユーザI/F33Aを用いてゲームを進行させるための指示を入力することができる。
次に、本発明の一実施形態において、ストレージ15又はそれ以外のストレージに格納されるクイズコンテンツ、スコア、スレッド、及びクローリングにより収集されたコンテンツ(以下、「収集コンテンツ」という。)について説明する。
本発明の一実施形態において、クイズコンテンツは、図2に示す管理テーブルを用いて管理される。図2は、本発明の一実施形態においてクイズコンテンツを管理するクイズ管理テーブルの例を示す。本発明の一実施形態におけるクイズ管理テーブルは、図2に示すとおり、複数のクイズコンテンツの各々について、各クイズを識別するID(クイズID)に対応付けて、当該クイズの設問を示すテキスト形式の設問情報、当該設問に対する解答の複数の選択肢を示す選択肢情報、当該設問に対する正答を示す正答情報、当該クイズが属するカテゴリを示すカテゴリ情報を記憶する。一実施形態における管理テーブルは、複数のクイズの各々について、各クイズを識別するID(クイズID)に対応付けて、当該クイズの設問を示すテキスト形式の設問情報、当該設問に対する解答の複数の選択肢を示す選択肢情報、当該設問に対する正答を示す正答情報、各クイズが関連付けられる(分類される)カテゴリを示すカテゴリ情報(後述)、クイズのクイズシーケンスをクライアント端末30で実行させるためのクイズパッケージ情報の格納場所を示すURLを含むリンク情報を記憶する。本発明の一実施形態において、所定のクイズについてのクイズパッケージ情報は、例えばJavaScriptにより記述され、クライアント端末30のアプリケーションやブラウザで実行されたときに、当該所定のクイズの設問情報を表示し、その設問情報に対する解答を受け付け、当該パッケージ情報に含まれる正答情報を提示するように記述された情報である。
複数のクイズコンテンツの各々は、複数のカテゴリのうちの少なくとも1つと関連付けてクイズ管理テーブルに格納される。このカテゴリは、ユーザの関心に応じてクイズコンテンツ(及び後述するようにスレッド)を仕分けるための分類である。図2の例では、クイズID「0001」のクイズコンテンツのカテゴリ情報として「海外旅行」が設定されている。本発明の適用可能なカテゴリには、例えば、スポーツ、ゲーム、映画、音楽、歴史、文学、海外旅行等の様々なカテゴリが含まれる。また、本明細書におけるカテゴリには、カテゴリを細分化した下位カテゴリや、複数のカテゴリを含む上位カテゴリが含まれる。例えば、スポーツのカテゴリの下位カテゴリには、サッカー、野球、バスケットボールなどを含むことができる。また、映画、音楽、海外旅行のカテゴリを含む「趣味」という上位カテゴリにまとめることができる。クイズ管理テーブルにおいては、任意の数のクイズコンテンツを管理することができる。管理テーブルで管理される情報は図2に例示したものに限られず、例えば、クイズコンテンツがクライアント端末30に配信された配信回数やクイズコンテンツの正答率などを管理することができる。また、クイズの設問、選択肢、又は正答の一部又は全部が画像を用いて表される場合には、当該画像に対応する画像ファイルも記憶される。なお、管理テーブルには、ユーザが制作したクイズコンテンツンツを格納することもできる。
本発明の一実施形態において、ストレージ15には、上述した複数のカテゴリの各々に対する各ユーザの関心度を評価するためのスコアが格納される。このスコアは、例えば、図3に示すスコア管理テーブルを用いて管理される。図3は、本発明の一実施形態において、ユーザごとに当該スコアを管理するスコア管理テーブルの例を示す。図3に示すように、本発明の一実施形態におけるスコア管理テーブルには、サーバ10が提供するオンラインサービスの各ユーザのユーザIDと対応付けて、複数のカテゴリの各々に対する各ユーザの関心度を示すスコア値が格納されている。図3のスコア管理テーブルでは、例えば、ユーザID「000001」と対応付けて、当該ユーザIDで特定されるユーザのカテゴリ1(スポーツ)に対する関心度を示すスコア値「3」、当該ユーザのカテゴリ2(海外旅行)に対する関心度を示すスコア値「10」、当該ユーザのカテゴリ3(小説)に対する関心度を示すスコア値「5」が格納されている。一実施形態においては、所定のカテゴリについてのスコア値が大きいほど、当該所定のカテゴリに対するユーザの関心度が高いことを示す。本明細書では、各カテゴリのスコア値を総称して「スコア」と呼ぶことがある。つまり、所定のユーザについての「スコア」は、各カテゴリの「スコア値」からなる。
本発明の一実施形態において、スレッドは、図4に示す管理テーブルを用いて管理される。図4は、本発明の一実施形態においてスレッドを管理するスレッド管理テーブルの例を示す。本発明の一実施形態におけるスレッド管理テーブルは、図4に示すとおり、各スレッドを識別するID(スレッドID)に対応付けて、当該スレッドが属するカテゴリを示すカテゴリ情報、当該スレッドのタイトルを示すタイトル情報、及び当該スレッドに対する様々なユーザから投稿されたコメントを記憶する。一実施形態において、スレッドが分類されるカテゴリ情報は、クイズコンテンツが分類されるカテゴリ情報と同じものである。図4に示した実施例においては、スレッド管理テーブルにおいて、各スレッドに対して1000個までの投稿を管理することができる。この各スレッドに対する投稿数の上限は任意に定めることができる。また、スレッドごとの投稿数の上限を定めなくともよい。
また、本発明の一実施形態に係るストレージ15には、ウェブ上をクローリングして収集した収集コンテンツが格納される。収集コンテンツは、例えば、図5に示すコンテンツ管理テーブルを用いて管理される。ストレージ15には、図5に示すように、収集コンテンツの各々について、各コンテンツを識別するID(コンテンツID)に対応付けて、各コンテンツのカテゴリを示すカテゴリ情報及び当該コンテンツのウェブ上の位置を特定するURL情報が格納される。また、後述するように、サーバ10は、ユーザから各収集コンテンツに対するコメントの投稿を受け付けることができるので、所定の収集コンテンツに対して投稿されたコメントを、当該収集コンテンツのコンテンツIDと対応付けて、ストレージ15に格納することができる。コンテンツ管理テーブルには、図5に例示した以外にも様々なデータを格納することができる。
続いて、本発明の一実施形態に係るサーバ10の機能について説明する。本発明の一実施形態に係るサーバ10は、プロセッサ11により様々な命令セットを実行することにより、以下で説明する本発明の実施形態に関する機能を実現することができる。この本発明の一実施形態において、プロセッサ11により実行される命令セットには、クイズコンテンツ提供モジュール41と、スコア管理モジュール42と、スレッド生成モジュール43と、スレッド提供モジュール44と、コンテンツ収集モジュール45と、コンテンツ情報提供モジュール46と、投稿受付モジュール47と、ゲーム制御モジュール48と、が含まれる。
本発明の一実施形態に係るクイズコンテンツ提供モジュール41は、例えばストレージ15に格納されている複数のクイズコンテンツの中から一又は複数のクイズコンテンツを選択し、選択したクイズコンテンツをクライアント端末30に提供することができる。クイズコンテンツ提供モジュール41は、例えばクライアント端末30からのリクエスト(クイズコンテンツリクエスト)に応じて、クイズコンテンツを当該クライアント端末30に提供するように構成されてもよい。このリクエストは、例えば所定のカテゴリを特定するカテゴリ情報を含むことができる。クイズコンテンツ提供モジュール41は、リクエストにカテゴリ情報が含まれている場合には、ストレージ15に格納されている複数のクイズコンテンツの中から、当該カテゴリ情報に基づいて特定されるカテゴリに分類されているクイズコンテンツを選択し、当該選択したクイズコンテンツをクライアント端末30に提供することができる。
本発明の一実施形態に係るスコア管理モジュール42は、例えばクイズコンテンツ提供モジュール41によって所定のクイズコンテンツが所定のユーザに提供されたことに応じて、図3のスコア管理テーブルに格納されている当該所定のユーザについてのスコアを更新するように構成される。一実施形態においては、ユーザへ提供されたクイズコンテンツが属するカテゴリのスコア値が大きくなるように、当該所定のユーザのスコアが更新される。このようにして、スコア管理テーブルに格納されている所定のユーザについてのスコアは、当該所定のユーザにクイズコンテンツが提供されたときに、当該クイズコンテンツが関連付けられているカテゴリに対するユーザの関心度が高くなるように更新される。
本発明の一実施形態に係るスレッド生成モジュール43は、クライアント端末30からのスレッド生成リクエストに応じて新たなスレッドを生成することができる。新たなスレッドが生成されると、スレッド管理テーブルに、当該新たなスレッドに対応するレコードが生成される。スレッド生成リクエストについては後述する。
本発明の一実施形態に係るスレッド提供モジュール44は、ストレージ15に格納されている複数のスレッドの中から一又は複数のスレッドを選択し、選択したスレッドを所定のユーザに提供することができる。スレッドは、ユーザからのリクエストに応じて当該ユーザに提供されてもよいし、ユーザからのリクエストが無くともゲームの進行に応じた所定のタイミングでユーザに提供されてもよい。クライアント端末30に提供されるスレッドには、当該スレッドが属するカテゴリと同じカテゴリに属するクイズコンテンツを取得するための情報(例えば、図2のリンク情報)を含めてもよい。
例えば、ユーザID「000001」のユーザからスレッドの取得要求を受けた場合には、図3のスコア管理テーブルを用いて管理されている当該ユーザのスコアに基づいて、当該ユーザに提供するスレッドを選択する。より具体的には、スレッド提供モジュール44は、当該ユーザについて、例えば図3に示すスコア管理テーブルに格納されているカテゴリについてのスコア値を参照し、この各カテゴリのスコア値に基づいて当該ユーザの関心度が高いカテゴリを選択し、当該カテゴリに属するスレッドの中から当該ユーザに提供するスレッドを選択する。例えば、図3の例では、ユーザID「000001」で特定されるユーザについて、カテゴリ1(スポーツ)のスコア値は「3」、カテゴリ2(海外旅行)のスコア値は「10」、カテゴリ3(小説)のスコア値は「5」となっているので、スレッド提供モジュール44は、このうち最もスコア値が高いカテゴリ2(海外旅行)を選択し、図4のスレッド管理テーブルにおいてこのカテゴリ2(海外旅行)と関連付けられているスレッドを、当該ユーザに提供すべき選択スレッドとして選択する。
図4のスレッド管理テーブルにおいて、各カテゴリには複数のスレッドが関連づけられていてもよい。各カテゴリに複数のスレッドが関連付けられている場合には、スレッド提供モジュール44によって選択されるスレッドは、1つであってもよく複数であってもよい。例えば、図4のスレッド管理テーブルにおいて、カテゴリ2(海外旅行)のカテゴリに関連付けて、100個のスレッドを格納することができる。この場合、スレッド提供モジュール44は、当該100個のスレッドの中から一又は複数のスレッドを選択し、選択した一又は複数のスレッドをユーザに提供することができる。
このように、本発明の一実施形態において、スレッド提供モジュール44は、所定のユーザへ提供するスレッドを、当該所定のユーザが最も高い関心を持っているカテゴリ(当該所定のユーザに関してスコア値が最も高いカテゴリ)の中から選択することができる。
スレッド提供モジュール44は、上述した以外にも様々な選択規則を用いて、ユーザに提供するスレッドを選択することができる。例えば、本発明の他の実施形態に係るスレッド提供モジュール44は、各カテゴリから、当該各カテゴリのスコア値に応じた数のスレッドを選択することができる。例えば、図3の例では、ユーザID「000001」で特定されるユーザについて、カテゴリ1(スポーツ)のスコア値は「3」、カテゴリ2(海外旅行)のスコア値は「10」、カテゴリ3(小説)のスコア値は「5」となっているので、カテゴリ1から選択されるスレッドの数N1、カテゴリ2から選択されるスレッドの数N2、及びカテゴリ3から選択されるスレッドの数N3の比が、N1:N2:N3=3:10:5で表される比かこれに近い比となるようにする。。例えば、ユーザに対して合計で7つのスレッドを提供する場合には、カテゴリ1に関連付けられている複数のスレッドの中から1つのスレッドを選択し、カテゴリ2に関連付けられている複数のスレッドの中から4つのスレッドを選択し、カテゴリ3に関連付けられている複数のスレッドの中から2つのスレッドを選択することができる。この場合、各カテゴリから選択されるスレッド数の比はN1:N2:N3=1:4:2となり、スコア値の比である3:10:5と近くなる。なお、必ずしも全てのカテゴリからスレッドを選択する必要はなく、一部のカテゴリからはスレッドを選択しなくともよい
当該実施形態によれば、ユーザの各カテゴリに対する関心度の比に応じた数のスレッドを選択することができる。
本発明の一実施形態に係るコンテンツ収集モジュール45は、ウェブ上をクローリングすることで、様々なコンテンツを収集するように構成される。収集対象となるコンテンツには、通信社や新聞社(メディア)がウェブで提供するニュースコンテンツや個人が公開しているブログ記事などの個人コンテンツなどの様々なコンテンツが含まれる。コンテンツ収集モジュール45は、所定のサーバがホストしている全てのウェブページを収集してもよい。例えば、コンテンツ収集モジュール45は、所定の新聞社のウェブサイトで公開されている全てのウェブページを収集することができる。
コンテンツ収集モジュール45は、所定の検索キーワードを用いて検索を行うことにより、当該検索キーワードを含むウェブページのみを収集してもよい。本発明の一実施形態においては、クイズコンテンツやスレッドの分類に用いられているカテゴリを表す文字列(例えば、上述した例における「海外旅行」、「スポーツ」、「小説」など)を検索キーワードとして設定することができる。
一実施形態に係るコンテンツ収集モジュール45は、ウェブから収集した収集コンテンツ(例えばニュース記事のウェブページ)を複製して、この複製した収集コンテンツを例えばストレージ15に格納することができる。
また、一実施形態に係るコンテンツ収集モジュール45は、収集コンテンツの各々を識別するコンテンツIDを生成する。そして、コンテンツ収集モジュール45は、収集コンテンツを解析して当該収集コンテンツのタイトル、ヘッドライン、及び/又は見出しを抽出し、抽出したこれらのデータを当該収集コンテンツを識別するコンテンツIDと対応付けてコンテンツ管理テーブル(図5参照)に格納することができる。収集コンテンツに画像が含まれる場合には、当該画像をストレージ15に格納し、当該画像の格納位置を示すURLを当該収集コンテンツのコンテンツIDと対応付けてコンテンツ管理テーブルに格納してもよい。
本発明の一実施形態に係るコンテンツ情報提供モジュール46は、ストレージ15に格納されている収集コンテンツに関連するコンテンツ情報をクライアント端末30に提供する。本発明の一実施形態において、所定の収集コンテンツについてのコンテンツ情報には、当該収集コンテンツに関連してコンテンツ管理テーブルに格納されている情報が含まれる。例えば、所定の収集コンテンツについてのコンテンツ情報には、当該収集コンテンツのネット上での位置を示すURL、当該収集コンテンツのタイトル、ヘッドライン、及び/又は見出しを含むことができる。コンテンツ情報提供モジュール46は、所定件数(例えば10件)の収集コンテンツに関連するコンテンツ情報をリスト形式でクライアント端末30に提供することができる。後述するように、サーバ10は、ユーザから収集コンテンツに対するコメントを受け付けることができ、受け付けたコメントを当該収集コンテンツのコンテンツIDと対応付けてコンテンツ管理テーブルに格納することができる。このようなユーザからのコメントもコンテンツ情報に含められる。
本発明の一実施形態に係る投稿受付モジュール47は、例えばスレッド提供モジュール44がスレッドを提供したユーザ又はそれ以外のユーザから、当該スレッドに対する投稿を受け付けるように構成される。ユーザは、クライアント端末30を用いて、所定のスレッドに対するコメントを生成し、当該コメントをサーバ10に投稿することができる。このコメントは、例えば、テキストデータ、画像データ、動画データ、又はこれらの組み合わせから成る。投稿受付モジュール47は、クライアント端末30から投稿されたコメントを受け付け、受け付けたコメントを例えば図4のスレッド管理テーブルの所定領域に格納する。例えば、スレッドID「000001」で識別されるスレッドに対する3番目のコメントを受け付けた場合には、スレッドID「000001」のレコードの「投稿3」の列に、当該受け付けたコメントを格納する。本発明の一実施形態に係る投稿受付モジュール47は、コンテンツ情報提供モジュール46によって提供された収集コンテンツに対するに対応するコンテンツ情報に対するユーザからのコメントを受け付けることができる。例えば、ニュース記事のウェブページのURLや見出しがコンテンツ情報としてユーザに提供されると、ユーザは、当該URLを利用して当該ニュース記事のウェブページを閲覧し、そのニュース記事に対するコメントを投稿することができる。収集コンテンツに対するお面とが受け付けられると、当該コメントは、例えば、図5のコンテンツ管理テーブルの所定列(例えば、投稿1の列)に格納される。
本発明の一実施形態に係るゲーム制御モジュール48は、クイズコンテンツ提供モジュール41により提供されるクイズコンテンツ以外のクイズゲームを実行するための様々なゲームデータをクライアント端末30に提供することができる。ゲーム制御モジュール48が所定のユーザに提供するゲームデータには、例えば、所定のユーザの正答率を示す正答率情報などのクイズゲームに関する様々なデータが含まれる。また、クイズゲームがユーザ同士の対戦形式となる場合には、対戦相手に関するデータ(正答率等)、戦歴に関するデータなどが含まれてもよい。また、ゲーム制御モジュール41は、プレイヤ同士のコミュニケーションを促進するためにチャット機能やメッセージング機能を提供することもできる。
続いて、クライアント端末30において実行される機能を説明する。本発明の一実施形態に係るクライアント端末30は、プロセッサ31により様々な命令セットを実行することにより、以下で説明する本発明の実施形態に関する機能を実現することができる。この本発明の一実施形態において、プロセッサ31により実行される命令セットには、クイズシーケンスモジュール61と、スレッド取得モジュール62と、コンテンツ情報取得モジュール63と、投稿モジュール64と、スレッド生成要求モジュール65と、表示切替モジュール66と、を備える。
本発明の一実施形態に係るクイズシーケンスモジュール61は、サーバ10から所定のクイズコンテンツに関するクイズパッケージ情報を取得し、当該クイズパッケージ情報に基づいてクイズシーケンスを実行することができる。一実施形態において、所定のクイズコンテンツについてのクイズシーケンスは、当該所定のクイズコンテンツの設問をユーザに提示する処理、当該設問に対する解答を受け付ける処理、受け付けた解答が正答か否かを判断する処理、及び当該所定のクイズコンテンツの設問に対する正答を提示する処理が含まれる。
本発明の一実施形態に係るスレッド取得モジュール62は、サーバ10から、例えばスレッド提供モジュール44により選択されたスレッドを取得し、取得したスレッドをクライアント端末30のディスプレイに表示するように構成される。スレッド取得モジュール62によって取得されるスレッドには、ユーザから当該スレッドに対して投稿された一又は複数のコメントが含まれる。
本発明の一実施形態に係るコンテンツ情報取得モジュール63は、サーバ10から、一又は複数の収集コンテンツのコンテンツ情報を取得し、当該コンテンツ情報をクライアント端末30のディスプレイに表示するように構成される。
本発明の一実施形態に係る投稿モジュール64は、所定のスレッドについてユーザから入力されたコメントをサーバ10に投稿するように構成される。投稿モジュール64は、例えば、クライアント端末30のディスプレイにスレッド又はコンテンツ情報が表示されているときに、当該スレッド又はコンテンツ情報に対するコメントを生成するための対話画面を表示し、当該対話画面を介して入力された情報に基づいて当該スレッド又はコンテンツ情報に関するコメントを生成することができる。このようにして生成されたコメントは、サーバ10に送信される。
本発明の一実施形態に係るスレッド生成要求モジュール65は、スレッド取得モジュール62が取得したスレッドに含まれるコメントの数に応じて、新規のスレッドを生成するための画面要素をクライアント端末30の表示部(例えば、タッチパネル)に表示する。スレッドに対して投稿されるコメントは、サーバ10において随時受け付けられ、スレッド管理テーブルに格納されるので、スレッド取得モジュール62は、一旦スレッドを取得した後も所定の時間間隔ごとに(又はユーザの操作に応じて)サーバ10にアクセスし、当該スレッドに対する最新のコメントを取得することができる。本発明の一実施形態に係るスレッド生成要求モジュール65は、スレッドに含まれるコメント数(追加的にコメントが取得された場合には当該追加されたコメントも含む最新のコメント数)と予め定められた閾値とを比較し、当該スレッドに含まれるコメント数が当該閾値よりも大きい場合に、新たなスレッドを生成するための画面要素をクライアント端末30のタッチパネルに表示させる。
スレッド生成要求モジュール65は、当該タッチパネルによって当該画面要素に対するユーザからの操作が検出されると、新たなスレッドの生成を要求するためのスレッド生成リクエストを生成し、当該スレッド生成リクエストをサーバ10に送信することができる。
スレッド生成要求モジュール65によってスレッド生成リクエストが生成されるのは上述した場合に限られない。例えば、スレッド生成要求モジュール65は、投稿モジュール64によってコンテンツ情報に対するコメントが生成された場合(又は、当該コメントがサーバ10に送信された場合)にスレッド生成リクエストを生成し、生成したスレッド生成リクエストをサーバ10に送信することができる。
上述したように、サーバ10においてスレッド生成リクエストが受け付けられると、スレッド生成モジュール43によって、新たなスレッドが生成される。このようにして生成された新たなスレッドは、クライアント端末30に提供される。このようにして取得した新たなスレッドは、クライアント端末30の表示部に表示される。
本発明の一実施形態に係る表示切替モジュール66は、新たなスレッド、及び、画面表示を以前のスレッドへ切り換えるための画面要素、を含む表示画面を生成し、当該表示画面をクライアント端末30のタッチパネルに表示することができる。表示切替モジュール66は、当該タッチパネルによって当該画面要素に対するユーザからの操作が検出されると、以前のスレッドを含む表示画面を生成し、当該表示画面をクライアント端末30のタッチパネルに表示する。
表示切替モジュール66は、当該以前のスレッドを含む表示画面に、新たなスレッドへ切り換えるための画面要素を含めることができる。そして、当該画面要素に対するユーザからの操作が検出されると、表示切替モジュール66は、当該新たなスレッドを含む表示画面をクライアント端末30のタッチパネルに表示させる。
このように、表示切替モジュール66は、あるスレッドを含む表示画面がクライアント端末30の表示部に表示されているときに、当該表示画面に他のスレッドへ表示を切り替えるための画面要素を含めることができる。そして、ユーザからの当該画面要素に対する操作が検出されると、現在表示されているスレッドとは別のスレッドへ表示画面を切り替えることができる。このようにしてスレッド間の連携を高めることができる。
次に、図6Aを参照し、本発明の一実施形態に従って、ユーザに対してカテゴリごとに分類されたクイズコンテンツを提供することにより、当該ユーザの各カテゴリに対する関心度を評価するためのスコアを生成及び更新する処理の流れを説明する。
まず、ステップS102において、ユーザがクライアント端末30から送信したクイズコンテンツを取得するためのリクエストが受け付けられると、ストレージに格納されている複数のクイズコンテンツのうちの所定のクイズコンテンツがクライアント端末30に提供される。クライアント端末30からのリクエストは、例えば、以下のようにしてサーバ10に送信される。まず、クライアント端末30においてゲームアプリケーションプログラムが起動されると、カテゴリ一覧を示す表示画面が生成され、当該表示画面がクライアント端末30の表示部に表示される。クライアント端末30は、例えば、タッチパネルを備えており、当該タッチパネルに表示画面を表示することができる。このようにして表示された表示画面において示されているカテゴリの中からユーザによって所望のカテゴリが選択されると、当該選択されたカテゴリを特定するカテゴリ情報を含むリクエストがサーバ10に送信される。サーバ10では、当該リクエストに含まれているカテゴリ情報に基づいてカテゴリを特定し、この特定されたカテゴリに分類されている複数のクイズコンテンツの中から所定のクイズコンテンツが選択され、そして、当該選択されたクイズコンテンツがクライアント端末30に提供される。クイズコンテンツは、例えば、上述したクイズパッケージ情報の形式でクライアント端末30に提供される。以上のクイズコンテンツを提供する処理は、例えば、上述したクイズコンテンツ提供モジュール41により実行される。
クイズコンテンツを取得したクライアント端末30は、当該クイズコンテンツに基づいて、所定のクイズについてのクイズシーケンスを実行することができる。例えば、サーバ10から所定のクイズコンテンツに関するクイズパッケージ情報が提供されると、当該クイズパッケージ情報に基づいて、当該所定のクイズコンテンツの設問をユーザに提示する処理、当該設問に対する解答を受け付ける処理、受け付けた解答が正答か否かを判断する処理、及び当該所定のクイズコンテンツの設問に対する正答を提示する処理を含むクイズシーケンスが実行される。このクイズシーケンスを実行する処理は、上述したクイズシーケンスモジュール61によって実行される。
図10ないし図12は、クライアント端末30においてクイズシーケンスが実行される際の表示画面の一例を示す。例えば、クイズ管理テーブルにおいてクイズID「0001」と対応付けて格納されているクイズコンテンツ(クイズパッケージ情報)がクライアント端末30に提供されると、当該クライアント端末30において、当該クイズコンテンツについてクイズシーケンスが実行される。具体的には、まず、図10に示すように取得されたクイズコンテンツに含まれている設問81とその設問81に対する選択肢82aないし選択肢82dを含む表示画面80が生成され、生成された表示画面80が当該クライアント端末30の表示部に表示される。図10に示す例では、「シンガポールの観光名所は?」という設問81が表示され、この設問81に対する正答を含む選択肢82aないし選択肢82dが表示されている。
ユーザは、選択肢82aないし選択肢82dの中から、自らが正答と考える選択肢を解答として選択することができる。クライアント端末30は、例えば、タッチスクリーンを備えており、表示画面80は、このタッチスクリーンに表示される。このタッチスクリーンは、ユーザが接触した位置を検知することができ、当該接触位置に応じて、選択肢82aないし選択肢82dのうちどの選択肢がユーザによって選択されたかを決定することができる。
ユーザによって選択肢82aないし選択肢82dの中からいずれかの選択肢が解答として選択されると、当該ユーザの解答が正答か否かが判断される。例えば、ユーザが図10に示されている設問81に対して選択肢82d(「マーライオン」)を選択した場合には、当該解答は正答と判断され、図11に示すように、ユーザの解答が正答であることを示すメッセージ83が表示される。一方、ユーザが選択肢82b(「自由の女神」)を選択した場合には、当該解答は誤っているので、図12に示すように、ユーザの解答が誤答であることを示すメッセージ84(「不正解です。」)を表示する。このメッセージ84には、正答を示す情報(例えば「正解はマーライオン」です。)を含めてもよい。
クイズコンテンツがユーザに提供されると(又は、提供されたクイズコンテンツのクイズシーケンスがクライアント端末30で実行されると)、処理はステップS104に進む。ステップS104においては、ステップS102においてユーザに提供されたクイズコンテンツが属するカテゴリのスコア値が大きくなるように、スコア管理テーブルに格納されているスコアが更新される。例えば、クイズID「0001」と対応付けて格納されているクイズコンテンツがユーザID「000001」で表されるユーザ(ユーザ1)に対して提供された場合には、スコア管理テーブルにおいて、当該ユーザID「000001」に関連付けて格納されている複数のスコア値のうち、クイズID「0001」で識別されるクイズコンテンツが属する「カテゴリ2(海外旅行)」のスコア値が更新される。例えば、図3に示すように当該クイズコンテンツがユーザ1に提供される前のカテゴリ2のスコア値が「10」だった場合には、当該スコア値を例えば「12」に増加させることができる。スコア値の増加幅は、予め定められた一定の増加幅であってもよいし、ユーザが当該クイズコンテンツの設問に対して正解したか否かによって変更されてもよい。例えば、関心がある分野については出題されたクイズに対する正答率も高いと考えられるため、正解した場合のスコア値の増加幅を不正解の場合の増加幅よりも大きくすることにより、スコア管理テーブルに格納するスコア値がユーザの関心度をより正しく反映したものとなることが期待される。
以上の処理は、ユーザにクイズコンテンツが提供される都度繰り返されてもよい。よって、ユーザがクイズコンテンツを利用することにより、当該ユーザについてのスコアが更新される。例えば、ユーザが所定のカテゴリについて多数のクイズコンテンツを取得し、そのクイズコンテンツを利用してクイズを解いた場合には、当該カテゴリのスコア値が高くなる。このように、ユーザがクイズゲームをプレイすると、当該ユーザが関心を持っているカテゴリのスコア値が高くなるように、当該ユーザについてのスコアが更新される。なお、各カテゴリのスコア値には、初期値として「0」を設定しておくことができる。図6Aに示す処理をユーザにクイズコンテンツが提供される都度繰り返すことにより、各カテゴリのスコア値がユーザの関心度をより正しく反映するようにできる。
次に、図6Bを参照し、本発明の一実施形態に従って、ユーザに対してスレッドを提供し、当該ユーザから投稿を受け付ける処理の流れを説明する。図6Bは、本発明の一実施形態に従って、ユーザに対してスレッドを提供し、当該ユーザからコメントの投稿を受け付ける処理の流れを示すフロー図である。
図6Bに示す処理が開始されると、まず、所定のユーザのクライアント端末30からスレッドの取得要求がなされる。ステップS106において、当該スレッドの取得要求が受け付けられると、スコア管理テーブルに格納されている当該所定のユーザのスコアに基づいて、例えばストレージ15に格納されている複数のスレッドの中から一又は複数のスレッドが選択され、当該選択されたスレッドが当該所定のユーザに対して提供される。例えば、ユーザID「000001」で特定されるユーザ1からスレッドの取得要求を受け付けると、スレッド管理テーブルにおいて当該ユーザ1のユーザID「000001」に関連付けて格納されている各カテゴリのスコア値が参照され、当該スコア値に基づいて一又は複数のカテゴリが選択される。そして、スレッド管理テーブルにおいてこの選択されたカテゴリに関連付けられているスレッドの中から所定数のスレッドが選択され、選択されたスレッドが当該ユーザ1に提供される。
例えば、図3のスコア管理テーブルにおいては、ユーザID「000001」に関連付けて格納されている各カテゴリのスコア値は、カテゴリ1については「3」、カテゴリ2については「10」、カテゴリ3については「5」であるから、最もスコア値が高いカテゴリ2に分類されているスレッドの中から、他のカテゴリに分類されているスレッドよりも多くのスレッドが選択される。このとき、例えば、各カテゴリのスコア値に応じて、カテゴリ1からは1つのスレッドが選択され、カテゴリ2からは4つのスレッドが選択され、カテゴリ3からは2つのスレッドが選択される。このようにして選択されたスレッドは、クライアント端末30に提供される。スレッドは、当該スレッドのタイトル、当該スレッドについて各ユーザからの投稿されたコメント、及びこれら以外の情報を含む。所定のスレッドがクライアント端末30に提供されると、クライアント端末30においては、提供された複数のスレッドの各々のタイトルの一覧を含む表示画面が生成され、当該表示画面がクライアント端末30の表示部に表示される。図13は、クライアント端末30に表示されたスレッド一覧を含む表示画面の一例を示す。図13に示すように、クライアント端末30に表示される表示画面85には、表示領域91aないし表示領域91cが含まれている。表示領域91aには、カテゴリ2から選択された4つのスレッドの各々のタイトルが含まれており、表示領域91bにはカテゴリ3から選択された2つのスレッドの各々のタイトルが表示されており、表示領域91cには、カテゴリ1から選択された1つのスレッドのタイトルが含まれている。表示領域91aないし表示領域91cは、図13に示すように、対応するカテゴリのスコア値が高い順に上から下へ配置されてもよい。図13の例では、最もスコア値が高いカテゴリ2の表示領域91aが最上位に表示されている。
各カテゴリの表示領域91aないし表示領域91cに表示されているスレッドのタイトルのいずれかがユーザによって選択されると、当該選択されたスレッドがクライアント端末30の表示部に表示される。クライアント端末30がスレッドを表示するためのデータ(例えば、各ユーザから投稿されたコメント)を保持していない場合には、各スレッドのタイトルに当該スレッドの格納場所を示すURLを含むリンク情報を関連付けておくことにより、ユーザが表示領域91aないし表示領域91cに表示されているスレッドのタイトルのいずれかを選択したときに、当該選択されたスレッドの取得要求をサーバ10に送信することができる。サーバ10においては、スレッドの選択要求に基づいてスレッドを特定し、特定したスレッドを当該ユーザに提供する。
例えば、表示領域91aの「夏休みの旅行」というタイトルのスレッドがユーザによって選択されると、当該スレッドがクライアント端末30の表示部に表示される。図14は、クライアント端末30の表示部に表示されたスレッドを含む表示画面90の表示例を示す。図14に示すように、この表示画面90は、表示されているスレッドの番号を示す表示領域95と、投稿されたコメントの表示領域96と、入力領域97と、投稿ボタン98と、クイズリクエストボタン99とを含む。表示領域96には、当該スレッドに対してユーザから投稿されたコメントが例えば時系列で表示される。スレッドとは、一般に、特定のテーマに対してユーザから投稿された一又は複数のコメントから成るコメントの集合(まとまり)を意味する。本明細書におけるスレッドもこれと同様の意味である。したがって、本明細書において、表示画面90(及びこれ以外の表示画面)がスレッドを含むという場合には、当該スレッドに関して投稿されたコメントの表示領域が当該表示画面に設けられており、当該表示領域に当該スレッドに対して投稿されたコメントが表示されていることを意味する。本明細書では、図14に表示されているスレッドを説明の便宜上「スレッド1」と称することがある。入力領域97は、ユーザからのコメントの入力を受け付けるための領域である。ユーザは、入力領域97にコメントを入力した後投稿ボタン98を選択することにより、当該コメントをサーバ10に送信することができる。図示していないが、表示画面90には、表示されているスレッドのカテゴリ及びタイトルを表示してもよい。ユーザは、コメントを投稿せずに、他のユーザのコメントの閲覧のみを行ってもよい。
また、表示画面90のクイズリクエストボタン99がユーザによって選択されると、表示されているスレッドと同じカテゴリに属するクイズコンテンツの取得を要求するクイズリクエストがサーバ10に送信される。
上記のようにしてスレッドがクライアント端末30に提供されると処理はステップS108に進む。ステップS108において、クライアント端末30から所定のスレッドに関してコメントの投稿が受け付けられた場合には、処理はステップS110に進み、当該投稿されたコメントがスレッド管理テーブルに格納され、これにより当該スレッドが更新される。例えば、図14に示すように、スレッドID「000001」で識別されるスレッドを含む表示画面90を介してコメントが投稿された場合には、図4に示すスレッド管理テーブルに、スレッドID「000001」に対応付けて当該コメントが格納される。ユーザからのコメントをサーバ10に投稿する処理は、例えば、上述した投稿モジュール64により実行され、投稿されたコメントに基づいてスレッドを更新する処理は、例えば、上述した投稿受付モジュール47により実行される。
次に、処理はステップS112に進む。ステップS112においては、クイズリクエストがクライアント端末30から送信されたか否かが判断される。サーバ10においてクライアント端末30からのクイズリクエストが受け付けられると、当該クイズリクエストに基づいてクイズコンテンツを提供するために、処理は図6Aに示した処理フロー(ステップS102)に移行する。一方、クイズリクエストが受け付けられなかった場合には、処理はステップS108に戻り、再びコメントが投稿されたか否かが判断される。以下、当該スレッドの閲覧を終了するまで、ユーザの操作に応じてステップS108ないしステップS112の処理が繰り返される。
次に、図7を参照し、本発明の一実施形態に従って、現行スレッドのコメント数に応じて新規スレッドを生成する処理の流れを説明する。図7の処理が開始されると、まず、ステップS202において、サーバ10から、一又は複数のスレッドが取得される。スレッドは、例えば図6BのステップS106において説明したのと同様の手順でサーバ10からクライアント端末30に提供される。このとき、例えば図13に示すように、クライアント端末30においては、提供された複数のスレッドの各々のタイトルの一覧を含む表示画面が生成され、当該表示画面がクライアント端末30の表示部に表示される。
クライアント端末30に提供されたスレッドには一又は複数のコメントが含まれている。ステップS106においては、所定の時間間隔で、又は、ユーザからの更新を要求する操作に応じて、取得したスレッドを更新するためにクライアント端末30がサーバ10にアクセスし、所定のスレッドを取得した時点よりも後に投稿された追加のコメントがクライアント端末30を取得することができる。そして、表示領域91aの「夏休みの旅行」というタイトルのスレッドがユーザによって選択されると、図14に示すように、当該スレッドを表す表示画面90がクライアント端末30の表示部に表示される。
所定数のスレッドがクライアント端末30に提供されると、処理はステップS204に進む。ステップS204では、ユーザによって閲覧されているスレッドに含まれているコメントの数が閾値以上か否かが判断される。この閾値は任意に定めることができる。例えば、スレッドに含めることができるコメント数の上限が1000である場合には、当該閾値は例えば「950」に設定される。例えば、ユーザが図14に示すスレッド(スレッド1)を閲覧している場合には、当該スレッドに含まれているコメントは3つだけなので、この場合はコメント数が閾値よりも小さいため、処理はステップS202に戻り、追加コメントが随時取得される。ステップS202の処理は、例えば、上述したスレッド取得モジュール62によって実行される。
スレッド1に対して追加のコメントが投稿されると、スレッド1に対するコメント数が950を超えることがある。この場合、処理はステップS206に進む。ステップS206では、新スレッドの作成をサーバ10に要求するための画面要素を含む表示画面が生成され、当該画面要素を含む表示画面がクライアント端末30のタッチパネルに表示される。図15は、新スレッドの作成を要求するための画面要素を含むスレッド1の表示画面100の表示例を示している。表示画面100においては、投稿されたコメントの表示領域106に951個のコメントが表示されており、また、この表示領域106の下方に新スレッドの作成を要求するための画面要素である操作ボタン101が示されている。
上述のようにして操作ボタン101を含む表示画面100が表示されると処理はステップS208に進む。ステップS208では、ユーザから操作ボタン101を選択する操作(例えば、タップ、ダブルタップ等のタッチパネルが検出可能な任意のジェスチャ)がなされたか否かが判断される。この選択操作がなされると、処理はステップS210に進み、新規スレッドの生成を要求するスレッド生成リクエストがサーバ10に送信される。選択ボタン101がユーザによって操作されたときに、コメントの入力を促す対話領域(不図示)をディスプレイに表示し、ユーザからのコメントを受け付けてもよい。このコメント(「スレッド生成コメント」)が入力されると、当該コメントは、スレッド生成リクエストとともにサーバ10に送信される。ステップS204、ステップS206、及びステップS208における処理は、例えば、上述したスレッド生成要求モジュール65によって実行される。
スレッド生成リクエストがサーバ10に送信されると処理はステップS210に進む。ステップS210では、スレッド生成リクエストがサーバ10で受け付けられると、当該スレッド生成リクエストに応じて新規のスレッドが生成される。この新規のスレッドは、例えば、スレッド生成リクエストが生成された既存のスレッド(スレッド1)と同じカテゴリに分類されてもよい。これにより、ユーザによってカテゴリの指定がなくとも、新規のスレッドを作成することができる。また、新規スレッドのタイトルは、スレッド1のタイトルの一部又は全部を含むように作成されてもよい。例えば、スレッド1が図4のスレッドID「000001」に対応するスレッドである場合には、このスレッドにおいて生成されたスレッド生成リクエストに基づいて、新規スレッドのカテゴリをスレッドID「000001」のカテゴリと同じ「海外旅行」とし、タイトルを「夏休みの旅行 Part 2」などとすることができる。これにより、ユーザによってタイトルの入力がなくとも、新規のスレッドを作成することができる。このように、サーバ10において、新規スレッドのカテゴリやタイトルを生成するために、所定のスレッドにおいて生成されるスレッド生成リクエストには、当該所定のスレッドのスレッドIDを含めることができる。また、スレッド生成リクエストにスレッド生成コメントが含まれている場合には、当該スレッド生成コメントを新規スレッドに対して最初に投稿されたコメントとすることができる。このステップS210における処理は、例えば、上述したスレッド生成モジュール43によって実行される。
新規のスレッドが生成されると処理はステップS212に進む。ステップS212においては、ステップS210で生成された新規スレッドがクライアント端末30によって取得される。新規スレッドが取得されると、当該新規スレッドを含む表示画面が生成され、クライアント端末30の表示部に表示される。ステップS212の処理は、例えば、上述したスレッド取得モジュール62によって実行される。
次に、図8を参照し、本発明の一実施形態に従って、新規のスレッドと以前のスレッドとを切り替える切替処理の流れを説明する。ステップS302においては、サーバ10からクライアント端末30に新規スレッドが提供されると、当該新規スレッド及びスレッド切替のための画面要素を含む表示画面が生成され、このようにして生成された表示画面がユーザにクライアント端末30の表示部に表示される。図16は、ステップS302において表示される表示画面の例を示す。図示のとおり、この新規のスレッド(スレッド2)の表示画面110は、当該新規のスレッドを構成するコメントが表示される表示領域116と、当該新規のスレッドの番号(スレッド2)を示す表示領域105と、以前のスレッドの番号(スレッド1)を示す表示領域108と、を含む。表示画面110においては、表示されているスレッドがスレッド2であることをユーザに伝達するため、スレッド2を表示している表示領域105をハイライトして(例えば、目立つ配色で)表示してもよい。また、この表示画面110には、スレッド1の表示画面と同様に、入力領域97と、投稿ボタン98と、クイズリクエストボタン99とが含まれる。この表示領域108は、表示画面110をスレッド1を含む別の表示画面に切り替えるための画面要素(操作ボタン)でもある。したがって、表示領域108を操作ボタン108と称することもある。
スレッド2用の表示画面110が表示されると、処理はステップS304に進む。ステップS304では、操作ボタン108に対してユーザの選択操作がなされたか否かが判断される。操作ボタン108に対してユーザの選択操作がなされたと判断された場合には処理はステップS306に進み、クライアント端末30における表示画面が、新規のスレッド(スレッド2)を含む表示画面110から、以前のスレッド(スレッド1)を含む表示画面に切り替えられる。
図17は、このようにして、スレッド2から切り替えられたスレッド1の表示画面の例を示す。この以前のスレッド(スレッド1)の表示画面120は、新規のスレッドを取得する前の表示画面100(図15参照)と概ね同じ表示要素を含む。ただし、表示画面100には、新規のスレッドの作成を要求するための操作ボタン101が含まれているが、表示画面120においては、既に新規のスレッドが作成されているため、操作ボタン101を含む必要はない。また、表示画面120は、新規のスレッドの番号(スレッド2)を示す表示領域115を含む点で表示画面100と異なっている。この表示領域115は、表示画面120をスレッド2を含む表示画面110(図16参照)に切り替えるための画面要素(操作ボタン)でもある。したがって、表示領域115を操作ボタン115と称することもある。
スレッド1を含む表示画面120が表示されると、処理はステップS308に進む。ステップS308では、操作ボタン115に対してユーザの選択操作がなされたか否かが判断される。操作ボタン115に対してユーザの選択操作がなされたと判断された場合には処理はステップS310に進み、クライアント端末30における表示画面が、以前のスレッド(スレッド1)を含む表示画面120から、新規のスレッド(スレッド2)を含む表示画面110に切り替えられる。
以上のステップS302ないしステップ310の処理は、例えば、上述した表示切替モジュール66によって実行される。ステップS310において表示画面110に切り替えられた後にもユーザの操作に応じて、スレッド1を含む表示画面とスレッド2を含む表示画面とを交互に切り替えることができる。
次に、図9を参照して、本発明の一実施形態に従って、コンテンツ情報に対するコメントの投稿に応じて新規スレッドを作成する処理の流れを説明する。図9の処理が開始されると、まず、ステップS402において、サーバ10からクライアント端末30に対してコンテンツ情報が提供される。クライアント端末30においては、当該コンテンツ情報の少なくとも一部を含む表示画面が生成され、生成された表示画面がユーザに提示される。図18は、クライアント端末30のタッチパネルに表示されたコンテンツ情報を含む表示画面の例を示す。図示のとおり、この表示画面130は、コンテンツ情報の表示領域131と、入力領域132と、投稿ボタン133とを含む。図18は、図5に示したコンテンツ管理テーブルにおいてコンテンツID「000001」と対応付けて格納されているコンテンツ情報(ニュース記事)が提供された場合における、表示画面の例を示している。表示領域131には、当該コンテンツ情報のヘッドラインと、当該コンテンツ情報の提供元であるウェブページのURLが示されている。表示領域131には、これら以外にも任意のコンテンツ情報を含めることができる。入力領域132は、ユーザからのコメントの入力を受け付けるための領域である。ユーザは、入力領域132にコメントを入力した後に投稿ボタン133を選択することにより、当該コメントをサーバ10に送信することができる。
コンテンツ情報を含む表示画面130には、ユーザからのコメントを表示する表示領域136が設けられていてもよい。この場合、ユーザによって投稿されたコメントは、当該表示領域136に表示される。
コンテンツ情報がクライアント端末30に提供されると(又は当該コンテンツ情報を含む表示画面130がクライアント端末30において表示されると)、処理はステップS404に進む。ステップS404では、ユーザから、当該コンテンツ情報に対するコメントが投稿されたか否かが判断される。
コンテンツ情報に対するコメントがサーバ10に送信されると、処理はステップS406に進む。ステップS406では、当該コンテンツ情報に対するコメントが受け付けられたことに応答して、当該コンテンツ情報に関連付けられたスレッドが生成される。所定のコンテンツ情報に対するコメントが受け付けられた場合には、スレッドは、当該所定のコンテンツ情報の少なくとも一部を含むように生成される。
ステップS406において生成されるスレッドは、例えば、当該コンテンツ情報と同じカテゴリに分類されてもよい。また、当該スレッドのタイトルは、当該コンテンツ情報のヘッドラインの一部又は全部を含むように作成されてもよい。例えば、当該コンテンツ情報が図5のコンテンツID「000001」に対応するコンテンツ情報である場合には、生成されるスレッドのカテゴリをコンテンツID「000001」のカテゴリと同じ「海外旅行」とし、タイトルを「海外旅行者数は前年比2.3%増のニュースについて議論するスレッド」などとすることができる。これにより、ユーザによってカテゴリやタイトルの入力がなくとも、コンテンツ情報に対するコメントを投稿することにより、当該コンテンツ情報に関連するスレッドを簡便に作成することができる。また、当該コンテンツ情報に対して投稿されたコメントを、生成されたスレッドに対して最初に投稿されたコメントとすることができる。
ステップS406においては、クライアント端末30から受け付けたコンテンツ情報に対するコメントが、当該コンテンツ情報に対する最初のコメントか否かを判断し、最初のコメントである場合にのみスレッドを作成してもよい。所定のコンテンツ情報に対するコメントを受け付けた場合、コンテンツ管理テーブルにおいて、当該コンテンツ情報について投稿コメントが1つも格納されていない場合には、当該コメントを最初のコメントと判断することができる。これにより、同じコンテンツ情報に関してスレッドが乱立しないようにできる。これらのステップS406における処理は、例えば、上述したスレッド生成モジュール43によって実行される。
上記のようにしてコンテンツ情報へのコメントの投稿に基づいてスレッドが生成されると、処理はステップS408に進む。ステップS408においては、ステップS406で生成されたスレッドがクライアント端末30によって取得される。スレッドが取得されると、当該新規スレッドを含む表示画面が生成され、当該表示画面がクライアント端末30の表示部に表示される。このようにして、コンテンツ情報へのコメント投稿に基づいて生成されたスレッドをユーザに提示することができる。ステップS408の処理は、例えば、上述したスレッド取得モジュール62によって実行される。
上記のようにしてコンテンツ情報へのコメント投稿に基づいて生成されたスレッドは、それ以外のスレッド(例えば、図14に示すスレッド)と同じように、クライアント端末30の表示部に表示される。この所定のコンテンツ情報に関連付けて作成されたスレッドに対してコメントが投稿された場合に、当該投稿されたコメントを、当該スレッドについてのコメントの表示領域(例えば、図14の表示領域96)、及び、コンテンツ情報の表示画面のコメントの表示領域(例えば、図19の表示領域136)の両方に表示させることができる。ただし、スレッドに対して投稿されたコメントが他のユーザからのコメントに対する返信である場合には、当該返信として投稿されたコメントについては、当該スレッドについてのコメントの表示領域にのみ表示させ、コンテンツ情報の表示画面のコメントの表示領域には表示させなくともよい。
図1の実施形態において、プロセッサ11で実行される機能の一部又は全部は、クライアント端末30のプロセッサ31やそれ以外の装置のプロセッサによって実現されてもよく、プロセッサ31の機能の一部又は全部は、サーバ10のプロセッサ11やそれ以外の装置のプロセッサにより実行されてもよい。
本明細書において説明された処理手順、特にフロー図を用いて説明された処理手順においては、その処理手順を構成する工程(ステップ)の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること、及び/又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本発明の趣旨を逸脱しない限り本発明の範囲に含まれる。
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。