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