(57)【要約】本開示の実施形態は、グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内でメッセージユーザーインターフェイス（ＵＩ）を構築及びレンダリングする方法、システム、装置、及びコンピュータプログラムプロダクトを提供し、ここでメッセージＵＩは、カスタマイズ可能なブロック構成と外部アプリケーションから受け取られたカスタマイズ可能なブロックデータとに基づいてクライアントデバイスにレンダリングされる。【選択図】図１
2021518618.tif 000002
【特許請求の範囲】
【請求項１】
グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内でメッセージユーザーインターフェイス（ＵＩ）を構築及びレンダリングする装置であって、前記装置は、少なくとも１つのプロセッサと、コンピュータプログラムコードを含む少なくとも１つのメモリとを備え、前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサによって、前記装置に
クライアントデバイスにレンダリングされるべき前記グループベースコミュニケーションインターフェイスに関連付けられたユーザーメッセージデータを外部アプリケーションから受け取ること、
前記ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定することであって、前記メッセージＵＩトリガリングイベントは、前記クライアントデバイスに関連付けられている、メッセージＵＩトリガリングイベントを特定すること、
前記ユーザーメッセージデータの中で前記メッセージＵＩトリガリングイベントが特定される状況においては、
前記メッセージＵＩトリガリングイベントに基づいて、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するカスタマイズ可能なブロック構成を決定すること、
前記カスタマイズ可能なブロック構成に関連付けられた前記外部アプリケーションに、カスタマイズ可能なブロックリクエストを送信すること、
前記カスタマイズ可能なブロックリクエストに関連付けられた外部アプリケーションからカスタマイズ可能なブロックデータを受け取ること、及び
前記カスタマイズ可能なブロック構成と、カスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内で前記メッセージＵＩをレンダリングすること
をさせるよう構成される装置。
【請求項２】
前記カスタマイズ可能なブロック構成は、複数のブロックを含み、それぞれのブロックは、複数のエレメントを含む
請求項１に記載の装置。
【請求項３】
前記カスタマイズ可能なブロックリクエストは、複数のブロックタイプを含み、それぞれのブロックタイプは、前記カスタマイズ可能なブロック構成内の対応するブロックに関連付けられている
請求項２に記載の装置。
【請求項４】
前記外部アプリケーションから受け取られた前記カスタマイズ可能なブロックデータは、複数のブロックアレイを含み、
それぞれのブロックアレイは、対応するブロックタイプに関連付けられ、複数のエレメント値を含み、
それぞれのエレメント値は、エレメント属性に関連付けられている
請求項３に記載の装置。
【請求項５】
前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサによって、前記装置に
前記カスタマイズ可能なブロック構成及び前記複数のブロックアレイに基づいて、前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングすること
をさせるよう構成される
請求項４に記載の装置。
【請求項６】
前記ブロックタイプは、テキストブロックタイプ、サムネイルブロックタイプ、ディバイダーブロックタイプ、画像ブロックタイプ、ビデオブロックタイプ、メタブロックタイプ、アクションブロックタイプ、ポルブロックタイプ、ファイルブロックタイプ、又はコールブロックタイプである
請求項３に記載の装置。
【請求項７】
前記テキストブロックタイプは、テキストエレメントに関連付けられている
請求項６に記載の装置。
【請求項８】
前記サムネイルブロックタイプは、画像エレメントに関連付けられている
請求項６に記載の装置。
【請求項９】
前記ディバイダーブロックタイプは、ディバイダーエレメントに関連付けられている
請求項６に記載の装置。
【請求項１０】
前記画像ブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載の装置。
【請求項１１】
前記ビデオブロックタイプは、ビデオエレメントに関連付けられている
請求項６に記載の装置。
【請求項１２】
前記メタブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載の装置。
【請求項１３】
前記アクションブロックタイプは、ボタンエレメント、ドロップダウンメニューエレメント、又はオーバーフローメニューエレメントに関連付けられている
請求項６に記載の装置。
【請求項１４】
前記ポルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載の装置。
【請求項１５】
前記ファイルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載の装置。
【請求項１６】
前記コールブロックタイプは、ボタンエレメントに関連付けられている
請求項６に記載の装置。
【請求項１７】
前記ボタンエレメント、前記ドロップダウンメニューエレメント、又は前記オーバーフローメニューエレメントのそれぞれは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項１３に記載の装置。
【請求項１８】
前記ボタンエレメントは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項１６に記載の装置。
【請求項１９】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項８に記載の装置。
【請求項２０】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１０に記載の装置。
【請求項２１】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１２に記載の装置。
【請求項２２】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１４に記載の装置。
【請求項２３】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１５に記載の装置。
【請求項２４】
グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内でメッセージユーザーインターフェイス（ＵＩ）を構築及びレンダリングする方法であって、前記方法は、
クライアントデバイスにレンダリングされるべき前記グループベースコミュニケーションインターフェイスに関連付けられたユーザーメッセージデータを外部アプリケーションから受け取ること、
前記ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定することであって、前記メッセージＵＩトリガリングイベントは、前記クライアントデバイスに関連付けられている、メッセージＵＩトリガリングイベントを特定すること、
前記ユーザーメッセージデータの中で前記メッセージＵＩトリガリングイベントが特定される状況においては、
前記メッセージＵＩトリガリングイベントに基づいて、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するカスタマイズ可能なブロック構成を決定すること、
前記カスタマイズ可能なブロック構成に関連付けられた前記外部アプリケーションに、カスタマイズ可能なブロックリクエストを送信すること、
前記カスタマイズ可能なブロックリクエストに関連付けられた外部アプリケーションからカスタマイズ可能なブロックデータを受け取ること、及び
前記カスタマイズ可能なブロック構成と、カスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内で前記メッセージＵＩをレンダリングすること
を含む方法。
【請求項２５】
前記カスタマイズ可能なブロック構成は、複数のブロックを含み、それぞれのブロックは、複数のエレメントを含む
請求項２４に記載の方法。
【請求項２６】
前記カスタマイズ可能なブロックリクエストは、複数のブロックタイプを含み、それぞれのブロックタイプは、前記カスタマイズ可能なブロック構成内の対応するブロックに関連付けられている
請求項２５に記載の方法。
【請求項２７】
前記外部アプリケーションから受け取られた前記カスタマイズ可能なブロックデータは、複数のブロックアレイを含み、
それぞれのブロックアレイは、対応するブロックタイプに関連付けられ、複数のエレメント値を含み、
それぞれのエレメント値は、エレメント属性に関連付けられている
請求項２６に記載の方法。
【請求項２８】
前記カスタマイズ可能なブロック構成及び前記複数のブロックアレイに基づいて、前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングすること
をさらに含む
請求項２７に記載の方法。
【請求項２９】
前記ブロックタイプは、テキストブロックタイプ、サムネイルブロックタイプ、ディバイダーブロックタイプ、画像ブロックタイプ、ビデオブロックタイプ、メタブロックタイプ、アクションブロックタイプ、ポルブロックタイプ、ファイルブロックタイプ、又はコールブロックタイプである
請求項２６に記載の方法。
【請求項３０】
前記テキストブロックタイプは、テキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３１】
前記サムネイルブロックタイプは、画像エレメントに関連付けられている
請求項２９に記載の方法。
【請求項３２】
前記ディバイダーブロックタイプは、ディバイダーエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３３】
前記画像ブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３４】
前記ビデオブロックタイプは、ビデオエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３５】
前記メタブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３６】
前記アクションブロックタイプは、ボタンエレメント、ドロップダウンメニューエレメント、又はオーバーフローメニューエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３７】
前記ポルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３８】
前記ファイルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３９】
前記コールブロックタイプは、ボタンエレメントに関連付けられている
請求項２９に記載の方法。
【請求項４０】
前記ボタンエレメント、前記ドロップダウンメニューエレメント、又は前記オーバーフローメニューエレメントのそれぞれは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項３６に記載の方法。
【請求項４１】
前記ボタンエレメントは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項３９に記載の方法。
【請求項４２】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３１に記載の方法。
【請求項４３】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３３に記載の方法。
【請求項４４】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３５に記載の方法。
【請求項４５】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３７に記載の方法。
【請求項４６】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本願は、２０１８年５月１１日に出願された「SYSTEM, METHOD, AND APPARATUS FOR BUILDING AND RENDERING A MESSAGE USER INTERFACE IN A GROUP-BASED COMMUNICATION SYSTEM」と題された米国非仮出願第１５／９７８，０１３号の優先権を主張し、その内容は、全体がここで参照により援用される。
【背景技術】
【０００２】
外部アプリケーションデベロッパーがメッセージユーザーインターフェイス（ＵＩ）を構築しレンダリングできるようにする、さまざまなメッセージングシステムが利用可能である。出願人は、メッセージングシステムにおける従来のメッセージＵＩの構築及びレンダリング実現例に関連付けられたいくつかの瑕疵及び問題を特定した。投入された努力、独創性、及び革新を通じて、これら特定された問題の多くは、本開示の実施形態に含まれる解決策を開発することによって解決されており、そのうちの多くの例がここに詳細に記載されている。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明のさまざまな実施形態は、グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内でメッセージＵＩを構築及びレンダリングするよう構成された装置に関する。ある実施形態では、コンピューティングエンティティ又は装置は、クライアントデバイスにレンダリングされるべき前記グループベースコミュニケーションインターフェイスに関連付けられたユーザーメッセージデータを外部アプリケーションから受け取るよう構成されている。前記装置は、前記ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定することであって、前記メッセージＵＩトリガリングイベントは、前記クライアントデバイスに関連付けられている、メッセージＵＩトリガリングイベントを特定することを行うようさらに構成されている。前記装置は、前記ユーザーメッセージデータの中で前記メッセージＵＩトリガリングイベントが特定される状況においては、前記メッセージＵＩトリガリングイベントに基づいて、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するカスタマイズ可能なブロック構成を決定するようさらに構成されている。前記装置は、前記カスタマイズ可能なブロック構成に関連付けられた前記外部アプリケーションに、カスタマイズ可能なブロックリクエストを送信することをさらに行うよう構成されている。前記装置は、前記カスタマイズ可能なブロックリクエストに関連付けられた外部アプリケーションからカスタマイズ可能なブロックデータを受け取ることをさらに行うよう構成されている。さらに前記装置は、前記カスタマイズ可能なブロック構成と、カスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内で前記メッセージＵＩをレンダリングすることをするよう構成されている。
【０００４】
前記カスタマイズ可能なブロック構成は、オプションとして、複数のブロックを含み、それぞれのブロックは、複数のエレメントを含む。前記カスタマイズ可能なブロックリクエストは、複数のブロックタイプを含むようオプションとして構成され、それぞれのブロックタイプは、前記カスタマイズ可能なブロック構成内の対応するブロックに関連付けられている。前記外部アプリケーションから受け取られた前記カスタマイズ可能なブロックデータは、オプションとして、複数のブロックアレイを含む。それぞれのブロックアレイは、対応するブロックタイプに関連付けられ、複数のエレメント値を含み、それぞれのエレメント値は、エレメント属性に関連付けられている。
【０００５】
前記装置は、前記カスタマイズ可能なブロック構成及び前記複数のブロックアレイに基づいて、前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングするようにオプションとして構成されている。
【０００６】
ある実施形態では、前記ブロックタイプは、テキストブロックタイプ、サムネイルブロックタイプ、ディバイダーブロックタイプ、画像ブロックタイプ、ビデオブロックタイプ、メタブロックタイプ、アクションブロックタイプ、ポルブロックタイプ、ファイルブロックタイプ、又はコールブロックタイプである。前記テキストブロックタイプは、テキストエレメントにオプションとして関連付けられており、前記サムネイルブロックタイプは、画像エレメントにオプションとして関連付けられており、前記ディバイダーブロックタイプは、ディバイダーエレメントにオプションとして関連付けられており、前記画像ブロックタイプは、画像エレメント又はテキストエレメントにオプションとして関連付けられており、前記ビデオブロックタイプは、ビデオエレメントにオプションとして関連付けられており、前記メタブロックタイプは、画像エレメント又はテキストエレメントにオプションとして関連付けられており、前記アクションブロックタイプは、ボタンエレメント、ドロップダウンメニューエレメント、又はオーバーフローメニューエレメントにオプションとして関連付けられており、前記ポルブロックタイプは、画像エレメント又はテキストエレメントにオプションとして関連付けられており、前記ファイルブロックタイプは、画像エレメント又はテキストエレメントにオプションとして関連付けられており、前記コールブロックタイプは、ボタンエレメントにオプションとして関連付けられている。
【０００７】
他の実施形態では、前記ボタンエレメント、前記ドロップダウンメニューエレメント、又は前記オーバーフローメニューエレメントのそれぞれは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている。前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性にオプションとして関連付けられている。
【０００８】
他の実施形態は、対応するシステム、方法、及び前記装置の操作を実行するよう構成され、コンピュータ記憶デバイス上にエンコードされたコンピュータプログラムを含む。本明細書に記載された主題の１つ以上の実施形態の詳細は、添付の図面及び以下の記載で述べられる。本主題の他の特徴、局面、及び優位性は、記載、図面、及び特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【０００９】
以上、一般的な語で本開示が記載されてきたが、ここで添付図面が参照されるが、これらは必ずしも縮尺通りに描かれてはいない。
【図１】図１は、本開示の実施形態を実施するよう構成されたグループベースコミュニケーションシステムのシステムアーキテクチャの図である。
【図２】図２は、本開示のある実施形態によるグループベースコミュニケーションサーバーの例示的概略図である。
【図３】図３は、本開示のある実施形態によってグループベースコミュニケーションチャンネルに関連付けられたグループベースコミュニケーションインターフェイス内でレンダリングされた例示的メッセージＵＩを示す。
【図４】図４は、本開示のある実施形態によってグループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義する例示的カスタマイズ可能なブロック構成を示す。
【図５】図５は、本開示のある実施形態によってグループベースコミュニケーションインターフェイス内にメッセージＵＩを構築及びレンダリングするための例示的フロー図を示す。
【図６】図６は、本開示のある実施形態によってクライアントデバイス、グループベースコミュニケーションサーバー、及び外部アプリケーションサーバーによって実行される例示的メッセージＵＩの構築及びレンダリングするプロセスを示す。
【発明を実施するための形態】
【００１０】
本開示のさまざまな実施形態は、添付の図面を参照してこれから以下においてより完全に説明され、ここで本開示の実施形態のうちの一部は示されるが、その全てが示されるわけではない。実際、本開示は、多くの異なる形態で実現され得るのであって、ここで記載される実施形態に限定されるように解釈されるべきではない。むしろ、これら実施形態は、本開示が適用される法的要件を充足するように提供される。「又は」という語は、そうではないと明示されない限り、代替的及び接続的意味の両方でここでは用いられている。「説明的（illustrative）」及び「例示的（exemplary）」という語は、質的なレベルを問わない例であるとして用いられている。全体を通して、同様の番号は、同様の要素を表す。
【００１１】
［概観］
本開示のさまざまな実施形態は、グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内でメッセージＵＩを構築し、レンダリングする方法に大まかには関する。本開示によれば、メッセージＵＩは、ブロックベースでクライアントデバイスに関連付けられたデバイスでレンダリングされるオブジェクト（device rendered objects）を表示するために生成される。実施形態では、外部アプリケーションデベロッパーは、カスタマイズ可能なブロックデータをサーバーに送信することを介して、グループベースコミュニケーションサーバーによって提供されたブロックキットでメッセージＵＩを構築し得る。カスタマイズ可能なブロックデータを外部アプリケーションサーバーから受け取ること、及びメッセージＵＩを定義するためのカスタマイズ可能なブロックコンフィギュレーションを決定することを通じて、そのメッセージＵＩは、生成され得て、外部アプリケーションに関連付けられたクライアントデバイスにレンダリングされ得る。
【００１２】
本開示では、ブロックキットは、複数のブロックタイプ及びそれぞれのブロックタイプに関連付けられた異なるエレメントを提供し得る。提供されたブロックキットに基づいて、外部アプリケーションデベロッパーは、それぞれのブロック内でエレメントがどのようにレンダリングされるかを設計するためのそれぞれのエレメント値（element value）を決定し得る。カスタマイズ可能なブロックコンフィギュレーションは、外部アプリケーションデベロッパーがメッセージＵＩを構築するための基礎又はテンプレートとして機能し得る。したがって、外部アプリケーションデベロッパーは、その所望のメッセージＵＩを構築するためのある程度の自由度を有し得る。グループベースコミュニケーションサーバーによって提供されたブロックキットは、そのようなキットが、メッセージＵＩを構築するのに用いられ得る一般的なパラメータ又はブロックを定義するという点において、その自由度にある種のカウンターバランスを提供し得る。これは、大まかには首尾一貫したユーザーエクスペリエンスを確保しつつ、メッセージＵＩコンテンツについてリアルタイムの外部アプリケーションの自由度を提供することによって、グループベースコミュニケーションシステムが困難な技術的課題に対応することを可能にする。
【００１３】
［定義］
ここで用いられるように「データ」、「コンテンツ」、「デジタルコンテンツ」、「デジタルコンテンツコンテンツオブジェクト」、「情報」という語、及び同様の語は、本開示の実施形態に従って送信、受信、及び／又は記憶されることが可能なデータを表すために相互交換的に用いられ得る。よって、任意のそのような語の使用は、本開示の実施形態の精神及び範囲を限定するように解釈されるべきではない。さらに、データを他の計算デバイスから受け取るための計算デバイスがここで記載されるが、このデータは、他の計算デバイスから直接に受け取られてもよく、又は、例えば、１つ以上のサーバー、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト、及び／又は同様のもののような、「ネットワーク」とここで呼ばれることもある、１つ以上の媒介する計算デバイスを介して間接的に受け取られてもよいことが理解されよう。同様に、計算デバイスは、他の計算デバイスにデータを送るようここでは記載されるが、このデータは、他の計算デバイスに直接に送られてもよく、又は１つ以上の中間計算デバイスを介して、例えば１つ以上のサーバー、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト及び／又はその他を介して、間接的に送られてもよいことが理解されるだろう。
【００１４】
「クライアントデバイス」という語は、サーバーによって利用可能にされたサービスにアクセスするよう構成されたコンピュータハードウェア及び／又はソフトウェアを表す。サーバーは、しばしば（いつもではないが）他のコンピュータシステム上にあり、その場合、クライアントデバイスは、ネットワークによってサービスにアクセスする。クライアントデバイスは、限定としてではなく、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ウェラブル機器、パーソナルコンピュータ、エンタープライズコンピュータ等を含み得る。
【００１５】
「グループベース」は、規定されたグループのユーザー群にだけアクセス可能であるのに十分なセキュリティを有するシステム、チャンネル、メッセージ、又は仮想環境を表すためにここでは用いられている。このグループは、オーガナイゼーション又は商業エンタープライズのもののようなコモンアクセス信任状によって定義され得る。アクセスは、参加するための認証された要求又はあるグループメンバーユーザーから他の非メンバーユーザーに送信された参加するための招待によってさらに促進され得る。グループ識別子（以下に定義される）は、データ、情報、メッセージ等を特定のグループと関連付けるために用いられる。
【００１６】
「グループベースコミュニケーションシステム」という語は、コミュニケーションソフトウェアプラットフォームと、複数のグループベースコミュニケーションインターフェイス及び全ての関連付けられた機能をサポートし維持するよう構成された関連付けられたハードウェアとを表す。グループベースコミュニケーションシステムユーザーは、オーガナイゼーショングループに組織化され（例えば、異なる会社の従業員は、別のオーガナイゼーショングループ群であり得る）、それぞれのグループは、それぞれのグループベースコミュニケーションインターフェイスを介してシステムとインタラクトする。例えば、そのグループベースコミュニケーションシステムは、とりわけ、Slack Corporationのグループベースコミュニケーションインターフェイス及びACME Corporationのグループベースコミュニケーションインターフェイスをサポートするかもしれない。例示的グループベースコミュニケーションシステムは、サポーティングサーバー、クライアントデバイス、及び外部アプリケーションサーバーを備える。
【００１７】
「グループベースコミュニケーションインターフェイス」という語は、グループベースコミュニケーションシステムとのユーザーインタラクションを促進するよう構成された仮想コミュニケーション環境を表す。それぞれのグループベースコミュニケーションインターフェイスは、企業又はオーガナイゼーションの従業員のグループのような、選択されたユーザーのグループがアクセス可能であり、閲覧可能である（例えばSlack Corp.のインターフェイスは、Slackの従業員がアクセス可能であり、閲覧可能であるが、ACME Corporationのグループベースコミュニケーションインターフェイスは、Slackの従業員にはアクセス可能及び閲覧可能ではない）。グループベースコミュニケーションインターフェイスは、以下で定義される複数のグループベースコミュニケーションチャンネル（例えばマーケティングチャンネル、セールスチャンネル、アカウンティングチャンネル等）を含む。
【００１８】
「グループベースコミュニケーションチャンネル」という語は、当該グループのメンバーだけに閲覧可能である、チャンネルメンバー（例えばクライアントデバイスを用いて環境にアクセスする認証されたユーザー）によってポストされたグループベースのメッセージを表示するよう構成された仮想的な通信環境つまりフィードを表す。グループベースコミュニケーションチャンネルのフォーマットは、グループベースコミュニケーションチャンネルの異なるメンバーには異なるように見えるかもしれない。しかし、グループベースコミュニケーションのチャンネルのコンテンツ（すなわちグループベースメッセージ）は、そのグループベースコミュニケーションチャンネルのそれぞれのメンバーに表示される。例えば、グループベースメッセージの共通セット（common set）は、それぞれのグループベースコミュニケーションチャンネルのそれぞれのメンバーに表示されて、グループベースコミュニケーションチャンネルのコンテンツ（すなわちグループベースメッセージ）がグループベースコミュニケーションチャンネルのメンバーごとに変わらないようにする。
【００１９】
「グループベースコミュニケーションチャンネル識別子」又は「チャンネル識別子」という語は、グループベースコミュニケーションチャンネルが特定され得る、データの１つ以上のアイテムを表す。例えば、グループベースコミュニケーションチャンネル識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス、及びこれらの類似物を含み得る。
【００２０】
「グループ識別子」又は「チーム識別子」という語は、グループベースコミュニケーションシステム内のグループが特定され得る、データの１つ以上のアイテムを表す。例えば、グループ識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス、及びこれらの類似物を含み得る。
【００２１】
「オーガナイゼーション識別子」又は「企業識別子」という語は、グループベースコミュニケーションシステム内でオーガナイゼーションエンティティ又は企業エンティティ（例えばそれぞれの会社の従業員は、別個のオーガナイゼーション／企業であり得る）が特定され得る、データの１つ以上のアイテムを表す。例えば、オーガナイゼーション識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス、及びこれらの類似物を含み得る。
【００２２】
「送信ユーザー識別子」は、特定のユーザー（すなわち特定のユーザーに関連付けられたクライアントデバイス）によって送信されたメッセージ群の集合体に関連付けられている。これらメッセージは、ユーザーに関するコンテキストを求めるために分析され得る（例えばあるトピックにおけるそのユーザーの専門又は関心は、そのようなメッセージ群の中におけるそのトピックの言及又はそのトピックに関連付けられたキーワードの頻度に基づいて求められ得る）。
【００２３】
「ユーザー」という語は、個人、企業、オーガナイゼーション、及びこれらの類似物の個人、グループを表すと理解されるべきであり、ここで参照されるユーザー群は、クライアントデバイスを用いてグループベースコミュニケーション又はメッセージングシステムにアクセスしている。
【００２４】
「ユーザープロフィール」、「ユーザーアカウント」、及び「ユーザーアカウント詳細」という語は、ユーザーと関連付けられた情報を表し、これには、例えば、ユーザー識別子、そのユーザーがアクセスを認められているグループベースコミュニケーションチャンネルと関連付けられた１つ以上のグループベースコミュニケーションチャンネル識別子、そのユーザーが関連付けられているグループの１つ以上のグループ識別子、そのユーザーが関連付けられている１つ以上のオーガナイゼーション識別子、そのユーザーがいずれかのグループベースコミュニケーションチャンネルのオーナーであるかについての表示、ユーザーがいずれかのグループベースコミュニケーションチャンネルの制限を有するかについての表示、複数のメッセージ、絵文字、複数の会話、複数の会話トピックス、アバター、電子メールアドレス、実名（例えばJohn Doe）、ユーザー名（例えばjdoe）、パスワード、実名、時間帯、ステータス等が含まれる。ユーザーアカウント詳細は、例えば、そのユーザーのユーザー名及びパスワードを含むそのユーザーのログイン情報のようなユーザー資格情報（user credentials）のサブセット指定を含み得る。
【００２５】
ここで用いられるように、「グループベースメッセージ」及び「メッセージ」という語は、クライアントデバイスを用いてユーザーによって提供され、グループベースコミュニケーションチャンネル内で表示されるよう構成された任意の電子的に生成されたデバイスでレンダリングされるオブジェクトを表す。メッセージコミュニケーションは、ユーザーによって提供される（クライアントデバイスを用いて）任意のテキスト、画像、動画、オーディオ又はそれらの組み合わせを含み得る。例えば、ユーザーは、メッセージコンテンツとしてグループベースメッセージの中に、テキストと共に画像及び動画も含むグループベースメッセージを提供し得る。そのような場合、テキスト、画像、及び動画は、グループベースメッセージ又はデバイスでレンダリングされるオブジェクトを構成し得る。グループベースコミュニケーションシステムのグループベースコミュニケーションチャンネルに送信又はポストされたそれぞれのメッセージは、以下を含むメタデータを含み、すなわちこのメタデータは、送信するユーザーの識別子、メッセージ識別子、メッセージコンテンツ、グループ識別子、及びグループベースコミュニケーションチャンネルの識別子を含む。上述の識別子のそれぞれは、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００２６】
グループベースコミュニケーションシステムユーザーは、オーガナイゼーショングループに組織化され（organized）（例えばそれぞれの会社の従業員は、別々のオーガナイゼーショングループであり得る）、それぞれのオーガナイゼーショングループは、ユーザーが割当され得る又はユーザーが参加し得る（例えばグループベースコミュニケーションチャンネルは、部署、オフィスのような地理的位置、製品ライン、ユーザーの関心、トピック、問題、及び／又はこれらの類似物）１つ以上のグループベースコミュニケーションチャンネル（以下で説明される）を有するグループベースコミュニケーションインターフェイスにアクセスし得る。グループ識別子は、メッセージのためのアクセス制御を促進するのに用いられ得る（例えばサーチクエリに応答してサーチ結果の一部としてメッセージリターンを持つようなメッセージへのアクセスは、それらのユーザープロフィールに関連付けられたグループ識別子を有するそれらユーザーに制限され得る）。グループ識別子は、メッセージについてのコンテキストを決定するのに用いられ得る（例えばオーガナイゼーションの名称及び／又はオーガナイゼーションの簡単な説明のようなグループの記述がグループ識別子に関連付けられ得る）。
【００２７】
グループベースコミュニケーションシステムユーザーは、グループベースコミュニケーションチャンネルに参加し得る。一部のグループベースコミュニケーションチャンネルは、それらのユーザープロフィールに関連付けられた特定のオーガナイゼーションのグループ識別子を有するそれらユーザーにとってはグローバルにアクセス可能であり得る（すなわちそのオーガナイゼーションのメンバーであるユーザー）。一部のグループベースコミュニケーションチャンネルへのアクセスは、特定のグループのメンバーに制限され得て、それによってグループベースコミュニケーションチャンネルは、それらのユーザープロフィールに関連付けられた特定のグループ識別子を有するそれらユーザーにアクセス可能である。グループベースコミュニケーションチャンネル識別子は、メッセージについてのアクセス制御を促進するために用いられ得る（例えば、サーチクエリに応答してサーチ結果の一部としてメッセージリターンを持つようなメッセージへのアクセスは、それらのユーザープロフィールに関連付けられたグループ識別子を有し、又はグループベースコミュニケーションチャンネルに参加する能力を有するそれらユーザーに制限され得る）。グループベースコミュニケーションチャンネル識別子は、メッセージのコンテキストを決定するのに用いられ得る（例えば、グループベースコミュニケーションチャンネルで議論されるプロジェクトの説明のような、グループベースコミュニケーションチャンネルの説明は、グループベースコミュニケーションチャンネル識別子に関連付けられ得る）。
【００２８】
「プライベートグループベースコミュニケーションチャンネル」という語は、制限されたアクセスを持つことによって、グループベースコミュニケーションシステムの他のメンバーによって一般にはアクセス可能ではなく及び／又はサーチ可能ではないグループベースコミュニケーションチャンネルを表す。例えば、プライベートグループベースコミュニケーションチャンネルへのアクセスについての知識及び許可を有する（例えば、ユーザーが許可／認証された後に、プライベートグループベースコミュニケーションチャンネルについてのグループベースコミュニケーションチャンネル識別子がそれらのユーザープロフィールに関連付けられる）ユーザー又は管理者だけが、プライベートグループベースコミュニケーションチャンネルのコンテンツを閲覧することができる。
【００２９】
「ユーザーメッセージデータ」という語は、１つ以上のクライアントデバイスにレンダリングされるべきメッセージに基づいて外部アプリケーションによって生成されたデータを表す。例えば、ユーザーメッセージデータは、クライアントデバイスにレンダリングされるべきグループベースコミュニケーションインターフェイス内でレンダリングされるべきグループベースメッセージ又は当該グループベースメッセージに関連付けられた他の添付ファイル（attachments）に基づいて外部アプリケーションによって生成され得る。ある例では、ユーザーメッセージデータは、グループベースコミュニケーションシステムのユーザーがメッセージＵＩ内で閲覧することを外部アプリケーションが意図する、画像、ファイル、オブジェクト、又はテキストを含み得る。
【００３０】
「外部アプリケーション」という語は、グループベースコミュニケーションインターフェイスを介してクライアントデバイスにサービスを提供するためにグループベースコミュニケーションシステムと通信するよう構成されたソフトウェアプログラム、プラットフォーム、又はサービスを表す。外部アプリケーションは、グループベースコミュニケーションシステムをサポートするものとは別個で異なる、コンパイルされたコードベース又はリポジトリ上で動作する。ある実施形態では、外部アプリケーションは、１つ以上のアプリケーションプログラムインターフェイス（ＡＰＩ）を通してグループベースコミュニケーションシステムと通信し得て、又はその逆も可能である。ある実施形態では、外部アプリケーションは、グループベースコミュニケーションシステムネットワークセキュリティレイヤ又はプロトコル（例えばネットワークファイアーウォールプロトコル）を鑑みて外部アプリケーションとグループベースコミュニケーションシステムとの間のセキュアな通信を促進するために用いられるトークン又は他の認証資格情報（authentication credentials）を受け取る。いったんリモートネットワークデバイス（remote networked device）と接続されたら、外部アプリケーションは、ターゲットクライアントデバイスにグループベースコミュニケーションシステムを通してメッセージを送信し得る。
【００３１】
「デバイスでレンダリングされるオブジェクト（device rendered object）」という語は、受け取られコンピューティングエンティティのプロセッサによって実行される時に、そのコンピューティングエンティティのユーザーによって関与可能な（engageable）表示のためのオブジェクト又はインターフェイスをレンダリングする、データ及び実行可能な命令のセットを表すために用いられ得る。
【００３２】
ここで用いられ得るように「メッセージユーザーインターフェイス（ＵＩ）」という語は、クライアントデバイス上で表示のためにレンダリングされる時に、グループベースコミュニケーションシステム内で通信されたメッセージに関連付けられたデバイスでレンダリングされるオブジェクトを提供する電子的に生成されたプラットフォームを表す。メッセージＵＩは、クライアントデバイスを操作するユーザーが、グループベースコミュニケーションシステムのグループベースコミュニケーションチャンネルで提供されたサーバー、処理デバイス、プログラム、又は外部アプリケーションとインタラクト又は通信することを可能にする。例えば、メッセージＵＩは、グループベースコミュニケーションチャンネル内で通信されるメッセージに添付された添付ファイルの形態であり得る。そのような例では、メッセージＵＩは、クライアントデバイスを操作するユーザーが、そのメッセージに関連付けられたサーバー、処理デバイス、プログラム、又は外部アプリケーションとインタラクト又は通信できるようにするメッセージのもとで表示され得る。他の例では、メッセージＵＩは、トピックスレッドに付された、スレッド化されたメッセージの形態であり得る。他の例では、メッセージＵＩは、ユーザープロフィール又はユーザーアカウント詳細をレンダリングするためのユーザーダッシュボード内にマウントされ得る。
【００３３】
「メッセージユーザーインターフェイス（ＵＩ）トリガリンングイベント（triggering event）」という語は、１つ以上のクライアントデバイスに関連付けられたグループベースコミュニケーションインターフェイス内でメッセージＵＩを構築しレンダリングするための、外部アプリケーションデベロッパーによって外部アプリケーションを介して実行されるアクション、インシデント、ステップ群の集合体、又はプロセスを表し、ここでメッセージＵＩトリガリングイベントは、サーバーによって特定可能であって、１つ以上のクライアントデバイスと相関関係にあり得る。トリガリングイベントは、予め定義されてもよく（例えばボタンクリック、スラッシュコマンド等）、又は機械学習モデル又は他の同様の手法を用いて時間をかけてグループベースコミュニケーションシステムによって学習されてもよい。例示的実施形態では、いったんメッセージＵＩトリガリングイベントが特定されると、グループベースコミュニケーションサーバーは、カスタマイズ可能ブロックリクエスト（customizable block request）を、メッセージＵＩトリガリングイベント及び／又は任意のそれぞれ相関関係にあるメッセージＵＩ構築リクエストに関連付けられた外部アプリケーションに送信するよう構成される。
【００３４】
ここで用いられるように、「カスタマイズ可能ブロックコンフィギュレーション（customizable block configuration）」という語は、グループベースコミュニケーションインターフェイス内のメッセージＵＩの電子的に生成されたテンプレートを表す。カスタマイズ可能ブロックコンフィギュレーションは、セクションベースの／ブロックベースの方法でデバイスでレンダリングされるオブジェクトを表示するのに用いられる複数の指定されたセクション／ブロックを含む。カスタマイズ可能ブロックコンフィギュレーションは、メッセージＵＩを指定されたセクション／ブロックに分割し得るが、これら指定されたセクション／ブロックにおいては、クライアントデバイス上での表示のためにレンダリングされる時に、それぞれの指定されたセクション／ブロックは、対応するデバイスでレンダリングされるオブジェクトを提供し得る。例えば、カスタマイズ可能ブロックコンフィギュレーションは、クライアントデバイスを用いる外部アプリケーションデベロッパーが、それぞれのブロックに関連付けられた異なるエレメント属性（以下に定義される）についての異なるエレメント値（以下に定義される）を設定することによってメッセージＵＩを構築できるようにする、カスタマイズ可能なブロックを含み得る。例えば、カスタマイズ可能ブロックコンフィギュレーションは、クライアントデバイスを用いる外部アプリケーションデベロッパーが、メッセージＵＩ内での表示のためにレンダリングされるべきそれぞれのブロックに関連付けられたエレメントのスタイル、個数、又は表示順序を選択できるようにし得る。
【００３５】
ここで用いられるように「カスタマイズ可能ブロックリクエスト」という語は、グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内のメッセージＵＩのカスタマイズ可能ブロックを構築し、グループベースコミュニケーションインターフェイスに関連付けられたクライアントデバイス上で表示のためにレンダリングするための、グループベースコミュニケーションサーバーからの電子的に生成されたリクエストを表す。カスタマイズ可能ブロックリクエストは、グループベースコミュニケーションインターフェイスに関連付けられたクライアントデバイスにどのようなタイプのブロックがレンダリングされるべきかを特定するためのブロックタイプ（以下に定義される）を含み得る。
【００３６】
ここで用いられるように「カスタマイズ可能ブロックデータ」という語は、外部アプリケーションから送られる任意のデータ、データセット、又はデータパッケージを表し、クライアントデバイスに関連付けられたグループベースコミュニケーションインターフェイス内にメッセージＵＩをレンダリングするために、グループベースコミュニケーションシステムのグループベースコミュニケーションサーバーによって用いられ得る。例えば、カスタマイズ可能ブロックデータは、複数のブロックアレイを含み得て、ここでそれぞれのブロックアレイは、メッセージＵＩ内での表示のためにレンダリングされるべきそれぞれのブロックに関連付けられる。
【００３７】
ここで用いられるように「ブロック」という語は、あるデバイスでレンダリングされるオブジェクトを表示するのに用いられるグループベースコミュニケーションインターフェイス内の指定されたセクション又は領域を表す。ブロック内で表示されるべきデバイスでレンダリングされるオブジェクトは、そのブロックのブロックタイプ（以下に定義される）に関連付けられ得る。
【００３８】
ここで用いられるように「ブロックタイプ」という語は、外部アプリケーションデベロッパーが、クライアントデバイス上での表示のためにメッセージＵＩ内でどのようなタイプのブロックを構築及びレンダリングしたいかを特定する任意のデータ、データセット、又はデータパッケージを表す。例えば、ブロックタイプは、テキストコンテンツを表示するために外部アプリケーションデベロッパーがビルドしたいテキストブロックを特定するのに用いられる「テキストブロックタイプ」であり得る。ブロックタイプは、画像又はビデオコンテンツのサイズ縮小版を表示するために外部アプリケーションデベロッパーがビルドしたいサムネイルブロックを特定するのに用いられる「サムネイルブロックタイプ」であり得る。ブロックタイプは、異なる指定されたセクション／ブロックを分離するためのディバイダー画像コンテンツを表示するために、外部アプリケーションデベロッパーがビルドしたいディバイダーブロックを特定するのに用いられる「ディバイダーブロックタイプ」であり得る。ブロックタイプは、画像コンテンツを表示するために外部アプリケーションデベロッパーがビルドしたい画像ブロックを特定するのに用いられる「画像ブロックタイプ」であり得る。ブロックタイプは、ビデオコンテンツを表示するために外部アプリケーションデベロッパーがビルドしたいビデオブロックを特定するのに用いられる「ビデオブロックタイプ」であり得る。ブロックタイプは、メタデータコンテンツを表示するために外部アプリケーションデベロッパーがビルドしたいメタブロックを特定するのに用いられる「メタブロックタイプ」であり得る。ブロックタイプは、アクションコンテンツ（例えばアクセプト／リジェクトボタン、ドロップダウンメニューボタン、オーバーフローメニューボタン）を表示し、クライアントデバイスによって起動されたアクションを受付するために外部アプリケーションデベロッパーがビルドしたいアクションブロックを特定するのに用いられる「アクションブロックタイプ」であり得る。ブロックタイプは、ポルコンテンツ（例えばユーザーが選択すべき異なるオプション群）を表示し、クライアントデバイスから票を受付するために外部アプリケーションデベロッパーがビルドしたいポルブロックを特定するのに用いられる「ポルブロックタイプ」であり得る。ブロックタイプは、クライアントデバイス群の間で共有されるファイルコンテンツを表示するために外部アプリケーションデベロッパーがビルドしたいファイルブロックを特定するのに用いられる「ファイルブロックタイプ」であり得る。ブロックタイプは、コールコンテンツ（例えばユーザーが電話をかけるための電話ボタン）を表示するために外部アプリケーションデベロッパーがビルドしたいコールブロックを特定するのに用いられる「コールブロックタイプ」であり得る。ブロックタイプには、上で記載されていない他のブロックタイプも含まれ得ることが理解されよう。
【００３９】
ここで用いられるように「エレメント」という語は、メッセージＵＩのブロックをビルドするための最小設計単位として機能する、電子的に生成されたデバイスでレンダリングされるオブジェクトを表す。ブロックは、一緒に結合された時にブロックを形成する複数のエレメントを含み得る。例えば、エレメントは、外部アプリケーションデベロッパーがどのようにテキストコンテンツがブロック内で表示されるかを設計できるようにするために提供される「テキストエレメント」であり得る。エレメントは、外部アプリケーションデベロッパーがどのように画像コンテンツがブロック内で表示されるかを設計できるようにするために提供される「画像エレメント」であり得る。エレメントは、外部アプリケーションデベロッパーがどのようにディバイダーコンテンツがブロック内で表示されるかを設計できるようにするために提供される「ディバイダーエレメント」であり得る。エレメントは、外部アプリケーションデベロッパーがどのようにビデオコンテンツがブロック内で表示されるかを設計できるようにするために提供される「ビデオエレメント」であり得る。エレメントは、外部アプリケーションデベロッパーがどのようにボタンがブロック内で表示されるかを設計できるようにするために提供される「ボタンエレメント」であり得る。エレメントは、外部アプリケーションデベロッパーがどのようにドロップダウンメニューがブロック内で表示されるかを設計できるようにするために提供される「ドロップダウンメニューエレメント」であり得る。エレメントは、外部アプリケーションデベロッパーがどのようにオーバーフローメニューがブロック内で表示されるかを設計できるようにするために提供される「オーバーフローメニューエレメント」であり得る。エレメントには、上で記載されていない他のエレメントも含まれ得ることが理解されよう。
【００４０】
ここで用いられるように「エレメント属性」という語は、クライアントデバイス上で表示のためにレンダリングされる時に、そのエレメントが外部アプリケーションデベロッパーによって設計されたフィーチャーを反映するように、エレメントに関連付けられたデザインフィーチャーを表す。例えば、「サイズ属性」という語は、特定のサイズで画像エレメントを表示するためのサイズフィーチャーを表す。他の例として、「色属性」という語は、ボタンエレメントを特定の色で表示するための色フィーチャーを表す。他の例として、「アクションテキスト属性」という語は、アクションブロックタイプ又はコールブロックタイプ内のボタンエレメント、ドロップダウンメニューエレメント、又はオーバーフローメニューエレメントに関連付けられた特定のテキストを表示するためのテキストフィーチャーを表す。エレメント属性には、上で記載されていない他の属性も含まれ得ることが理解されよう。
【００４１】
ここで用いられるように「エレメント値」という語は、エレメントのエレメント属性に関連付けられた電子的に生成された値を表す。エレメント値は、エレメントを含むブロック内でエレメントがどのように表示され得るかを特定することによって、外部アプリケーションデベロッパーによって設計されたエレメントフィーチャーを反映するためのエレメント属性を定義するのに用いられ得る。
【００４２】
ここで用いられるように「ブロックアレイ」という語は、ブロックタイプに関連付けられたエレメント値群（上で定義された）の集合体を表す。ブロックアレイは、複数のエレメント値を含み得て、それぞれのエレメント値は、ブロックタイプに関連付けられたブロック内で表示されるべき対応するエレメントに関連付けられた属性を定義する。
【００４３】
［例示的システムアーキテクチャ］
本開示の方法、装置、及びコンピュータプログラム製品は、さまざまなデバイスの任意のものによって実現され得る。例えば、例示的実施形態の方法、装置、及びコンピュータプログラム製品は、１つ以上のクライアントデバイスのような１つ以上のデバイスと通信するよう構成されるサーバー又は他のネットワークエンティティのようなネットワーク接続されたデバイス（例えばエンタープライズプラットフォーム）によって実現され得る。追加として又は代替として、計算デバイスは、パーソナルコンピュータ又はコンピュータワークステーションのような固定された計算デバイスを含み得る。さらに例示的実施形態は、携帯デジタルアシスタント（ＰＤＡ）、携帯電話、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルデバイス、又は前述のデバイスの任意の組合せのような、さまざまなモバイルデバイスの任意のものによって実現され得る。
【００４４】
図１は、本開示の実施形態が動作し得る例示的計算システム１００を示す。ユーザーは、クライアントデバイス１０１Ａ−１０１Ｎを用いて通信ネットワーク１０４を介してグループベースコミュニケーションシステム１０５にアクセスし得る。外部アプリケーションサーバー１０８は、通信ネットワーク１０４を介してグループベースコミュニケーションシステム１０５とインタラクトし得る。グループベースコミュニケーションシステム１０５は、少なくとも１つのグループベースコミュニケーションリポジトリ１０７と通信するグループベースコミュニケーションサーバ１０６を備え得る。
【００４５】
通信ネットワーク１０４は、例えば、それを実現するのに要求される任意のハードウェア、ソフトウェア及び／又はファームウェア（例えばネットワークルータ等のような）と共に、有線又は無線ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）等を含む任意の有線又は無線通信ネットワークを含み得る。例えば、通信ネットワーク１０４は、セルラー式電話、８０２．１１、８０２．１６、８０２．２０、及び／又はＷｉＭａｘネットワークを含み得る。さらに、通信ネットワーク１０４は、インターネットのような公衆ネットワーク、イントラネットのようなプライベートネットワーク、又はそれらの組合せを含み得て、ＴＣＰ／ＩＰベースのネットワーキングプロトコルを含むがこれには限定されない、現在利用可能な又は将来開発されるさまざまなネットワーキングプロトコルを利用し得る。例えば、ネットワーキングプロトコルは、グループベースコミュニケーションシステムの要求に合うようにカスタマイズされ得る。ある実施形態では、プロトコルは、ウェブソケットチャンネルを介して送られるＪＳＯＮオブジェクトのカスタムプロトコルである。ある実施形態では、プロトコルは、ＪＳＯＮ−ＲＰＣ、ＪＳＯＮ−ＲＥＳＴ／ＨＴＴＰ、及びこれらの類似物である。
【００４６】
グループベースコミュニケーションサーバ１０６は、この技術分野で知られるようにコンピュータ又はコンピュータ群として実現され得る。グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａ−１０１Ｎ又は外部アプリケーションサーバー１０８には必ずしも限定されないがこれらを含むさまざまなソースからの電子データの受信のために設けられ得る。例えば、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａ−１０１Ｎによって提供されたグループベースメッセージを受信及びポスト又は送信するよう動作可能であり得る。他の例として、グループベースコミュニケーションシステム１０６は、メッセージＵＩをクライアントデバイス１０１Ａ−１０１Ｎにビルド及びレンダリングするために、外部アプリケーションサーバーによって提供されたユーザーメッセージデータを受け取るよう動作可能であり得る。
【００４７】
グループベースコミュニケーションリポジトリ１０７は、ネットワークアタッチトストレージ（ＮＡＳ）装置又は装置群のようなデータ記憶装置として、又は別個のデータベースサーバ又はサーバー群として実現され得る。グループベースコミュニケーションリポジトリ１０７は、グループベースコミュニケーションシステム１０５の動作を促進するためにグループベースコミュニケーションサーバ１０６によってアクセスされ記憶される情報を含む。例えば、グループベースコミュニケーションリポジトリ１０７は、複数のグループベースコミュニケーションチャンネル、及び／又はこれらの類似物の間で組織化された複数のメッセージングコミュニケーションを限定ではなく含み得る。
【００４８】
クライアントデバイス１０１Ａ−１０１Ｎは、上で定義されたような任意の計算デバイスであり得る。クライアントデバイス１０１Ａ−１０１Ｎからグループベースコミュニケーションサーバ１０６によって受信された電子データは、さまざまな形態で、かつさまざまな方法を介して提供され得る。例えば、クライアントデバイス１０１Ａ−１０１Ｎは、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、ネットブック、タブレットコンピュータ、ウェアラブルデバイス、及びこれらの類似物を含み得る。
【００４９】
クライアントデバイス１０１Ａ−１０１Ｎが、スマートフォン又はタブレットのようなモバイルデバイスである実施形態においては、クライアントデバイス１０１Ａ−１０１Ｎは、グループベースコミュニケーションシステム１０５と相互作用するために「アプリ」を実行し得る。そのようなアプリは、タブレット又はスマートフォンのようなモバイルデバイス上で動作するように典型的には設計される。例えば、アプリは、iOS（登録商標）、Android（登録商標）、又はWindows（登録商標）のようなモバイルデバイスオペレーティングシステム上で動作するよう提供され得る。これらプラットフォームは、アプリが互いに、及びモバイルデバイスの特定のハードウェア及びソフトウェア要素と通信することを可能にするフレームワークを典型的には提供する。例えば、上で挙げられたモバイルデバイスオペレーティングシステムは、それぞれ、位置サービス回路、有線及び無線ネットワークインターフェイス、ユーザコンタクト、及び他のアプリケーションと相互作用するためのフレームワークを提供する。アプリの外で動作するハードウェア及びソフトウェアモジュールとの通信は、モバイルデバイスオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェイス（ＡＰＩ）を介して典型的には提供される。
【００５０】
追加として又は代替として、クライアントデバイス１０１Ａ−１０１Ｎは、ウェブブラウザを介してグループベースコミュニケーションシステム１０５と相互作用し得る。さらに他の例として、クライアントデバイス１０１Ａ−１０１Ｎは、グループベースコミュニケーションシステム１０５とインターフェイスするよう設計されたさまざまなハードウェア又はファームウェアを含み得る。
【００５１】
例示的グループベースコミュニケーションシステム１０５のある実施形態では、メッセージつまりグループベースメッセージは、クライアントデバイス１０１Ａ−１０１Ｎからグループベースコミュニケーションシステム１０５に送られ得る。さまざまな実現例において、メッセージは、クライアントデバイス１０１Ａ−１０１Ｎによって直接に、通信ネットワーク１０４を通じてグループベースコミュニケーションシステム１０５に送られてもよく、メッセージは、メッセージサーバ及び／又はその他のような媒介を介してグループベースコミュニケーションシステム１０５に送られてもよい。例えば、クライアントデバイス１０１Ａ−１０１Ａは、デスクトップ、ラップトップ、タブレット、スマートフォン、及び／又はクライアントアプリケーションを実行しているもの（例えばグループベースコミュニケーションアプリ）であり得る。ある実現例では、メッセージは、メッセージ識別子、送信ユーザー識別子、グループ識別子、グループベースコミュニケーションチャンネル識別子、メッセージコンテンツ（例えばテキスト、絵文字、画像、リンク）、添付物（例えばファイル）、メッセージ階層データ（例えばそのメッセージは、他のメッセージの応答であり得る）、サードパーティメタデータ、及び／又はその他のようなデータを含み得る。ある実施形態では、クライアントデバイス１０１Ａ−１０１Ｎは、以下に示されるような、エクステンシブルマークアップランゲージ（「ＸＭＬ」）でフォーマットされたデータを含む、（セキュア）ハイパーテキストトランスファプロトコル（「ＨＴＴＰ（Ｓ）」）ＰＯＳＴメッセージの形態を実質的にとる、以下の例示的メッセージを提供し得る。
【００５２】
POST /authrequest.php HTTP/1.1
Host: www.server.com
Content-Type: Application/XML
Content-Length: 667
<?XML version = “1.0” encoding = “UTF-8”?>
<auth_request>
<timestamp>2020-12-31 23:59:59</timestamp>   
<user_accounts_details>
<user_account_credentials>
<user_name>ID_user_1</user_name>
<password>abc123</password>
//OPTIONAL <cookie>cookieID</cookie>
//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>
//OPTIONAL <digital_certificate>_DATA_</digital_certificate>
</user_account_credentials>
</user_accounts_details>
<client_details> //iOS Client with App and Webkit
//it should be noted that although several client details
//sections are provided to show example variants of client
//sources, further messages will include only on to save
//space
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>app with webkit</client_app_type>
<app_installed_flag>true</app_installed_flag>
<app_name>NickName.app</app_name>
<app_version>1.0 </app_version>
<app_webkit_name>Mobile Safari</client_webkit_name>
<client_version>537.51.2</client_version>
</client_details>
<client_details> //iOS Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>9537.53</client_version>
</client_details>
<client_details> //Android Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Nexus S Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30</user_agent_string>
<client_product_type>Nexus S</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Android</client_OS>
<client_OS_version>4.0.4</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>534.30</client_version>
</client_details>
<client_details> //Mac Desktop with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14</user_agent_string>
<client_product_type>MacPro5,1</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Mac OS X</client_OS>
<client_OS_version>10.9.3</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>537.75.14</client_version>
</client_details>
<message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
</message>
</auth_request>
グループベースコミュニケーションシステム１０５は、グループベースコミュニケーションリポジトリ１０７におけるメッセージのインデキシング及び記憶を促進するために、受信されたメッセージに基づいて記憶メッセージを作成し得る少なくとも１つのグループベースコミュニケーションサーバ１０６を備える。ある実施形態では、記憶メッセージは、メッセージ識別子、グループ識別子、グループベースコミュニケーションチャンネル識別子、送信ユーザー識別子、トピックス、レスポンス、メッセージコンテンツ、添付物、メッセージ階層データ、サードパーティメタデータ、会話プリミティブデータ及び／又はその他のようなデータを含み得る。例えば、グループベースコミュニケーションサーバ１０６は、以下に示すような、ＸＭＬでフォーマットされたデータを含む、ＨＴＴＰ（Ｓ）  ＰＯＳＴメッセージの形態を実質的にとる、以下の例示的記憶メッセージを提供し得る。
【００５３】
POST /storage_message.php HTTP/1.1
Host: www.server.com
Content-Type: Application/XML
Content-Length: 667
<?XML version = “1.0” encoding = “UTF-8”?>
<storage_message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<sending_user_identifier>ID_user_1</sending_user_identifier>
<topics>
<topic>inventions</topic>
<topic>patents</topic>
<topic>policies</topic>
</topics>
<responses>
<response>liked by ID_user_2</response>
<response>starred by ID_user_3</response>
</responses>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
<conversation_primitive>
conversation includes messages: ID_message_8, ID_message_9, ID_message_10, 
ID_message_11, ID_message_12
</conversation_primitive>
</storage_message>
実施形態において、上で定義されたグループ識別子は、メッセージと関連付けられ得る。
【００５４】
実施形態において、上で定義されたグループベースコミュニケーションチャンネル識別子は、メッセージと関連付けられ得る。
【００５５】
実施形態において、上で定義された送信ユーザー識別子は、メッセージと関連付けられ得る。ある実現例では、メッセージは、そのメッセージを送ったユーザーの送信ユーザー識別子を決定するためにパースされ（parsed）得る（例えばＰＨＰコマンドを用いて）。
【００５６】
実施形態において、トピックスは、メッセージと関連付けられ得る。ある実現例では、メッセージコンテンツは、そのメッセージで議論されているトピックスを決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。例えば、メッセージ中のハッシュタグは、そのメッセージに関連付けられたチャンネルを示し得る。他の例では、メッセージは、メッセージに関連付けられたトピックスを決定するために、分析され（例えば、それ自身で、会話プリミティブ中の他のメッセージと共に）、又はトピックモデリングのような機械学習技術を用いてパースされ得る。
【００５７】
ある実施形態では、応答を示すデータは、そのメッセージと関連付けられ得る。例えば、他のユーザーによるメッセージへの応答は、反応（例えばメッセージに関連付けられた絵文字の選択、メッセージに関連付けられた「いいね」ボタンの選択）、メッセージに埋め込まれたハイパーリンクをクリックすること、メッセージへ応答すること（例えばメッセージに応答してグループベースコミュニケーションチャンネルにメッセージをポストすること）、メッセージに関連付けられたファイルをダウンロードすること、あるグループベースコミュニケーションチャンネルから他のグループベースコミュニケーションチャンネルへメッセージをシェアすること、メッセージをピン留めすること、メッセージに星を付けること、及び／又はその他を含み得る。ある実施形態では、他のユーザーによるメッセージへの応答に関するデータは、メッセージに含まれ得て、そのメッセージは、応答を決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。他の実現例では、メッセージへの応答に関するデータは、データベースから取り出され得る。例えば、メッセージに対する応答に関するデータは、以下のようなMySQLデータベースコマンドを介して取得され得る。
【００５８】
SELECT messageResponses
FROM MSM_Message
WHERE messageID = ID_message_10.
例えば、メッセージへの応答に関するデータは、メッセージについてのコンテキスト（例えばメッセージについての、あるユーザーの視点からのソーシャルスコア）を決定するのに用いられ得る。他の例では、メッセージへの応答に関連するデータは、ユーザーに関するコンテキストを決定するために分析され得る（例えばあるトピックにおけるユーザーの経験は、そのトピックに関するユーザーのメッセージに対する応答に基づいて決定され得る）。
【００５９】
実施形態において、添付物は、メッセージに含まれ得る。もし添付物が存在するなら、ファイルは、メッセージと関連付けられ得る。ある実現例では、メッセージは、添付物のファイル名を決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。例えば、ファイルコンテンツは、メッセージについてのコンテキストを決定するために分析され得る（例えば特許ポリシーの文書は、そのメッセージが「特許」というトピックに関連付けられていると表示し得る）。
【００６０】
実施形態において、サードパーティメタデータは、メッセージに関連付けられ得る。例えば、サードパーティメタデータは、会社、グループ、グループベースコミュニケーションチャンネル、及び／又はその他に特有である、メッセージ又はユーザーについての追加のコンテキストを提供し得る。ある実現例では、メッセージは、サードパーティメタデータを決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。例えば、サードパーティメタデータは、メッセージを送ったユーザーがグループベースコミュニケーションチャンネルの許可された代表者であるかを示し得る（例えば、許可された代表者は、グループベースコミュニケーションチャンネルにおける質問に応答するために会社によって許可され得る）。
【００６１】
実施形態において、会話プリミティブ（conversation primitive）は、メッセージと関連付けられ得る。ある実施形態では、会話プリミティブは、メッセージを分析し、インデックス付けし、記憶し、及び／又はその他をするのに用いられる要素である。例えば、メッセージは、それ自身で分析され得て、それ自身の会話プリミティブを形成し得る。他の例では、メッセージは、会話を構成する他のメッセージと共に分析され得て、会話を構成するメッセージは、会話プリミティブを形成し得る。ある実現例では、会話プリミティブは、当該メッセージ、特定の個数（例えば２）の先行するメッセージ及び特定の個数（例えば２）の後続するメッセージとして決定され得る。他の実現例では、会話プリミティブは、当該メッセージ及び他のメッセージ（例えばそのチャンネルにおける）で議論されているトピック及び／又はこれらメッセージの近接性（例えばメッセージ送信順序の近接性、メッセージ送信時刻の近接性）の分析に基づいて決定され得る。
【００６２】
実施形態においては、上で説明されたように決定されたさまざまなメタデータ及び／又はメッセージのコンテンツは、メッセージをインデックス化する（例えば会話プリミティブを用いて）ことによって、サーチングのさまざまなファセット（すなわちグループベースコミュニケーションリポジトリ１０７から結果を返すサーチクエリ）を促進するために用いられ得る。ある実現例では、記憶メッセージ（storage message）は、グループベースコミュニケーションリポジトリ１０７におけるインデキシングを促進するために、グループベースコミュニケーションサーバ１０６から送信され得る。他の実現例において、メッセージに関連付けられたメタデータが決定され得て、このメッセージは、グループベースコミュニケーションリポジトリ１０７においてインデキシングされ得る。ある実施形態において、メッセージは、会社の又はグループのメッセージが別個にインデックス化されるようにインデックス化され得る（例えば他のグループ及び／又は会社とシェアされていないグループ及び／又は会社に関連付けられた別個のインデックスにおいて）。ある実現例では、メッセージは、別個の分散化されたリポジトリにおいてインデックス化され得る（例えばセキュリティの目的のためにデータ隔離を促進するために）。
【００６３】
もしメッセージに関連付けられた添付物が存在するなら、その関連付けられたファイルのファイルコンテンツは、サーチングを促進するために、グループベースコミュニケーションリポジトリ１０７においてそのようなファイルをインデックス化するために用いられ得る。ある実施形態においては、ファイルは、別個の配信リポジトリにおいて会社の又はグループのファイルがインデックス化されるように、インデックス化され得る。
【００６４】
［本開示の実施形態を実現する例示的装置］
図２は、１つ以上の計算システムによって実現され得るグループベースコミュニケーションサーバー２００の例示的概略図を示す。グループベースコミュニケーションサーバー２００は、プロセッサ２０２、メモリ２０１、入力／出力回路２０３、通信回路２０５、及びメッセージＵＩブロックリクエスト及びレンダリングモジュール２０４を含み得る。グループベースコミュニケーションサーバー２００は、ここで記載される操作を実行するよう構成され得る。これら要素は、機能的な限定について記載されているが、具体的な実現例は、特定のハードウェアの使用を必然的に含むことを理解されたい。ここで記載された要素のいくつかは、同様の又は共通のハードウェアも含み得ることも理解されたい。例えば、回路のうちの２つのセットが同じプロセッサ、ネットワークインターフェイス、記憶媒体等の使用を活用することで、それらの関連付けられた機能を実行し、重複するハードウェアが回路群のそれぞれのセットごとには必要がないようにしてもよい。装置の要素についてここで用いられるように「回路」という語の使用は、ここで説明されるように、特定の回路と関連付けられた機能を実行するよう構成された特定のハードウェアを含むように理解されなければならない。
【００６５】
「回路」という語は、ハードウェア、及び実施形態によっては、そのハードウェアを設定するためのソフトウェアを含むように広く理解されるべきである。例えば、実施形態によっては、「回路」は、処理回路、記憶媒体、ネットワークインターフェイス、入力／出力装置等を含み得る。ある実施形態では、グループベースコミュニケーションサーバー２００の他の要素は、特定の回路の機能を提供又は補完し得る。例えば、プロセッサ２０２は、処理機能を提供し得て、メモリ２０１は、記憶機能を提供し得て、通信回路２０５は、ネットワークインターフェイス機能を提供し得る等である。
【００６６】
ある実施形態においては、プロセッサ２０２（及び／又はコプロセッサ又はプロセッサを補助する又はそうでなければプロセッサに関連付けられた任意の他の処理回路）は、装置の要素の間で情報を受け渡しするためにバスを介してメモリ２０１と通信し得る。メモリ２０１は、非一時的であり、例えば１つ以上の揮発性及び／又は不揮発性メモリを含み得る。換言すれば、例えばこのメモリは、電子記憶装置（例えばコンピュータで読み取り可能な記憶媒体）であり得る。メモリ２０１は、この装置が、本開示の例示的実施形態に従ってさまざまな機能を実行できるようにするために、情報、データ、コンテンツ、アプリケーション、命令等を記憶するよう構成され得る。
【００６７】
プロセッサ２０２は、いくつかの異なるやり方で実現され得て、例えば独立して実行するよう構成された１つ以上の処理装置を含み得る。追加として又は代替として、このプロセッサは、命令の独立した実行、パイプライン処理、及び／又はマルチスレッディングを可能にするようにバスを介して並列に構成された１つ以上のプロセッサを含み得る。「処理回路」という語の使用は、装置の内部にあるシングルコアプロセッサ、マルチコアプロセッサ、マルチプロセッサ、及び／又はリモートつまり「クラウド」プロセッサを含むと理解されよう。
【００６８】
例示的な実施形態においては、プロセッサ２０２は、メモリ２０１に記憶された又はそうでなければプロセッサにアクセス可能である命令を実行するよう構成され得る。代替として又は追加として、このプロセッサは、ハードコードされた機能を実行するよう構成され得る。よってハードウェア又はソフトウェアのいずれの方法によって構成されようとも、又はそれらの組み合わせによって構成されようとも、プロセッサは、そのように構成されている間は、本開示の実施形態による操作を実行することができるエンティティ（例えば回路として物理的に実現される）を表し得る。代替として、他の例として、プロセッサがソフトウェア命令の実行者として実現される時、これら命令は、命令が実行される時に、プロセッサがここに記載されたアルゴリズム及び／又は操作を実行するようにプロセッサを具体的に構成し得る。
【００６９】
ある実施形態においては、グループベースコミュニケーションサーバー２００は、入力／出力回路２０３を含み得て、これが今度は、出力をユーザーに提供するために、またある実施形態では、ユーザー入力の表示を受け取るためにプロセッサ２０２と通信し得る。入力／出力回路２０３は、ユーザインターフェイスを備え得て、ディスプレイを含み得て、ウェブユーザインターフェイス、モバイルアプリケーション、クライアントデバイス、キオスク等を備え得る。ある実施形態では、入力／出力回路２０３は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイクロホン、スピーカ、又は他の入力／出力機構を含み得る。プロセッサを備えるプロセッサ及び／又はユーザインターフェイス回路は、プロセッサにアクセス可能であるメモリ（例えばメモリ２０１、及び／又はこの類似物）上に記憶されたコンピュータプログラム命令（例えばソフトウェア及び／又はファームウェア）を通して１つ以上のユーザインターフェイス要素の１つ以上の機能を制御するよう構成され得る。
【００７０】
通信回路２０５は、グループベースコミュニケーションサーバー２００と通信するネットワーク及び／又は任意の他のデバイス、回路、又はモジュールから／へデータを受信及び／又は送信するよう構成される、ハードウェアか、ハードウェア及びソフトウェアの組み合わせかのいずれかで実現されるデバイス又は回路のような任意の手段であり得る。この点で、通信回路２０５は、例えば、有線又は無線の通信ネットワークとの通信を可能にするネットワークインターフェイスを含み得る。例えば、通信回路２０５は、１つ以上のネットワークインターフェイスカード、アンテナ、バス、スイッチ、ルータ、モデム、及びサポートするハードウェア及び／又はソフトウェア、又はネットワークを介した通信を可能にするのに適切な任意の他のデバイスを含み得る。追加として又は代替として、通信インターフェイスは、アンテナ（群）を介した信号の送信を行うために、又はアンテナ（群）を介して受け取られた信号の受信を扱うために、アンテナ（群）と相互作用する回路を含み得る。
【００７１】
メッセージＵＩブロックリクエスト及びレンダリングモジュール２０４は、グループベースコミュニケーションシステムをサポートするよう構成されたハードウェアを含む。メッセージＵＩブロックリクエスト及びレンダリングモジュール２０４は、これらのアクションを実行するためにプロセッサ２０２のような処理回路を利用し得る。メッセージＵＩブロックリクエスト及びレンダリングモジュール２０４は、グループベースコミュニケーションリポジトリ１０７にデータを送信及び／又はグループベースコミュニケーションリポジトリ１０７から受信し得る。ある実現例では、送信された及び／又は受信されたデータは、複数のグループベースコミュニケーションチャンネルの間で組織化されたエンタープライズベースデジタルコンテンツオブジェクトであり得る。ある実施形態では、メッセージＵＩブロックリクエスト及びレンダリングモジュール２０４は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は特定用途向け集積回路（ＡＳＩＣ）を含み得ることも理解されるべきである。
【００７２】
上に説明されたように、及び本開示に基づいて理解されるように、本開示の実施形態は、方法、モバイルデバイス、バックエンドネットワークデバイス等として構成され得る。したがって実施形態は、ハードウェアだけを含む、又はソフトウェア及びハードウェアの任意の組み合わせを含むさまざまな手段を備え得る。さらに、実施形態は、記憶媒体内に実現されたコンピュータ読み取り可能なプログラム命令（例えばコンピュータソフトウェア）を有する、少なくとも１つの非一時的コンピュータ読み取り可能な記憶媒体上のコンピュータプログラム製品の形態をとり得る。任意の適切なコンピュータ読み取り可能な記憶媒体は、非一時的ハードディスク、ＣＤ−ＲＯＭ、フラッシュメモリ、光学記憶デバイス、又は磁気記憶デバイスを含むようにして利用され得る。
【００７３】
［グループベースコミュニケーションインターフェイス内にメッセージユーザーインターフェイス（ＵＩ）を構築及びレンダリングする例示的プロセス］
本開示では、ブロックキット構造又はブロックキットは、グループベースコミュニケーションサーバー１０６の動作を介して提供される。ブロックキット構造又はブロックキットは、メッセージＵＩ内にレンダリングされることが望まれるブロックを精選するための、テキストブロックタイプ、ディバイダーブロックタイプ、アクションブロックタイプ等のようなさまざまなブロックタイプに関連付けられ得る。実施形態においては、それぞれのブロックタイプは、複数の要素によってさらに定義され、ここでそれぞれの要素についての異なる要素値は、外部アプリケーションデベロッパーによって設定され得る。グループベースコミュニケーションシステムによって提供されるブロックキット構造又はブロックキットに基づいて、外部アプリケーションデベロッパーは、所望のメッセージＵＩを構築するためのカスタマイズ可能なブロック構成を設計し得る。
【００７４】
カスタマイズ可能なブロック構成は、外部アプリケーションデベロッパーがメッセージＵＩを構築するための基礎又はテンプレートとして機能し得る。例えば、外部アプリケーションデベロッパーは、メッセージＵＩ内に表示のためにレンダリングされるべき、テキストブロックタイプ、ディバイダーブロックタイプ、及びアクションブロックタイプに関連付けられた、カスタマイズ可能なブロック構成を設計することを決定し得る。そのような例では、テキストブロックに関連付けられたテキストエレメントについて、外部アプリケーションデベロッパーは、どのテキストコンテンツがテキストブロック内に表示のためにレンダリングされるべきかを決定し得る。アクションブロックタイプに関連付けられたボタン要素について、外部アプリケーションデベロッパーは、そのボタンに関連付けられたどの色又はどのアクションテキストがアクションブロックタイプ内で表示のためにレンダリングされるべきかを決定し得る。上の例は、外部アプリケーションデベロッパーが、グループベースコミュニケーションシステムによって提供されたブロックキット構造又はブロックキットを用いて所望のメッセージＵＩを構築するための、ある程度の自由度を有し得ることを示す。
【００７５】
上述の外部アプリケーションデベロッパーの自由度とバランスをとるために、グループベースコミュニケーションシステムによって定義されるブロックキットは、外部アプリケーションデベロッパーが任意の所望のメッセージＵＩをどのように構築し得るかについて、ある程度の制限も設定する。上の例では、テキストブロックに関連付けられたテキストエレメントについて、外部アプリケーションデベロッパーは、どのテキストフォント、サイズ、又は色でテキストブロック内に表示のためにレンダリングされるべきかを決定することについては制限され得るが、どのようなテキストコンテンツが表示されるべきかを決定することについてだけは可能である。ディバイダーブロックに関連付けられたディバイダーエレメントについては、外部アプリケーションデベロッパーは、異なるブロックを分離するためのディバイダーエレメントのサイズ、色、又はデザインパターンを設定することについても制限され得る。外部アプリケーションデベロッパーの自由度と、グループベースコミュニケーションシステムによって規定された制限との間でバランスを図ることによって、グループベースコミュニケーションシステム内で通信される全てのメッセージＵＩについての統一感のあるユーザーエクスペリエンスが確保される。
【００７６】
図３は、本開示のある実施形態によるグループベースコミュニケーションチャンネルに関連付けられたグループベースコミュニケーションインターフェイス３００内でレンダリングされる例示的メッセージＵＩを示す。ここで記載されるように、グループベースコミュニケーションインターフェイス３００は、クライアントデバイス１０１Ａ−１０１Ｎのディスプレイ上に提示される。グループベースメッセージ３０２Ａ−３０２Ｃは、選択されたグループベースコミュニケーションチャンネル（チャンネルＢ）に関連付けられたグループベースコミュニケーションインターフェイス３００内にレンダリングされる。それぞれのグループベースメッセージは、グループベースメッセージ情報を含み、これは、そのグループベースメッセージを送ったユーザーを特定するユーザー情報、及びそのグループベースメッセージがいつ送られたかを示すタイムスタンプを含む。それぞれのグループベースメッセージは、グループベースメッセージに添付されたメッセージＵＩ（例えば３０４Ａ−３０４Ｃ）をさらに含み得る。メッセージＵＩは、ユーザーメッセージデータに基づいてそれぞれのグループベースメッセージの下で表示のために構築及びレンダリングされ得る。
【００７７】
例示的実施形態では、グループベースメッセージ３０２Ａ−３０２Ｃは、選択されたチャンネルＢに関連付けられたグループベースコミュニケーションインターフェイスを見ているそれぞれのユーザーに対して一様にレンダリングされる。ここで記載された目的のために、ユーザーは、メッセージ入力フィールド３０３を利用してグループベースコミュニケーションサーバー１０６とインタラクト又は通信し得る。そしてグループベースコミュニケーションサーバー１０６とのユーザーのインタラクション又は通信に基づいて、メッセージＵＩ（例えば３０４Ａ−３０４Ｃ）が生成され得る。例えば、クライアントデバイスを使用しているユーザーJohn Doeは、「プロジェクトＡのためのワード文書を誰か持っていますか？」とメッセージ入力フィールド３０３に入力又はエンターし得る。そしてJohn Doeがタイプした又は入力したコンテンツに基づいて、グループベースメッセージ３０２Ａのユーザー情報又はタイムスタンプの下にテキストブロックを付着することによって、グループベースコミュニケーションインターフェイス３００内にメッセージＵＩ３０４Ａが生成され、レンダリングされ得る。
【００７８】
図４は、本開示のある実施形態によるグループベースコミュニケーションインターフェイス４００内にレンダリングされるメッセージＵＩを規定する例示的なカスタマイズ可能なブロック構成を示す。この実施形態では、グループベースメッセージ４０１Ａがグループベースコミュニケーションインターフェイス４００内に表示のために生成及びレンダリングされる。グループベースメッセージ４０１Ａは、どのタイプのメッセージが生成されつつあるのか（例えば図４でＡＰＰとして示される外部アプリケーションに関連付けられたメッセージのアプリケーションタイプ）、そのメッセージがどの外部アプリケーションに関連付けられているか（例えば図４に示されるカスタマーサービスを提供するためのACME Customer Serviceアプリケーション）、又はいつそのメッセージが生成されつつあるかについてのタイムスタンプ（例えば図４に示される１０：２２ＡＭ）を示す情報を含み得る。ACME Customer Serviceアプリケーションのデベロッパーは、新しいチケットがACME Customer Serviceアプリケーションを介してカスタマーによって提出される時はいつでも、本開示の例示的実施形態によってメッセージＵＩを構築し得る。
【００７９】
この実施形態では、外部アプリケーションデベロッパーによって構築されたメッセージＵＩ４０１Ｂは、グループベースメッセージ４０１Ａに付着され、グループベースメッセージ４０１Ａの下で表示のためにレンダリングされる。この実施形態では、メッセージＵＩ４０１Ｂは、複数のブロック４０２−４０８を含むカスタマイズ可能なブロック構成によって規定され、ここでそれぞれのブロックは、対応するブロックタイプに関連付けられ、複数のエレメントを含み得る。
【００８０】
図４で示されるACME Customer Serviceの例については、ブロック４０２は、テキストエレメントを含むテキストブロックに関連付けられ、ここでテキストエレメントは、以下のテキストコンテンツ「New Ticket Submitted.（新しいチケットが提出されました。）」を表示するよう構成されている。ブロック４０３は、画像エレメントを含むサムネイルブロックタイプに関連付けられ、ここで画像エレメントは、消費者アカウントを特定するためのサイズが縮小された写真又は動画を表示するよう構成される。ブロック４０４は、異なるブロック群を分離するためのディバイダーエレメントを含むディバイダータイプに関連付けられている。ブロック４０５は、テキストエレメントを含むテキストブロックタイプに関連付けられ、このテキストエレメントは、当該出された注文に関連するテキストコンテンツを表示するよう構成されている。ブロック４０６は、当該出された注文に関連する画像エレメント４０６Ａ又はテキストエレメント４０６Ｂを含み得る画像ブロックタイプに関連付けられている。例えば図４の画像エレメント４０６Ａは、当該注文に関連付けられた腕時計の画像を表示するよう構成されている。テキストエレメント４０６Ｂは、当該出された注文に関連付けられた腕時計のアイテム名又は数量と関連付けられたテキストコンテンツを表示するよう構成されている。
【００８１】
ブロック４０７は、画像エレメント４０７Ａ又はテキストエレメント４０７Ｂを含み得るメタブロックタイプに関連付けられている。例えば、図４の画像エレメント４０７Ａは、新しいチケットが売りに出されているか又は売りに出されていないかを示すサインを表示するよう構成され得る。テキストエレメント４０７Ｂは、カスタマーの提出した問題が解決したかどうかを示すチケットの現在のステータスを示すテキストコンテンツを表示するよう構成され得る。ブロック４０８は、カスタマーサービススタッフによって始動されたアクションを受け付けるためのボタンエレメント４０８Ａ−４０８Ｂ、ドロップダウンメニューエレメント４０８Ｃ、又はオーバーフローエレメント４０８Ｄを含むアクションブロックタイプに関連付けられている。例えば、ボタンエレメント４０８Ａは、スタッフがこの新しいチケットを取ると判断し、「取る」ボタンをクリックした時に、クリックアクションを受け入れるよう構成され得る。ボタンエレメント４０８Ｂは、スタッフがすぐにチケットに応答すると判断し、「クイックリプライ」ボタンをクリックした時に、クリックアクションを受け入れるよう構成され得る。ドロップダウンメニューエレメント４０８Ｃ及びオーバーフローエレメント４０８Ｄは、スタッフが調べてから提出された新しいチケットに応答して他のアクションを選びたい時に、クリックアクションを受け入れるよう構成され得る。
【００８２】
上の実施形態では、外部アプリケーションデベロッパーは、本開示の例示的実施形態によるメッセージＵＩを規定するカスタマイズ可能なブロック構成を構築及び生成し得る。さらに、外部アプリケーションデベロッパーは、メッセージＵＩ内にどのブロックが構築されるべきか、及びどのエレメントがそれぞれのブロック内に配置されるべきかを決定し得る。実施形態においては、ブロックのそれぞれのエレメントは、エレメント属性を定義するためのエレメント値にさらに関連付けられ得る。実施形態においては、それぞれのエレメント属性は、グループベースコミュニケーションインターフェイス内で、どのようにエレメントが表示され得るかを定義するのに用いられる。同じブロックに関連付けられた複数のエレメント値は、メッセージＵＩ内で特定のブロックを定義するためのブロックアレイを形成するよう結合され得る。
【００８３】
図５は、本開示のある実施形態によってグループベースコミュニケーションインターフェイス内にメッセージＵＩを構築及びレンダリングをするための例示的フロー図を示す。方法５００は、クライアントデバイスにレンダリングされるべきグループベースコミュニケーションインターフェイスに関連付けられたユーザーメッセージデータを外部アプリケーションから受け取ることから始まる（５０１）。例えば、ユーザーメッセージデータは、外部アプリケーションデベロッパーが、提出された新しいチケットを外部アプリケーションを介して受け取り、クライアントデバイスにメッセージＵＩを持つメッセージを構築及びレンダリングしたい時に生成され得る。
【００８４】
方法５００は、続いて、ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定する（５０２）。メッセージＵＩトリガリングイベントは、クライアントデバイスに関連付けられている。実施形態においては、グループベースコミュニケーションサーバーが、外部アプリケーションから受け取られたユーザーメッセージデータをパースし得る。グループベースコミュニケーションサーバーは、ユーザーメッセージデータをパースすることに基づいて、クライアントデバイスに関連付けられたメッセージＵＩトリガリングイベントをさらに特定し得る。例えば、ACME Customer Serviceアプリケーションから受け取られた新しいチケット提出イベントがユーザーメッセージデータの中で特定され得て、その新しいチケット提出は、ACME Customer Serviceの従業員によって使用されるクライアントデバイスに関連付けられ得る。
【００８５】
方法５００は、続いて、ユーザーメッセージデータの中でメッセージＵＩトリガリングイベントが特定されるかを判断する（５０３）。ユーザーメッセージデータの中でメッセージＵＩトリガリングイベントが特定される状況においては、方法５００は、続いて、メッセージＵＩトリガリングイベントに基づいて、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するカスタマイズ可能なブロック構成を決定する（５０４）。実施形態においては、グループベースコミュニケーションサーバーは、メッセージＵＩを定義する複数のブロックを含むカスタマイズ可能なブロック構成を決定し得る。そのような実施形態においては、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するブロックは、メッセージＵＩトリガリングイベントに基づいて決定され得る。例えば、グループベースコミュニケーションサーバーは、ACME Customer Serviceアプリケーションによって始動された新しいチケット提出に関連付けられた、テキストブロック、画像ブロック、ディバイダーブロック、メタブロック、又はアクションブロックを含むカスタマイズ可能なブロック構成を決定し得る。
【００８６】
方法５００は、さらに続いて、カスタマイズ可能なブロックリクエストをそのカスタマイズ可能なブロック構成に関連付けられた外部アプリケーションに送信する（５０５）。例えば、グループベースコミュニケーションサーバーは、カスタマイズ可能なブロックリクエストを、カスタマイズ可能なブロック構成に関連付けられたACME Customer Serviceアプリケーションサーバーに送信し得る。
【００８７】
方法５００は、さらに続いて、カスタマイズ可能なブロックリクエストに関連付けられた外部アプリケーションからカスタマイズ可能なブロックデータを受け取る（５０６）。例えば、グループベースコミュニケーションサーバーは、ACME Customer Serviceアプリケーションサーバーからカスタマイズ可能なブロックデータを受け取り得る。そのような例では、カスタマイズ可能なブロックデータは、ACME Customer Serviceアプリケーションデベロッパーによって定義された複数のブロックアレイを含み得る。それぞれのブロックアレイは、対応するブロックに関連付けられ、複数のエレメント値を含む。それぞれのエレメント値は、そのエレメントがメッセージＵＩ内でどのようにレンダリングされるべきかを定義するエレメント属性にさらに関連付けられている。例えば、ACME Customer Serviceアプリケーションデベロッパーは、ボタン上に表示される異なる色及び異なるアクションテキストを持つボタンエレメントを有するアクションブロックを定義し得る。図４に示されるように、アクションブロック４０８は、ACME Customer Serviceアプリケーションデベロッパーの設計に基づいて、第１アクションテキスト（例えば「対応する」）及び第２アクションテキスト（例えば「すぐに返事をする」）を持つ異なるボタンエレメントを含み得る。同様に、アクションブロック４０８は、異なる色を持つボタンエレメントを含み得る。
【００８８】
最後に、方法５００は、さらに続いて、カスタマイズ可能なブロック構成とカスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内にメッセージＵＩをレンダリングする（５０７）。
【００８９】
図６は、本開示のある実施形態に従って、クライアントデバイス１０１Ａ−１０１Ｎ、グループベースコミュニケーションサーバー１０６、及び外部アプリケーションサーバー１０８によって実行される例示的メッセージＵＩ構築及びレンダリングプロセスを示す。
【００９０】
外部アプリケーションサーバー（例えば図１に示される外部アプリケーションサーバー１０８）は、ユーザーメッセージデータをグループベースコミュニケーションサーバー（例えば図１に示されるグループベースコミュニケーションサーバー１０６）に送信する（６０１）よう構成され得る。グループベースコミュニケーションサーバー１０６は、ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定し得る（６０２）。その後、グループベースコミュニケーションサーバー１０６は、ユーザーメッセージデータの中でメッセージＵＩトリガリングイベントが特定されるかを判断し得る（６０３）。メッセージＵＩトリガリングイベントがユーザーメッセージデータの中で特定される状況においては、グループベースコミュニケーションサーバー１０６は、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義する、カスタマイズ可能なブロック構成をさらに決定し得る（６０４）。実施形態においては、カスタマイズ可能なブロック構成は、複数のブロックを含み得て、それぞれのブロックは、複数のエレメントを含み得る。グループベースコミュニケーションサーバー１０６は、カスタマイズ可能なブロックリクエストを外部アプリケーションサーバー（例えば図１に示される外部アプリケーションサーバー１０８）に送信するよう構成され得る（６０５）。実施形態においては、カスタマイズ可能なブロックリクエストは、複数のブロックタイプを含み得て、それぞれのブロックタイプは、カスタマイズ可能なブロック構成内の対応するブロックに関連付けられる。外部アプリケーションサーバー１０８は、カスタマイズ可能なブロックリクエストに応答してカスタマイズ可能なブロックデータを送信するよう構成され得る（６０６）。実施形態においては、カスタマイズ可能なブロックデータは、複数のブロックアレイを含み得て、それぞれのブロックは、対応するブロックタイプに関連付けられ、複数のエレメント値を含む。実施形態においては、それぞれのエレメント値は、グループベースコミュニケーションインターフェイス内でエレメントがどのようにレンダリングされるかを示すエレメント属性に関連付けられる。グループベースコミュニケーションサーバー１０６は、クライアントデバイス（例えば図１で示されるクライアントデバイス１０１Ａ−１０１Ｎ）上で、カスタマイズ可能なブロック構成と、カスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内にメッセージＵＩをレンダリングし得る。
【００９１】
［追加の実装の詳細］
例示的処理システムは図２において記載されてきたが、ここで記載されている本主題及び機能的動作の実装は、本明細書において開示された構造及びそれらの構造的等価物を含む、他のタイプのデジタル電子回路において、又はコンピュータソフトウェア、ファームウェア、又はハードウェアにおいて、又はそれらの１つ以上の組合せにおいて、実現化され得る。
【００９２】
ここで記載された主題の実施形態及び動作は、本明細書において開示された構造及びそれらの構造的等価物を含む、デジタル電子回路において、又はコンピュータソフトウェア、ファームウェア、又はハードウェアにおいて、又はそれらの１つ以上の組合せにおいて、実現化され得る。ここで記載された主題の実施形態は、情報／データ処理装置による実行のために、又は情報／データ処理装置の動作を制御するために、コンピュータ記憶媒体上にエンコードされた、１つ以上のコンピュータプログラム、すなわちコンピュータプログラム命令の１つ以上のモジュールとして実現化され得る。代替として、又は追加として、プログラム命令は、人工的に生成され搬送される信号、例えば機械生成された電気的、光学的、又は電磁的信号の上にエンコードされ得て、そのような信号は、情報／データ処理装置による実行のために適切な受信機装置への送信のために情報／データをエンコードするために生成されている。コンピュータ記憶媒体は、コンピュータで読み取り可能な記憶装置、コンピュータで読み取り可能な記憶基板、ランダム又はシリアルアクセスメモリアレイ又はデバイス、又はそれらの１つ以上の組合せであり得るか、又はそれらに含まれ得る。さらに、コンピュータ記憶媒体は、搬送される信号ではない一方で、コンピュータ記憶媒体は、人工的に生成された搬送される信号中にエンコードされたコンピュータプログラム命令のソース又は宛先であり得る。コンピュータ記憶媒体は、１つ以上の別個の物理的要素又は媒体（例えば複数のＣＤ、ディスク、又は他の記憶装置）であり得て、又はそれに含まれ得る。
【００９３】
ここで記載された動作は、１つ以上のコンピュータ読み取り可能な記憶装置上に記憶された、又は他のソースから受信された情報／データに対して、情報／データ処理装置によって実行される動作として実現化され得る。
【００９４】
「データ処理装置」という語は、例示として、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、又は複数のプロセッサ、又は前記の組合せを含む、データを処理する全ての種類の装置、デバイス、及び機械を包含する。装置は、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）のような専用の論理回路を含み得る。この装置は、ハードウェアに加えて、対象となるコンピュータプログラムのための実行環境を作るコード、例えば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、又はこれらの１つ以上の組合せも含み得る。この装置及び実行環境は、ウェブサービス、分散化コンピューティング、及びグリッドコンピューティングインフラストラクチャのような、さまざまな異なるコンピューティングモデルインフラストラクチャを実現し得る。
【００９５】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られている）は、コンパイラ型言語又はインタープリタ型言語、宣言型言語又は手続き型言語、を含む任意の形態のプログラミング言語で記述され得て、それは、スタンドアローンプログラムとして、又はモジュール、要素、サブルーチン、オブジェクト、又はコンピューティング環境における使用に適した他のユニットとしてのものを含む任意の形態に展開され得る。コンピュータプログラムは、そうである必要はないが、ファイルシステム中のファイルに対応してもよい。プログラムは、他のプログラム又は情報／データを保持するファイルの一部の中に（例えば、マークアップ言語文書内に記憶された１つ以上のスクリプト）、当該プログラムの専用の単一のファイルの中に、又は複数の連携されたファイルの中に（例えば、１つ以上のモジュール、サブプログラム、又はコードの一部を記憶するファイル群）記憶され得る。コンピュータプログラムは、１つのコンピュータ上で、又は１つのサイトに位置する又は複数のサイトにわたって分散化され通信ネットワークによって相互接続されている複数のコンピュータ群上で、実行されるように展開され得る。
【００９６】
ここで記載されている処理及びロジックフローは、入力情報／データに対して操作を行い、出力を生成することによって、アクションを実行するために、１つ以上のコンピュータプログラムを実行する１つ以上のプログラム可能なプロセッサによって実行され得る。コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び特定用途向けの両方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ又はそれら両方から命令及び情報／データを受け取る。コンピュータの本質的な要素は、命令に従ってアクションを実行するプロセッサ、及び命令及びデータを記憶する１つ以上のメモリデバイスである。一般に、コンピュータは、情報／データをそれから受け取る、又は情報／データをそれに転送する、又はそれら両方を行う、データを記憶する１つ以上のマスストレージデバイス、例えば、磁気的、磁気光学的ディスク、又は光学ディスクも含むか、又はそれに動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及び情報／データを記憶するのに適するデバイスは、例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスク又は取り外し可能なディスク、磁気光学ディスク、及びＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む、全ての形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、特定用途向け論理回路によって補足され得て、又は、特定用途向け論理回路の中に組み込まれ得る。
【００９７】
ユーザーとの相互作用を提供するために、ここで記載された主題の実施形態は、情報／データをユーザーに表示するディスプレイデバイス、例えばＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタ及びキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上で実現化され得て、キーボード及びポインティングデバイスは、ユーザーがコンピュータに入力を提供し得る。ユーザーとの相互作用を提供するために他の種類のデバイスも用いられ得て、例えば、ユーザーに提供されるフィードバックは、任意の形態の感覚的フィードバック、例えば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバックであり得て、ユーザーからの入力は、音響、音声、又は触覚の入力を含む任意の形態で受け取られ得る。加えて、コンピュータは、ユーザーによって用いられるデバイスへ文書を送り、及びそのようなデバイスから文書を受け取ることによって、ユーザーと相互作用をし得る。例えば、ウェブブラウザから受け取られた要求に応答して、ウェブページをユーザーのクライアントデバイス上のウェブブラウザに送信することによって、ユーザーと相互作用をし得る。
【００９８】
ここで記載された主題の実施形態は、バックエンドのコンポーネントを、例えば情報／データサーバとして含む、又はミドルウェアコンポーネントを含むサーバー、例えばアプリケーションサーバー、又はフロントエンドコンポーネント、例えばそれによってここで開示された主題の実現化によってユーザーが相互作用できるグラフィカルユーザインターフェイス又はウェブブラウザを有するクライアントコンピュータを含む、又は１つ以上のそのようなバックエンド、ミドルウェア、又はフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実現され得る。システムのコンポーネントは、デジタル情報／データ通信の任意の形態又は媒体、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、インターネットワーク（例えばインターネット）、及びピアツーピアネットワーク（例えばアドホックピアツーピアネットワーク）が含まれる。
【００９９】
コンピューティングシステムは、クライアント及びサーバーを含み得る。クライアント及びサーバーは、一般に互いに離れており、典型的には通信ネットワークを通して相互作用する。クライアント及びサーバーの関係は、それぞれのコンピュータ上で走るコンピュータプログラムによって、及び互いにクライアント・サーバ関係を有することによって、生じる。ある実施形態では、サーバーは、情報／データ（例えばＨＴＭＬページ）をクライアントデバイスに送信する（例えばクライアントデバイスで情報／データを表示し、かつユーザーの相互作用からユーザー入力を受け取るために）。クライアントデバイスにおいて生成された情報／データ（例えばユーザの相互作用の結果）は、クライアントデバイスからサーバーにおいて受け取られ得る。
【０１００】
本明細書は、多くの具体的な実現例についての詳細を含むが、これらは、任意の開示内容の、又はクレームされ得る内容の範囲に対する限定として解釈されるべきではなく、むしろ特定の開示内容の特定の実施形態に特有の特徴についての記載として解釈されるべきである。別個の実施形態群の文脈においてここで記載されているある特徴群は、単一の実施形態において組み合わせられて実現され得る。逆に、単一の実施形態の文脈で記載されているさまざまな特徴は、複数の実施形態において別個に、又は任意の適切なサブコンビネーションにおいて実現されてもよい。さらに、特徴は、ある組合せで機能するとして上では記載され、出願当初においてはそのようにクレームされてさえいるが、クレームされた組合せからの１つ以上の特徴は、場合によっては、その組合せから削除され得て、クレームされた組合せは、サブコンビネーション又はサブコンビネーションの変化形に関するものであり得る。
【０１０１】
同様に、操作は、特定の順序で図面において示されているが、これは、所望の結果を達成するために、そのような操作が示された特定の順序で、又は順次的なやり方で実行されること、又は全ての図示された操作が実行されることを要求するものとしては理解されるべきではない。ある状況においては、マルチタスキング及びパラレル処理が優位性を持ち得る。さらに上で記載された実施形態におけるさまざまなシステムコンポーネントの分離は、そのような分離を全ての実施形態において要求するものとしては理解されるべきではなく、記載されたプログラムコンポーネント及びシステムは、一般に、単一のソフトウェアプロダクトに互いに統合され、又は複数のソフトウェアプロダクトにパッケージングされ得ることが理解されるべきである。
【０１０２】
よって、本主題の特定の実施形態が記載されてきた。他の実施形態も以下の請求項の範囲内である。場合によっては、請求項中で記載されたアクションは、異なる順序で実行され得るが、依然として、所望の結果を達成し得る。加えて、添付の図で示されたプロセスは、所望の結果を得るためには、示された特定の順序、又は順次的なやり方であることを必ずしも要求しない。ある実施形態では、マルチタスキング及びパラレル処理が優位性を用い得る。
【０１０３】
結論
多くの改変及び他の実施形態には、本開示が関連する技術における当業者なら、前述の記載及び関連する図面において提示された教示を利用し、想到することができよう。したがって、本開示は、開示された特定の実施形態に限定されるべきではなく、改変及び他の実施形態は、添付の特許請求の範囲の範囲内に含まれるよう意図されていると理解されるべきである。ここでは特定の語が採用されているが、それらは一般的な叙述的な意味で用いられているのに過ぎず、限定を目的としたものではない。
【図１】
2021518618.tif 000003
【図２】
2021518618.tif 000004
【図３】
2021518618.tif 000005
【図４】
2021518618.tif 000006
【図５】
2021518618.tif 000007
【図６】
2021518618.tif 000008
【手続補正書】
【提出日】令和2年11月26日(2020.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
グループベースコミュニケーションシステムのグループベースコミュニケーションインターフェイス内でメッセージユーザーインターフェイス（ＵＩ）を構築及びレンダリングするグループベースコミュニケーションサーバーシステムであって、前記サーバーシステムは、少なくとも１つのプロセッサと、コンピュータプログラムコードを含む少なくとも１つのメモリとを備え、前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサによって、前記サーバーシステムに
クライアントユーザーにレンダリングされるべき前記グループベースコミュニケーションインターフェイスに関連付けられたユーザーメッセージデータを外部アプリケーションから受け取ること、
前記ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定することであって、前記メッセージＵＩトリガリングイベントは、前記クライアントユーザーに関連付けられている、メッセージＵＩトリガリングイベントを特定すること、
前記ユーザーメッセージデータの中で前記メッセージＵＩトリガリングイベントが特定される状況においては、
前記メッセージＵＩトリガリングイベントに基づいて、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するカスタマイズ可能なブロック構成を決定すること、
前記カスタマイズ可能なブロック構成に関連付けられた前記外部アプリケーションに、カスタマイズ可能なブロックリクエストを送信すること、
前記カスタマイズ可能なブロックリクエストに関連付けられた外部アプリケーションからカスタマイズ可能なブロックデータを受け取ること、及び
前記カスタマイズ可能なブロック構成と、カスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内で前記メッセージＵＩをレンダリングするためのデータを前記クライアントユーザーに送信すること
をさせるよう構成されるグループベースコミュニケーションサーバーシステム。
【請求項２】
前記カスタマイズ可能なブロック構成は、複数のブロックを含み、それぞれのブロックは、複数のエレメントを含む
請求項１に記載のサーバーシステム。
【請求項３】
前記カスタマイズ可能なブロックリクエストは、複数のブロックタイプを含み、それぞれのブロックタイプは、前記カスタマイズ可能なブロック構成内の対応するブロックに関連付けられている
請求項２に記載のサーバーシステム。
【請求項４】
前記外部アプリケーションから受け取られた前記カスタマイズ可能なブロックデータは、複数のブロックアレイを含み、
それぞれのブロックアレイは、対応するブロックタイプに関連付けられ、複数のエレメント値を含み、
それぞれのエレメント値は、エレメント属性に関連付けられている
請求項３に記載のサーバーシステム。
【請求項５】
前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングするためのデータは、前記カスタマイズ可能なブロック構成及び前記複数のブロックアレイに基づいて前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングするためのデータを含む
請求項４に記載のサーバーシステム。
【請求項６】
前記ブロックタイプは、テキストブロックタイプ、サムネイルブロックタイプ、ディバイダーブロックタイプ、画像ブロックタイプ、ビデオブロックタイプ、メタブロックタイプ、アクションブロックタイプ、ポルブロックタイプ、ファイルブロックタイプ、又はコールブロックタイプである
請求項３に記載のサーバーシステム。
【請求項７】
前記テキストブロックタイプは、テキストエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項８】
前記サムネイルブロックタイプは、画像エレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項９】
前記ディバイダーブロックタイプは、ディバイダーエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１０】
前記画像ブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１１】
前記ビデオブロックタイプは、ビデオエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１２】
前記メタブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１３】
前記アクションブロックタイプは、ボタンエレメント、ドロップダウンメニューエレメント、又はオーバーフローメニューエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１４】
前記ポルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１５】
前記ファイルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１６】
前記コールブロックタイプは、ボタンエレメントに関連付けられている
請求項６に記載のサーバーシステム。
【請求項１７】
前記ボタンエレメント、前記ドロップダウンメニューエレメント、及び前記オーバーフローメニューエレメントのうちの少なくとも１つは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項１３に記載のサーバーシステム。
【請求項１８】
前記ボタンエレメントは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項１６に記載のサーバーシステム。
【請求項１９】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項８に記載のサーバーシステム。
【請求項２０】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１０に記載のサーバーシステム。
【請求項２１】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１２に記載のサーバーシステム。
【請求項２２】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１４に記載のサーバーシステム。
【請求項２３】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項１５に記載のサーバーシステム。
【請求項２４】
グループベースコミュニケーションサーバーシステムのグループベースコミュニケーションインターフェイス内でメッセージユーザーインターフェイス（ＵＩ）を構築及びレンダリングする方法であって、前記方法は、前記サーバーシステムにおいて、
クライアントユーザーにレンダリングされるべき前記グループベースコミュニケーションインターフェイスに関連付けられたユーザーメッセージデータを外部アプリケーションから受け取ること、
前記ユーザーメッセージデータをパースすることによって、メッセージＵＩトリガリングイベントを特定することであって、前記メッセージＵＩトリガリングイベントは、前記クライアントユーザーに関連付けられている、メッセージＵＩトリガリングイベントを特定すること、
前記ユーザーメッセージデータの中で前記メッセージＵＩトリガリングイベントが特定される状況においては、
前記メッセージＵＩトリガリングイベントに基づいて、グループベースコミュニケーションインターフェイス内でレンダリングされるメッセージＵＩを定義するカスタマイズ可能なブロック構成を決定すること、
前記カスタマイズ可能なブロック構成に関連付けられた前記外部アプリケーションに、カスタマイズ可能なブロックリクエストを送信すること、
前記カスタマイズ可能なブロックリクエストに関連付けられた外部アプリケーションからカスタマイズ可能なブロックデータを受け取ること、及び
前記カスタマイズ可能なブロック構成と、カスタマイズ可能なブロックデータとに基づいて、グループベースコミュニケーションインターフェイス内で前記メッセージＵＩをレンダリングするためのデータを前記クライアントユーザーに送信すること
を含む方法。
【請求項２５】
前記カスタマイズ可能なブロック構成は、複数のブロックを含み、それぞれのブロックは、複数のエレメントを含む
請求項２４に記載の方法。
【請求項２６】
前記カスタマイズ可能なブロックリクエストは、複数のブロックタイプを含み、それぞれのブロックタイプは、前記カスタマイズ可能なブロック構成内の対応するブロックに関連付けられている
請求項２５に記載の方法。
【請求項２７】
前記外部アプリケーションから受け取られた前記カスタマイズ可能なブロックデータは、複数のブロックアレイを含み、
それぞれのブロックアレイは、対応するブロックタイプに関連付けられ、複数のエレメント値を含み、
それぞれのエレメント値は、エレメント属性に関連付けられている
請求項２６に記載の方法。
【請求項２８】
前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングするためのデータを送信することは、前記カスタマイズ可能なブロック構成及び前記複数のブロックアレイに基づいて前記グループベースコミュニケーションインターフェイス内に前記メッセージＵＩをレンダリングするためのデータを送信することを含む
請求項２７に記載の方法。
【請求項２９】
前記ブロックタイプは、テキストブロックタイプ、サムネイルブロックタイプ、ディバイダーブロックタイプ、画像ブロックタイプ、ビデオブロックタイプ、メタブロックタイプ、アクションブロックタイプ、ポルブロックタイプ、ファイルブロックタイプ、又はコールブロックタイプである
請求項２６に記載の方法。
【請求項３０】
前記テキストブロックタイプは、テキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３１】
前記サムネイルブロックタイプは、画像エレメントに関連付けられている
請求項２９に記載の方法。
【請求項３２】
前記ディバイダーブロックタイプは、ディバイダーエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３３】
前記画像ブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３４】
前記ビデオブロックタイプは、ビデオエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３５】
前記メタブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３６】
前記アクションブロックタイプは、ボタンエレメント、ドロップダウンメニューエレメント、又はオーバーフローメニューエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３７】
前記ポルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３８】
前記ファイルブロックタイプは、画像エレメント又はテキストエレメントに関連付けられている
請求項２９に記載の方法。
【請求項３９】
前記コールブロックタイプは、ボタンエレメントに関連付けられている
請求項２９に記載の方法。
【請求項４０】
前記ボタンエレメント、前記ドロップダウンメニューエレメント、及び前記オーバーフローメニューエレメントのうちの少なくとも１つは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項３６に記載の方法。
【請求項４１】
前記ボタンエレメントは、色属性又はアクションテキスト属性を含む複数のアクションエレメント属性に関連付けられている
請求項３９に記載の方法。
【請求項４２】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３１に記載の方法。
【請求項４３】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３３に記載の方法。
【請求項４４】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３５に記載の方法。
【請求項４５】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３７に記載の方法。
【請求項４６】
前記画像エレメントは、サイズ属性を含む複数の画像エレメント属性に関連付けられている
請求項３８に記載の方法。
【国際調査報告】
2021518618.tif 000009