【文献】
ホーカー マーク,ソーシャルアプリ・プログラミング 初版,ソフトバンククリエイティブ株式会社,2011年 2月 7日,第1版,第127-136頁
(58)【調査した分野】(Int.Cl.,DB名)
前記コンテンツは、文章、ビデオ、オーディオ、画像、及び、投票又は質問に対する応答からなるグループの中の少なくとも1つである、請求項1に記載のコンピュータで実装された方法。
前記コンテンツ解析部に接続された1つの分析エンジンであって、前記ユーザに関連付けられた1つのユーザプロフィールからユーザ情報を取得し、前記ユーザの関心事項を含む分析を生成するために、前記コンテンツ及び前記ユーザ情報を分析し、且つ、前記第1ウェブサイトの開発者に前記分析を伝送するための前記分析エンジンを更に備える、請求項12に記載のシステム。
前記分析エンジンに接続された広告エンジンであって、前記ユーザの関心事項に基づいて、前記第1ウェブサイトのために1つの広告を選択するたけの前記広告エンジンを更に備える、請求項14に記載のシステム。
前記分析エンジンに接続されたニュースレターエンジンであって、前記ユーザがパブリックメンバーであるかどうかを判定するための前記ニュースレターエンジンを更に備える、請求項14に記載のシステム。
前記コンテンツ解析部に接続されたプロフィールエンジンであって、前記ユーザがサインインして前記コンテンツを投稿するための1つのプロフィールを生成する前記プロフィールエンジンを更に備える、請求項12に記載のシステム。
前記シンジケーションモジュールに接続された承認モジュールであって、前記ガジェットを或る第3ウェブサイトに埋め込むために、該第3ウェブサイトの開発者からのリクエストを承認するための前記承認モジュールを更に備える、請求項12に記載のシステム。
前記承認モジュールに接続された識別情報生成部であって、前記第3ウェブサイト用の1つのウェブサイト識別子を生成し、前記第3ウェブサイトのウェブサイト識別子を1つのインデックスに追加するための前記識別情報生成部を更に備え、該インデックスが、前記ガジェットの識別子、前記第1ウェブサイトのウェブサイト識別子及び前記第2ウェブサイトのウェブサイト識別子を含む、請求項19に記載のシステム。
【発明を実施するための形態】
【0023】
異なる複数のウェブサイトに埋め込まれたガジェットにより受信されたコンテンツをシンジケートするためのシステム及び方法。以下の説明においては、説明の目的で、完全な理解を提供するために、多くの具体的な詳細例が説明される。しかし、この技術分野の熟練者にとっては、本発明 は、これらの具体的な詳細例以外に、実施され得ることが明白であろう。別の例においては、説明が不明瞭になることを回避するために、構造及び装置がブロッ ク図形式で示される。例えば、以下の実施例においては、本発明はユーザインターフェース及び特定のハードウェアに関連して説明される。しかし、その説明 は、データ及び命令を受信しうる如何なるタイプのコンピューティング装置及びサービスを提供する如何なる周辺装置に対しても適用する。
【0024】
本明細書における「一実施例」又は「或る実施例」の言及は、該実施例に関連して述べた特定の特徴、構造若しくは特性が少なくとも一つの実施例に含まれることを意味する。本明細書中の様々な箇所での「一実施例において」という表現は、必ずしもすべて同一の実施例を指しているわけではない。
【0025】
以下述べる詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットについての処理の抽象的表現及びアルゴリズムに関して提示される。これらのアルゴリズム記述及び表現は、データ処理技術における熟練者に対して動作の実体を最も効果的に伝えるために、該データ処理技術における熟練者によって使 用される手段である。一つのアルゴリズムは、個々では、そして一般的には、所望の結果に導く一連の自己矛盾のない手順であると考えられる。この手順は、それらが要求している物理量の物理的操作である。普通には、必須ではないけれども、これらの物理量は、記憶、伝送、結合、比較等その他の操作が可能な電気若 しくは磁気の形態をとる。これらの信号をビット、値、要素、シンボル、キャラクター、条件、数若しくはその他として言及することは、第1に通例であるという理由で、時に便利であるとが分かっている。
【0026】
しかし、これらのすべて及び類似の用語が適当な物理量に関連付けられるべきであり、かつ、これらの量に適用された単なる便利なラベルであるにすぎない、 ということを心に留めておくべきである。以下の説明から明らかなように相反する格別の説明がない限り、明細書全体を通じて、コンピュータシステムのレジス タ及びメモリ内で物理量(電子的な量)として表されたデータを、該コンピュータシステムのメモリ又はレジスタ又はその他の情報記憶装置、変換若しくは表示 装置内における物理量として同様に表されたその他のデータへと変換する及び操作する、といったような、「処理する」、「計算する(コンピューティング)」、「演算する」、「決定する」、「表示する」などの用語その他類似の用語を使用した説明は、コンピュータシステムあるいは同様な電子計算(コンピューティング)装置の動作及び処理を指している。
【0027】
本説明は、また、ここで動作を実行するための装置に関連している。この装置は、要求された目的のために特別に構築されていもよく、若しくは、コンピュー タ内に格納されたコンピュータプログラムによって活性化も他紙句再構築された汎用コンピュータシステムからなっていてもよい。そのようなコンピュータプロ グラムは、コンピュータ読み取り可能な記憶媒体内に記憶されていてよいが、それは、フレキシブル磁気ディスク、光ディスク、CD−ROM、磁気ディスクを 含む任意のタイプのディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、光カード、不揮発メモリを備えたUSBキーを含むフラッシュメモリ、若しくは電子的命令を記憶するのに適した任意のタイプのメディアであって、それぞれがコンピュータ システムバスに結合されるもの、に限定されるものではない。
【0028】
本説明は、全部がハードウェアからなる実施例、全部がソフトウェアからなる実施例、若しくはハードウェアとソフトウェアの両方からなる実施例、を含む。 好ましい実施例においては、ソフトウェアで実現される説明をしているが、それはファームウェア、常駐ソフトウェア、マイクロコードその他のものに限らない。
【0029】
更に、本説明は、コンピュータ又は任意の命令実行システムによって若しくはそれに関連して使用するためのプログラムコードを提供するコンピュータ使用可 能な又はコンピュータ読み取り可能な媒体からアクセス可能なコンピュータプログラム製品を含む。この目的のために、コンピュータ使用可能な又はコンピュー タ読み取り可能な媒体は、命令実行システム、装置又はデバイスによって若しくはそれに関連して使用するための該プログラムを内容に含み、格納し、通信し、伝播し、若しくは移送することができる任意の装置であってよい。
【0030】
プログラムコードを格納し且つ/又は実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接又は非直接的に結合された少なくと も1つのプロセッサを含むであろう。このメモリ要素は、該プログラムコードの実際の動作中に使用されるローカルメモリ、大容量記憶装置、キャッシュメモリ を含んでいてよく、該キャッシュメモリは、実行中に大容量記憶装置からコードを取り出さねばならない回数を減らすために、少なくともいくつかのプログラムコードを一時的に記憶する。
【0031】
入力/出力又はI/O装置(キーボード、ディスプレイ、ポインティングデバイス等を含むがそれに限らない)は、直接的に、若しくは中間のI/Oコントローラを介して、該システムに結合され得る。
【0032】
ネットワークアダプタが該システムに結合されていてもよく、該データ処理システムが中間のプライベート又は公的ネットワークを介して他のデータ処理システム又はリモートプリンタ又は記憶装置と結合され得るようにする。モデム、ケーブルモデム及びイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタの一例である。
【0033】
最後に、本書で提示されるアルゴリズムとディスプレイは、如何なる特定のコンピュータ又は他の装置と固有に関係付けられるものではない。様々な汎用シ ステムが、本書での教示に従ってプログラムと共に使用され得るが、若しくは、必要な方法手順を実行するために更に特化された装置を構成するのが便利である と判明するかもしれない。様々なこれらのシステムにとって必要とされる構成が、以下述べる説明から明らかにされるであろう。加えて、本書は、何らかの特定 のプログラム言語を参照して説明されるものではない。以下述べる本願明細書の教示を実装するために様々なプログラム言語が使用され得ると理解されたい。
システム概観
【0034】
図1は、一実施例に従う、異なる複数のウェブサイトに埋め込まれたガジェットにより受信されたコンテンツをシンジケート(syndicate、配信)するためのシステム100を示すブロック図である。図示されたシステム100は、複数のユーザ125a、125nによりアクセスされる複数のユーザ装置115a、115n、1つのソーシャルネットワークサーバ101、1つのウェブサイトサーバ160及び1つのサードパーティーサーバ107を含む。
図1及び残りの複数図において、例えば“115a”など、参照番号の後ろに続く文字は、その特定の参照番号を持つ要素への参照である。例えば“115”など、本分中で、後続の文字を持たない参照番号は、その参照番号に関係する要素に関する何れかの又は全ての実例への一般的な参照である。図示の実施形態において、これら構成要素は、1つのネットワーク105経由で通信可能に接続されている。
【0035】
図1における複数のユーザ装置115a、115nは、例として用いられている。2つのユーザ装置のみが描かれているが、任意の数のユーザ装置が任意の数のユーザに利用可能であることを、当業者は、理解するだろう。更に、1つのネットワー105のみが複数のユーザ装置115a、115n、1つのソーシャルネットワークサーバ101、1つのウェブサイトサーバ160及びサードパーティーサーバ107に接続されているが、実際には、任意の数のネットワーク105が前記複数の構成要素に接続され得る。更に、1つのサードパーティーサーバ107及び1つのソーシャルネットワークサーバ101のみが示されているが、システム100は、1以上のサードパーティーサーバ107及び1以上のソーシャルネットワークサーバ101を含み得る。
【0036】
ユーザ装置115a、115nは、メモリとプロセッサを含む任意のコンピューティング装置である。例えば、ユーザ装置115a、115nは、パーソナルコンピュータ、ラップトップ、タブレット、若しくは、携帯電話、携帯情報端末又はスマートフォンなどの携帯機器を含む。一実施形態において、ユーザ装置115aは、ウェブブラウザ120を含む。前記ウェブブラウザ120は、そのユーザ装置のプロセッサのメモリに記憶され、プロセッサに実行されるコード及びルーチンである。例えば、ブラウザ120は、ウェブサイトサーバ160により提供されたウェブサイトを読み込むブラウザアプリケーションである。ユーザ125aは、信号線110経由でユーザ装置115aをアクセスする。ユーザ装置115aは信号線108経由でネットワーク105に接続される。
【0037】
一実施形態において、会話アプリケーション103aが、1つのウェブサイトサーバ160に保存されており、該ウェブサイトサーバ160は信号線152経由でネットワーク105に接続される。ウェブサイトサーバ160は、また、1つのウェブサイトのためのコンテンツを生成するウェブ開発アプリケーション165を含む。各ウェブサイトは、別個のウェブサイトサーバ160に保存される。各ウェブサイトサーバ160が1つの会話アプリケーション103aを持つこと、又は、複数のウェブサイトサーバ160のうちの幾つかのみが会話アプリケーション103aを持つことを、当業者は理解するだろう。
【0038】
会話アプリケーション103aは、例えば、1つのオンラインコミュニティを含む1つのウェブサイトに表示される、セルフコンテインド型(self contained;自己充足式)ソフトウェアを持つ1つのガジェットを生成する。前記ガジェットは、ウェブ開発アプリケーション165によって生成されたウェブサイト上に表示される。会話アプリケーション103aはウェブ開発アプリケーション165とは独立したアプリケーションとして描かれているが、一実施形態において、会話アプリケーション103aはウェブ開発アプリケーション165の構成部分である。
【0039】
別の実施形態において、会話アプリケーション103bは、1つのサードパーティーサーバ107に保存される。サードパーティーサーバ107は、信号線106経由でネットワーク105に接続される。会話アプリケーション103bは、ウェブページへの組み込みにガジェットを用意するべく、ネットワーク105経由でウェブ開発アプリケーション165と通信する。更に別の実施形態において、サードパーティーサーバ107で使用可能な会話アプリケーション103bは、ウェブサイトサーバ160の例に描かれているように別個のアプリケーションを持つことの代わりに、ウェブコンテンツを生成するためのソフトウェアも含む。会話アプリケーション103が任意の組み合わせの複数の装置及び複数のサーバに保存できることを、当業者は理解するだろう。
【0040】
ソーシャルネットワークサーバ101は、信号線104経由で前記ネットワーク105に接続されたものであり、1つのソーシャルネットワークアプリケーション109を含む。1つのソーシャルネットワークはどのような種類のソーシャル構造でもよく、それは、例えばOrkutなど、1つの共通点により複数のユーザが接続されるものである。前記共通点は、交友関係、家族、仕事、関心事項などを含む。前記共通点は、例えばシステム100内に含まれるもののような、1又は複数のソーシャルネットワーキングシステムによって供給されるものであり、明示的に定義された関係及び他の複数のオンラインユーザとのつながり(social connection)によって暗示された関係を含む。
【0041】
ネットワーク105は、従来型の、有線又は無線ネットワークであり、例えばスター型構成、トークリング型構成又は当業者に周知のその他のネットワーク構造など、任意の数のネットワーク構造を持っていてよい。更に、ネットワーク105は、ローカルイエリアネットワーク(LAN)、広域ネットワーク(WAN)(例えば、インターネット)、及び/又は、その他任意の、複数の装置が通信できる相互接続データ経路を含んでよい。更に別の実施形態において、ネットワーク105は、ピアツーピアネットワークであってよい。ネットワーク105は、また、種々の異なる通信プロトコルでデータを送信するための遠隔通信ネットワークの一部分に接続されるか、又は、該一部分を含んでよい。更に別の実施形態において、ネットワーク105は、例えばショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト・トランスファー・プロトコル(HTTP)、ダイレクトデータコネクション、WAP(Wireless Application Protocol;ワイヤレス アプリケーション プロトコル)、電子メールなどを経由して、データを送信及び受信するための、ブルートゥース通信ネットワーク、又は、携帯電話通信ネットワークを含む。
【0042】
一実施形態において、会話アプリケーション103は、第2ウェブサイトの開発者が、最初は第1ウェブサイトに埋め込まれたガジェットを、該第2ウェブサイトに埋め込むことができるようにするものである。会話アプリケーション103は、複数のユーザによって投稿されたコンテンツを、前記第2ウェブサイトに埋め込まれた前記ガジェットから受信する。そして、会話アプリケーション103は、前記受信したコンテンツを、前記第1ウェブサイトに埋め込まれた前記ガジェットにシンジケート(配信)する。シンジケートすること(syndication)は、前記第2ウェブサイトに表示された前記コンテンツを、前記第1ウェブサイトに表示用として伝送することを含む。シンジケートすることにより、埋め込まれたガジェットを有する複数のウェブサイトは、同じコンテンツを表示できる。したがって、或るユーザが或る第2ウェブサイトにコメントし、それから前記第1ウェブサイトを訪問したとき、前記ユーザは、同じコンテンツを閲覧することを期待し、他の複数のガジェットユーザとの会話をシームレスに続けることができる。
【0043】
別の実施形態において、会話アプリケーション103は、或るウェブサイトに埋め込まれたガジェットにより受信したコンテンツを分析し、そして、前記分析に基づいて、例えば前記複数のユースレターや、前記ウェブサイト向けの複数の広告などを、供給する。当業者は、前記ガジェットが任意の数のウェブサイトに埋め込まれ得ること、及び、何れのウェブサイトで受信されたコンテンツも、前記ガジェットを含む全てのウェブサイト内にシンジケートされ得ることを理解するだろう。
【0044】
前記ガジェットは、ソフトウェア及び複数のルーチンであり、1つのプロセッサによって実行されたときに、或るウェブサイトに埋め込まれた1つのサービス(すなわちウェブコンテンツ)を供給する。一実施形態において、前記ガジェットは、起動される独立したアプリケーションを必要とすることなく、1つのサービスを供給するものであり、しかし、その代わりに、複数のガジェットを管理する1つの環境内で実行される。一実施形態において、前記ウェブサイトは、サードパーティーサーバ107に登録され、前記サードパーティーサーバ107は、前記ガジェットを含む異なる複数のサービスへのアクセスを、該ウェブサイトに提供する。例えば、前記ウェブサイトは、Google(登録商標) Friend Connectに登録され、Google(登録商標) Friend Connectは、ブラグインサービスへのアクセスを、該ウェブサイトに提供する。
会話アプリケーション103
【0045】
次に
図2を参照すると、会話アプリケーション103が更に詳細に示されている。
図2は、コンピューティング装置200のブロック図であり、コンピューティング装置200は、前記会話アプリケーション103、1つのメモリ237、1つのプロセッサ235及び1つの通信ユニット240を含み、それらがバス220に接続される。一実施形態において、コンピューティング装置200は、1つのウェブサイトサーバ160である。別の実施形態において、コンピューティング装置200は、1つのサードパーティーサーバ107である。
【0046】
プロセッサ235は、1つの演算論理装置、1つのマイクロプロセッサ、1つの汎用コントローラ、又は、複数の計算を実行して、1つの表示装置に電子表示信号を供給するよう配列されたその他幾つかのプロッセサを具備する。前記プロセッサ235は、他の構成要素と通信するために、信号236経由でバス220に接続される。プロセッサ235は、データ信号を処理し、且つ、複合命令セットコンピュータ(CISC)構造、縮小命令セットコンピュータ(RISC)構造、又は、複数命令セットの組み合わせを実施する構造を備えてよい。また、1つのプロセッサが
図2に示されていているが、複数のオロセッサが含まれてよい。その処理能力は、画像の複数の表示、及び、複数の画像の取り込み及び伝送をサポートすることに限られていてよい。前記処理能力は、種々のタイプの特徴抽出及びサンプリングを含むより複雑なタスクを実行するのに十分であってもよい。その他の複数のプロセッサ、複数のオペレーティングシステム、複数のセンサ、複数のディスプレイ及び複数の物理的機器構成が可能であることは、当業者に明らかである。
【0047】
メモリ237は、プロセッサ235により実行される複数の命令及び/又はデータを記憶する。メモリ237は、他の構成要素と通信するために、信号線238経由でバス220に接続される。前記命令及び/又はデータは、本明細書に記載される何れかの及び/又は全ての技術を実行するためのコードを含む。メモリ237は、ダイナミックランダムアクセスメモリ(DRAM)装置、スタティックランダムアクセスメモリ(SRAM)装置、フラッシュメモリ、又は、その他周知のメモリ装置であってよい。一実施形態において、メモリ237は、また、例えば、ハードディスク、フロッピー(登録商標)ディスクドラブ、CD−ROM装置、DVD−ROM装置、DVD−RAM装置、DVD−RW装置、フラッシュメモリ装置、又は、より恒常的に情報を保存すうための他の周知の大容量記憶装置など、不揮発メモリ、又は、同様な永続的記憶装置及び媒体を含む。
【0048】
通信ユニット240は、どこに前記会話アプリケーション103が記憶されているかに依存する。サードパーティーサーバ107、ウェブサイトサーバ160、及び/又は、ユーザ装置115から、データを受信する。それは、どこに前記会話アプリケーション103が記憶されているかに依存する。通信ユニット240は、前記会話アプリケーション103に前記データを伝送する。通信ユニット240は、信号線242経由でバス220に接続される。一実施形態において、通信ユニット240は、ネットワーク105又は別の通信チャンネルへの直接物理接続(ダイレクトフィジカルコネクション)用の1つのポートを含む。例えば、通信ユニット240は、USB、SD、CAT−5(カテゴリー5)又は、ネットワーク105と有線通信するための同様なポートを含む。別の実施形態において、通信ユニット240は、ネットワーク105とデータをやり取りするための無線送受信機、若しくは、例えば、IEEE 802.11、IEEE 802.16、ブルートゥース(登録商標)近距離無線通信(NFC)又は他の適宜の無線通信方法の1以上を用いたその他の通信チャンネルを含む。一実施形態において、通信ユニット240は、狭域通信用の無線周波数(RF)を生成する1つのNFCチップを含む。
【0049】
一実施形態において、会話アプリケーション103は、1つの承認モジュール202、1つのコード生成部207、1つの識別情報生成部211、1つのプロフィールエンジン213、1つのコンテンツ解析部215、1つのシンジケーションモジュール217、1つの分析エンジン219、1つの広告エンジン221、1つのニュースレターエンジン233及び、1つのグラフィカルユーザーインタフェース(GUI)エンジン245とを具備する。
【0050】
承認モジュール202は、或るウェブサイトの開発者からの、別のウェブサイトからの1つのガジェットを埋め込むというリクエストを承認するためのルーチンを含むソフトウェアである。一実施形態において、承認モジュール202は、ガジェットを埋め込むという或るウェブサイトの開発者からのリクエストを承認する後述の機能を提供するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、承認モジュール202は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、プロセッサ235、GUIエンジン245、通信ユニット240、コード生成部207、識別情報生成部211、シンジケーションモジュール217及びコンピューティング装置200のその他の構成要素と信号線222経由で協働及び通信するためにバス220に接続される。
【0051】
一実施形態によれば、承認モジュール202は、或る第2ウェブサイトの開発者からの、或る第1ウェブサイトに埋め込まれた或るガジェットを該第2ウェブサイトに埋め込むというリクエストを、通信ユニット240経由で又はGUIエンジン245により生成された或るユーザインターフェース経由で受信する。承認モジュール202は、前記第1ウェブサイトに埋め込まれた前記ガジェットに関連付けられたセッティングを判定すること及びそのガジェットが何れかのウェブサイトに埋め込まれ得るかを判定すること、前記第2ウェブサイトがブラックリストに載せられているか又はホワイトリストに載せられているかを判定すること、前記第2ウェブサイトの開発者の識別情報を確かめること、インターネットプロトコルアドレスを判定することなどにより、前記リクエストを承認する。或るウェブサイトに埋め込まれた或るガジェットに関連付けられたセッティングの一例は、
図5に説明される。
【0052】
コード生成部207は、或るウェブサイトに或るガジェットを埋め込むためのコードを生成するためのルーチンを含むソフトウェアである。一実施形態において、コード生成部207は、前記ガジェットを埋め込むための埋め込まれたコードを生成する後述の機能を提供するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、コード生成部207は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、コード生成部207は、プロセッサ235、GUIエンジン245、通信ユニット240、承認モジュール202及びコンピューティング装置200のその他の構成要素と信号線223経由で協働及び通信するためにバス220に接続される。一実施形態において、コード生成部207は、GUIエンジン245により生成された或るユーザインターフェースに表示されるコードを生成する。別の実施形態において、前記コードは、通信ユニット240経由でリクエスト主に伝送される。
【0053】
識別情報(ID)生成部211は、或るウェブサイト用のウェブサイト識別子を生成するためのルーチンを含むソフトウェアである。一実施形態において、ID生成部211は、或るウェブサイト用のウェブサイト識別子を生成する後述の機能を提供するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、ID生成部211は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、ID生成部211は、プロセッサ235、メモリ237、承認モジュール202、シンジケーションモジュール217及びコンピューティング装置200のその他の構成要素と信号線224経由で協働及び通信するように構成される。
【0054】
承認モジュール202は、前記第2ウェブサイトに前記ガジェットを埋め込む前記リクエストが承認されると、前記ID生成部211に通知する。ID生成部211は、前記通知を受信し、前記第2ウェブサイト用にウェブサイト識別子を生成する。一実施形態において、ID生成部211は、前記ガジェット用の識別子、前記第2ウェブサイト用のウェブサイト識別子、及び、該ガジェットが最初に埋め込まれた前記第1ウェブサイト用のウェブサイト識別子を含む1つのインデックスを作成する。当業者は、前記インデックスが、前記ガジェットを埋め込んだ任意の数のウェブサイトのウェブサイト識別子を含み得ることを理解するだろう。別の実施形態において、或るガジェット用に或るインデックスが存在する場合、ID生成部211は、新たに生成されたウェブサイト識別子を、既存のインデックスに追加する。ID生成部211は、メモリ237に複数の前記ウェブサイト識別子及び複数の前記インデックスを記憶する。
【0055】
プロフィールエンジン213は、或るユーザ用に、複数のウェブサイトにサインインし、且つ、コンテンツを投稿するためのプロフィールを生成するためのルーチンを含むソフトウェアである。コンテンツは、文章、オーディオ、ビデオ、写真、投票又はアンケートへの応答、若しくは、その他当業者に周知のコンテンツの組み合わせを含む。一実施形態において、プロフィールエンジン213は、プロフィールを生成する後述の機能を提供するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、プロフィールエンジン213は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、プロフィールエンジン213は、プロセッサ235、メモリ237、通信ユニット240、コンテンツ解析部215、分析エンジン219、ニュースレターエンジン233及びコンピューティング装置200のその他の構成要素と信号線225経由で協働及び通信するためにバス220に接続される。プロフィールエンジンは、生成されたプロフィールを、メモリ237に記憶する。
【0056】
一実施形態において、プロフィールエンジン213は、同じサービス内の他の複数メンバーにより閲覧可能な1つのユーザプロフィールを生成する。前記ユーザプロフィールは、ユーザの名前(本名又は匿名)、及び、例えばそのユーザが購読している複数のウェブサイトのリスト、そのユーザのコンテンツへの複数のリンク、ユーザの関心事項、画像、人口統計情報など、その他のユーザ属性を含む。前記ユーザがアカウントに関連付けられた電子メールアドレスを提供したくない場合、一実施形態において、前記ユーザは匿名で投稿し、前記プロフィールエンジン213は、ユーザ装置115用のインターネットプロトコル(IP)アドレスに基づいて、又は、該ユーザ装置115に記憶されたクッキー(Cookie)によって、前記ユーザを認知する。
【0057】
コンテンツ解析部215は、或るウェブサイトに埋め込まれたガジェットから通信ユニット240経由で或るユーザにより投稿されたコンテンツを受信し、且つ、前記ユーザと前記コンテンツに関連付けられたウェブサイト識別子を識別するためのルーチンを含むソフトウェアである。一実施形態において、コンテンツ解析部215は、コンテンツを受信し且つユーザを識別する後述の機能を提供するための、プロセッサ235により実行可能な1セットの命令群である。前記コンテンツは、スレッド、コメント、画像、ビデオなどを含む。別の実施形態において、コンテンツ解析部215は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、コンテンツ解析部215は、プロセッサ235、GUIエンジン245、通信ユニット240、プロフィールエンジン213、シンジケーションモジュール217及びコンピューティング装置200のその他の構成要素と信号線226経由で協働及び通信するためにバス220に接続される。
【0058】
シンジケーションモジュール217は、異なる複数ウェブサイトに埋め込まれた或るガジェットから通信ユニット240経由で受信されたコンテンツをシンジケート(配信)するためのルーチンを含むソフトウェアである。一実施形態において、シンジケーションモジュール217は、前記コンテンツ会式部215からユーザコンテンツと前記ユーザコンテンツに関連付られたウェブサイトのIDを受信し、且つ、通信ユニット240経由で前記ユーザコンテンツを別の複数のガジェットに伝送するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、シンジケーションモジュール217は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、シンジケーションモジュール217は、プロセッサ235、GUIエンジン245、通信ユニット240、プロフィールエンジン213、コンテンツ解析部215及びコンピューティング装置200のその他の構成要素と信号線227経由で協働及び通信するためにバス220に接続される。
【0059】
分析エンジン219は、通信ユニット240経由で受信されたコンテンツ及び該コンテンツを投稿した複数ユーザの情報を分析するためのルーチンを含むソフトウェアである。一実施形態において、分析エンジン219は、受信されたコンテンツ及び前記複数ユーザの人口統計情報を分析するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、分析エンジン219は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、分析エンジン219は、プロセッサ235、GUIエンジン245、通信ユニット240、プロフィールエンジン213、コンテンツ解析部215、広告エンジン221、ニュースレターエンジン223及びコンピューティング装置200のその他の構成要素と信号線228経由で協働及び通信するためにバス220に接続される。
【0060】
分析エンジン219は、或るユーザによって投稿されたコンテンツを分析する。分析エンジン219は、また、例えば前記ユーザの人口統計情報など、プロフィール情報を取得及び分析する。
【0061】
分析エンジン219は、前記ユーザが特定の話題に興味をもっているかどうか推測するために、前記プロフィール情報及びユーザ提示されたコンテンツを分析する。例えば、分析エンジン219は、前記ユーザが肯定的又は否定的記述をしているかどうかを判定するために、前記コンテンツを分析する。肯定的記述の一例は、“インド料理はおいしい”というものである。否定的記述の一例は、“チーズバーガーは不健康”というものである。これらの記述により、分析エンジン219は、当該ユーザがインド料理を好み、チーズバーガーを好まないことを推測する。一実施形態において、分析エンジン219は、通信ユニット240経由で複数ウェブサイトの開発者に前記分析を(例えば統計報告として)送信する。一実施形態において、前記ユーザ情報は、個人特定情報が含まれないように、匿名化される。かかる分析は、開発者たちに価値のあるフィードバックを供給できるという点で有益である。開発者たちは、例えば、ユーザたちの嗜好及びニーズを満たすように彼らのウェブサイトを変更したり、個人化されたニュースレターまたはプロモーション提案を彼らのユーザに送信したりするために、前記分析を使用できる。
【0062】
広告エンジン221は、前記埋め込まれたガジェットを含む1つのウェブサイトに複数の広告を供給するためのルーチンを含むソフトウェアである。一実施形態において、広告エンジン221は、メモリ237からユーザの関心事項に合致する複数の広告を取り出し、且つ、他の複数のウェブサイトに前記複数の広告を供給するための、プロセッサ235により実行可能な1セットの命令群である。一実施形態において、前記ユーザ情報は匿名化され、前記複数の広告は、同様の関心事項を持つ匿名ユーザのグループが何を楽しんでいるかの決定に基づく。別の実施形態において、広告エンジン221は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、広告エンジン221は、プロセッサ235、GUIエンジン245、通信ユニット240、分析エンジン219及びコンピューティング装置200のその他の構成要素と信号線230経由で協働及び通信するためにバス220に接続される。
【0063】
広告エンジン221は、1つのウェブサイトに複数の広告を供給するために、前記分析エンジン219によりなされた推測結果を使用する。広告エンジン221は、前述した例に基づいて、そのユーザの近隣地域に在るインド料理店や、インドの香辛料を売る近隣の食料品
店などの複数の広告を供給するだろう。別の実施形態において、複数の広告を直接的に供給することに代えて、広告エンジン221は、1つの広告サーバから複数の広告を取り出すために使用される広 告コードを伝送する。
【0064】
ニュースレターエンジン233は、或るユーザへ或るニュースレターを生成及び送信するためのルーチンを含むソフトウェアである。一実施形態において、ニュースレターエンジン233は、ニュースレターを生成及び送信するための、プロセッサ235により実行可能な1セットの命令群である。別の実施形態において、ニュースレターエンジン233は、コンピューティング装置200のメモリ237に記憶され、プロセッサ235によってアクセス及び実行可能である。いずれの実施形態においても、ニュースレターエンジン233は、プロセッサ235、プロフィールエンジン213、コンテンツ解析部215、分析エンジン219及びコンピューティング装置200のその他の構成要素と信号線232経由で協働及び通信するためにバス220に接続される。
【0065】
ニュースレターエンジン233は、通信ユニット240経由で或るユーザに対してその人に個人化されたニュースレターを生成及び送信するために、又は、GUIエンジン245により生成されたユーザインターフェースの一部として前記ニュースレターを表示するために、前記分析エンジン219によりなされた推測結果を使用する。ニュースレターエンジン233は、前述した例に基づいて、そのユーザの近隣地域に在るインド料理店や食料品店のリポート、インド料理のレシピ、ニュース記事などを含むニュースレターを生成するだろう。
【0066】
GUIエンジン245は、ユーザインターフェースを生成するためのルーチンを含むソフトウェアである。GUIエンジン245は、前記ユーザ用のプロフィールを生成するために情報を受信し、且つ、プロフィールエンジン213に情報を伝送する。一実施形態において、GUIエンジン245は、コード生成部207により生成された、或るウェブサイトに前記ガジェットを埋め込むためのコードのリクエストを受信する。承認モジュール202が承認を供給し且つコード生成部207が前記コードを生成すると、GUIエンジン245は、前記コードを表示する。別の実施形態において、GUIエンジン245は、広告エンジン221により生成された複数の広告及びニュースレターエンジン233により生成された複数ニュースレターを選択するための、開発者用のユーザインターフェースを生成する。
【0067】
次に、
図3A及び3Bを参照すると、種々の実施形態が描かれている。
図3Aは、異なる複数のウェブサイトに埋め込まれたガジェットにより受信されたコンテンツをシンジケートするための第1実施形態を示す図である。図示の実施形態は、ウェブサイト310a、310b及び310cを含み、これらウェブサイト310a、310b及び310cは、それらに埋め込まれた1つのガジェット320を持つ。3つのウェブサイトのみが描かれているが、当業者は、任意の数のウェブサイトが、ガジェット320を埋め込まれ得ることを理解するだろう。ウェブサイト310a、310b及び310cは、別個のウェブサイトサーバ160により提供される。この実施形態において、会話アプリケーション103は、WebsiteR.orgもまた提供しているウェブサイトサーバ160に記憶される。ウェブサイト310cに埋め込まれたガジェット320が或るユーザからコンテンツを受信すると、会話アプリケーション103は、受信されたコンテンツを、ウェブサイト310a及び310bに埋め込まれたガジェット320に、シンジケートする。これにより、ウェブサイト310a及び310bのユーザは、各々のウェブサイトから、前記コンテンツを閲覧し、該コンテンツに応答できる。
【0068】
図3Bは、異なる複数のウェブサイトに埋め込まれたガジェットにより受信されたコンテンツをシンジケートするための第2実施形態を示す図である。上述の例と同様に、ウェブサイト360a、360b及び360cを含み、これらウェブサイト360a、360b及び360cは、それらに埋め込まれた1つのガジェット380を持つ。図示の実施形態は、また、会話アプリケーション103が記憶された1つのサードパーティーサーバ107を含んでいる。ウェブサイト360cに埋め込まれたガジェット380が或るユーザからコンテンツを受信すると、会話アプリケーション103は、ネットワーク105(不図示)経由で前記コンテンツを受信し、且つ、そのコンテンツを、ウェブサイト310a及び310bに埋め込まれたガジェットに表示用として伝送することにより、該コンテンツをシンジケートする。
ウェブサイトにガジェットを埋め込むこと
【0069】
図4〜7は、第1ウェブサイトに埋め込まれた或るガジェットを第2ウェブサイトに埋め込むためのユーザインターフェースを示す。
図4は、第1ウェブサイトのグラフィック表示400である。図示の例において、第1ウェブサイトは、Billboard for Peopleと称されており、埋め込まれた複数ガジェットを含む。埋め込まれた複数ガジェットは、当該ウェブサイトの複数のメンバーを表示するメンバーガジェット405、及び、該メンバーと当該ウェブサイトのユーザがコメントを投稿できるようにするコメントガジェット410である。或る第2ウェブサイトの開発者が前記第1ウェブサイトを見つけ、コメントガジェット410とそのコンテンツを当該第2ウェブサイトに埋め込む決断をすると、前記開発者は、例えばリンク420をクリックすることにより、1つのリクエストを提起する。
【0070】
承認モジュール202は、前記リクエストを受信し、且つ、前記第1ウェブサイトのセッティングを確認することにより、コメントガジェット410が前記第2ウェブサイトに埋め込まれ得るかどうか判定する。
図5は、GUIエンジン245によって生成された、前記第1ウェブサイトに設定されたセッティングを表示するユーザインターフェースのグラフィック表示500である。この例において、承認モジュール202は、前記第2ウェブサイトがホワイトリスト510に載せられている場合は、前記リクエストを承認し、前記第2ウェブサイトがブラックリスト530に載せられている場合は、前記リクエストを承認しない。第2ウェブサイトが2つのリストの何れにも載せられていない場合、承認モジュール202は、前記開発者へのリクエストを含む電子メールを送信する。
【0071】
承認モジュール202が前記リクエストを承認したら、コード生成部207は、前記第2ウェブサイトにコメントガジェット410を埋め込むためのコードを生成する。また、ID生成部211は、前記第2ウェブサイトに固有のウェブサイトIDを生成する。
図6は、GUIエンジン245によって生成された、前記コード生成部207により生成されたコード610を含む第1ウェブサイト用のユーザインターフェースのグラフィック表示600である。この例では、前記生成されたコード610は、開発者が、前記第2ウェブサイト用のコーディングにコピー及びペーストできるハイパーテキスト マークアップ ランゲージ(HTML)コードである。一実施形態において、コード生成部207は、ユーザがコピー及びぺーストしなくてよいように、第2ウェブサイトに自動的にコードを埋め込む。当業者は、前記コードが例えばHTML、JavaScript(登録商標)など、どのようなコンピュータプログラミング言語でも生成され得ることを理解するだろう。
【0072】
図7は、コメントガジェット710及び前記第1ウェブサイトから埋め込まれたそのコンテンツを含む前記第2ウェブサイトのグラフィック表示700である。コメントガジェット710は、当該第2ウェブサイトの複数のユーザがコメントガジェット710のソースに気付くように、前記第1ウェブサイトへのリンク720を含む。このことは、バイラルアクセプタンス(viral acceptance,口コミ承認)を目的として或る製品のブランド化を広めることに役立つ。更に、コメントガジェット710は、リンク420と同様なリンク730を含み、それを用いて別の開発者が、彼らのウェブサイトに前記ガジェットを埋め込むリクエストを提起できる。
ユーザがコンテンツを投稿できるようにすること
【0073】
前記開発者が前記コメントガジェットを前記第2ウェブサイトに埋め込んだら、前記コメントガジェットは、そのサイトのメンバー及びユーザからコメントを受信する用意ができる。コメントを投稿でき
るようにするために、或るメンバーは、例えばリンク740をクリックすることにより、前記コメントガジェットにプロフィール付きでサインインするというリクエストを提起する。一実施形態において、前記プロフィールは、匿名ユーザとして投稿することを含む。プロ フィール無しの新たなユーザがリクエストを提起する場合、プロフィールエンジン213はその新たなユーザ用のプロフィールを作成する。
【0074】
図8は、GUIエンジン245により生成された、プロフィールを作成するために前記新たなユーザから情報を要求するためのユーザインターフェース805の一実施形態を示す。図示の例において、ユーザインターフェース805は、例えばユーザの名前及び写真などの情報を要求する。当業者は、例えば居所、誕生日、パスワードなどどのようなユーザ情報でも、そのユーザ用のプロフォールを生成するために要求され得ることを理解するだろう。前記ユーザによって入力された情報を用いて、プロフィールエンジン213は、GUIエンジン245によって表示される、そのユーザ用のプロフィールを生成する。そして、前記ユーザは、このプロフィールをサインインするために使用し、そして、コメントを投稿する。GUIエンジン245は、前記ユーザに対して、当該コメントガジェットの埋め込み元である第1ウェブサイトのメンバーになるという1つのオプション815を提供する。メンバーになることにより、前記ユーザは、例えばウェブサイトを個人化させること、ニュースレター、販売促進提案を受け取ることなど、より特権的な権利を与えられる。
【0075】
一実施形態において、前記ユーザは、リンク810をクリックすることにより、或る既存のプロフィールを用いて前記コメントガジェットにサインインすることを選択する。既存のプロフィールは、別のウェブサイト、ソーシャルネットワーク、プロフィール、電子メールアカウント又は当業者に周知の何らかのウェブ上のプロフィールを含めるプロフィールである。この、ウェブサイトのメンバーになることなく、何らかのユーザプロフィールを用いてユーザがコンテンツを投稿できるようにするという、モデルは、有利である。例えば、或るユーザがコメントガジェットに否定的なコメントを投稿したい場合、そのユーザはメンバーになりたくないか、又は、ウェブサイトにプロフィールを作成したくないだろう。
方法
【0076】
次に、
図9〜
図10を参照すると、コンテンツをシンジケートするための種々の実施形態が描かれている。
図9は、異なる複数のウェブサイトに埋め込まれた1つのガジェットにより受信されたコンテンツをシンジケートするための第1実施形態を説明するフローチャート900である。コンテンツ解析部215は、或るユーザにより投稿されたコンテンツを或るウェブサイトに埋め込まれた或るガジェットから通信ユニット240経由で受信する(ステップ902)。受信されるコンテンツは、文章、ビデオ、写真、投票又はアンケートに対する応答、若しくは、その他何らかの当業者に周知のコンテンツである。コンテンツ解析部215は、前記コンテンツを提出したユーザ、及び、或るウェブサイト識別子を用いて受信されたコンテンツの送信元の前記ウェブサイトに関連付けられる前記ウェブサイト識別子を識別する(ステップ904)。シンジケーションモジュール217は、コンテンツ解析部215から解析されたコンテンツを受信し、前記ガジェットが埋め込まれた他の複数のウェブサイトを、インデックスを用いて判定する(ステップ906)。前記インデックスは、前記ガジェットの識別子及び他の全てのウェブサイトのウェブサイト識別子を含む。シンジケーションモジュール217は、前記コンテンツを、他の複数のウェブサイトでの表示用として伝送することにより、前記受信されたコンテンツを他の複数のウェブサイトに埋め込まれたガジェットにシンジケートする(ステップ908)。
【0077】
図10は、異なる複数のウェブサイトに埋め込まれた1つのガジェットにより受信されたコンテンツをシンジケートするための第2実施形態を説明するフローチャート1000である。この例では、或る第2ウェブサイトの開発者は、或る第1ウェブサイトからの或るガジェットを、当該第2ウェブサイト上に埋め込む。コンテンツ解析部215は、或るユーザによって投稿されたコンテンツを、前記第2ウェブサイトに埋め込まれたガジェットから受信する(ステップ1002)。コンテンツ解析部215は、前記ユーザが前記コンテンツを投稿するためにサインインするのに用いたプロフィールを使用して該ユーザを識別する(ステップ1004)。この例において、ユーザは、プロフィールエンジン213により生成されたプロフィールを用いてサインインする。別の実施形態において、ユーザは、例えば或るソーシャルネットワークのプロフィールなど、ウェブ上に既存のプロフィールを使用してサインインする。コンテンツ解析部215は、また、前記コンテンツからウェブサイト識別子を解析することにより、当該コンテンツの送信元の第2ウェブサイトを識別する(ステップ1006)。シンジケーションモジュール217は、コンテンツ解析部215から解析されたコンテンツを受信し、インデックスを用いて第1ウェブサイトを判定し(ステップ1008)、且つ、前記ガジェットを含む他の複数ウェブサイトにコンテンツを伝送することにより、前記コンテンツを第1ウェブサイトに埋め込まれたガジェットにシンジケートする(ステップ1010)。前記ガジェットは、第1ウェブサイト上の前記ガジェットからの前記コンテンツを表示する。
【0078】
分析エンジン219は、例えば人口統計情報などのプロフィール情報から前記ユーザのユーザ情報を取得する(ステップ1012)。そして、分析エンジン219は、前記ユーザの関心事項を判定するために、前記コンテンツ及び前記ユーザ情報を分析する(ステップ1014)。一実施形態において、分析エンジン219は、同様な人口統計情報を持つ人々の関心事項に基づいて前記ユーザの関心事項を予測するために、前記ユーザ情報を使用する。別の実施形態において、分析エンジン219は、前記ユーザが肯定的又は否定的記述をしているかどうかを推測することにより、コンテンツから前記関心事項を判定する。例えば、第2ウェブサイトにユーザにより投稿されたコンテンツが「ブランドXの靴は最高。近いうちソルトレイクシティに店を出して欲しい」である場合、分析エンジン219は、そのウーザがブランドXの靴を好んでいるであろうことを推測する。分析エンジン219は、そして、第1ウェブサイトの開発者に前記分析を送信する(ステップ1016)。一実施形態において、この情報は匿名化される。一実施形態において、分析エンジン219は、全ての開発者が集団的に前記ガジェットの複数ユーザについて知ることができるように、前記分析を該全ての開発者に伝送する。複数のユーザに関して、この情報を集めることにより、開発者たちは、彼らのウェブサイトを訪問していないが、彼らのウェブサイトに興味を持つであろう複数のユーザの関心事項について知ることができる。
【0079】
ニュースレターエンジン233は、前記ユーザのプロフィールを確認することにより、該ユーザがパブリックメンバーかどうかを判定する(ステップ1020)。前記ユーザがパブリックメンバーである場合、ニュースレターエンジン233は、前記ユーザの関心事項に基づいて個人化されたニュースレターを該ユーザに送信する(ステップ1022)。前記ニュースレターは、例えば、販売促進提案、新製品、ウェブサイト更新、話題のニュースなどを含む。一実施形態において、ニュースレターエンジン233は、一般の全てのユーザからのコンテンツの推定に基づいて、ウェブサイトの全てのユーザに対して、ニュースレターを生成及び送信する。
【0080】
本明細書における上述の説明は、図示と説明の目的で提示されているものである。この明細書での説明を、開示された厳密な形態に尽きる又は限定することを意図していない。多くの変更及び変形が上述の教示から可能である。開示の範囲はこの詳細説明によって限定されるのではなく、本願の特許請求の範囲によるこ とを意図している。この分野の技術に精通する者によって理解されるように、この詳細明細は、その精神又は本質的な特徴を逸脱することなく、その他の詳細な形態によって実施され得る。同様に、モジュール、ルーチン、特徴、属性、方法及びその他の観点のものについての特定の呼び名及び区分は、必須若しくは重要 なものではなく、かつ、この詳細明細若しくはその特徴を実装する機構(仕組み)は、異なる名前、区分及び/又は形式を持っていてよい。更に、関連技術分野の通常の熟練者にとって明らかなように、モジュール、ルーチン、特徴、属性、方法及び開示のその他の観点のものは、ソフトウェア、ハードウェア、ファーム ウェア又はこれら3つの任意の組み合わせとして実装されてよい。また、この詳細明細におけるコンポーネント、その実例であるモジュールが、ソフトウェアと して実装される場合はいつでも、該コンポーネントは、単独のプログラムとして、より大きなプログラムの一部として、複数の別プログラムとして、静的又は動 的にリンクされたライブラリとして、カーネルをロード可能なモジュールとして、デバイスドライバーとして、及び/又はコンピュータプログラム技術分野にお ける通常の熟練者にとって現在知られた又は将来知られ得るいずれの及び如何なるその他の手法によって、実装され得る。加えて、この開示は、どのような特定 のプログラム言語での実装に、又はどのような特定のオペレーションシステム又は環境用に、限定されるものではない。従って、この開示は、詳細説明の図説を 意図するが、その範囲の限定を意図するものではなく、その範囲は、以下の特許請求の範囲の記載に述べられる。