(57)【特許請求の範囲】
【請求項１】
クライアントデバイスから、協働コンテンツアイテム内の第１イメージにイメージコメントを生成するコマンドに関して、前記第１イメージのイメージ識別子と、イメージコメントと、前記第１イメージのうち前記イメージコメントが関連付けられている部分を表すものと、を受信することと、
前記イメージ識別子と前記イメージコメントとの記録に関連付けて相対座標を保持することであって、前記相対座標が前記第１イメージの寸法に対して前記第１イメージの前記表された部分を定義する、保持することと、
前記クライアントデバイスに、前記第１イメージと前記イメージコメントとを含む前記協働コンテンツアイテムを表示させることと、
前記クライアントデバイスに、前記イメージコメントの前記相対座標と前記第１イメージの寸法とに基づいて前記第１イメージの一部にタグを表示させることであって、前記タグが前記イメージコメントを特定する、表示させることと、
前記クライアントデバイスから、前記第１イメージを置き換えるための第２イメージのイメージ識別子を受信することと、
前記クライアントデバイスに、前記第２イメージと前記イメージコメントとを含む前記協働コンテンツアイテムを表示させることと、
前記クライアントデバイスに、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示させることと、を含み、
前記第１イメージの寸法が水平寸法と垂直寸法とを有し、前記相対座標が、前記第１イメージの前記水平寸法における割合または前記第２イメージに対する前記水平寸法における比と、前記第１イメージの前記垂直寸法における割合または前記第２イメージに対する前記垂直寸法における比と、を表し、
前記クライアントデバイスに、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示させることが、前記第１イメージの前記水平寸法における前記割合または前記第２イメージに対する前記水平寸法における前記比に前記第２イメージの水平寸法を乗じることによって水平位置を決定し、前記第１イメージの前記垂直寸法における前記割合または前記第２イメージに対する前記垂直寸法における前記比に前記第２イメージの垂直寸法を乗じることによって垂直位置を決定することを含む方法。
【請求項２】
協働コンテンツアイテム内の第１イメージにイメージコメントを生成するコマンドを受信することは、さらに、
前記クライアントデバイスから、イメージコメントを生成するための、前記コメントに併せて表示されたユーザインタフェース要素の選択を受信することを含む請求項１に記載の方法。
【請求項３】
前記第１イメージのうち前記イメージコメントが関連付けられている部分を表すものを受信することは、さらに、
前記クライアントデバイスから、前記イメージコメントと関連付けるべき、前記第１イメージ内の単一の位置の選択を受信することを含む請求項１に記載の方法。
【請求項４】
前記第１イメージのうち前記イメージコメントが関連付けられている部分を表すものを受信することは、さらに、
前記クライアントデバイスから、前記イメージコメントと関連付けるべき、前記第１イメージ内の囲み領域の選択を受信することを含む請求項１に記載の方法。
【請求項５】
前記クライアントデバイスに、前記第１イメージの一部にタグを表示させることが、
前記相対座標が、前記第１イメージのうち前に生成されたイメージコメントに関連付けられた部分からしきい値距離内にあるか否かを判定することと、
前記相対座標が前記しきい値距離内にあることに応じて、前記タグおよび前記前に生成されたタグの両方を示すタグクラスタを生成することと、
前記イメージコメントの前記相対座標および前記前に生成されたイメージコメントの相対座標に基づいて、前記第１イメージの一部に前記タグクラスタを表示することと、を含む請求項１に記載の方法。
【請求項６】
前記クライアントデバイスに、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示させることはさらに、
前記第２イメージが前記第１イメージからクロップされた量を決定することと、
前記第２イメージが前記第１イメージからクロップされた前記量に基づいて、前記イメージコメントの前記相対座標を調整することと、
前記イメージコメントの前記調整された相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの前記一部に前記タグを表示することと、を含む請求項１に記載の方法。
【請求項７】
第１イメージを含む協働コンテンツアイテムをクライアントデバイスに表示することと、
前記第１イメージ上にイメージコメントを生成するコマンドと、前記イメージコメントが関連付けられる先の前記第１イメージの一部を表すものと、を前記クライアントデバイスによって受信することと、
前記イメージコメントに関連付けられた前記第１イメージの前記表された部分の相対座標を前記クライアントデバイスによって決定することであって、前記相対座標が前記第１イメージの寸法に対して前記第１イメージの前記表された部分を定義する、決定することと、
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第１イメージの寸法とに基づいて前記第１イメージの一部にタグを表示することであって、前記タグが前記イメージコメントを特定する、表示することと、
前記クライアントデバイスによって、前記第１イメージを置き換えるための第２イメージのイメージ識別子を受信することと、
前記クライアントデバイスによって、前記イメージ識別子を用いて前記第２イメージを取得することと、
前記クライアントデバイスによって、前記第１イメージおよび前記イメージコメントの代わりに前記第２イメージを含む前記協働コンテンツアイテムを表示することと、
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示することと、を含み、
前記第１イメージの寸法が水平寸法と垂直寸法とを有し、前記相対座標が、前記第１イメージの前記水平寸法における割合または前記第２イメージに対する前記水平寸法における比と、前記第１イメージの前記垂直寸法における割合または前記第２イメージに対する前記垂直寸法における比と、を表し、
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示することが、前記第１イメージの前記水平寸法における前記割合または前記第２イメージに対する前記水平寸法における前記比に前記第２イメージの水平寸法を乗じることによって水平位置を決定し、前記第１イメージの前記垂直寸法における前記割合または前記第２イメージに対する前記垂直寸法における前記比に前記第２イメージの垂直寸法を乗じることによって垂直位置を決定することを含む方法。
【請求項８】
前記クライアントデバイスによって、前記第１イメージ上にイメージコメントを生成するコマンドを受信することが、さらに、
前記クライアントデバイスから、イメージコメントを生成するための、前記コメントに併せて表示されたユーザインタフェース要素の選択を受信することを含む請求項７に記載の方法。
【請求項９】
前記クライアントデバイスによって、前記第１イメージのうち前記イメージコメントが関連付けられている部分を表すものを受信することは、さらに、
前記イメージコメントと関連付けるべき、前記第１イメージ内の単一の位置の選択を受信することを含む請求項７に記載の方法。
【請求項１０】
前記クライアントデバイスによって、前記第１イメージのうち前記イメージコメントが関連付けられている部分を表すものを受信することは、さらに、
前記イメージコメントと関連付けるべき、前記第１イメージ内の囲み領域の選択を受信することを含む請求項７に記載の方法。
【請求項１１】
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示することはさらに、
前記相対座標が、前記第１イメージのうち前に生成されたイメージコメントに関連付けられた部分からしきい値距離内にあるか否かを判定することと、
前記相対座標が前記しきい値距離内にあることに応じて、前記タグおよび前に生成されたイメージコメントに関連付けられた前記前に生成されたタグの両方を示すタグクラスタを生成することと、
前記イメージコメントの前記相対座標および前記前に生成されたイメージコメントの相対座標に基づいて、前記第２イメージの一部に前記タグクラスタを表示することと、を含む請求項７に記載の方法。
【請求項１２】
前記前に生成されたイメージコンテンツが前記協働コンテンツアイテムから削除されたと判定することと、
前記第２イメージの前記表示から前記タグクラスタを除去することと、
前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを再表示することと、をさらに含む請求項１１に記載の方法。
【請求項１３】
前記第２イメージのサイズが変更されたと判定することと、
前記相対座標が、前記第１イメージのうち前に生成されたイメージコメントに関連付けられた部分からしきい値距離内にもはやないと判定し、前記第２イメージの前記表示から前記タグクラスタを除去することと、
前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを再表示することと、をさらに含む請求項１１に記載の方法。
【請求項１４】
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示することは、さらに、
前記第２イメージが前記第１イメージからクロップされた量を決定することと、
前記第２イメージが前記第１イメージからクロップされた前記量に基づいて、前記イメージコメントの前記相対座標を調整することと、
前記イメージコメントの前記調整された相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの前記一部に前記タグを表示することと、を含む請求項７に記載の方法。
【請求項１５】
インストラクションを保持するコンピュータ可読保持媒体であって、
前記インストラクションは計算システムによって実行された場合、前記計算システムに、
第１イメージを含む協働コンテンツアイテムをクライアントデバイスに表示することと、
前記第１イメージ上にイメージコメントを生成するコマンドと、前記イメージコメントが関連付けられる先の前記第１イメージの一部を表すものと、を前記クライアントデバイスによって受信することと、
前記イメージコメントに関連付けられた前記第１イメージの前記表された部分の相対座標を前記クライアントデバイスによって決定することであって、前記相対座標が前記第１イメージの寸法に対して前記第１イメージの前記表された部分を定義する、決定することと、
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第１イメージの寸法とに基づいて前記第１イメージの一部にタグを表示することであって、前記タグが前記イメージコメントを特定する、表示することと、
前記クライアントデバイスによって、前記第１イメージを置き換えるための第２イメージのイメージ識別子を受信することと、
前記クライアントデバイスによって、前記イメージ識別子を用いて前記第２イメージを取得することと、
前記クライアントデバイスによって、前記第１イメージおよび前記イメージコメントの代わりに前記第２イメージを含む前記協働コンテンツアイテムを表示することと、
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示することと、を含む動作を行わせ、
前記第１イメージの寸法が水平寸法と垂直寸法とを有し、前記相対座標が、前記第１イメージの前記水平寸法における割合または前記第２イメージに対する前記水平寸法における比と、前記第１イメージの前記垂直寸法における割合または前記第２イメージに対する前記垂直寸法における比と、を表し、
前記クライアントデバイスによって、前記イメージコメントの前記相対座標と前記第２イメージの寸法とに基づいて前記第２イメージの一部に前記タグを表示することが、前記第１イメージの前記水平寸法における前記割合または前記第２イメージに対する前記水平寸法における前記比に前記第２イメージの水平寸法を乗じることによって水平位置を決定し、前記第１イメージの前記垂直寸法における前記割合または前記第２イメージに対する前記垂直寸法における前記比に前記第２イメージの垂直寸法を乗じることによって垂直位置を決定することを含むコンピュータ可読保持媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施の形態は総じて、共有される協働コンテンツアイテムにおけるイメージ注釈の管理に関する。
【背景技術】
【０００２】
書類のオンライン協働共有は典型的には、複数のユーザがファイルにアクセスし編集することを許可するネットワークベースのファイル共有コンピュータシステムによって提供される。総じて、書類はワードプロセッサやスプレッドシートアプリケーションなどのネイティブアプリケーションの特定のタイプによって生成され、編集される。多くのそのようなアプリケーションは、書類内の語句や文や段落に対するコメントやスプレッドシートのセルに対するコメントなどのファイルの一部に対してなされるコメント、または注釈の他の形態を追跡するための支援を提供する。しかしながら、既存のシステムは、ユーザが、イメージ全体ではなくイメージの特定の部分にリンクされたコメントまたは注釈を生成することを可能とするネイティブプログラム的機能を提供することはない。代わりに、既存のシステムは、イメージ全体にリンクされたコメントを提供するのみであって、次いで、ユーザが指し示している特定の部分をコメントにおいて説明することを試みることをユーザに任せている。このアプローチは、イメージに対するコメントの十分な粒度および制御を提供できていない。
【発明の概要】
【０００３】
協働コンテンツ管理システムは、ユーザが、複数の他のユーザとの間で協働コンテンツアイテムを生成し、編集し、共有することを可能とする。協働コンテンツアイテムは、テキストやイメージや他のマルチメディアや表などの様々なタイプのコンテンツを含んでもよい。ユーザは、クライアントデバイス上のクライアントアプリケーションを用いて、またはウェブアプリケーションを通じて、協働コンテンツ管理システムと通信することができる。クライアントアプリケーションは、ユーザが、協働コンテンツ管理システム上の協働コンテンツアイテムにアクセスし、そのような協働コンテンツアイテムを編集し、協働コンテンツアイテムにコメントし、および他のユーザと協働コンテンツアイテムを共有するためのインタフェースを提供する。
【０００４】
協働コンテンツ管理システムは、イメージの特定の部分に関連付けられたコメントを含むスレッドの生成を可能とする。ユーザは、イメージの一部を選択することによって、イメージの特定の部分に関連付けられたコメントスレッドを生成することができる。スレッドが特定の部分にリンクされていることを示すためのタグを、イメージの特定の部分に表示することができる。その部分の座標を定義する情報は、コメントを含むスレッドに関連付けて保持される。他のユーザはそのスレッドに更なるコメントで返信してもよく、したがって、その更なるコメントをイメージの指定された部分に関連付ける。特定の部分はイメージの特定の位置または領域であってもよい。
【０００５】
特定の部分の座標を定義する情報は、イメージのサイズおよびイメージの解像度を考慮に入れた形の、イメージにおける相対位置で定義されてもよい。これにより、スレッドを第２置換イメージに適用することが可能とするか、または、スレッドをイメージから第２置換イメージに移すことを可能としつつ、置換イメージ内でスレッドが関連付けられている相対位置を維持することが可能となり、さらには、リンクされたスレッドを表すタグの正確な位置決めが可能となる。
【０００６】
本発明は、クライアントデバイスおよびクライアントアプリケーション、協働コンテンツ管理システム、コンピュータプログラム製品、コンピュータ実装方法において具現化される。
【０００７】
本サマリおよび以下の詳細な説明で説明される特徴および利点は包括的なものではない。本開示の図面、明細書および請求の範囲に照らし、当業者には多くの追加的な特徴および利点が明らかとなろう。
【図面の簡単な説明】
【０００８】
【図１】ある実施の形態に係る、コンテンツ管理システムおよび協働コンテンツ管理システムのシステム環境の図を示す。
【０００９】
【図２】クライアントデバイスのコンポーネントのブロック図を示す。
【００１０】
【図３】コンテンツ管理システムのブロック図を示す。
【００１１】
【図４】協働コンテンツ管理システムのブロック図を示す。
【００１２】
【図５】協働コンテンツアイテム、スレッドおよびコメントのデータ構造のブロック図を示す。
【００１３】
【図６Ａ】種々のコメントを含む協働コンテンツアイテムのページを伴う例示的ユーザインタフェースを示す。
【００１４】
【図６Ｂ】図６Ｂ−６Ｅは、イメージコメントを生成し表示するための種々のインタフェースを示す。
【図６Ｃ】図６Ｂ−６Ｅは、イメージコメントを生成し表示するための種々のインタフェースを示す。
【図６Ｄ】図６Ｂ−６Ｅは、イメージコメントを生成し表示するための種々のインタフェースを示す。
【図６Ｅ】図６Ｂ−６Ｅは、イメージコメントを生成し表示するための種々のインタフェースを示す。
【００１５】
【図７Ａ】イメージコメントスレッドを生成するためのクライアント側アルゴリズムのある実施の形態を示す。
【００１６】
【図７Ｂ】イメージコメントスレッドを生成するためのサーバ側アルゴリズムのある実施の形態を示す。
【００１７】
【図８Ａ】イメージを置き換え、関連イメージコメントを扱うためのクライアント側アルゴリズムのある実施の形態を示す。
【００１８】
【図８Ｂ】イメージを置き換え、関連イメージコメントを扱うためのサーバ側アルゴリズムのある実施の形態を示す。
【発明を実施するための形態】
【００１９】
システム概要
【００２０】
図１は、コンテンツ管理システム１００と、協働コンテンツ管理システム１３０と、クライアントデバイス１２０Ａ、１２０Ｂ、１２０Ｃ（総称してまたは個々に「１２０」）と、を含むシステム環境を示す。コンテンツ管理システム１００は、コンテンツアイテムをひとつ以上のクライアントデバイス１２０と共有する機能と、コンテンツ管理システム１００とひとつ以上のクライアントデバイス１２０との間でコンテンツアイテムを同期する機能と、を提供する。
【００２１】
コンテンツ管理システム１００によって保持されるコンテンツは、ドキュメント（文書）や協働コンテンツアイテムやテキストファイルや音声ファイルやイメージファイルやビデオファイルやウェブページや実行可能ファイルやバイナリファイルや他のコンテンツアイテムを参照するプレースホルダファイルなどの任意のタイプのコンテンツアイテムを含みうる。ある実装では、コンテンツアイテムは他のコンテンツアイテムの一部であってもよく、例えば、あるドキュメントに含まれるイメージがそうである。コンテンツアイテムはまた、フォルダや名前空間やプレイリストやアルバムなどの、他のコンテンツアイテムを一緒にグループ化する集合体を含んでもよい。コンテンツ管理システム１００によって保持されるコンテンツは、フォルダやテーブルなどのある構成で、または他のデータベース構造（例えば、オブジェクト指向、キー／値など）で、整理されてもよい。
【００２２】
ある実施の形態では、コンテンツ管理システム１００によって保持されるコンテンツは、ワードプロセッサやビデオおよびイメージエディタやデータベース管理システムやスプレッドシートアプリケーションやコードエディタなどの第三者アプリケーションを用いることにより生成されたコンテンツアイテムを含み、そのようなコンテンツアイテムはコンテンツ管理システム１００とは独立している。
【００２３】
ある実施の形態では、コンテンツ管理システム１００によって保持されるコンテンツは、協働コンテンツ管理システム１３０によって提供される協働コンテンツアイテムエディタを用いて生成された、協働コンテンツアイテムなどのコンテンツアイテムを含む。種々の実装では、協働コンテンツアイテムは、コンテンツ管理システム１００と共に、またはコンテンツ管理システム１００の外で、協働コンテンツアイテム管理システム１３０によって保持されてもよい。協働コンテンツアイテムエディタは、ユーザが同時に協働コンテンツアイテムを生成および編集し、同時に協働コンテンツアイテムにコメントし、同時に協働コンテンツアイテム内のタスクを管理することができるプラットフォームでありうる。
【００２４】
ユーザは、コンテンツ管理システム１００にアカウントを生成し、クライアントデバイス１２０からコンテンツ管理システム１００にそのようなコンテンツを送信することによってコンテンツ管理システム１００にコンテンツを格納してもよい。ユーザにより提供されユーザアカウントに関連付けられたコンテンツは種々の特権を有しうる。例えば、特権は、コンテンツアイテムのタイトルを見る許可、コンテンツアイテムの他のメタデータ（例えば、位置データ、アクセス履歴、バージョン履歴、生成／変更日付け、コメント、ファイル階層など）を見る許可、コンテンツアイテムの内容を読み出す許可、コンテンツアイテムのメタデータを変更する許可、コンテンツアイテムの内容を変更する許可、コンテンツアイテムにコメントする許可、コンテンツアイテムに対する他人のコメントを読み出す許可、他のユーザに対してコンテンツアイテム許可を与えたり除いたりする許可、を含みうる。
【００２５】
クライアントデバイス１２０は、ネットワーク１１０を通じて、コンテンツ管理システム１００および協働コンテンツ管理システム１３０と通信する。ネットワークはデータ伝送に適した任意の通信ネットワークであってもよい。ある実施の形態では、ネットワーク１１０はインターネットであり、標準の通信技術および／またはプロトコルを用いる。したがって、ネットワーク１１０は、イーサネット、８０２．１１、マイクロ波アクセスのための世界的互換性（ＷｉＭＡＸ）、３Ｇ、４Ｇ、デジタル加入者ライン（ＤＳＬ）、非対称移送モード（ＡＴＭ）、インフィニティバンド、ＰＣＩエキスプレスアドバンスドスイッチングなどの技術を用いるリンクを含んでもよい。同様に、ネットワーク１１０で用いられるネットワーク用プロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、トランスミッションコントロールプロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）、シンプルメールトランスファープロトコル（ＳＭＴＰ）、ファイルトランスファープロトコル（ＦＴＰ）などを含んでもよい。ネットワーク１１０を介して交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、ジャバスクリプトオブジェクトノーテーション（ＪＳＯＮ）などを含む技術および／またはフォーマットを用いて表されてもよい。加えて、リンクのうちの全てまたはいくつかは、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）、仮想専用ネットワーク（ＶＰＮ）、インターネットプロトコルセキュリティ（ＩＰｓｅｃ）などの従来の暗号化技術を用いて暗号化されてもよい。他の実施の形態では、エンティティは上述のものに代えてまたは加えて、慣用のおよび／または専用のデータ通信技術を用いる。
【００２６】
ある実施の形態では、コンテンツ管理システム１００および協働コンテンツ管理システム１３０は単一のシステムに統合される。そのシステムは、システム１００および１３０について本明細書で説明される機能を提供するよう構成されたひとつ以上のサーバを含んでもよい。
【００２７】
クライアントデバイス
【００２８】
図２は、ある実施の形態に係る、クライアントデバイス１２０のコンポーネントのブロック図を示す。クライアントデバイス１２０は、総じて、コンテンツ管理システム１００およびクライアントデバイス１２０のユーザと通信するためのデバイスおよびモジュールを含む。クライアントデバイス１２０は、情報をユーザに提供するディスプレイ２１０を含み、あるクライアントデバイス１２０はタッチスクリーンを含む。クライアントデバイス１２０はまた、ネットワーク１１０を介してコンテンツ管理システム１００と通信するためのネットワークインタフェース２２０を含む。重要でない、例えば、１つ以上のコンピュータプロセッサ、ローカルの固定メモリ（ＲＡＭ及びＲＯＭ）、及び、オプションとしての着脱可能メモリ（例えば、ＳＤカード）、電源、及び音声−ビデオ入力といった、クライアントデバイス１２０の他の構成要素は示されていない。
【００２９】
ある実施形態では、クライアントデバイス１２０は、カメラ２３０及びロケーションモジュール２４０などの、追加的な構成要素を含む。ロケーションモジュール２４０は、例えば、全地球測位衛星（ＧＰＳ）信号、携帯電話基地局の三角測量、又は他の方法を用いてクライアントデバイス１２０の位置を決定する。ロケーションモジュール２４０は、位置データを取得し、コンテンツアイテムについてのメタデータに位置データを追加するために、クライアントアプリケーション２００によって使用されてよい。
【００３０】
クライアントデバイス１２０は、クライアントデバイスを動作させ、コンテンツ管理システム１００にアクセスするための様々なタイプのコンポーネントおよびモジュールを維持する。ソフトウエアモジュールは、オペレーティングシステム２５０及びオプションでコンテンツアイテムエディタ２７０を含む。協働コンテンツアイテムエディタ２７０は、テキストドキュメントやコードファイルや混合メディアファイル（例えば、テキストおよびグラフィック）やプレゼンテーションなどの協働コンテンツアイテムを生成、閲覧および変更するよう構成される。各デバイス上のオペレーティングシステム２５０は、ローカルのファイル管理システムを提供し、コンテンツ管理システムクライアントアプリケーション２００及びコンテンツアイテムエディタ２７０などの、様々なソフトウェアモジュールを実行する。アドレス帳２９０は、名前、電話番号、会社、電子メールアドレス、物理アドレス、ウェブサイトＵＲＬなどの、ユーザの連絡先についての情報を格納する。
【００３１】
クライアントデバイス１２０は、様々な方法で、コンテンツ管理システム１００および協働コンテンツ管理システム１３０にアクセス可能である。クライアントデバイス１２０は、コンテンツ管理システムクライアントアプリケーション２００などのネイティブアプリケーションまたはソフトウエアモジュールを通じてこれらのシステムにアクセスしてもよい。クライアントデバイス１２０はまた、ウェブブラウザ２６０を通じてコンテンツ管理システム１００にアクセスしてもよい。代替として、クライアントアプリケーション２００は、コンテンツ管理システム１００へのアクセスと、オペレーティングシステム２５０によって提供されるローカルファイル管理システムとを統合してもよい。コンテンツ管理システム１００へのアクセスがローカルファイル管理システムに統合された場合、コンテンツ管理システム１００において保守されるファイル組織化スキームは、オペレーティングシステム２５０とクライアントアプリケーション２００との共同により、ローカルファイル構成物として表される。
【００３２】
クライアントアプリケーション２００は、コンテンツ管理システム１００および協働コンテンツ管理システム１３０へのアクセスを管理する。クライアントアプリケーション２００は、クライアントアプリケーション２００によってアクセスされるコンテンツへのインタフェースを生成する、ユーザインタフェースモジュール２０２を含み、この機能を実行する１つの手段である。生成されたインタフェースはディスプレイ２１０によってユーザへ提供される。クライアントアプリケーション２００は、コンテンツ管理システム１００のコンテンツストレージからアクセスされたコンテンツを、ローカルコンテンツ２０４に格納してもよい。ここではクライアントアプリケーション２００内のものとして示されるが、ローカルコンテンツ２０４は、不揮発性ストレージ内にクライアントデバイス１２０のための他のデータと共に格納されてもよい。ローカルコンテンツ２０４がこのように格納される場合、コンテンツは、クライアントアプリケーション２００がコンテンツ管理システム１００と通信中でないときに、ユーザ及びコンテンツアイテムエディタ２７０のような他のアプリケーション又はモジュールに利用可能である。コンテンツアクセスモジュール２０６は、ローカルコンテンツ２０４への更新を管理し、クライアントデバイス１２０によって修正されたコンテンツをコンテンツ管理システム１００上に維持されるコンテンツと同期するために、コンテンツ管理システム１００と通信するものであり、この機能を実行するひとつの手段である。クライアントアプリケーション２００は、スタンドアローンのアプリケーション、アプリケーションプラグイン、又はブラウザ拡張などの様々な形式をとってよい。
【００３３】
コンテンツ管理システム
【００３４】
図３は、ある実施の形態に係る、コンテンツ管理システム１００のブロック図を示す。種々のコンテンツ管理サービスをより容易にするために、ユーザはコンテンツ管理システム１００にアカウントを生成してもよい。アカウント情報はユーザアカウントデータベース３１６に維持されてもよく、この機能を実行するためのひとつの手段である。ユーザアカウントデータベース３１６は、登録ユーザについてのプロファイル情報を保持してもよい。ある場合には、ユーザプロファイルの個人情報はユーザ名および／または電子メールアドレスのみである。しかしながら、コンテンツ管理システム１００はまた、パスワード復活情報や属性情報や支払い情報や他の詳細などの追加的なユーザ情報を受け入れるよう構成されてもよい。各ユーザは、ユーザＩＤおよびユーザ名に関連付けられる。簡便化を目的として、本明細書において、ユーザに「関連付け」られているコンテンツアイテムや他のデータなどの情報への参照は、コンテンツアイテムと、ユーザのユーザ識別子の上記形態のいずれかと、の間の関連を意味するものとして理解される。同様に、コンテンツアイテムおよびユーザに対するデータ処理動作は、コンテンツアイテムＩＤおよびユーザＩＤなどの対応する識別子に対して行われる動作として理解される。例えば、ユーザＩＤとコンテンツアイテムＩＤとをリンクさせる情報をテーブル、ファイル、または他のストレージフォーマットで保持することにより、ユーザをコンテンツアイテムに関連付けることができる。例えば、コンテンツアイテムＩＤにより整理されるデータベーステーブルは、そのコンテンツアイテムに関連付けられた各ユーザのユーザＩＤをリストする列を含んでもよい。他の例として、各ユーザＩＤについて、ファイルはそのユーザに関連付けられたコンテンツアイテムＩＤの集合をリストしてもよい。他の例として、単一のファイルは、個々のユーザとコンテンツアイテムとの関連を表す＜ユーザＩＤ、コンテンツアイテムＩＤ＞などのキー値ペアをリストしてもよい。同じタイプのメカニズムを用いることにより、ユーザと、コメントやスレッドやテキスト要素やフォーマット化属性などと、を関連付けてもよい。
【００３５】
ユーザアカウントデータベース３１６は、有料／無料の別などのアカウントタイプや、ファイル利用履歴などのユーザ毎の利用情報や、許されている最大ストレージスペースや、利用されているストレージスペースや、コンテンツストレージ位置や、セキュリティ設定や、個人構成設定や、コンテンツ共有データなどのアカウント管理情報を含んでもよい。アカウント管理モジュール３０４は、ユーザアカウントデータベース３１６におけるユーザアカウントの詳細を更新および／または取得するよう構成されてもよい。アカウント管理モジュール３０４は、コンテンツ管理システム１００の他の任意の数のモジュールと相互に作用するよう構成されてもよい。
【００３６】
アカウントは、そのアカウントに関連付けられたひとつ以上のクライアントデバイスから、協働コンテンツアイテムや音声ファイルやビデオファイルなどのコンテンツアイテムを格納するために使用されてもよい。コンテンツアイテムは複数のユーザおよび／またはユーザアカウントと共有されてもよい。ある実装では、コンテンツアイテムを共有することは、共有モジュール３１０を用いて、コンテンツアイテムを二以上のユーザアカウントと関連付け、その関連付けられたユーザアカウントのうちのひとつで認証されたユーザがそのコンテンツアイテムへの指定されたアクセスレベルを有するようにユーザ権限を提供することを含んでもよい。すなわち、コンテンツアイテムは様々なタイプ、能力、オペレーティングシステム等の複数のクライアントデバイスの間で共有可能である。コンテンツアイテムはまた、様々なタイプのユーザアカウントの間で共有可能である。
【００３７】
上述の通り、個々のユーザには、共有されるコンテンツアイテムに対する異なるアクセス権限が割り当てられてもよい。ある場合、コンテンツアイテムに対するユーザの権限は、そのユーザについて明示的に設定されてもよい。ユーザの権限はまた、ユーザに関連付けられたタイプまたはカテゴリ（例えば、管理者ユーザまたはマネジャーの高度な権限）、ユーザのグループへの所属または機構の一部として特定されること（例えば、特定のチームの全てのメンバに対する指定された権限）、および／またはコンテンツアイテムへのユーザのアクセスのメカニズムまたはコンテキスト（例えば、ユーザがどこにいるか、ユーザがどのネットワーク上にいるか、ユーザがアクセスしているプログラムまたはＡＰＩのタイプは何か、ユーザがコンテンツアイテムへのリンクをクリックしたか否か、等）、に基づいて設定されてもよい。加えて、デフォルトで、ユーザ、ユーザタイプ／グループ、または種々のアクセスメカニズムおよびコンテキストについて権限を設定してもよい。
【００３８】
ある実装では、共有コンテンツアイテムはユーザアカウントへの認証を必要とせずに、レシピエントユーザがアクセス可能であってもよい。これは、共有モジュール３１０が、コンテンツアイテムに関連付けられたリンクの活性化を通じてそのコンテンツアイテムへのアクセスを提供すること、または、グローバルにアクセス可能な共有フォルダを通じたアクセスを提供すること、を含みうる。
【００３９】
コンテンツはコンテンツストレージ３１８に保持されてもよく、これはこの機能を実行するための一つの手段である。コンテンツストレージ３１８は、ストレージデバイスや、複数のストレージデバイスや、サーバであってもよい。あるいはまた、コンテンツストレージ３１８は、ひとつ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダまたはネットワークストレージであってもよい。ある構成では、コンテンツ管理システム１００は、クライアントデバイス上に現れる配置構成と同じ配置構成でコンテンツアイテムを保持する。しかしながら、コンテンツ管理システム１００は自身の順序や構成や階層でコンテンツアイテムを保持してもよい。
【００４０】
コンテンツストレージ３１８は、コンテンツアイテムおよびコンテンツアイテムタイプおよびコンテンツアイテムと種々のアカウントやフォルダやグループとの関係を説明するメタデータを保持してもよい。コンテンツアイテムのメタデータは、コンテンツアイテムの一部として保持されてもよいし、別個に保持されてもよい。ある構成では、コンテンツストレージ３１８に保持される各コンテンツアイテムには、システム全体で一意の識別子（例えば、コンテンツアイテムＩＤ）が割り当てられてもよい。
【００４１】
コンテンツストレージ３１８は、重複したファイルやファイルの重複セグメントを特定することによって、要求されるストレージスペースの量を低減することができる。同一のコンテンツアイテムの複数の複製を保持する代わりに、コンテンツストレージ３１８は単一の複製を保持し、ポインタや他のメカニズムを使用して、重複しているものをその単一の複製にリンクさせてもよい。同様に、コンテンツストレージ３１８は、ファイルへの変更と、ファイルの異なるバージョン（分岐バージョンツリーなど）と、変更履歴と、を追跡するファイルバージョン制御メカニズムを用いてファイルを保持する。変更履歴は、元のファイルバージョンに適用された場合、変更後のファイルバージョンを生成する一組の変更を含んでもよい。
【００４２】
コンテンツ管理システム１００は、この機能を実行するためのひとつの手段であるところの同期モジュール３１２を用いて、ひとつ以上のクライアントデバイスからのコンテンツを自動的に同期させる。同期はプラットフォーム不可知的である。すなわち、コンテンツは、種類、能力、オペレーティングシステム等の異なる、複数のクライアントデバイス１２０にわたって同期される。例えば、クライアントアプリケーション２００は、コンテンツ管理システム１００の同期モジュール３１２を介して、クライアントデバイス１２０のファイルシステム内のコンテンツを、システム１００上で関連付けられているユーザアカウントのコンテンツと同期させる。クライアントアプリケーション２００は、指定されたフォルダおよびそのサブフォルダ内のコンテンツへの任意の変更を、同期モジュール３１２と同期させる。そのような変更は、新たな、削除された、変更された、コピーされた、または移動されたファイルやフォルダを含む。同期モジュール３１２はまた、クライアントアプリケーション２００に、クライアントデバイス１２０に関連付けられたコンテンツへの任意の変更を提供する。これは、クライアントデバイス１２０におけるローカルコンテンツと、コンテンツ管理システム１００におけるコンテンツアイテムと、を同期させる。
【００４３】
競合管理モジュール３１４は、異なる複数のクライアントデバイス１２０に置かれたコンテンツアイテムの複数のバージョンの間に矛盾が存在するか否かを判定する。例えば、コンテンツアイテムがあるクライアントデバイスおよび第２クライアントデバイスにおいて変更された場合、コンテンツアイテムの異なるバージョンが各クライアントデバイスに存在しうる。同期モジュール３１２は、例えばコンテンツアイテム変更の変更時刻を特定することによって、そのようなバージョン競合を判定する。競合管理モジュール３１４は、複数のバージョンをマージすることや後に提出されたバージョンをクライアントデバイスに通知することなどの任意の適切な手段によって、バージョン間の競合を解決する。
【００４４】
ユーザは、ユーザインタフェースモジュール３０２によって生成されるウェブインタフェースを介して、コンテンツを視たり操作したりしてもよい。例えば、ユーザは、ウェブブラウザ２６０内で、コンテンツ管理システム１００によって提供されるウェブアドレスへと辿り着いてもよい。ファイルの新たなバージョンのアップロードのように、ウェブインタフェースを通じてなされたコンテンツストレージ３１８のコンテンツへの変更や更新は、ユーザのアカウントに関連する他のクライアントデバイス１２０へと再同期されてもよい。複数のクライアントデバイス１２０は単一のアカウントと関連付けられていてもよく、そのアカウントのファイルは複数のクライアントデバイス１２０のそれぞれの間で同期されてもよい。
【００４５】
コンテンツ管理システム１００は、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して他のコンテンツおよび／またはサービスプロバイダとのおよび種々のクライアントデバイス１２０とのインタフェースとしての通信インタフェース３００を含んでもよい。ＡＰＩはこの機能を実行するためのひとつの手段である。所定のソフトウエアアプリケーションは、ユーザの代わりに、ＡＰＩを介してコンテンツストレージ３１８にアクセスする。例えば、スマートフォンやタブレット計算デバイス上のアプリケーションなどのソフトウエアパッケージはプログラム上、ユーザが資格証明を提供する場合、コンテンツ管理システム１００を直接呼び出し、コンテンツを読み取り、書き込み、生成し、消去し、共有し、またはそうでなければ操作してもよい。同様に、ＡＰＩは、ウェブサイトを通じてユーザがコンテンツストレージ３１８の全てまたは一部にアクセスすることを可能としてもよい。
【００４６】
コンテンツ管理システム１００はまた、認証モジュール３０６を含んでもよい。認証モジュール３０６は、ユーザ資格情報やセキュリティトークンやＡＰＩコールや特定クライアントデバイスなどを検証することにより、要求されているコンテンツアイテムへのアクセスが認証されるか否かを判定する。これはこの機能を実行するためのひとつの手段である。認証モジュール３０６は、ユーザアカウント用の一回限り使用できる認証トークンを生成してもよい。認証モジュール３０６は、各認証トークンに、有効期間または使用期限を割り当てる。認証トークンを要求元のクライアントデバイスに送信することに加えて、認証モジュール３０６は、認証トークンデータベース３２０に、生成された認証トークンを格納してもよい。認証トークンの検証要求を受けた後、認証モジュール３０６は、認証トークンデータベース３２０をチェックし、ユーザに割り当てられたマッチする認証トークンを探す。認証モジュール３０６がマッチする認証トークンを特定すると、認証モジュール３０６は、そのマッチする認証トークンがまだ正当であるか否かを判定する。例えば、認証モジュール３０６は、認証トークンが期限切れになっていないことまたは使用済みや無効というマークが付されていないことを確かめる。認証トークンを検証した後、認証モジュール３０６は、使い捨てトークンなどのマッチする認証トークンを無効化してもよい。例えば、認証モジュール３０６は、マッチする認証トークンに使用済みまたは無効というマークを付してもよいし、認証トークンデータベース３２０からマッチする認証トークンを削除してもよい。
【００４７】
ある実施の形態では、コンテンツ管理システム１００は、コンテンツディレクトリを維持するためのコンテンツ管理モジュール３０８を含む。コンテンツディレクトリは、コンテンツストレージ３１８における各コンテンツアイテムの位置を特定し、クライアントアプリケーションがストレージ３１８内のコンテンツアイテムへのアクセスを要求することを可能とする。これは、この機能を行うひとつの手段である。コンテンツディレクトリのコンテンツエントリは、コンテンツストレージ３１８におけるコンテンツアイテムの位置を特定するコンテンツポインタを含んでもよい。例えば、コンテンツエントリは、メモリにおけるコンテンツアイテムのストレージアドレスを指定するコンテンツポインタを含んでもよい。ある実施形態では、コンテンツエントリは、そのそれぞれがコンテンツアイテムの一部を含む複数の場所を指し示す複数のコンテンツポインタを含む。
【００４８】
コンテンツパスおよびコンテンツポインタに加えて、ある構成のコンテンツエントリはまた、コンテンツアイテムへのアクセスを有するユーザアカウントを特定するユーザアカウント識別子を含む。ある実施の形態では、複数のユーザアカウント識別子が単一のコンテンツエントリに関連付けられてもよく、これは、そのコンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す。
【００４９】
協働コンテンツ管理システム
【００５０】
図４は、ある実施の形態に係る、協働コンテンツ管理システム１３０のブロック図を示す。協働コンテンツアイテムは、協働コンテンツアイテムエディタ４０４を用いてユーザが生成および編集できるファイルであってもよく、協働コンテンツアイテム要素を含みうる。協働コンテンツアイテム要素は、テキスト、イメージ、アニメーション、ビデオ、音声、他のマルチメディア、テーブル、リスト、外部コンテンツへの参照、プログラムコード、タスク、タグまたはラベル、コメント、または任意の他のタイプのコンテンツなどの任意のタイプのコンテンツを含んでもよい。協働コンテンツアイテム要素は、著者識別子、属性、相互作用情報、コメント、共有ユーザ等と関連付けられてもよい。協働コンテンツアイテム要素はデータベースのエントリとして保持されてもよく、これにより、協働コンテンツアイテムを探して取得することが可能となる。コンテンツアイテムの他のタイプと同様に、協働コンテンツアイテムは複数のユーザおよびクライアントデバイス１２０で共有され、同期されてもよく、これはコンテンツ管理システム１００の共有モジュール３１０および同期モジュール３１２を用いて行われる。ユーザは、クライアントデバイス１２０を操作することにより、協働コンテンツアイテムを生成および編集し、クライアントデバイス１２０の他のユーザと協働コンテンツアイテムを共有する。あるクライアントデバイス１２０による協働コンテンツアイテムへの変更は、その協働コンテンツアイテムに関連付けられたユーザの他のクライアントデバイス１２０に伝搬する。
【００５１】
図１の実施の形態では、協働コンテンツ管理システム１３０はコンテンツ管理システム１００とは別体として示されており、それと通信することで、そのサービスを取得することができる。他の実施の形態では、協働コンテンツ管理システム１３０は、コンテンツ管理システム１００のコンポーネントのサブシステムであって、種々のタイプのコンテンツアイテムについて協働サービスおよび共有サービスを提供する。コンテンツ管理システム１００からのユーザアカウントデータベース３１６および認証トークンデータベース３２０は、本明細書で説明される協働コンテンツ管理システム１３０にアクセスするために用いられる。
【００５２】
協働コンテンツ管理システム１３０は、協働コンテンツアイテムに対するアクセスおよび編集を管理するための、また、協働コンテンツアイテムに対してなされた所定の変更についての通知を管理するための、種々のサーバを含んでもよい。協働コンテンツ管理システム１３０は、プロキシサーバ４０２と、協働コンテンツアイテムエディタ４０４と、バックエンドサーバ４０６と、通知サーバ４１０と、を含んでもよい。プロキシサーバ４０２は、クライアントアプリケーション２００からの要求を処理し、それらの要求を協働コンテンツアイテムエディタ４０４に渡す。
【００５３】
協働コンテンツアイテムエディタ４０４は、協働コンテンツアイテムを編集し生成するための、クライアントアプリケーション２００のアプリケーション階層の要求を管理し、協働コンテンツアイテムに対するより低階層のタスクを処理すると共に必要に応じて協働コンテンツアイテムデータベース４０８とのインタフェースを行うためにバックエンドサーバ４０６と選択的に相互作用する。コンテンツアイテムデータベース４０８は、協働コンテンツアイテムと、コメントスレッドと、コメントと、を表す複数のデータベースオブジェクトを含む。通知サーバ４１０は、通知をトリガする動作であって協働コンテンツアイテムに対して行われる動作を検出し、通知データベース４１２に通知を生成し、クライアントデバイスに通知を送信する。
【００５４】
クライアントアプリケーション２００は、協働コンテンツアイテムに関する要求をプロキシサーバ４０２に送信する。総じて、要求は、ユーザのユーザＩＤ（「ＵＩＤ」）と、協働コンテンツアイテムの協働コンテンツアイテムＩＤ（図５を参照してより詳しく後述される）と、協働コンテンツアイテムのテキストなどの適切であれば追加的なコンテキスト情報と、を示す。プロキシサーバ４０２が要求を受信すると、プロキシサーバ４０２はその要求を協働コンテンツアイテムエディタ４０４に渡す。プロキシサーバ４０２はまた、クライアントアプリケーション２００に、特定された協働コンテンツアイテムサーバ４０４への参照を返す。その結果、クライアントアプリケーションは将来の要求について協働コンテンツアイテムエディタ４０４と直接通信できる。代替的な実施の形態では、クライアントアプリケーション２００は最初、ユーザＩＤに割り当てられた特定の協働コンテンツアイテムエディタ４０４と直接通信する。したがって、協働コンテンツアイテムエディタ４０４によって行われる処理は、クライアントアプリケーション２００からの入力を受信することに応じたものであってもよい。ある実施の形態では、ユーザは、クライアントアプリケーションを通じてではなく、ブラウザ上のウェブアプリケーションを通じて、協働コンテンツアイテムエディタ４０４と直接やりとりしてもよい。
【００５５】
協働コンテンツアイテムエディタ４０４が要求を受信すると、それはその要求が直接実行可能か、またはバックエンドサーバ４０６によって実行可能かを判定する。その要求が協働コンテンツアイテムを追加するか、編集するか、またはそうでなければ変更する場合、その要求は協働コンテンツアイテムエディタ４０４によって扱われる。その要求がデータベースまたはインデクス照会に向けられている場合、その要求はバックエンドサーバ４０６によって実行される。例えば、協働コンテンツアイテムを閲覧するという、または、サーチタームに応じた協働コンテンツアイテムのリストを取得するという、クライアントデバイス１２０からの要求は、協働コンテンツアイテムを変更せず、バックエンドサーバ４０６によって処理される。
【００５６】
コンテンツ管理システム１００および協働コンテンツ管理システム１３０は、単一のコンピュータやクラウドベースのコンピュータ実装を含むネットワークコンピュータを用いて実装されてもよい。本明細書で説明されるコンテンツ管理システム１００および協働コンテンツ管理システム１３０の動作は、ハードウエアを通じて、または、コンピュータストレージにインストールされ本明細書に記載される機能を実行するためにそのようなサーバのプロセッサによって実行されるコンピュータプログラムを通じて、制御可能である。これらのシステムは、本明細書で説明される動作のために必要な他のハードウエア要素を含み、それは、ネットワークインタフェースやプロトコル、データ入力用の入力デバイス、およびデータの表示、印刷または他の提示のための出力デバイスを含むが、これらは本明細書では説明されていない。同様に、システムの特徴を不明瞭にしないために、ファイヤウォールや負荷分散器や協働コンテンツアイテムサーバやフェィルオーバサーバやネットワーク管理ツールなどの従来の要素は示されていない。最後に、コンテンツ管理システム１００および協働コンテンツ管理システム１３０の機能および動作は、コンピュータシステムへの実装を必要とするほど十分に複雑であり、人の心のなかで単なる精神的なステップにより実行されうるものではない。
【００５７】
データベース構造
【００５８】
図５を参照すると、協働コンテンツアイテムデータベース（ＣＣＩデータベース）４０８は、協働コンテンツアイテムと、コンテンツレベルおよびイメージコメントと、スレッドと、をデータベースエントリとして保持し、これらのエントリを探して取得するためのそれらへのプログラム的アクセスを提供し、これらの機能を実行するためのひとつの手段である。ＣＣＩデータベース４０８は、協働コンテンツアイテム、スレッド、およびコメントに対して個別のテーブルを用いることによって、またはオブジェクト、ＢＬＯＢｓ、ファイル、または他の構造を用いることによって、リレーショナル形態で実装されてもよい。追加的に、ＣＣＩデータベース４０８は、コンテンツ管理システム１００とは別個のフォルダ階層ストレージシステムを提供してもよい。この場合、フォルダはＣＣＩデータベース４０８の追加的なデータ構造として保存されうる。
【００５９】
各協働コンテンツアイテム５００は、複数の要素（同等的にフィールド、列、または属性）からなる。ある実施の形態では、要素は以下の通りである：
【００６０】
協働コンテンツアイテムＩＤ：    協働コンテンツアイテムにアクセスするために協働コンテンツ管理システム１３０によって割り当てられた一意の識別子
【００６１】
著者ＩＤ：    協働コンテンツアイテムを生成したユーザのユーザＩＤであり、ユーザのユーザ名を含みうるこれらの値はプライバシーの観点から暗号化されてもよい。
【００６２】
生成タイムスタンプ：    協働コンテンツアイテムが生成された日付および時刻を示す。
【００６３】
テキスト：協働コンテンツアイテムのテキストであって、ＡＳＣＩＩ文字列として表現されうる。
【００６４】
属性＿プール：    協働コンテンツアイテムで用いられているフォーマット属性（例えば、太字、下線、イタリック、フォント、フォントサイズ、行間隔、段落、など）。属性プールは協働コンテンツアイテムで用いられる属性ＩＤの集合であってもよい；属性ＩＤのネイティブ集合および関連フォーマットは協働コンテンツ管理システム１３０によって提供される。以下のテーブルは属性プールの一部の例である。
0006718016.tif 000002
【００６５】
属性＿リスト：    属性リストにしたがいテキストなどの協働コンテンツアイテムの部分に適用されるフォーマット属性。属性リスト要素は（スパン＝属性ＩＤ）ペアのリストであってもよく、属性ＩＤは属性プールからの属性を示し、スパンは、テキストが描画されるときにその属性が適用される先の文字数を指定し、その文字数は前のスパンの終わりから始まり、その結果、協働コンテンツアイテムの全長が属性についてコード化される。例えば、テキスト「Ｔｅｘｔ  ｗｉｔｈ  ｂｏｌｄ（太字），  ｉｔａｌｉｃ（イタリック），  ａｎｄ  ｂｏｌｄ  ｉｔａｌｉｃ（太字かつイタリック）  ｆｏｒｍａｔｔｉｎｇ．」は、｛１０＝０，  ４＝１，  ２＝０，  ６＝２，  ６＝０，  １１＝１  ２，  １２＝０｝として属性コード化されうる。
【００６６】
協働コンテンツアイテム５００におけるテキストのフォーマットを定義するフォーマッティングに加えて、協働コンテンツアイテムエディタ４０４はまた、協働コンテンツアイテムの他のタイプのメディアを示す属性をサポートしてもよい。協働貢献のイメージをサポートするために、イメージ属性ＩＤが割り当てられてもよい。イメージ属性ＩＤが検出される場合はいつでも、協働コンテンツアイテムエディタ４０４は、そのイメージ属性ＩＤが適用される先のテキストを評価することによって、表示するイメージを決定してもよい。例えば、イメージのＵＲＬアドレスまたはイメージのイメージＩＤを、協働コンテンツアイテム５００のテキスト要素に埋め込んでもよい。イメージＩＤは、単に、コンテンツ管理システム１００でのイメージの位置を決定するための、イメージ用の特定コードであってもよい。このＵＲＬまたはイメージＩＤは、協働コンテンツアイテムエディタ４０４によって生成されてもよく、協働コンテンツアイテム５００に追加するためにイメージを受信すると、協働コンテンツアイテム５００のテキストに追加されてもよい。ユーザは、コピーアンドペースト、クリックアンドドラッグ、または協働コンテンツアイテムエディタ４０４によって開始されるファイルシステムナビゲーションメニューによって、協働コンテンツアイテム５００にイメージを追加してもよい。
【００６７】
スレッドＩＤ＿リスト：協働コンテンツアイテムに関連付けられた全てのスレッド５１０のリスト。スレッドＩＤ＿リスト内のスレッドＩＤは、コンテンツレベルコメントのスレッドおよび／またはイメージコメントのスレッドを表してもよい。
【００６８】
著者＿リスト：属性リストと同じコード化パターン、すなわち（スパン＝ユーザＩＤ）ペア、を用いる、貢献されたまたは編集されたテキスト部分のシーケンスにしたがう、協働コンテンツアイテムテキストに貢献したユーザの順序付きリスト。例えば、著者＿リスト｛１００＝１９９，  ５０＝５４，  ２００＝１９９｝は、３５０文字のテキストにおいて、三つのテキスト部分のシーケンスがあり、ユーザＩＤ  １９９を伴うユーザが１００文字の第１部分を著し、次いでユーザＩＤ  ５４が続き、この者は５０文字の第２部分を著し、次いで再びユーザＩＤ  １９９が続き、この者は残りの２００文字の第３部分を著すことを示す。
【００６９】
コンテンツの挿入及び削除の効率的な管理が可能となるので、属性および著者のスパンコード化は利点がある。例えば、テキストを挿入または削除する場合、挿入や削除に続く限られた数のスパンだけ（挿入されるテキストまたは削除されるテキストのスパンに含まれるかそれと重複するスパンを伴うもの）を変更すればよく、影響を受けないスパンを更新する必要は無い。その相対位置は変わらないからである。他の実施の形態では、著者リストは異なる態様で整理されてもよい；例えば、各著者のユーザＩＤがあり、それに、そのユーザによって編集されたテキスト部分のリストが続く。
【００７０】
各スレッド５１０は以下の要素を含む：
【００７１】
スレッドＩＤ：協働コンテンツ管理システム１３０によって割り当てられた一意の識別子。
【００７２】
協働コンテンツアイテムＩＤ：スレッドを含むファイルの協働コンテンツアイテムＩＤ。
【００７３】
スパン：スレッドが適用される先として特定された協働コンテンツアイテムのコンテンツの描画部分。描画部分はコンテンツのタイプに基づいて定義される。例えば、テキストにおけるスパンは、スパン内の最初の文字の位置と、スパンの長さ（文字数単位）と、によって定義されてもよく；スプレッドシートにおけるスパンは列数および行数によるセルの範囲によって定義されてもよい。例えば、スパン（５０，２５）は、協働コンテンツアイテム内の文字位置５０で始まる、全長２５文字分のテキスト部分を示す。協働コンテンツアイテム内のコンテンツが編集されると、協働コンテンツ管理システム１３０は各スレッドのスパン要素を更新する。例えば、スパン（５０，２５）の前のテキストの５文字部分が削除された場合、コンテンツ管理システムはスレッドのスパンを（４５，２５）に変更するであろう。また、ユーザがスパン内に含まれるテキストを削除することも可能である。スレッドのスパン内に含まれるテキストの全てが削除された場合、スパンはヌル値を有し、協働コンテンツ管理システム１３０によって除去される。
【００７４】
コメントＩＤ＿リスト：スレッド５１０に含まれるコメント６０４のコメントＩＤのリスト要素。
【００７５】
著者ＩＤ＿リスト：スレッドのコメントの著者のユーザＩＤ。
【００７６】
オーディエンス＿リストオーディエンス＿リスト要素は、協働コンテンツアイテムにアクセスする際にスレッドおよびそのコメントが表示される先の、および／または、スレッドにおける変更の通知が送信される先の、ユーザを示すリストである。種々の実装では、スレッドのオーディエンスは、以下のユーザＩＤのうちのひとつ以上を含んでもよい：ｉ）スレッドを含む協働コンテンツアイテムの著者、ｉｉ）スレッドに含まれるコメントの著者、ｉｉｉ）スレッドのスパン内に含まれるテキストのいずれかの著者、ｉｖ）ユーザプリミティブを介してスレッドのスパンにおいて言及されているユーザのいずれか、ｖ）（例えば、ユーザプリミティブを介して）コメントで言及されているユーザのいずれか、ｖｉ）協働コンテンツアイテムを開いたユーザのいずれか、ｖｉｉ）協働コンテンツアイテムを編集したユーザのいずれか、またはｖｉｉｉ）例えば協働コンテンツアイテムをお気に入りまたはフォローする協働コンテンツアイテムとしてマークすることによって、協働コンテンツアイテムとの関連性を生成したユーザのいずれか。ユーザプリミティブはさらに後述される。ある実装では、スレッドのオーディエンスはそのスレッド専用に定義されるものではなく、代わりに、例えばコメントや協働コンテンツアイテムに関連付けられたユーザ識別子に基づいて必要に応じて動的に特定されてもよい。各スレッドのオーディエンスの包含は、どのユーザが特定のコメントについて通知されたかおよびそのコメントにアクセスしたかの制御を可能とする。
【００７７】
スレッドＰｏｓ：スレッド５１０のスレッドＰｏｓは、リンクされたイメージスレッドが関連付けられている先の、イメージ内の特定の部分または位置を示す。リンクされたイメージスレッドは、イメージのＵＲＬ（これはさらにイメージ属性ＩＤで変更される）を含むスパンを有し、さらに、スレッドデータ構造のスレッドＰｏｓ要素によってイメージ内の特定の部分または位置にリンクされる。コメントスレッドがイメージＵＲＬもイメージ属性ＩＤで変更された他のリンクも含まないスパンを有する場合、スレッドＰｏｓはヌル値を有するであろう。スレッドＰｏｓがヌルでない場合、それは、コメントがイメージの位置にリンクされているかまたは領域／部分にリンクされているかによって、ひとつ以上のオフセット値の集合として構造化される。
【００７８】
オフセットは、イメージタグのイメージ上での相対位置を示し、（０，０）はイメージの原点コーナ（例えば、左上コーナ）であり、（１，１）はイメージの反対のコーナである。クライアントデバイスから、（ｘ，ｙ）ピクセル位置でイメージ部分の選択を受信した場合、相対位置は、入力値（ｘ，ｙ）を、対応する軸（Ｘ，Ｙ）について現在表示されているイメージの解像度で除すことによって、ピクセル位置から算出される。例えば、協働コンテンツ管理システム１３０がイメージの原点コーナに対する（５００，３００）のピクセル位置を受信し、かつ、現在表示されているイメージ解像度が（１０００，１０００）である場合、選択されたイメージ位置の相対位置は以下の計算を行うことで決定されてもよい：（５００／１０００，３００／１０００）＝（０．５，０．３）．次いで、このアプローチは、イメージの選択された部分を定義する各選択された頂点または点に対して用いられる。これらの値は次いでスレッドＰｏｓに格納される。ある実装では、元々選択されたときの正確なピクセル位置もまたスレッドＰｏｓ要素に保存される。イメージ内の選択された部分の相対位置を用いることで、イメージタグを、イメージサイズによらずに同じ位置に配置することができ、イメージサイズが変更された場合や表示用イメージ解像度が増減された場合でもそのようなタグを正しく配置することができる。
【００７９】
上記の通り、領域タグはイメージにタグ付けするために用いられてもよい。この場合、その領域の頂点または寸法の定義はスレッドＰｏｓ要素に格納されてもよい。領域タグが矩形領域である場合、その領域のスレッドＰｏｓは、矩形の二つの対向するコーナの座標、矩形の一つのコーナの座標および矩形のサイズ、矩形のコーナに対応する一連の座標、または任意の他の適切な寸法の定義集合、として定義されてもよい。領域タグが多角形である場合、座標は多角形の頂点であってもよい。領域が非一様のユーザ定義領域である場合、座標はその領域を定義する接続された点の集合であってもよい。同様に、タグが円である場合、スレッドＰｏｓはその円の中心の座標および円の半径または直径であってもよい。
【００８０】
タグを表示する場合、協働コンテンツ管理システム１３０はタグを保存するときとは逆の動作を行う。例えば、協働コンテンツ管理システム１３０は、タグに対応するスレッドＰｏｓ座標にイメージ解像度を乗じることによって、イメージのタグのピクセル位置を決定する。その結果はタグのピクセル位置である。協働コンテンツ管理システム１３０は次いで、イメージ内の算出されたピクセル位置に、タグに対応するグラフィックを表示してもよい。リンクされたコメントスレッドを伴うイメージが置換イメージによって置き換えられた場合、置換イメージにおけるそのタグの相対座標は、スレッドＰｏｓ座標に、置換イメージの解像度を乗じ、その結果をタグのピクセル位置として用いることによって、決定される。上記の例を続けると、元のイメージがサイズ（２０００，２０００）の置換イメージによって置き換えられた場合、タグの更新されたピクセル位置は（０．５＊２０００，０．３＊２０００）＝（１０００，６００）として計算され、タグは置換イメージ内のこのピクセル位置に表示される。
【００８１】
スレッドＰｏｓは、新たなタグがコメントスレッドに適用された場合、タグがコメントスレッドから除去された場合、またはタグがなんらか変更された場合に更新されてもよい。ある実施の形態では、ユーザは、第１の位置から第２の異なる位置へとタグをクリックアンドドラッグすることにより、タグを動かしてもよい。タグを離すと、協働コンテンツ管理システム１３０はクリックアンドドラッグ動作の解放点のピクセル位置を記録し、上述のように相対位置を算出する。
【００８２】
各コメント５２０は以下の要素を含む：
【００８３】
コメントＩＤ：協働コンテンツ管理システム１３０によって割り当てられた一意の識別子。
【００８４】
著者ＩＤ：コメントの著者のユーザＩＤ。
【００８５】
コンテンツ：    テキスト、ピクチャまたは他のメディアを含んでもよい、コメントのコンテンツを保持する要素。
【００８６】
属性＿リスト：協働コンテンツアイテムについて上述したものと同様な形態の、コメントのテキストについてのフォーマット属性を保持する属性リスト要素。
【００８７】
スレッドＩＤ：コメントの所属先のスレッドのスレッドＩＤ。
【００８８】
状態：    アクティブまたは解決済みのいずれかとしてコメントの状態を示す値を保持する列挙型変数。
【００８９】
通知＿リスト：    通知要素は、コメントの通知が送信された先のユーザを示すユーザＩＤのリストである。このリストは、コメントを含む通知メッセージが特定のユーザに送信されるたびに更新される。
【００９０】
アクノレッジメント＿リスト：アクノレッジメント＿リストはコメントに関する各ユーザの状態を示すユーザＩＤのリストである。例えば、アクノレッジメント＿リストは、スレッドのオーディエンス＿リスト内の各ユーザがコメントを見たか否か、コメントを読んだか否か、コメント内の指示にアクノレッジしたか否か、またはコメントに対して後で応答するつもりであるか否か、もしくは任意の他の列挙されるアクションまたは状態タイプの集合、を示してもよい。このリストは、協働コンテンツアイテムエディタ４０４が新たなコメントをまだ見ていなかったユーザにコメントを表示するときはいつでも更新される。ある実施の形態では、協働コンテンツアイテムエディタ４０４は、ディスプレイにおいてコメントの近くに、その特定のコメントを閲覧したユーザの視覚的表示を表示してもよい。加えて、協働コンテンツ管理システム１３０は、ユーザが始めてコメントを閲覧したとき、「拝読受領」を適用することを超える状態を示すためのＵＩ要素を提供してもよい。
【００９１】
反応＿リスト：反応は、コメントに対する、スレッドのオーディエンス内の各ユーザの反応を表す要素である。反応リストは、ユーザＩＤと対になる反応値のリストを含む。ある実施の形態では、各コメントに対する反応を提供するためのインタフェースが提供され、ユーザはプルダウンフィーチャまたは他のそのようなＵＩフィーチャを用いて反応を選択することができる。列挙される反応の集合は、元来提供されるもの（例えば「承認」、「否認」、「嬉しい」、「怒り」、「困惑」であり、これらは数値コード１、．．．、５に関連付けられる）である。反応インタフェースから反応が選択されると、選択された反応に対応する数値コードが反応リストに追加される。例えば、反応ペア（３４５，５）は、ユーザＩＤ３４５を伴うユーザがコメントに対する怒りの反応を有していたことを示す。ある実施の形態では、協働コンテンツアイテムエディタ４０４は、ディスプレイにおいてコメントの近くに、各反応の視覚的表示を表示してもよい。
【００９２】
ＣＣＩデータベース４０８はまた、インデクスの集合を含んでもよい。これらのインデクスは生来論理的であり、通底するデータベースデザインにより、様々な方法で実装可能である。ユーザインデクスは、ユーザＩＤによって全てのユーザのリストを含み、各ユーザＩＤについて、コンテンツアイテムＩＤのリストがある。各コンテンツアイテムＩＤは、そのユーザＩＤのユーザが関連付けられ、かつ、それへのアクセスを有する協働コンテンツアイテムを特定する。各コンテンツアイテムＩＤについて、協働コンテンツアイテムがユーザに対してアクティブか、非アクティブか、を示す状態インジケータがある。協働コンテンツアイテムは、ユーザが協働コンテンツアイテムを削除するまで、その協働コンテンツアイテムを共有するユーザに対してアクティブである。ある実施の形態では、ユーザが協働コンテンツアイテムを削除した場合、その協働コンテンツアイテムは協働コンテンツアイテムデータベース４０８に存在し続け、そのユーザに関連付けられたままであるが、状態インジケータは非アクティブに設定され、これにより将来ユーザが協働コンテンツアイテムの共有状態を再活性化することが可能となる。協働コンテンツアイテムは過去にそれが共有された先の任意の他のユーザに対してアクティブであり続けてもよく、または関連付けられたままであってもよい。あるいはまた、協働コンテンツアイテムは協働コンテンツアイテムデータベース４０８から削除されてもよく、この場合、共有ユーザはだれもそれへのアクセスを有することはない。ユーザインデクスは、所与のユーザに関連付けられた（共有された）協働コンテンツアイテムおよびそのユーザに関するそのような協働コンテンツアイテムの状態を特定するために用いられる。ある実施の形態では、ユーザＩＤインデクスはまた、ユーザが関連付けられる先の各協働コンテンツアイテムに対してユーザが有する特権を示す。インデクス内の各コンテンツアイテムＩＤと共に保持される値は、ユーザが編集権限、閲覧権限、および／または共有権限を有するか否かを示す。
【００９３】
協働コンテンツアイテムデータベース４０８は協働コンテンツアイテムインデクスを含んでもよい。協働コンテンツアイテムインデクスは、各協働コンテンツアイテムについて、その協働コンテンツアイテムへのアクセスを有するユーザのユーザＩＤのリストと、ユーザがアクティブか非アクティブかを示すものと、を示す。このインデクスはユーザインデクスの逆であってもよく、ユーザインデクスと共に保持されてもよい。協働コンテンツアイテムインデクスはまた、上述のユーザインデクスの逆の実装を用いることで、協働コンテンツアイテムに関連付けられた各ユーザの特権を示してもよい。
【００９４】
コメント管理ユーザインタフェース
【００９５】
図６Ａを参照すると、その中にいくつかのコメント６０４がなされている、「Ｄｒａｆｔ  Ｓｐｅｅｃｈ」というタイトルの、協働コンテンツアイテム６０２のページを伴う例示的ユーザインタフェースが示される。この例では、協働コンテンツアイテム６０２はテキストラインなどのコンテンツからなっており、これは段落ブロック６０８などに構成されてもよく、また協働コンテンツアイテム６０２はイメージやビデオやスプレッドシートや実行可能または解釈可能コードなどの任意の他のメディア形態を含んでもよい。図６Ａ−６Ｅに示されるユーザインタフェースは、協働コンテンツアイテムエディタ４０４によって、ユーザが協働コンテンツアイテムを編集することができるよう、生成される。ユーザは、ボタンやテキストやフィールドなどの提供されるユーザインタフェース要素のうちのいずれかを用いて、協働コンテンツアイテムエディタ４０４と相互作用してもよい。
【００９６】
ある実装では、協働コンテンツアイテムに入れられているコンテンツ内のプリミティブを認識することによって、協働コンテンツアイテムエディタ機能をトリガしてもよい。    プリミティブは、ひとつ以上の文字の指定された列であってもよく、協働コンテンツ管理システム１３０はこれを特定の機能にマッピングされたものとして認識する。この実装では、ユーザは協働コンテンツアイテム６０２の本体のなかにひとつ以上の文字の指定された列を入力するか、またはオプションで、コメント６０４のテキストのなかに入力し、この場合、それは協働コンテンツアイテムエディタ４０４によって検出されうる。プリミティブの例は、ユーザ識別プリミティブ（例えば「＠ｕｓｅｒｎａｍｅ」）と、タスク生成プリミティブ（例えば、「［］ｔａｓｋＴｉｔｌｅ」）と、コンテンツアイテムセレクタおよび参照挿入プリミティブ（例えば、「＋ｃｏｎｔｅｎｔＩｔｅｍＴｉｔｌｅ」）と、箇条書きリストプリミティブ（例えば、「＊」）と、を含む。ある実装では、プリミティブは、特定されたプリミティブに続くコンテンツによって示されうるパラメータで指定可能である。例えば、＋ｃｏｎｔｅｎｔＩｔｅｍＴｉｔｌｅプリミティブは、「ｃｏｎｔｅｎｔＩｔｅｍＴｉｔｌｅ」によって指定されるコンテンツをとり、それと既存のコンテンツアイテムとのマッチングを試行することによって動作してもよい。ある実装では、そのようなマッチングが見出された場合、プリミティブは、協働コンテンツアイテムにおいて、コンテンツアイテムへの参照（例えば、ＵＲＬ）と置き換えられてもよく、その参照は活性化されると、参照されている協働コンテンツアイテムを協働コンテンツアイテムエディタインタフェースにロードする。    ある実装では、プリミティブは他のプリミティブをパラメータとしてとってもよい。例えば、コンテンツ「［］＠ｋｉｎｇＨｅｎｒｙ」は、＠ｋｉｎｇＨｅｎｒｙがユーザ名「ｋｉｎｇＨｅｎｒｙ」を伴うユーザにリンクするよう解釈可能であり、新たなタスクを生成するために、このリンクはプリミティブ「［］」によって用いられ、そのタスクはｋｉｎｇＨｅｎｒｙユーザに割り当てられる。
【００９７】
コンテンツレベルコメント
【００９８】
協働コンテンツアイテム６０２はゼロ以上のコンテンツレベルコメント６０４を有しうる。コンテンツレベルコメントは協働コンテンツアイテムの特定の部分に関連付けられてもよい。コンテンツアイテム内のコンテンツレベルコメント６０４の存在はコンテンツの下線（または色付き下線）部分６１０によって示されてもよく、あるいはまた、コンテンツレベルコメント６０４の存在を示すために、任意の他のフォーマッティングが用いられてもよい（例えば、コンテンツレベルコメントをコンテンツアイテムに繋ぐライン、上付き形態でのコメント番号、ハイライト化、「ホバーオーバ」ディスプレイインジケータなど）。コンテンツレベルコメントが関連付けられている先のコンテンツの部分６１０もスパンと称される。コンテンツレベルコメント６０４は重複するスパンに関連付けられてもよい；第１および第２コンテンツレベルコメント６０４ａ、６０４ｂはスパン「Ｎｏｗ  ｗｅ  ａｒｅ  ｅｎｇａｇｅｄ  ｉｎ  ａ  ｇｒｅａｔ  ｃｉｖｉｌ  ｗａｒ，  ｔｅｓｔｉｎｇ  ｗｈｅｔｈｅｒ  ｔｈａｔ  ｎａｔｉｏｎ，  ｏｒ  ａｎｙ  ｎａｔｉｏｎ  ｓｏ  ｃｏｎｃｅｉｖｅｄ，  ａｎｄ  ｓｏ  ｄｅｄｉｃａｔｅｄ，  ｃａｎ  ｌｏｎｇ  ｅｎｄｕｒｅ」に適用され、第３コメント６０４ｃはただスパン「Ｔｈｉｓ  ｗｅ  ｍａｙ，  ｉｎ  ａｌｌ  ｐｒｏｐｒｉｅｔｙ  ｄｏ」に関連付けられる。
【００９９】
コンテンツレベルコメント６０４は協働コンテンツアイテム５００の本体の脇に配置されたコメントペイン６１２に設けられる。各コンテンツレベルコメント６０４は著者６１４（ユーザ名で示される）と生成日時とを有する。単一のスパンについてのユーザ間の交換を形成するコメントの集合はスレッド６１８である。スレッドはそのスレッドに関連付けられているスパンの近くに表示される。図６Ａの例では、三つのスレッド６１８ａ、６１８ｂおよび６１８ｃがあり、スレッド６１８ａは全部で四つのコメント（二つが図示され、示されるように「さらに二つのコメント」がある）を有し、他のスレッドはそれぞれひとつのコメントを有する。
【０１００】
ユーザは新たなコメントを生成してもよいし、既存のコメントに返信してもよい。コメントを生成するために、ユーザはコンテンツアイテム内のスパンを選択し、例えばボタン６２２、メニューまたは他の入力を介してコメント機能を活性化する。ユーザ名および生成時刻を示す新たなコメント６０４がコメントペイン６１２内に表示され、ユーザは次いでコメントのテキストをそのなかに入力してもよい。ユーザは、協働コンテンツアイテムのテキストのフォーマット化でなされたように、コメントのテキストにテキストフォーマット化を適用してもよい。ユーザはまた、スレッド６１８における既存のコメントなどのコメント６０４のうちのひとつの中の返事フィールド６１６にテキストを入力することによって、スレッドに含めるコメントを生成してもよい。
【０１０１】
ユーザが最初に協働コンテンツアイテムを開いたとき、コメントペイン６１２は閉じられていてもよく、その結果その中のコメントは隠されている。ユーザは、関連コメントを有するとしてフォーマットされているかそうでなければ示されているテキストを選択する（例えば、ダブルクリックする）ことによって、コンテンツレベルコメントを示すようコメントペイン６１２を活性化してもよい。ある実装では、コメントペイン６１２は、協働コンテンツアイテムが開かれたときに視認可能であってもよい。ペイン６１２は、現在のユーザによって閲覧可能な、協働コンテンツアイテム内のコメントの現在の数のカウンタ６２４を含む。各コメントは、コメントがアクティブであるか解決されたかについて、状態を有してもよい。カウンタ６２４は、全てのコメント、アクティブコメントまたは解決されたコメントを示すようコメントをフィルタするために、ユーザがそこから選択可能なメニューとして機能してもよい。
【０１０２】
協働コンテンツアイテムはまた、ユーザが協働コンテンツアイテムをコンテンツ管理システム１００の他のユーザと共有することを可能とする共有アイコン６２６を含んでもよい。共有アイコン６２６がクリックされると、共有インタフェースがユーザに表示される。共有インタフェースは、協働コンテンツアイテムが共有される先のユーザのリストに、ユーザ名または電子メールアドレスを追加するためのフィールドを含んでもよい。共有インタフェースはまた、共有するユーザが、協働コンテンツアイテムを共有する要求を受信するユーザにメッセージを送信することを可能とするテキストフィールドを含んでもよい。
【０１０３】
イメージコメントインタフェース
【０１０４】
図６Ｂ−６Ｅは、イメージコメントを生成し表示するための種々のインタフェースを示す。
【０１０５】
図６Ｂはイメージ６２８を示し、この場合はアブラハムリンカーンのものであり、協働コンテンツアイテムにおいてテキスト６４６を伴っている。イメージ６２８は第１タグ６３０および第２タグ６３８でタグ付けされており、それぞれ対応するリンクされたコメントスレッド６３３ａおよび６３３ｂを有する。各コメント（および対応するタグ）はイメージ６２８における特定の部分または位置に関連付けられている。その位置はイメージ原点（例えば、イメージの左上の角）からのオフセットとして定義されてもよい。リンクされたコメントスレッド６３３ａはコメント６３４および６３５を含む一方、リンクされたコメントスレッド６３３ｂは単一のコメント６４０を含む。リンクされたコメントスレッドはリンク識別子６３２および６３６を用いて特定され、それぞれがリンクされたコメントスレッド６３３ａおよび６３３ｂに対応し、さらにそれぞれがタグ６３０および６３８内の識別子に対応する。
【０１０６】
図６Ｂはまた、コンテンツレベルスレッド６１８ｄにおけるリンクされていないコメント６４２を示す。リンクされていないコメントはタグボタン６４４を含み、イメージ全体に関連付けられてもよい。
【０１０７】
ある実施の形態では、ユーザが例えばイメージをクリックするかイメージにカーソルを合わせるかイメージ上で操作（例えば、サイズ変更やクロップなど）を実行することによって、イメージと相互作用しない限り、イメージタグ６３０および６３８はそのタグ付けされた位置に表示されなくてもよい。これらの実施の形態では、イメージ６２８に関して近い位置にイメージタグの数を表示してもよい。
【０１０８】
加えて、ある実施の形態では、ユーザがイメージ６２８と相互作用するまで、リンクされたコメントスレッド６３３ａおよび６３３ｂを完全に表示しなくてもよい。これらの実施の形態では、コメントペインにおけるイメージ６２８に近い位置に、リンクされたコメントスレッド６３３の数を表示してもよい。
【０１０９】
図６Ｃは、ユーザが図６Ｂのタグボタン６４４と相互作用した結果を示す。タグボタン６４４が選択されると、協働コンテンツアイテムエディタ４０４は、スレッドおよびコメントをイメージの特定の部分にリンクさせることができるモードに入る。ある実施の形態では、このモードはライトボックスモードであり、この場合、コメントスレッド６１８ｄに関連付けられたイメージがコンテンツ６４６などの周囲のコンテンツ無しで表示されてもよい。ある実施の形態では、ライトボックスモードではイメージはより大きなサイズで表示される。代替的な実施の形態では、図６Ｃ−６Ｅを参照して説明されるものと同じ機能が、ライトボックスモードの外で、他のコンテンツが見える状態で、実行されてもよい。ある実施の形態では、ライトボックスモードではイメージ６２８は最大解像度で表示される。
【０１１０】
ライトボックスモードに入ると、協働コンテンツアイテムエディタ４０４はイメージオプションバー６４８を表示し、該イメージオプションバー６４８はイメージナビゲーション６５０と、ズームインタフェース６５２と、フルスクリーンボタン６５４と、イメージ置換ボタン６５６と、新たなイメージコメントボタン６５８と、を含む。ライトボックスモードはまた、イメージスクロールボタン６６４を含んでもよい。
【０１１１】
ライトボックスモードに入ると、イメージタグ６３０および６３８は図６Ｂでそれらがあった相対位置と同じ相対位置に表示される。タグボタン６４４と相互作用する際、ユーザは、この場合、例えばコメントをイメージにリンクさせる先のイメージ内の位置をクリックすることによって、イメージ６２８上でタグ用の位置を選択した。イメージにおけるクリックの位置（例えば、イメージ原点に対するマウスクリックの（ｘ，ｙ）位置）は、タグの位置およびイメージコメントのスレッドがリンクされる先の位置を決めるために用いられる。タグの位置を決め、スレッドをリンクさせる例示的な特定の実施の形態は以下に説明される。
【０１１２】
この場合、第３タグの選択された位置は、第２タグの既存の位置に近かった。二つのタグが特定のズームレベルにおいて一緒に近くに配置される場合、タグクラスタ６６２アイコンが生成され、視覚的明瞭性が維持される。タグクラスタ６６２は、小さな領域内に配置される個々のタグを示す。タグクラスタの生成は、タグ間の距離がしきい値以下であることに基づいて決定される。例えば、タグクラスタは、二つのタグの位置の間に５０より少ないピクセルがある場合に生成されてもよい。タグ間の距離は、タグの相対位置にイメージの表示解像度を乗じたものを用いることによって決定可能であり、イメージの表示解像度はズームレベルおよびスクリーン上のイメージサイズによって決定される。この場合、クラスタタグ６６２はタグ２および３を表す。タグクラスタ６６２は、それが表す個々のタグの平均（ｘ，ｙ）位置に配置されてもよく、配置のためにタグクラスタ６６２の中心を用いる。平均位置はクラスタ内のタグの位置の重心として算出可能である。あるいはまた、しきい値は相対的であってもよく、イメージのサイズに対するタグ間のピクセル距離の比に基づくものであってもよく、例えば５％というしきい値であってもよい。
【０１１３】
イメージナビゲータ６５０は、協働コンテンツアイテム内のイメージの数を示す。ナビゲータ６５０は、ユーザがコンテンツアイテム内の全てのイメージを通して直接ナビゲートすることを可能とし、それらに関連付けられた任意のコメントを見ることを可能とする。これは、ユーザが、コンテンツアイテムを通しでスクロールするかページを繰る必要無しにそれらのコメントを見ることを可能とし、したがって、コンテンツアイテムに埋め込まれたイメージに対するコメントを見る際の効率が向上する。これは特に、イメージが多数のページや大量の他のタイプのコンテンツによって分けられている場合に利益がある。
【０１１４】
ズームインタフェース６５２は、イメージのズームレベルを示し、ユーザがイメージのズームレベルを増減するか正確に指定することを可能とする。フルスクリーンボタン６５４は、ユーザからの相互作用を受けると、イメージをフルスクリーンサイズで表示する。イメージ置換ボタン６５６はユーザが現在のイメージを新たなイメージと置き換えることを可能とする。新たなコメントボタン６５８は、ユーザが現在表示されているイメージに関連付けられた新たなリンクされたコメントスレッド６３３を生成することを可能とする。
【０１１５】
ある実施の形態では、イメージ置換ボタン６５６は、現在表示されているイメージを置き換えるために使用される第２イメージ（例えば、ファイルシステム、コンテンツ管理システム、または他のイメージソースからのもの）の選択を可能とするダイアログボックスまたは他のイメージ選択インタフェースを提供する。ユーザが置換第２イメージを選択すると、協働コンテンツアイテムエディタ４０４は、元のイメージに関連付けられたコメントをどうすべきか（例えば、アーカイブする、削除する、リンクを削除する、またはそのリンクされる位置に適用する）尋ねる追加的なインタフェースを表示する。    ある実装では、追加的なインタフェースを提供する代わりに、これらの動作のうちのひとつがデフォルトで実行されてもよい。
【０１１６】
ユーザが表示されているイメージに関連付けられたリンクされているコメントスレッドをアーカイブするか削除することに同意する場合、イメージに関連付けられた全てのコメントはディスプレイから除去される。ある実施の形態では、置換イメージが元のイメージに戻された場合、コメントが再度表示されてもよい。ある実施の形態では、元のイメージが協働コンテンツアイテムの任意の位置に再度追加された場合、コメントは再度表示されてもよい。
【０１１７】
ユーザがリンクされているコメントのリンクを解除することに同意する場合、各リンクされているコメントスレッドに対応するタグは除去され、コメントスレッドは代わりにイメージ全体に関連付けられたコメントとして指定される（コメントスレッドのスパンはヌルのスレッドＰｏｓ要素を伴うイメージに対応する）。
【０１１８】
ユーザがコメントをそのリンクされた位置に適用することに同意する場合、リンクされているコメントスレッドは対応するタグで表示され、対応するタグはそれらが元のイメージで有していた相対位置と同じ新たな置換イメージにおける相対位置を有する。これは、イメージにおいてタグの位置を定義する座標を用いること、および、それらを置換イメージにおける対応する座標にマッピングすること、によってなされる。このアプローチは、置換イメージによってコメントが解決されたか（例えば、イメージコンテンツの変更の要求）をユーザが判定することができるよう、コメントを保存するものである。
【０１１９】
種々の実施の形態においてイメージ置換中にコメントを扱うための上記のオプションを提供することに加えて、協働コンテンツアイテムエディタ４０４は、イメージの繰り返しのそれぞれに関連付けられたイメージおよび任意のコメントの繰り返しを保存するためのバージョン履歴フィーチャを提供してもよい。この実施の形態では、協働コンテンツアイテムエディタ４０４は、イメージオプションバー６４８に、または、ユーザインタフェースのいずこかに、イメージのバージョン履歴を見るためのバージョン履歴ボタンを提供してもよい。ボタンを選択すると、協働コンテンツアイテムエディタ４０４は、実施の形態によって、ユーザインタフェースにイメージの前のバージョンを表示してもよい、および／または、ユーザがイメージの以前のバージョンを通しでスクロールすることを可能とするナビゲーションボタンを表示してもよい。イメージの各バージョンと関連付けられたアーカイブされたコメントは、任意の随伴するイメージタグと共に、協働コンテンツアイテムエディタ４０４によって表示される各以前のバージョンに関連して表示されてもよい。
【０１２０】
協働コンテンツアイテムエディタ４０４は、イメージのサイズの変更に応じて、または、イメージを、同じイメージのクロップされたバージョンと置き換えることに応じて、選択的にコメントのリンクを解除してもよい。ある実施の形態では、協働コンテンツアイテムエディタ４０４は、イメージのサイズの変更を検出し、サイズの変更を、所定のリサイズしきい値と比較する。サイズの変更がリサイズしきい値を超えた場合、イメージに関連付けられたタグ付きコメントのリンクは解除され、イメージ全体に関連付けられた典型的なコンテンツレベルコメントとして表示される。例えば、ユーザがイメージのサイズを４０％だけ減らしたことを協働コンテンツアイテムエディタ４０４が検出し、リサイズしきい値が３５％である場合、協働コンテンツアイテムエディタ４０４はイメージの元のバージョンでタグ付けされていたコメントのリンクを解除してもよい。
【０１２１】
あるいはまた、協働コンテンツアイテムエディタ４０４は、置換イメージが元のイメージのクロップされたバージョンであることを検出し、自動的に、イメージの範囲内にもはや存在しないコメントを削除するかそのリンクを解除してもよい。協働コンテンツアイテムエディタ４０４は、数値的イメージ解析を行うことによって、クロップで除去されたイメージの領域を相対座標で特定してもよい。協働コンテンツアイテムエディタ４０４は、次いで、タグ付きコメントの相対座標を特定された領域と比較することによって、イメージの特定された領域内のタグを有するコメントを削除するかそれへのリンクを解除してもよい。例えば、ユーザがイメージの左側２５％を削除した場合、協働コンテンツアイテムエディタ４０４は除去された領域を（［０，０．２５］，［０，１］）として特定してもよい。イメージに関連付けられたコメントのうちのいずれかがその領域内のタグ有する場合、それは自動的に削除されるかリンクが解除され、イメージはそのタグ無しで表示される。
【０１２２】
図６Ｄは、ズームインタフェース６５２を通じたイメージのズームレベルの増大の結果を示す。ズームレベルが増大されると、タグ２とタグ３との間の距離はクラスタ化しきい値を過ぎて増大した。これに応じて、タグクラスタ６６２は個々のタグ６６８および６７０に分かれ、その相対位置に配置される。各タグの位置は各タグ付けされたスレッドに関連付けられたスレッドＰｏｓに保持されているので、スレッドＰｏｓ位置を用いることによって、タグがその位置の平均を用いて一緒にクラスタ化される前の、タグの元の相対位置を決定することができる。
【０１２３】
いくつかのイメージタグがイメージのズームされた領域の外側になるようイメージのズームを増やすユーザからの命令を検出すると、協働コンテンツアイテムエディタ４０４は、イメージのズームされた領域の外側になってしまういくつかのタグを表示せず、または、そのようなタグに関連付けられたコメント上に、そのタグが現在表示されていないことを示してもよい。イメージのズームされる領域は、ズームインタフェース６５２を用いてユーザが示したズームレベルと、スクロール入力やカーソル移動などを通じてユーザによって提供されたイメージ内の位置と、に基づいて決定される。
【０１２４】
図６Ｅは、リンクされるコメントがイメージの領域にリンク可能である実施の形態を示す。領域は囲み領域によって定義される。ある実施の形態では、第１コーナの所望の位置から反対側のコーナへ（例えば、左上コーナから右下コーナへ）クリックアンドドラッグすることによって、ユーザにより矩形囲み領域を生成することができる。タグ６７２は一例である。あるいはまた、多角形の頂点のシーケンスを定義するための一連の点の選択によって、囲み領域を生成してもよい。タグ６７４は一例である。これらのタグ６７２および６７４の両方がイネーブルされることにより、どちらかがそれに対応するリンクされたコメントスレッド、例えば、６３３ａまたは６３３ｃ、にリンクされてもよい。種々の実施の形態では、タグボタン６４４の選択の後、イメージ上の位置におけるダブルクリックは位置タグを生成し、クリックアンドドラッグは直線的囲みボックスを生成し、一連のクリックは多角形囲みボックスを生成し、閉領域の描画は非一様囲み領域を生成する。ある実装では、描かれた囲み領域は短い距離だけ離れた一連の関係する点として保存される。
【０１２５】
イメージコメントスレッドの生成
【０１２６】
図７Ａは、イメージ関連コメント用のコメントスレッドを生成するためのクライアント側アルゴリズムのある実施の形態を示す。図  協働コンテンツアイテムエディタ４０４は、協働コンテンツアイテムにおける選択されたイメージを示すものを受信する７００。協働コンテンツアイテムエディタ４０４はイメージの選択に関連付けられたコメントを生成するコマンドを受信する７０２。ある実装では、選択されたイメージを示すものおよびコメントを生成するコマンドは一緒に受信されうる。
【０１２７】
協働コンテンツアイテムエディタ４０４はコメントに含めるコンテンツを受信する７０４。受信されるコンテンツはクライアントデバイスにおいて取得可能であり、そのクライアントデバイスはユーザによるコンテンツの入力（任意のテキスト、テキストフォーマット化、イメージなどを含む）を受け付けるためのインタフェースを（例えば、協働コンテンツアイテムエディタ４０４を介して）表示する。ある実装では、クライアントデバイスはイメージの選択と、コメントを生成するコマンドと、コメントコンテンツと、受信可能である。これらの全てがクライアントデバイスによって受信されると、クライアントデバイスは、コンテンツを生成するコマンドを提供する際に、協働コンテンツ管理システム１３０に、選択されたコンテンツとコメントに含めるコンテンツとを示すものを提供する。例えば、新たなイメージコメントボタンの選択が受信されることにより、協働コンテンツアイテムエディタ４０４はコメントコンテンツを入力するためのインタフェースをクライアントデバイスに提供してもよい。提供されたインタフェースにテキストまたは他のコンテンツが入力され提出されると、協働コンテンツエディタは、コメントについてのイメージの選択と、新たなコメントを生成するコマンドと、コメントのコンテンツと、を一度に受信してもよい。
【０１２８】
協働コンテンツアイテムエディタ４０４は、スレッドをイメージの特定の部分に関連付けるためのイメージタグを生成するコマンド、例えばタグボタンの選択、を受信する７０６。例えば協働コンテンツアイテムエディタ４０４は、イメージの一部をスレッドとリンクさせるものとして選択可能なライトボックスモードまたは他のモードに入る。協働コンテンツアイテムエディタ４０４は、スレッドとリンクされるべきイメージ部分（位置または囲み領域のいずれか）の選択を受信する７０８。
【０１２９】
ある実施の形態では、協働コンテンツアイテムエディタ４０４は位置の座標を定義する情報を決定し、それは上述のようにイメージ解像度に基づく相対座標で規定されうる。選択された部分の座標は後に、例えばスレッドデータ構造のスレッドＰｏｓフィールドに、スレッドに関連付けられて格納される。他の実施の形態では、座標決定は協働コンテンツ管理システム１３０によって完了される（以下の図７Ｂの議論参照）。
【０１３０】
ある実装では、ステップ７０８および７１０はステップ７０２、７０５および７０６よりも前に生じる。ユーザは、協働コンテンツアイテム内のイメージについてライトボックスモードに入り、図６Ｂに示される標準閲覧インタフェースからイメージ全体を選択することなしに、イメージの領域を選択してもよい。これは新たなイメージコメントボタン６５８のユーザ選択を受信することにより完了される。協働コンテンツアイテムエディタ４０４は、次いで、イメージの関連位置または囲み領域を選択するためのモードに入ってもよい。イメージの部分の選択を受信すると、協働コンテンツアイテムエディタ４０４はコメントコンテンツを受信するためのインタフェースを提供してもよい。協働コンテンツアイテムエディタ４０４がコメントコンテンツを受信すると、協働コンテンツアイテムエディタ４０４は、ＣＣＩデータベース４０８にイメージコメントを生成するコマンドを協働コンテンツアイテム管理システム１３０に送信する。
【０１３１】
協働コンテンツアイテムエディタ４０４は次いで、イメージの指定された位置にタグアイコンを表示し７１２、これはタグをスレッドにリンクさせる識別子の割り当てることを含む。ある実装では、協働コンテンツアイテムエディタは、上述のように、イメージが特定の解像度で表示された場合に、イメージタグをクラスタ化すべきか否かを判定する。他の実施の形態では、協働コンテンツ管理システム１３０は、タグがいつクラスタ化されるかを決定してもよく、クラスタ化されたタグは表示のために協働コンテンツアイテムエディタ４０４によって受信されてもよい。
【０１３２】
協働コンテンツ管理システム１３０は、ＣＣＩデータベース４０８におけるイメージコメント生成の結果を記録するよう、サーバ側で動作する。協働コンテンツ管理システム１３０は、協働コンテンツアイテムエディタ４０４から、イメージの選択（これはイメージ識別子またはＵＲＬを含みうる）と、コメントコンテンツと、イメージの一部を表すものと、を取得する７５０。協働コンテンツ管理システム１３０は、ＣＣＩデータベース４０８にコメントを生成し７５２、コメントＩＤとユーザのユーザＩＤとをコメントの著者ＩＤに割り当てる。協働コンテンツ管理システム１３０は、ＣＣＩデータベース４０８にスレッドオブジェクトを生成し７５４、新たなスレッドＩＤを割り当て、コメントのコメントＩＤをスレッドのコメントＩＤリストに追加し、コメントコンテンツをデータベースに保存する。イメージ選択を用いることでスレッドのスパンを設定し、一方で、イメージの示された部分はスレッドのスレッドＰｏｓとして保存される。
【０１３３】
ある実施の形態では、協働コンテンツ管理システム１３０は、イメージの取得された部分に基づいてコメントタグの相対座標を算出する７５６。
【０１３４】
図８Ａは、イメージを置き換え、関連イメージコメントを扱うためのクライアント側アルゴリズムのある実施の形態を示す。まず、協働コンテンツアイテムエディタ４０４は、協働コンテンツアイテムのイメージを置き換えるコマンドをユーザから受信する８００。例えば、ユーザは新たなイメージコメントボタン６５８と相互作用してもよい。上述のコマンドのいずれかを受信することに応じて、協働コンテンツアイテムエディタ４０４は、置換イメージの選択のためのインタフェースを表示する８０２。例えば、そのインタフェースはファイルナビゲーションウインドウであってもよく、これは、ユーザが、そのローカルファイルシステムから、または、コンテンツ管理システム１００上の同期されコンテンツアイテムから、イメージを選択することを可能とする。あるいはまた、そのインタフェースはドラッグアンドドロップゾーンであってもよく、これはユーザがそのゾーン内に選択したイメージファイルをドラッグアンドドロップすることを可能とする。置換イメージ選択インタフェースが表示される８０２と、協働コンテンツアイテムエディタ４０４はユーザから置換イメージの選択を受信する８０４。
【０１３５】
ある実装では、ステップ８００は同時に達成されてもよい。例えば、ユーザは協働コンテンツアイテム内で置換イメージを元のイメージと同じ位置にドラッグアンドドロップしてもよいし、元のイメージを選択した上で元のイメージが選択されている間に置換イメージを貼り付けてもよい。これらの場合、元のイメージを置換するコマンドは置換イメージの選択と一致する。
【０１３６】
置換イメージの選択を受信する８０４と、協働コンテンツアイテムエディタ４０４は置換イメージを協働コンテンツ管理システム１３０にアップロードする８０６。
【０１３７】
オプションで（図８Ａにおいて破線で示される）、協働コンテンツアイテムエディタ４０４はユーザにイメージコメントオプションを表示８０８してもよい。イメージコメントオプションは、元のイメージに関連付けられたコメントを削除またはアーカイブすること、現在のイメージのコメントタグを置換イメージへ再適用すること、または元のイメージ内のコメントをイメージのタグ付けされた位置または部分からリンク解除し、そのコメントをイメージ全体と関連付けることを含んでもよい。あるいはまた、イメージコメントオプションがユーザに提示されない場合、協働コンテンツアイテムエディタ４０４はデフォルトで、または元のイメージおよび置換イメージの画像解析を通じて、あるオプションを選択してもよい。例えば、協働コンテンツアイテムエディタ４０４のデフォルトオプションは現在のイメージコメントおよび関連するタグを新たなイメージに再適用することであってもよい。イメージコメントオプションが画像解析に基づいて選択される場合、協働コンテンツアイテムエディタ４０４は、協働コンテンツ管理システム１３０に、二つのイメージの画像解析を要求してもよい。協働コンテンツ管理システム１３０が、それらのイメージが実質的に同様であると判定した場合、イメージコメントは新たなイメージに適用されてもよい。あるいはまた、協働コンテンツ管理システムが、それらのイメージが実質的に異なると判定した場合、イメージコメントはアーカイブされるか、削除されるか、またはイメージ内のその対応する位置からリンク解除されてもよい。実施の形態により、協働コンテンツアイテムエディタ４０４によって、任意の画像処理が完了されてもよい。
【０１３８】
ユーザによる、デフォルトによる、または画像解析による、元のイメージに関連付けられたイメージコメントを削除するかアーカイブするというイメージコメントオプションの選択に応じて、協働コンテンツアイテムエディタ４０４は、元のイメージに関連付けられたコメントを削除するかアーカイブするための要求を協働コンテンツ管理システム１３０に送信する８１０。
【０１３９】
現在のイメージコメントタグを置換イメージに再適用するというオプションが選択された場合、協働コンテンツアイテムエディタ４０４はタグをその相対位置に再適用する８１２。協働コンテンツアイテムエディタ４０４は、上述のようにタグのピクセル位置を決定するために、置換イメージを含むスパンを伴う各コメントスレッドのスレッドＰｏｓ要素を用いる。タグは次いで置換イメージにおいて決定された位置に表示される。オプションで、協働コンテンツ管理システム１００が、置換イメージが元のイメージのクロップされたバージョンであると判定した場合、タグのうちのいくつかはイメージ全体とは関連付いたままイメージからリンク解除される８１４。この場合、協働コンテンツ管理システム１３０は、置換イメージと元のイメージとを比べる画像解析を行い、それにしたがいコメントのスレッドＰｏｓを変更する。あるいはまた、画像解析は協働コンテンツアイテムエディタ４０４によって完了されてもよい。
【０１４０】
最後に、コメントとイメージ内のその対応するタグとのリンクを解除するという選択に応じて、協働コンテンツアイテムエディタ４０４は、（各コメントスレッドのスレッドＰｏｓをヌル値で置き換えることによって）元のイメージに関連付けられた全てのコメントのリンクを解除するための要求を協働コンテンツ管理システム１３０に送信する８１６。コメントスレッドはイメージを含むスパンを有するので、それらはイメージ全体とは関連付けられたままであり、したがって協働コンテンツアイテムエディタ４０４によって表示される。
【０１４１】
図８Ｂは、イメージを置き換え、関連イメージコメントを扱うためのサーバ側アルゴリズムのある実施の形態を示す。まず、協働コンテンツ管理システム１３０は協働コンテンツアイテムエディタ４０４から置換イメージを取得する８５０。協働コンテンツ管理システム１３０は、次いで、ＣＣＩデータベース４０８に置換イメージを保存し８５２、置換イメージ用の新たなイメージＩＤを生成する８５４。置換イメージ用のイメージＩＤが生成されると、協働コンテンツ管理システム１３０は、協働コンテンツアイテムのテキスト内の元のイメージＩＤを、同じ位置において、置換イメージのイメージＩＤと置き換える８５６。したがって、元のイメージのイメージＩＤを含むスパンを有する任意のコメントスレッドは、今や、置換イメージを含むスパンを有し、同様に置換イメージと関連付けられるであろう。
【０１４２】
元のイメージＩＤを置換イメージＩＤで置き換えた後、協働コンテンツ管理システム１３０は、オプションで、ユーザによって選択されたイメージコメントオプションを示す要求を協働コンテンツアイテムエディタ４０４から受信してもよい８５８。あるいはまた、協働コンテンツ管理システム１３０は、デフォルトのイメージコメントオプションを用いるか、または、元のイメージおよび置換イメージの画像解析に基づいてオプションを決定してもよい。
【０１４３】
元のイメージに関連付けられたイメージコメントを削除するかアーカイブするイメージコメントオプションが選択された場合、協働コンテンツ管理システム１３０は、置換イメージＩＤを含むスパンを伴うスレッドを特定する８６０。協働コンテンツ管理システム１３０は、次いで、ＣＣＩデータベース４０８から特定されたスレッドを除去するかアーカイブする８６２。スレッドが削除されるべきものである場合、協働コンテンツ管理システム１３０は単にＣＣＩデータベースからそれらを削除する。スレッドがアーカイブされるべきものである場合、協働コンテンツアイテムは第２データベースまたはＣＣＩデータベースの異なるパーティションにスレッドを保存し、データベーステーブルを用いてそれらを元のイメージＩＤと関連付ける。
【０１４４】
元のイメージのタグを新たなイメージに適用するイメージコメントオプションが選択された場合、協働コンテンツ管理システム１３０は、元のイメージと置換イメージとを比べる画像解析を行ってもよい８６４。協働コンテンツ管理システム１３０が画像解析を通じて、置換イメージが元のイメージのクロップされたバージョンであると判定した場合、協働コンテンツ管理システム１３０は、イメージのクロップされたセクションの外側のスレッドＰｏｓを伴うコメントスレッドのリンクを解除してもよい８６８。これを達成するために、協働コンテンツ管理システム１３０は、元の相対座標で、元のイメージの領域のうち除去された領域を決定する。相対座標で表現されたときにスレッドのスレッドＰｏｓが除去された領域内に入る場合、スレッドのスレッドＰｏｓは、スパンは依然として置換イメージのイメージＩＤを含みつつ、ヌルに変更される。したがって、スレッドはイメージ全体と関連付けられたままであるが、関連するタグを有さない。
【０１４５】
加えて、協働コンテンツ管理システム１３０は、残りのスレッドのリンクを解除する代わりに、そのような残りのスレッドに関連付けられた相対位置を調整してもよい。これは、置換イメージにおいて各寸法について除去されたイメージの量に基づいて、タグの位置を定義する各座標をスケールすることによって達成されてもよい。イメージのうちスレッドに関連付けられた位置または部分は、イメージの新たな相対寸法が与えられたとして各寸法における相対位置を再計算することによって再計算されてもよい例えば、タグが相対位置（０．２，０．３）に配置されており、かつ、クロップ後のイメージの新たな相対寸法が（０．１−０．９，０−０．５）である場合、新たな相対位置は、ｘおよびｙ次元のそれぞれについて式（０．２−０．１）／（０．９−０．１）および（０．３−０）／（０．５−０）によって決定される。これは、置換イメージにおける新たな相対座標（０．１２５，０．６）を生じさせる。
【０１４６】
協働コンテンツ管理システム１３０が、元のイメージに関連付けられたスレッドのリンクを解除するための要求を受信した場合、協働コンテンツ管理システム１３０は、置換イメージＩＤを含むスパンを伴う全てのスレッドを特定し８６８、それらのスレッドのスレッドＰｏｓをヌルに設定する８７０。
【０１４７】
本明細書において、「ある実施の形態」または「実施の形態」への参照は、実施の形態との関連で説明される特定のフィーチャ、構成または特徴が少なくともひとつの実施の形態に含まれることを意味する。本明細書において様々な場所に現れるフレーズ「ある実施の形態では」は、必ずしも同じ実施の形態を指すものではない。
【０１４８】
この説明では、「モジュール」という用語は、指定される機能を提供するための計算ロジックの物理的コンピュータ構成を指す。モジュールはハードウエア、ファームウエアおよび／またはソフトウエアで実装可能である。モジュールのソフトウエア実装に関し、当業者であれば、モジュールが、データ構造、メソッド、クラス、ヘッダ、および説明される機能を実行するのに適した他のコードオブジェクトを含むコードブロックを含むことを理解する。具体的な実装言語に依存して、モジュールはパッケージ、クラス、またはコンポーネントであってもよい。モジュールを正式にサポートする言語は、Ａｄａ，  Ａｌｇｏｌ，  ＢｌｉｔｚＭａｘ，  ＣＯＢＯＬ，  Ｄ，  Ｄａｒｔ，  Ｅｒｌａｎｇ，  Ｆ，  Ｆｏｒｔｒａｎ，  Ｇｏ，  Ｈａｓｋｅｌｌ，  ＩＢＭ／３６０  Ａｓｓｅｍｂｌｅｒ，  ＩＢＭ  ｉ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ  （ＣＬ），  ＩＢＭ  ＲＰＧ，  Ｊａｖａ，  ＭＡＴＬＡＢ，  ＭＬ，  Ｍｏｄｕｌａ，  Ｍｏｄｕｌａ−２，  Ｍｏｄｕｌａ−３，  Ｍｏｒｐｈｏ，  ＮＥＷＰ，  ＪａｖａＳｃｒｉｐｔ，  Ｏｂｅｒｏｎ，  Ｏｂｅｒｏｎ−２，  Ｏｂｊｅｃｔｉｖｅ−Ｃ，  ＯＣａｍｌ，  Ｐａｓｃａｌのいくつかの派生  （Ｃｏｍｐｏｎｅｎｔ  Ｐａｓｃａｌ，  Ｏｂｊｅｃｔ  Ｐａｓｃａｌ，  Ｔｕｒｂｏ  Ｐａｓｃａｌ，  ＵＣＳＤ  Ｐａｓｃａｌ），  Ｐｅｒｌ，  ＰＬ／Ｉ，  ＰｕｒｅＢａｓｉｃ，  Ｐｙｔｈｏｎ，  ａｎｄ  Ｒｕｂｙを含むが、他の言語も「モジュール」とは異なる用語を用いることで同等の構成をサポート可能である。
【０１４９】
本明細書で説明される名を挙げられたモジュールはそのようなモジュールのある実施の形態を表すのであって、他の実施の形態は他のモジュールを含みうることは理解される。加えて、他の実施の形態は、本明細書で説明されるモジュールを欠いてもよく、および／または、説明される機能をモジュール間で異なる態様で分散させてもよい。加えて、二つ以上のモジュールに帰せられる機能は単一のモジュールに組み入れられてもよい。本明細書で説明されるモジュールがソフトウエアとして実装される場合、モジュールはスタンドアローンプログラムとして実装可能であるが、また、例えばより大きなプログラムの一部として、複数の個別のプログラムとして、またはひとつ以上の静的にまたは動的にリンクされたライブラリとして他の手段を通じて実装されてもよい。これらのソフトウエア実装のいずれかにおいて、モジュールはシステムのコンピュータ可読永続ストレージデバイスに保持され、メモリにロードされ、システムのコンピュータのひとつ以上のプロセッサによって実行される。
【０１５０】
本明細書における動作はまた、装置によって実行可能である。当該装置は、必要な目的のために特別に構成することができ、又は、コンピュータに格納されたコンピュータプログラムによって選択的に起動又は再構成された汎用コンピュータを含むことができる。そのようなコンピュータプログラムはコンピュータ可読ストレージ媒体に保持されてもよく、そのような媒体は、フロッピーディスクや光学ディスクやＣＤ−ＲＯＭや磁気光学ディスクやリードオンリーメモリ（ＲＯＭ）やランダムアクセスメモリ（ＲＡＭ）やＥＰＲＯＭやＥＥＰＲＯＭや磁気カードまたは光学カードや特定用途集積回路（ＡＳＩＣ）や、電子的インストラクションを保持するのに適した任意のタイプの媒体のうちの任意のタイプなどであってもよいがそれに限定されない。上記のそれぞれはコンピュータシステムバスに接続される。さらに、本明細書で言及されるコンピュータは、単一のプロセッサを含むか、または計算能力向上のためにマルチプロセッサ設計を用いるアーキテクチャであってもよい。
【０１５１】
本明細書で提示されるアルゴリズムおよびディスプレイは、生来的に、特定のコンピュータや他の装置に関連するわけではない。本明細書の教示にしたがうプログラムを伴う種々の汎用システムを用いることもでき、または、要求される方法ステップを行うことにより特化した装置を作成するのが便利かもしれない。さまざまなこれらのシステムの要求される構成は、以下の説明から明らかとなろう。加えて、本発明は特定のプログラム言語のいずれかを参照して説明されるわけではない。本明細書で説明される本発明の教示を実装するために種々のプログラム言語を用いることができ、以下での特定の言語への参照は本発明の実施可能性およびベストモードの開示のために提供される。
【０１５２】
本発明を好適な実施の形態およびいくつかの代替的な実施の形態を参照して具体的に示し説明したが、本発明の精神および範囲から逸脱することなく、形状や詳細に係る種々の変更を行うことができることは当業者には理解されるであろう。
【０１５３】
本明細書で用いられる場合、しきい値を超えることは、比較されるアイテムの値が指定された他の値を超えること、比較されるアイテムが最大値を伴う所定の指定された数のアイテムのうちにあること、または比較されるアイテムが指定される上位パーセンテージ量内の値を有することを意味する。本明細書で用いられる場合、しきい値を下回ることは、比較されるアイテムの値が指定された他の量を下回ること、比較されるアイテムが最小値を伴う所定の指定された数のアイテムのうちにあること、または比較されるアイテムが指定される下位パーセンテージ量内の値を有することを意味する。本明細書で用いられる場合、しきい値内にあることは、比較されるアイテムの値が二つの指定された他の値の間にあること、比較されるアイテムが中間の指定された数のアイテムのうちにあること、または比較されるアイテムが中間の指定されるパーセンテージ範囲内の値を有することを意味する。高いであるとか重要でないなどの相対的な用語は、そうでないと定義されない場合、値を割り当て、その値が確立されたしきい値とどのように比べられるかを決定するものとして理解可能である。例えば、フレーズ「速い接続を選択すること」は、その接続速度に対応する割り当て値を有し、その割り当て値がしきい値を超える接続を選択することを意味するものとして理解可能である。
【０１５４】
本明細書で用いられる場合、語「または」はアイテムの集合の任意の可能な並べ替えを指す。例えば、フレーズ「Ａ、ＢまたはＣ」は、Ａ、Ｂ、Ｃのうちの少なくともひとつもしくはそれらの任意の組み合わせを指し、それは例えば以下のうちのいずれかである。Ａ；Ｂ；Ｃ；ＡおよびＢ；ＡおよびＣ；ＢおよびＣ；Ａ，Ｂ，およびＣ；あるいは任意のアイテムの倍数であって例えば、ＡおよびＡ；Ｂ，ＢおよびＣ；Ａ，Ａ，Ｂ，Ｃ，およびＣ；など。さらに、要素または他の要素「の少なくともひとつ」を規定する請求項の用語は、要素の集合の任意の可能な並べ替えを指す。例えば、「ＡおよびＢの少なくともひとつ」または「ＡまたはＢの少なくともひとつ」を規定する請求項の用語は、Ａ、Ｂ、またはＡおよびＢの両方を意味する。
【０１５５】
本開示は、添付の請求項の範囲内の態様を説明するための種々の例および他の情報を含むが、これらの例の特定のフィーチャや配置構成に基づいて、請求項の限定が暗示されることはない。本開示は、説明のために具体的な実施の形態および実装を含むが、その実施の形態および実装の範囲から逸脱せずに種々の変更をなすことができる。例えば、機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。本開示は、説明されるフィーチャを、その範囲内のシステムコンポーネント、物理構成および論理構成、および方法の非排他的例として含む。
【０１５６】
上で言及された任意の特許、特許出願および他の参考文献は本明細書において参照により組み入れられる。必要に応じて態様を変更することで、さらに別の実装を提供するために、上述の種々の参照のシステム、機能およびコンセプトを用いることができる。参照により組み入れられた協働コンテンツアイテムの主張または主題が本願の主張または主題と競合する場合、本願は制御されるべきである。
【０１５７】
最後に、明細書において使用された言葉は主に可読性及び説明の目的のために選択されたものであり、本発明の主題の輪郭を描いたり制限を加えたりするために選択されたものではない。従って、本発明の開示は説明のためを意図したものであって、以下の請求項において明らかにされる本発明の範囲を限定するものではない。
【図１】
0006718016.tif 000003
【図２】
0006718016.tif 000004
【図３】
0006718016.tif 000005
【図４】
0006718016.tif 000006
【図５】
0006718016.tif 000007
【図６Ａ】
0006718016.tif 000008
【図６Ｂ】
0006718016.tif 000009
【図６Ｃ】
0006718016.tif 000010
【図６Ｄ】
0006718016.tif 000011
【図６Ｅ】
0006718016.tif 000012
【図７Ａ】
0006718016.tif 000013
【図７Ｂ】
0006718016.tif 000014
【図８Ａ】
0006718016.tif 000015
【図８Ｂ】
0006718016.tif 000016