以下、図面を参照して実施の形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
<概要>
(システム全体構成)
図1は、実施の形態に係る情報共有システムの全体構成を示す図である。実施の形態に係る情報共有システムは、情報共有サーバ10、端末20a、端末20b、端末20c、及び、情報処理サーバ30を有する。情報共有サーバ10、端末20a、端末20b、端末20c、及び、情報処理サーバ30は、それぞれネットワークを介して相互に通信することが可能である。以下の説明において、複数の端末(20a、20b、20c)のうち任意の端末は「端末20」と表す。なお、図1の例では、3つの端末(20a、20b、20c)が示されているが、実施の形態に係る情報共有システムは、1又は2つの端末20を有するようにしてもよいし、4つ以上の端末20を有するようにしてもよい。また、情報処理サーバ30が2以上の構成でも構わない。
情報共有サーバ10は、情報処理サーバ30と端末20との間で送受信されるコミュニケーションに係る情報(例えば、メール、メールスレッド、チャットメッセージ、Web上の掲示板への投稿、又は添付ファイルなど)のうちユーザにより指定された情報(以下、「クリップ」と言う)の登録を受け付け、登録されたクリップを様々な方法で端末20の画面に一覧表示させる機能を有する。
端末20は、ユーザが情報共有サーバ10及び情報処理サーバ30にアクセスするための通信機器である。例えば、端末20は、メール送受信、チャットの実行、Webの閲覧等に用いるPC(Personal Computer)、タブレット端末、スマートフォン、携帯電話等の通信機器である。ユーザは、端末20の画面を操作することで任意のクリップを情報共有サーバ10に登録することができる。また、ユーザは、端末20を用いて情報共有サーバ10に登録されているクリップを任意のタイミングで参照することができる。
情報処理サーバ30は、端末20との間でコミュニケーションに係る情報の送受信を行う。情報処理サーバ30は、例えばメールサーバ、チャットサーバ又はWebサーバであることを想定しているが、これらに限られない。情報共有サーバ10は、ユーザ間のコミュニケーションを実現する機能(サービス)を提供するサーバあればどのようなサーバであってもよい。
(提供機能の概要)
情報共有サーバ10は、ユーザに対して、様々な方法でクリップの登録及び参照を行う機能を提供する。以下、情報共有サーバ10が提供する機能の概要を説明する。
クリップ登録機能:クリップを情報共有サーバ10内の記憶部(データベース)に登録する機能である。登録可能なクリップの単位は、例えば、メール、メールスレッド(一部又は全体)、チャットメッセージ、チャットスレッド(一部又は全部)、Web上の掲示板に投稿されたメッセージ(一部又は全部)である。また、クリップには、これらに添付された添付ファイルも含まれる。また、クリップは、基本的にクリップを登録したユーザのみが参照可能であるが、クリップを登録したユーザの指示により複数のユーザに公開(共有)することができる。以下の説明において、登録したユーザのみが参照可能なクリップを「マイクリップ」と呼び、複数のユーザに公開されるように設定されたクリップを、「共有クリップ」と呼ぶ。また、マイクリップ及び共有クリップを区別しない場合は単に「クリップ」と呼ぶ。
カテゴリ分け機能:各クリップ(マイクリップ及び共有クリップ)を任意のカテゴリに分類分けする機能である。本機能を用いることで、ユーザは任意のカテゴリを作成することができ、作成したカテゴリに1以上のクリップを登録する(対応づける)ことができる。また、ユーザは1つのクリップを複数のカテゴリに登録する(対応づける)こともできる。カテゴリには、カテゴリを作成したユーザのみに有効なカテゴリ(以下、「マイカテゴリ」と呼ぶ)と、特定の複数のユーザの間で共有されるカテゴリ(以下、「共有カテゴリ」と呼ぶ)とがある。マイカテゴリ及び共有カテゴリを区別しない場合は単に「カテゴリ」と呼ぶ。
クリップ表示機能:登録されたクリップを端末20の画面に一覧表示する機能である。クリップを一覧表示する画面のことを、「クリップ一覧画面」と呼ぶ。クリップ一覧画面には、マイクリップと共有クリップとが一覧表示される。
また、クリップ一覧画面は、並び替え機能及びフィルタ機能を有する。クリップ一覧画面は、例えば、クリップが登録された時刻が新しい順、各ユーザのマイカテゴリに登録された数が多い順、共有カテゴリに登録された数が多い順、クリップ表示回数(ユーザが参照した回数)が多い順など、様々な方法でクリップを並びかえて一覧表示することができる。また、クリップ一覧画面は、例えば、指定されたキーワードが含まれるクリップ、指定されたカテゴリに登録されている全てのクリップ、クリップを作成したユーザのユーザ名、スレッド形式(メールスレッド、チャットスレッド等)のクリップにおける会話の期間など、様々な方法でクリップをフィルタして一覧表示することができる。
お勧めクリップ表示機能:登録されたクリップのうち、ユーザが指定した特定のクリップと関連性の高いクリップ(お勧めクリップ)を表示する機能である。情報共有サーバ10は、例えば、特定のクリップと他のクリップとが複数かつ同一のカテゴリに対応づけられている場合、当該他のクリップを当該特定のクリップと関連性が高いクリップと推定してクリップ一覧画面に表示する。
コメント付与機能:登録されたクリップに、任意のコメントを追加することができる機能である。追加されたコメントは、クリップ一覧画面に表示される。また、クリップに追加されたコメントは、コメントを登録したユーザのみが参照できるようにしてもよいしクリップを参照可能なすべてのユーザが参照できるようにしてもよい。
<機能構成>
(情報共有サーバ)
図2は、実施の形態に係る情報共有サーバの機能構成の一例を示す図である。情報共有サーバ10は、通信部101と、DB(Database)処理部102と、UI(User Interface)処理部103と、認証部104と、記憶部105とを有する。また、DB処理部102は、クリップ登録部112と、クリップ検索部113と、カテゴリ設定部114と、登録数算出部115と、関連度算出部116とを有する。
通信部101は、端末20又は情報処理サーバ30との間でデータの送受信を行う機能を有する。DB処理部102は、記憶部105に格納されているユーザ管理情報、カテゴリ管理情報、クリップ管理情報、クリップデータ情報、添付ファイル情報、及びクリップ関連度情報に格納されているデータの取得、追加、変更等を行う機能を有する。
UI処理部103は、端末20に対して、クリップ一覧画面を表示させるための情報を提供する機能を有する。UI処理部103は、Webサーバ機能を有していてもよい。また、UI処理部103は、ユーザから受け付けた操作をクリップ登録部112、クリップ検索部113、又はカテゴリ設定部114に通知する機能を有する。また、UI処理部103は、情報共有サーバ10の管理者が情報共有サーバ10を操作するために用いる画面を提供するようにしてもよい。
認証部104は、端末20からアクセスを受け付ける際にユーザを認証する機能を有する。記憶部105は、ユーザ管理情報、カテゴリ管理情報、クリップ管理情報、クリップデータ情報、添付ファイル情報、及びクリップ関連度情報を記憶する。
図3は、実施の形態に係るユーザ管理情報の一例を示す図である。ユーザ管理情報は、クリップの登録及び参照を行うユーザを管理するために用いられる。「ユーザID」には、ユーザを一意に識別するユーザIDが格納される。「名称」には、ユーザの名称(氏名等)が格納される。「パスワード」には、ユーザIDに対応するパスワードが格納される。「写真データ」には、必要に応じてユーザの顔写真データが格納される。
図4は、実施の形態に係るカテゴリ管理情報の一例を示す図である。カテゴリ管理情報は、ユーザにより作成されたカテゴリを管理するために用いられる。「カテゴリID」には、カテゴリを一意に識別するためのカテゴリIDが格納される。「名称」には、カテゴリの名称が格納される。カテゴリの名称は、カテゴリを作成したユーザが任意に付与することができる。「共有フラグ」には、カテゴリが共有カテゴリなのか否かを示すフラグが設定される。共有フラグにNoが設定されている場合、当該カテゴリはマイカテゴリであることを示し、共有フラグにYesが設定されている場合、当該カテゴリは共有カテゴリであることを示す。
「ユーザIDリスト」には、1以上のユーザIDが設定される。なお、共有フラグにNoが設定されている場合(すなわち、当該カテゴリがマイカテゴリである場合)、「ユーザIDリスト」には、マイカテゴリを作成したユーザのユーザIDが1つ設定される。一方、共有フラグにYesが設定されている場合(すなわち、当該カテゴリが共有カテゴリである場合)、「ユーザIDリスト」には、複数のユーザのユーザIDが設定される。例えば、図4において、名称が「プロジェクト」であるカテゴリの「ユーザIDリスト」には、「U03、U04、U05」が設定されている。これは、名称が「プロジェクト」であるカテゴリは、ユーザC(U03)、ユーザD(U04)、ユーザE(U05)の間で共有されることを示している。
図5は、実施の形態に係るクリップ管理情報の一例を示す図である。クリップ管理情報は、ユーザにより登録されたクリップを管理するために用いられる。「クリップID」には、クリップを一意に識別するためのクリップIDが格納される。「ユーザID」には、クリップを登録したユーザのユーザIDが格納される。「タイトル」には、クリップに付与されたタイトルが格納される。タイトルは、ユーザが任意に付与することができる。「作成日時」には、クリップが登録された時点の日時が設定される。「共有フラグ」には、クリップが共有クリップなのか否かを示すフラグが設定される。共有フラグにNoが設定されている場合、当該カテゴリはマイクリップであることを示し、共有フラグにYesが設定されている場合、当該クリップは共有クリップであることを示す。「カテゴリIDリスト」には、クリップに対応づけられている1以上のカテゴリのカテゴリIDが設定される。「カテゴリ登録数」には、クリップが登録されているカテゴリの数が設定される。
ここで、クリップ管理情報の各に設定される設定値の具体例を説明する。図5(a)は、クリップが登録された時点における設定値(デフォルト値)の具体例を示しており、図5(b)は、一部のクリップが共有クリップに設定され、かつ、各クリップが1以上のカテゴリに登録された時点における設定値の具体例を示している。
図5(a)に示すように、クリップが登録された時点では、クリップを登録したユーザのみがクリップを参照できる。従って、「共有フラグ」にはNoが設定されている。図5(a)の具体例では、クリップIDがC01、C03、C04であるクリップは、ユーザA(U01)のみが参照できることを示している。同様に、クリップIDがC02、C05であるクリップは、ユーザB(U02)のみが参照できることを示している。
図5(b)では、C01、C02、C04のクリップの共有フラグはYesに設定されている。すなわち、C01、C02、C04のクリップは共有クリップであり、C03、05のクリップはマイクリップであることを示している。また、C01のクリップは、M01、M02、M03、M04の4つカテゴリに登録されていることを示している。同様に、C03のクリップは、M01のカテゴリのみに登録されていることを示している。
図6は、実施の形態に係るクリップデータ情報の一例を示す図である。クリップデータ情報は、各クリップの実際のデータを格納するために用いられる。「クリップデータ」には、クリップIDに対応するクリップの実際のデータ(以下、「クリップデータ」と呼ぶ)が格納される。クリップデータには、例えば、メール本文の文字列、チャットメッセージの文字列、掲示板に投稿された文字列等を格納することができる。また、クリップデータには、メールが発信された日時、チャットメッセージが送信された日時、掲示板に投稿された日時等が含まれていてもよい。また、クリップデータには、複数のメール本文をスレッド形式で表示するための情報、チャットメッセージをスレッド形式に表示するための情報、添付ファイルの有無を示す情報等が含まれていてもよい。「元データ」には、必要に応じて、例えば、メールヘッダ及びメール本文を含むメール全体のデータ、チャットメッセージのオリジナルデータ、掲示板のHTMLファイル等が格納される。
図7は、実施の形態に係る添付ファイル情報の一例を示す図である。添付ファイル情報は、各クリップに含まれる添付ファイルを格納するために用いられる。「ファイルデータ」には、添付ファイルの実際のデータが格納される。「タイムスタンプ」には、添付ファイルのタイムスタンプ(生成日時等)が格納される。
図8は、実施の形態に係るクリップ関連度情報の一例を示す図である。クリップ関連度情報は、各クリップの間における関連性の度合い(以下、「関連度」という)を示すために用いられる。「基準クリップID」及び「関連クリップID」には、特定のクリップのクリップIDと、当該特定のクリップとは異なるクリップのクリップIDとがそれぞれ格納される。言い換えると、「基準クリップID」及び「関連クリップID」には、比較対象となる2つのクリップのクリップIDがそれぞれ格納される。「クリップ関連度」は、基準クリップIDに対応するクリップと、関連クリップIDとの間における関連度が格納される。
ここで、クリップ関連度情報の具体例を説明する。図8において、基準クリップIDがC01であるクリップと、関連クリップIDがC02であるクリップとの間のクリップ関連度には「3」が設定されている。一方、基準クリップIDがC01であるクリップと、関連クリップIDがC03であるクリップとの間のクリップ関連度には「1」が設定されている。つまり、C01であるクリップは、C03であるクリップよりもC02であるクリップとの間で関連性が高いことを示している。クリップ間における関連度の算出方法については後述する。図2に戻り説明を続ける。
クリップ登録部112は、端末20から受信したクリップのクリップデータをクリップデータ情報に格納すると共に、クリップ管理情報に新たなレコードを生成し、当該レコードにクリップID等の各種管理情報を格納する。また、端末20からクリップに含まれる添付ファイルを受信した場合、クリップ登録部112は、受信した添付ファイルを添付ファイル情報に格納する。
クリップ検索部113は、クリップ一覧画面を生成するために必要な情報を、ユーザ管理情報、カテゴリ管理情報、クリップ管理情報、クリップデータ情報、添付ファイル情報又はクリップ関連度情報から検索し、UI処理部103に通知する。
カテゴリ設定部114は、利用者からの指示により新たなカテゴリが作成された場合、当該新たなカテゴリをカテゴリ管理情報に追加する。また、カテゴリ設定部114は、利用者の指示によりクリップが特定のカテゴリに登録された(対応付けられた)場合、クリップ管理情報の「カテゴリIDリスト」に、当該特定のカテゴリのカテゴリIDを追加する。
登録数算出部115は、クリップ管理情報の「カテゴリIDリスト」に新たなカテゴリが追加された場合、クリップ管理情報の「カテゴリ登録数」を更新する。関連度算出部116は、クリップ管理情報の「カテゴリIDリスト」に新たなカテゴリが追加された場合、クリップ関連度情報を更新する。より具体的には、関連度算出部116は、クリップ管理情報を用いて、特定のクリップと当該特定のクリップとは異なる他のクリップとの関連度を算出し、算出結果をクリップ関連度情報に格納する。なお、関連度算出部116は、特定のクリップ及び他のクリップの両方に対応づけられているカテゴリの数に基づいて、関連度を算出するようにしてもよい。
(端末)
図9は、実施の形態に係る端末の機能構成の一例を示す図である。端末20は、通信部201と、アプリケーション機能部202と、UI部203と、記憶部204とを有する。また、アプリケーション機能部202は、受付部211と、クリップ生成部212と、クリップ送信部213とを有する。なお、受付部211、クリップ生成部212及びクリップ送信部213は、アプリケーション機能部202にインストールされたアドオン(Add-on:拡張機能)により提供されるようにしてもよい。
通信部201は、情報共有サーバ10又は情報処理サーバ30との間でデータの送受信を行う機能を有する。アプリケーション機能部202は、通信部201を介して情報処理サーバ30との間でデータの送受信を行い、所定のコミュニケーション手段をユーザに提供するための機能を有する。アプリケーション機能部202は、例えば、メールアプリケーション、チャットアプリケーション、掲示板等の参照に用いられるWebブラウザ等を想定しているが、これらに限られない。
受付部211は、ユーザから、クリップとして登録すべきデータの範囲(特定のメール、特定のメールスレッド、一連のチャットにおける特定の範囲など)に関する指示を受け付ける機能を有する。
クリップ生成部212は、受付部211で受け付けたユーザからの指示に基づき、クリップデータを生成する機能を有する。例えば、クリップ生成部212は、ユーザから指示された範囲のメールスレッド全体に含まれる文字列を抽出してクリップデータを生成してもよいし、ユーザから指示された範囲のチャットに含まれる文字列を抽出してクリップデータを生成してもよい。本実施の形態では、クリップデータはどのような方法で生成されてもよい。
クリップ送信部213は、クリップ生成部212で生成されたクリップデータを、通信部201を介して情報共有サーバ10に送信する機能を有する。また、クリップ送信部213は、必要に応じて、クリップデータと共に、クリップデータを生成する際に用いた元データ及びクリップに含まれる添付ファイルを情報共有サーバ10に送信するようにしてもよい。
UI部203は、表示部に各種画面を表示する機能及びユーザからの各種操作を受け付ける機能を有する。より具体的には、UI部203は、アプリケーション機能部202と連携し、アプリケーション機能部202が提供する画面を表示する機能及びアプリケーション機能部202に対する各種操作を受け付ける機能を有する。また、UI部203は、情報共有サーバ10から送信されるクリップ一覧画面を受信して表示する機能及びクリップ一覧画面に表示される各種ボタンに対する操作を受け付ける機能を有する。
記憶部204は、アプリケーション機能部202が用いるデータであるアプリケーションデータを格納する。アプリケーションデータは、例えば、情報処理サーバ30から受信したメールデータ、チャットデータ、Webブラウザで用いられるキャッシュデータ等を想定しているが、これらに限られない。また、記憶部204は、情報共有サーバ10にログインするために用いられるユーザID情報が格納される。ユーザID情報は、アプリケーション機能部202にインストールされたアドオン(Add-on:拡張機能)により記憶部204の中に生成されるようにしてもよい。ユーザID情報には、端末20を介して情報共有サーバ10にアクセスするユーザのユーザIDと当該ユーザのパスワードが格納される。
<処理手順>
続いて、実施の形態に係る情報共有システムが行う具体的な処理手順について、図を用いて説明する。なお、以下の説明おいて、端末20aを利用しているユーザのユーザID及びユーザ名は、それぞれ「U01」及び「ユーザA」であり、端末20bを利用しているユーザのユーザID及びユーザ名は、それぞれ「U02」及び「ユーザB」であり、端末20cを利用しているユーザのユーザID及びユーザ名は、それぞれ「U03」及び「ユーザC」である前提とする。
なお、端末20と情報共有サーバ10との間で送受信される各信号(メッセージ)は、例えば、HTTP信号(HTTPリクエスト及びHTTPレスポンス)であってもよいし、ソケット通信であってもよいし、端末20と情報共有サーバ10との間で規定される任意のプロトコルであってもよい。
(クリップ登録処理)
図10を用いて、ユーザの指示により情報共有サーバ10にクリップが登録される際の処理手順について説明する。なお、図10において、情報処理サーバ30は、複数の端末20に対してチャット環境を提供するチャットサーバであると仮定する。また、端末20a、端末20b及び端末20cの間でチャットを行っており、端末20aを利用しているユーザAが、一連のチャットにおけるスレッドをクリップとして登録すると仮定する。
ステップS101で、端末20aのアプリケーション機能部202は情報処理サーバ30にログインし、情報処理サーバ30からチャットログを取得する。ステップS102で、端末20aのアプリケーション機能部202は、取得したチャットログを記憶部204に格納する。ステップS103で、端末20aのUI部203及び受付部211は、利用者Aから、チャットログのうちクリップとして登録する部分の選択を受け付ける。ステップS104で、端末20aのクリップ生成部212は、ステップS103で選択された部分に含まれる文字列からクリップデータを生成する。
ステップS105で、端末20aのクリップ送信部213は、情報処理サーバ30にクリップ登録要求信号を送信する。クリップ登録要求信号には、クリップの登録を要求するユーザAのユーザID(「U01」)、及び、ステップS104の処理手順で生成されたクリップデータが含まれる。また、クリップ登録要求信号には、更に、クリップのタイトル、クリップに含まれる添付ファイル、又は、クリップを生成する際に用いられた元データ(例えばチャットログ全体など)が含まれるようにしてもよい。
ステップS106で、情報共有サーバ10のクリップ登録部112は、新たなクリップIDを生成すると共に、クリップ管理情報に新たなレコードを追加する。また、クリップ登録部112は、生成した新たなクリップID、ステップS105の処理手順で受信したユーザID、及びクリップのタイトルを、それぞれ当該新たなレコードの「クリップID」、「ユーザID」、「タイトル」に格納する。また、クリップ登録部112は、「作成日時」に当該新たなレコードを作成した作成日時を格納し、「共有フラグ」にNoを設定する。
また、クリップ登録部112は、クリップデータ情報に新たなレコードを追加し、当該新たなレコードの「クリップID」に、生成した新たなクリップIDを格納すると共に、当該新たなレコードの「クリップデータ」にステップS105の処理手順で受信したクリップデータを格納する。また、クリップ登録部112は、ステップS105の処理手順で元データを受信した場合、「元データ」に受信した元データを格納する。また、クリップ登録部112は、ステップS105の処理手順で添付ファイルを受信した場合、添付ファイル情報に新たなレコードを追加し、当該新たなレコードの「クリップID」に、生成した新たなクリップIDを格納すると共に、受信した添付ファイル及び添付ファイルのタイムスタンプを、それぞれ当該新たなレコードの「ファイルデータ」及び「タイムスタンプ」に格納する。
ステップS107で、情報共有サーバ10のクリップ登録部112は、通信部101を介してクリップ登録完了応答信号を端末20aに送信する。
なお、情報処理サーバ30がメールサーバやWebサーバである場合も、図10と同様の処理手順により、情報共有サーバ10にクリップが登録される。
(クリップ一覧画面の表示例)
図11は、実施の形態に係るクリップ一覧画面(ユーザA)の一例を示す図である。図11を用いて、端末20の画面に表示されるクリップ一覧画面の具体例を説明する。なお、図11は、ユーザAが情報共有サーバ10にログインした際に表示されるクリップ一覧画面である。また、ユーザ管理情報、カテゴリ管理情報及びクリップ管理情報には、それぞれ図3、図4、図5(b)に示す情報が格納されている前提とする。
クリップ一覧画面には、複数のタブ(T1〜T5)が表示されている。タブT1が押下されると、共有クリップ及びユーザAのマイクリップがクリップ一覧画面に表示される。
ここで、図3のユーザ管理情報において、ユーザAのユーザIDは「U01」である。また、図5(b)のクリップ管理情報において、ユーザIDが「U01」であるクリップのクリップIDは、「C01」、「C03」及び「C04」である。また、共有クリップ(「共有フラグ」がYesであるクリップ)のクリップIDは、「C01」、「C02」及び「C04」である。従って、ユーザAのクリップ一覧画面でタブT1が押下された場合、図11に示すように、クリップIDが「C01」、「C02」、「C03」、「C04」である4つのクリップが表示されることになる。
次に、タブT2が押下されると、ユーザAのマイクリップのみがクリップ一覧画面に表示される。具体的には、ユーザAのクリップ一覧画面でタブT2が押下された場合、クリップIDが「C01」、「C03」、「C04」である3つのクリップが表示されることになる。
次に、タブT3が押下されると、ユーザAが作成したマイカテゴリがタブT3の下に表示される。図4のカテゴリ管理情報において、「ユーザIDリスト」にU01が含まれているレコードの「名称」には、「作業手順」と「環境設定」が格納されている。従って、タブT3が押下されると、図11に示すように、ユーザAのマイカテゴリであるタブT4(「作業手順」タブ)と、タブT5(「環境設定」タブ)がタブT3の下に表示されることになる。
次に、タブT4が押下されると、「作業手順」のマイカテゴリに登録されているクリップのみがクリップ一覧画面に表示される。図4のカテゴリ管理情報において、「作業手順」のマイカテゴリのカテゴリIDは「M01」である。また、図5(b)のクリップ管理情報において、「カテゴリIDリスト」に「M01」が設定されているクリップのクリップIDは、「C01」、「C02」、「C03」である。従って、タブT4が押下された場合、クリップIDが「C01」、「C02」、「C03」である3つのクリップがクリップ一覧画面に表示されることになる。
次に、タブT5が押下されると、「環境設定」のマイカテゴリに登録されているクリップのみがクリップ一覧画面に表示される。具体的には、クリップIDが「C01」、「C04」である2つのクリップがクリップ一覧画面に表示されることになる。
また、クリップ一覧画面において任意のクリップを選択すると、選択したクリップの内容(クリップデータ)がクリップ一覧画面の右側に表示される。図11は、クリップ1が選択された場合に、クリップ1の内容がクリップ一覧画面の右側に表示されている様子を表している。
また、クリップ一覧画面において、ユーザは、任意のクリップを選択した状態で共有ボタン(図11のB1)を押下することで、選択したクリップを共有クリップに変更することができる。例えば、クリップ1が選択された状態で共有ボタンが押下されると、クリップ管理情報のうち、クリップ1に係るレコードの「共有フラグ」がNoからYesに変更されることになる。
また、クリップ一覧画面において、ユーザは、コメント付与ボタン(図11のB2)を押下することで、任意のクリップにコメントを付加することができる。付加されたコメントは、クリップ登録部112により、クリップデータ情報のクリップデータの中に保存される。
図12は、実施の形態に係るクリップ一覧画面(ユーザC)の一例を示す図である。なお、図12は、ユーザCが情報共有サーバ10にログインした際に表示されるクリップ一覧画面である。また、図12の説明において、ユーザ管理情報、カテゴリ管理情報及びクリップ管理情報には、それぞれ図3、図4、図5(b)に示す情報が格納されている前提とする。また、特に言及しない点は図11と同一でよい。
タブT1が押下されると、共有クリップ及びユーザCのマイクリップがクリップ一覧画面に表示される。ここで、図3のユーザ管理情報において、ユーザCのユーザIDは「U03」である。また、図5(b)のクリップ管理情報において、ユーザIDが「U03」であるクリップは登録されていない。また、共有クリップ(「共有フラグ」がYesであるクリップ)のクリップIDは、「C01」、「C02」及び「C04」である。従って、ユーザCのクリップ一覧画面でタブT1が押下された場合、クリップIDが「C01」、「C02」、「C04」である3つのクリップが表示されることになる。
次に、タブT2が押下されると、ユーザCのマイクリップのみがクリップ一覧画面に表示される。図5(b)のクリップ管理情報において、ユーザIDが「U03」であるクリップは登録されていない。すなわち、ユーザCのマイクリップは存在しない。従って、ユーザCのクリップ一覧画面でタブT2が押下された場合、クリップは何も表示されない。
次に、タブT6が押下されると、ユーザCの共有カテゴリが表示される。図4のカテゴリ管理情報において、「ユーザIDリスト」にU03が含まれているレコードの「名称」には、「プロジェクト」が格納されている。従って、タブT6が押下されると、図12に示すように、共有カテゴリであるタブT7(「プロジェクト」タブ)がタブT6の下に表示されることになる。
次に、タブT7が押下されると、「プロジェクト」の共有カテゴリに登録されているクリップのみがクリップ一覧画面に表示される。図4のカテゴリ管理情報において、「プロジェクト」の共有カテゴリのカテゴリIDは「M04」である。また、図5(b)のクリップ管理情報において、「カテゴリIDリスト」に「M04」が設定されているクリップのクリップIDは、「C01」、「C02」、「C04」である。従って、タブT4が押下された場合、図12に示すように、クリップIDが「C01」、「C02」、「C04」である3つのクリップがクリップ一覧画面に表示されることになる。
(クリップ表示処理)
図13を用いて、情報共有サーバ10にてクリップが検索され、端末20aの画面にクリップ一覧画面が表示される際の処理手順について説明する。なお、図13は、端末20aが情報共有サーバ10にアクセスする場合の処理シーケンスを示しているが、端末20b及び端末20cが情報共有サーバ10にアクセスする場合も同様である。
ステップS201で、端末20aのUI部203と情報共有サーバ10の認証部104との間でユーザ認証が行われる。具体的には、情報共有サーバ10の認証部104は、端末20のUI部203から受信したユーザAのユーザID及びパスワードがユーザ管理情報に格納されているユーザID及びパスワードと一致するかを判断することで認証を行う。
ステップS202で、端末20aのUI部は、クリップ検索要求信号を情報共有サーバ10に送信する。なお、クリップ検索要求信号にはユーザIDが含まれている。ステップS203で、情報共有サーバ10のクリップ検索部113は、共有クリップ及びステップS202の処理手順で受信したユーザIDに対応するマイクリップを、クリップ管理情報、カテゴリ管理情報及びクリップデータ情報等から検索する。
ステップS204で、情報共有サーバ10の通信部101及びUI処理部103は、ステップS203の処理手順で検索された共有クリップ及びマイクリップに基づいて、クリップ一覧画面を表示するための情報(各クリップのタイトル、クリップデータ、ユーザ名など)を生成し、生成した情報を含むクリップ検索応答信号を端末20aに送信する。なお、当該情報は、例えば、JavaScript(登録商標)を含むHTMLデータであってもよいが、これに限られず、どのような形式の情報でもよい。
ステップS205で、端末20aのUI部203は、ステップS204の処理手順で受信した情報を用いてクリップ一覧画面を生成し、表示部に表示する。
なお、図11又は図12で説明したように、ユーザが所定のタブを押下した場合、ステップS202乃至ステップS205の処理手順が繰り返し行われることで、各クリップがソート又はフィルタされてクリップ一覧画面に表示される。より具体的には、ステップS202の処理手順において、クリップ検索要求信号には、ユーザIDと、ユーザが押下したタブを示す情報とが含まれる。また、ステップS204の処理手順において、ソート又はフィルタされた状態でクリップ一覧画面が表示されるための情報を含むクリップ検索応答信号が端末20aに送信される。
(共有クリップ設定処理)
図14を用いて、ユーザAの指示により任意のクリップが共有クリップに変更される場合の処理手順について説明する。なお、ステップS251乃至ステップS254は、任意のクリップが共有クリップに変更される場合の処理手順を示し、ステップS255乃至ステップS264は、端末20b及び端末20cのクリップ一覧画面に共有クリップが表示される際の処理手順を示している。
ステップS251で、端末20aのUI部203は、端末20aに表示されているクリップ一覧画面において、選択された任意のクリップを共有クリップに変更するとの指示をユーザから受け付ける。ステップS252で、端末20aのUI部203及び通信部201は、クリップ共有指示信号を情報共有サーバ10に送信する。クリップ共有指示信号にはクリップIDが含まれる。
ステップS253で、情報共有サーバ10のクリップ登録部112は、クリップ管理情報のレコードのうち、ステップS252で受信したクリップIDに該当するレコードの「共有フラグ」をYesに変更する。なお、クリップ登録部112は、共有クリップに変更するクリップのクリップデータの中に、クリップを登録したユーザ以外のユーザ名が含まれている場合、当該ユーザに、クリップを共有してもよいかを確認するようにしてもよい。例えば、図11に示すように、クリップ1には、ユーザAとユーザBとの会話が格納されている。また、クリップ1はユーザAが登録したものである。この場合において、クリップ1が共有クリップに変更される場合、クリップ登録部112は、ユーザBの同意を得てからクリップ1を共有クリップに変更するようにしてもよい。
ステップS254で、情報共有サーバ10のクリップ登録部112及び通信部101は、クリップ共有応答信号を端末20aに送信する。
ステップS255乃至ステップS259の処理手順は、図13のステップS201乃至ステップS205と同一であるため説明は省略する。同様に、ステップS260乃至ステップS264の処理手順は、図13のステップS201乃至ステップS205と同一であるため説明は省略する。
以上の処理手順が行われることで、ステップS259の処理手順で端末20bの画面に表示されるクリップ一覧画面及びステップS264の処理手順で端末20cの画面に表示されるクリップ一覧画面に、ステップS251乃至ステップS254の処理手順で設定された共有クリップが表示されることになる。
(カテゴリ登録処理)
図15を用いて、ユーザAの指示により新たなりカテゴリが作成され、作成された新たなカテゴリに任意のクリップが登録される場合の処理手順について説明する。
ステップS301で、端末20aのUI部203は、ユーザAから新たなカテゴリの作成を受け付ける。
ステップS302で、端末20aの通信部201及びUI部203は、情報共有サーバ10にカテゴリ作成要求信号を送信する。カテゴリ作成要求信号には、ユーザID(U01)と、カテゴリの名称とが含まれる。なお、作成されたカテゴリが共有カテゴリである場合、カテゴリ作成要求信号に、共有カテゴリであることを示す識別子と、共有対象である複数のユーザIDとが含まれるようにしてもよい。
ステップS303で、情報共有サーバ10のカテゴリ設定部114は、新たなカテゴリIDを生成すると主に、カテゴリ管理情報に新たなレコードを追加する。また、カテゴリ設定部114は、生成したカテゴリID、ステップS302の処理手順で受信したカテゴリの名称及びユーザIDを、それぞれ当該新たなレコードの「カテゴリID」、「名称」、及び「ユーザIDリスト」に格納する。また、カテゴリ設定部114は、「共有フラグ」にNoを設定する。なお、ステップS302の処理手順において、共有カテゴリであることを示す識別子と、共有対象である複数のユーザIDとを受信した場合、カテゴリ設定部114は、「共有フラグ」にYesを設定すると共に、複数のユーザIDを「ユーザIDリスト」に格納する。
ステップS304で、情報共有サーバ10の通信部101及びカテゴリ設定部114は、カテゴリ作成応答信号を端末20aに送信する。ステップS305で、端末20aのUI部203は、ユーザAから、カテゴリに登録するクリップの選択を受け付ける。
ステップS306で、端末20aの通信部201及びUI部203は、情報共有サーバ10にカテゴリ登録指示信号を送信する。カテゴリ登録指示信号には、カテゴリIDと、当該カテゴリIDが示すカテゴリに登録されるクリップのクリップIDとが含まれる。
ステップS307で、情報共有サーバ10のカテゴリ設定部114は、クリップ管理情報のうち、ステップS306の処理手順で受信したクリップIDに係るレコードの「カテゴリIDリスト」に、ステップS306の処理手順で受信したカテゴリIDを格納する。また、カテゴリ設定部114は、「カテゴリIDリスト」が変更されたことを登録数算出部115及び関連度算出部116に通知する。
ステップS308で、「カテゴリIDリスト」が変更されたとの通知を受けた登録数算出部115は、クリップ管理情報の「カテゴリIDリスト」に登録されているカテゴリIDの数を算出し、「カテゴリ登録数」を更新する。登録数算出部115は、「カテゴリIDリスト」が変更されたレコードの「カテゴリ登録数」のみを更新するようにしてもよい。
ステップS309で、「カテゴリIDリスト」が変更されたとの通知を受けた情報共有サーバ10の関連度算出部116は、クリップ関連度情報を更新する。具体的な処理手順は後述する。ステップS310で、情報共有サーバ10のカテゴリ設定部114は、カテゴリ登録応答信号を端末20aに送信する。
(クリップ関連度算出処理)
図16を用いて、図15のステップS309の処理手順において、関連度算出部116が行う処理手順を説明する。
ステップS401で、関連度算出部116は、クリップ管理情報からレコードを1つ選択し、選択したレコードの「クリップID」及び「カテゴリIDリスト」から、クリップID及びカテゴリIDを取得する。
ステップS402で、関連度算出部116は、ステップS401で取得したクリップIDを、クリップ関連度情報の「基準クリップID」に格納する。続いて、関連度算出部116は、クリップ管理情報から、ステップS401で取得した全てのカテゴリIDのうち少なくともいずれか1つのカテゴリIDのカテゴリに登録されている全てのクリップIDを検索する。続いて、関連度算出部116は、検索されたクリップIDのうち、基準クリップIDに格納したクリップIDを除く全てのクリップIDを、クリップ関連度情報の「関連クリップID」に格納する。
ここで、ステップS401及びステップS402の処理手順を、図5(b)を用いて具体的に説明する。まず、関連度算出部116は、クリップ管理情報の最初のレコードを選択し、クリップID(C01)及び4つのカテゴリID(M01、M02、M03、M04)を取得する。続いて、関連度算出部116は、クリップID(C01)を、クリップ関連度情報の「基準クリップID」に格納する。
続いて、関連度算出部116は、4つのカテゴリIDのうち、M01のカテゴリに登録されているクリップIDを検索する。図5(b)によれば、M01のカテゴリに登録されているクリップIDは、C01、C02、C03である。続いて、関連度算出部116は、M02のカテゴリに登録されているクリップIDを検索する。図5(b)によれば、M02のカテゴリに登録されているクリップIDは、C01、C04である。続いて、関連度算出部116は、M03のカテゴリに登録されているクリップIDを検索する。図5(b)によれば、M03のカテゴリに登録されているクリップIDは、C01、C02、C05である。続いて、関連度算出部116は、M04のカテゴリに登録されているクリップIDを検索する。図5(b)によれば、M04のカテゴリに登録されているクリップIDは、C01、C02、C04である。
続いて、関連度算出部116は、検索されたクリップID(C01、C02、C03、C04、C05)のうち、「基準クリップID」に格納されたクリップID(C01)以外のクリップID(C02、C03、C04、C05)を、「関連クリップID」に格納する。図16に戻り説明を続ける。
ステップS403で、関連度算出部116は、クリップ管理情報の全てのレコードについて、ステップS401及びステップS402の処理手順が完了したかを確認する。全てのレコードについてステップS401及びステップS402の処理手順が完了した場合、ステップS404の処理手順に進む。全てのレコードについてステップS401及びステップS402の処理手順が完了していない場合は、ステップS401の処理手順に戻り、クリップ管理情報の次のレコードを選択してステップS401及びステップS402の処理手順を繰り返し行う。
ステップS404で、関連度算出部116は、クリップ管理情報から、基準クリップID及び関連クリップIDの両方を含むカテゴリIDの数を検索し、「クリップ関連度」を更新する。
ここで、ステップS404の処理手順を図5(b)、図8及び図17を用いて具体的に説明する。なお、ステップS403の処理手順からステップS404の処理手順に移った時点で、クリップ関連度情報は、図8の状態のうち「クリップ関連度」が空白(何も設定されていない)の状態である前提とする。図17は、図5(b)に示すカテゴリとクリップとの関係を、理解し易いように図示したものである。
まず、関連度算出部116は、クリップ関連度情報の最初のレコードから、基準クリップIDと関連クリップIDとを抽出する。図8の例では、基準クリップIDは「C01」であり、関連クリップIDは「C02」である。続いて、関連度算出部116は、クリップ管理情報から、C01のクリップIDとC02のクリップIDの両方を含むカテゴリIDの数を検索する。図5(b)及び図17の例では、C01のクリップIDとC02のクリップIDの両方を含むカテゴリのカテゴリIDは、M01、M03、M04の3つである。続いて、関連度算出部116は、クリップ関連度情報の「クリップ関連度」に、「3」を設定する。関連度算出部116は、クリップ関連度情報に含まれる全ての基準クリップID及び関連クリップIDのペアに対して繰り返し行う。本具体例で説明した処理が完了すると、クリップ関連度情報の全ての「クリップ関連度」に値が設定された状態(図8の状態)になる。
図18は、お勧めクリップの表示例を示す図である。クリップ一覧画面において、例えば、特定のクリップ(図18では、クリップ1)が選択された状態でB3ボタンが押下されることで、図13のステップS202乃至ステップS205の処理手順が行われ、端末20のクリップ一覧画面上に、特定のクリップと、特定のクリップと関連度の高いクリップ(お勧めクリップ)とが関連度に応じた順に表示される。
より具体的には、図13のステップS202の処理手順において、端末20aのUI部は、ユーザIDと、特定のクリップのクリップIDと、クリップB3ボタンが押下されたことを示す情報とが含まれるクリップ検索要求信号を情報共有サーバ10に送信する。また、ステップS204の処理手順において、情報共有サーバ10の通信部101及びUI処理部103は、特定のクリップ及び特定のクリップと関連度の高いクリップが関連度に応じた順序でクリップ一覧画面に表示されるための情報を含むクリップ検索応答信号を端末20aに送信する。また、ステップS205の処理手順において、端末20aのUI部203は、ステップS204の処理手順で受信した情報を用いてクリップ一覧画面を生成し、表示部に表示する。
図18の例では、ユーザAのクリップ一覧画面において、図8に示すクリップ関連度情報に基づき、クリップ1が一番上に表示されると共に、クリップ1に対するお勧めクリップ(C02:クリップ2、C04:クリップ4、C03:クリップ3)が、関連度の高い順に表示されている様子が示されている。なお、クリップ一覧画面にお勧めクリップを表示する場合、他のユーザのマイクリップは表示されないようにする。なお、お勧めクリップは、関連度の高い順に表示されるのではなく、関連度の低い順に表示されるようにしてもよいし、関連度に関わらずランダムな順序に表示されるようにしてもよい。
(クリップ関連度算出処理(変形例1))
図19は、関連度算出の具体例(変形例1)を説明するための図である。関連度算出部116は、特定のクリップ(基準クリップIDに対応するクリップ)及び他のクリップ(関連クリップIDに対応するクリップ)の両方に対応づけられているカテゴリが共有カテゴリである場合、共有カテゴリが共有されているユーザの数により重みづけを行うことで関連度を算出するようにしてもよい。
例えば、図4に示すように、カテゴリIDがM04であるカテゴリは共有カテゴリであり、ユーザC(U03)、ユーザD(U04)、ユーザE(U05)の3人に共有されている。従って、図16のステップS404の処理手順を、以下のように行うようにしてもよい。
まず、関連度算出部116は、クリップ関連度情報の最初のレコードから、基準クリップIDと関連クリップIDとを抽出する。図8の例では、基準クリップIDは「C01」であり、関連クリップIDは「C02」である。続いて、関連度算出部116は、クリップ管理情報から、C01のクリップIDとC02のクリップIDの両方を含むカテゴリIDの数を検索する。図5(b)及び図17の例では、C01のクリップIDとC02のクリップIDの両方を含むカテゴリのカテゴリIDは、M01、M03、M04の3つである。ここで、図4に示すように、カテゴリIDがM01、M02、M03であるカテゴリは、マイカテゴリである。一方、カテゴリIDがM04であるカテゴリは、3人のユーザに共有されている共有カテゴリである。共有カテゴリの場合、共有されているユーザの数で重みづけを行うことで関連度を算出する。すなわち、関連度算出部116は、C01のクリップIDとC02のクリップIDとの間の関連度は、1+1+3=5であると算出する。続いて、関連度算出部116は、クリップ関連度情報の「クリップ関連度」に、「5」を設定する。関連度算出部116は、クリップ関連度情報に含まれる全ての基準クリップID及び関連クリップIDのペアに対して繰り返し行う。全てのペアに対して処理が完了すると、クリップ関連度情報の全ての「クリップ関連度」に値が設定された状態(図19の状態)になる。
(クリップ関連度算出処理(変形例2))
図20は、関連度算出の具体例(変形例2)を説明するための図である。カテゴリ管理情報に、カテゴリごとの重みづけ係数を設定可能にしておき、関連度算出部116は、特定のクリップ(基準クリップIDに対応するクリップ)及び他のクリップ(関連クリップIDに対応するクリップ)の両方に対応づけられているカテゴリごとに設定された重みづけ係数に基づいて、関連度を算出するようにしてもよい。図20(a)は、重みづけ係数を含むカテゴリ管理情報の一例を示している。
本変形例2では、図16のステップS404の処理手順を、以下のように行うようにしてもよい。まず、関連度算出部116は、クリップ関連度情報の最初のレコードから、基準クリップIDと関連クリップIDとを抽出する。図8の例では、基準クリップIDは「C01」であり、関連クリップIDは「C02」である。続いて、関連度算出部116は、クリップ管理情報から、C01のクリップIDとC02のクリップIDの両方を含むカテゴリIDの数を検索する。図5(b)及び図17の例では、C01のクリップIDとC02のクリップIDの両方を含むカテゴリのカテゴリIDは、M01、M03、M04の3つである。ここで、図20(a)に示すように、カテゴリIDがM01であるカテゴリの重みづけ係数は「2」である。同様に、カテゴリIDがM03、M04であるカテゴリの重みづけ係数は「1」である。
続いて、関連度算出部116は、C01のクリップIDとC02のクリップIDとの間の関連度を、2+1+1=4であると算出する。続いて、関連度算出部116は、クリップ関連度情報の「クリップ関連度」に、「5」を設定する。関連度算出部116は、クリップ関連度情報に含まれる全ての基準クリップID及び関連クリップIDのペアに対して繰り返し行う。変形例1で説明した処理が完了すると、クリップ関連度情報の全ての「クリップ関連度」に値が設定された状態(図20(b)の状態)になる。
<まとめ>
以上、実施の形態に係る情報共有システムによれば、所定のコミュニケーション手段で送受信される任意の情報(例えば、メール、メールスレッド、チャットメッセージ、Web上の掲示板への投稿、又は添付ファイルなど)のうち、ユーザが指定した範囲の情報(クリップ)を情報共有サーバ10に蓄積し、端末20を介してユーザが任意のタイミングで参照することを可能にした。これにより、ユーザは、例えば業務で活用できる知識又はノウハウといった情報を容易に保存しておくことが可能になる。また、実施の形態に係る情報共有サーバ10は、登録されたクリップを、任意のカテゴリに分類分けすることを可能にした。これにより、ユーザは、保存したクリップから、参照したいクリップを容易に探すことが可能になる。また、ユーザは、関連のあるクリップをまとめて分類分けすることが可能になる。
また、実施の形態に係る情報共有サーバ10は、登録されたクリップを、登録したユーザのみが参照できるマイクリップ、又は複数のユーザから参照できる共有クリップのいずれかの方法で保存することを可能にした。これにより、ユーザは、保存したクリップを簡単に他のユーザに共有することが可能になる。
また、実施の形態に係る情報共有サーバ10は、登録されたクリップを任意のカテゴリに分類分けする際に、カテゴリを作成したユーザのみが参照できるマイカテゴリ、又は、複数のユーザで共通に利用可能な共有カテゴリのいずれかの方法で分類分けすることを可能にした。これにより、複数のユーザの間で、共通にクリップを分類分けすることが可能になる。例えば、あるプロジェクトに参加しているユーザの間で共有カテゴリを作成しておくことで、ユーザ間におけるクリップの共有を容易に行うことが可能になる。
また、実施の形態に係る情報共有サーバ10は、端末20の画面に表示させるクリップ一覧画面において、クリップを様々な方法でソート又はフィルタして表示することを可能にした。これにより、ユーザは、参照したいクリップを迅速に探すことが可能になる。
また、実施の形態に係る情報共有サーバ10は、端末20の画面に表示させるクリップ一覧画面において、特定のクリップと関連性の高いクリップを、関連度が高い順に表示することを可能にした。これにより、ユーザは、クリップを参照する際に、関連性の高い他のクリップを同時に参照することが可能になる。また、これにより、例えば業務で活用できる知識又はノウハウといった情報のうち、ユーザが把握していない情報を効率的に発見することが可能になる。
また、実施の形態に係る情報共有サーバ10は、特定のクリップと他のクリップとの関連度を算出する際に、特定のクリップと他のクリップとの両方に対応づけられているカテゴリの数に基づいて、関連度を算出するようにした。これにより、多くのユーザにおいて関連性が高いと考えられているクリップ同士の関連度を高くすることができ、より正確にクリップ同士の関連性を把握することが可能になる。
また、実施の形態に係る情報共有サーバ10は、特定のクリップと他のクリップとの関連度を算出する際に、特定のクリップと他のクリップとの両方に対応づけられているカテゴリが共有カテゴリである場合、共有カテゴリを共有しているユーザの数で重みづけを行うことで、関連度を算出するようにした。これにより、より正確にクリップ同士の関連性を把握することが可能になる。
また、実施の形態に係る情報共有サーバ10は、特定のクリップと他のクリップとの関連度を算出する際に、特定のクリップと他のクリップとの両方に対応づけられているカテゴリごとに設定された重み付け係数に基づいて、関連度を算出するようにした。これにより、例えばクリップの内容等により重みづけ係数を変更することで、適切な算出方法でクリップ同士の関連性を算出することが可能になる。
<実施形態の補足>
以上、実施の形態において、情報共有サーバ10又は情報処理サーバ30はクラウドサーバであってもよい。すなわち、図2に示す各機能部は、クラウドサーバに実装されるようにしてもよい。以上、本発明は実施の形態に限定されるものではなく、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が本発明に包含される。例えば、クリップの生成及びクリップの送信等を行う機能部(図9のうちアドオンで実現される機能部)を、端末20ではなく情報処理サーバ30側に備えるようにしてもよい。以上、上記複数の実施の形態で述べたシーケンス及びフローチャートは、矛盾の無い限り順序を入れ替えてもよい。
以上、実施の形態に係る情報共有サーバ10、端末20及び情報処理サーバ30が有する機能は、これらが備えるCPU及びメモリなどのハードウェア資源を用いて、情報共有サーバ10、端末20及び情報処理サーバ30で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、当該プログラムは、記憶媒体に格納することができる。
なお、実施の形態において、クリップは収集情報の一例である。クリップ管理情報及びクリップデータ情報は、第一の管理情報の一例である。関連度算出部116は、算出部の一例である。通信部101及びUI処理部103は、通信部の一例である。カテゴリ管理情報は、第二の管理情報の一例である。クリップ登録部112は、登録部の一例である。