JP2015520878A - クエリ言語を使用してウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張する方法 - Google Patents

クエリ言語を使用してウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張する方法 Download PDF

Info

Publication number
JP2015520878A
JP2015520878A JP2015501831A JP2015501831A JP2015520878A JP 2015520878 A JP2015520878 A JP 2015520878A JP 2015501831 A JP2015501831 A JP 2015501831A JP 2015501831 A JP2015501831 A JP 2015501831A JP 2015520878 A JP2015520878 A JP 2015520878A
Authority
JP
Japan
Prior art keywords
node
query
social graph
user
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015501831A
Other languages
English (en)
Other versions
JP6181740B2 (ja
Inventor
メンテン,ローレンス,イー.
Original Assignee
アルカテル−ルーセント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2015520878A publication Critical patent/JP2015520878A/ja
Application granted granted Critical
Publication of JP6181740B2 publication Critical patent/JP6181740B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Abstract

請求した主題の実施形態は、クエリ言語を使用して、ウェブ・サービスのアプリケーション・プログラミング・インターフェースの拡張をサポートする方法を提供する。一実施形態では、ソーシャル・グラフへのインターフェースを修正するステップを含む方法が提供される。ソーシャル・グラフは、ノード間の関係を表すエッジによって接続されたノードを含み、これらのノードは、ユーザに関連する複数のツリーをソーシャル・グラフへと形成する。インターフェースを修正するステップは、少なくとも1つのユーザのツリーにノードを追加するステップと、ノードに1つまたは複数のクエリを接続するステップとを含む。接続されたクエリは、追加されたノードのサブツリーで動作する。インターフェースは、ユーザが、サブツリーでクエリを実行するように構成されたサービスを呼び出すことに応答して修正される。

Description

本出願は、一般的に、プロセッサベースのシステムに関し、より具体的には、プロセッサベースのシステムのためのアプリケーション・プログラミング・インターフェースに関する。
本項では、本発明についてより深い理解を容易にするのに役に立つ可能性がある態様を紹介する。したがって、本項の記述は、この観点から読むべきであり、何が従来技術であるか、または何が従来技術でないかについて自ら認めるものと理解するべきではない。
一部の知られている通信方式では、ユーザは、ソーシャル・ネットワークを使用して、互いに通信する。ソーシャル・ネットワーキング・サービスは、共通の背景、関心事、または活動を共有できる人々の間の社会的関係の表現に基づいて加入者にサービスを提供するオンライン・サービス、プラットフォーム、またはサイトとして規定することができる。ソーシャル・ネットワークは、典型的には、各ユーザの表現(多くの場合プロフィール)、彼/彼女のソーシャル・リンク、および写真、状況報告、ウェブ・リンクなど様々な追加的な要素から構成される。ほとんどのソーシャル・ネットワーク・サービスは、ウェブベースであり、電子メールおよびインスタント・メッセージングなど、インターネットを通じてユーザが対話することを可能にするツール/サービスを提供する。ソーシャル・ネットワーキング・サイトは、ユーザが個々のネットワーク内で考え、活動、イベント、および関心事を共有することを可能にする。代表的なソーシャル・ネットワークには、Facebook、Google+、Twitter、LinkedIn、VKonkatke、Orkut、およびRenRenが含まれる。
ソーシャル・ネットワークは、ソーシャル・グラフを使用して、個人および彼らの関係を表す。一般的に、ソーシャル・グラフは、(ユーザのアバタとも呼ぶことができる)加入者のオンライン・ペルソナ(persona)と、他の加入者のオンライン・ペルソナとの関係を記述するものである。したがって、ソーシャル・グラフは、一般的にはソーシャル・ネットワークと呼ばれる、加入者間の現実世界の関係を反映している。たとえば、ソーシャル・ネットワークのソーシャル・グラフは、ノード間の関係によって規定された(リンクまたは接続とも呼ぶことができる)エッジを使用して互いに関連する一連のノード(たとえば、「Subscriber(加入者)」、「FriendsLists(友達リスト)」、「CloseFriends(親しい友達)」など)として構造化することができる。葉ノードは、親ノードに関連しているが、それらは子ノードを持たない。たとえば、「CloseFriends」ノードに関連する葉ノードはそれぞれ、加入者の友達の1人に対する情報を含むデータ構造を含むことができる。ソーシャル・グラフは、また、特定の関心事に関連するグループなど異なるタイプの関係のためのノードだけでなく、写真、音楽、およびウェブ・リンクなど異なるタイプの情報のためのノードも含むことができる。
ソーシャル・ネットワークのプロバイダは、サービスまたはアプリケーション(アプリ)を実装するためにソーシャル・グラフの情報を使用する。開発者は、ソーシャル・ネットワーク・プロバイダによって開発およびサポートされるアプリケーション・プログラミング・インターフェース(API)を使用して、サービスまたはアプリケーションを作成することができる。たとえば、Facebookなどソーシャル・ネットワークのためのAPIは、ハイパーテキスト転送プロトコル(HTTP)要求メッセージの規定された組とともに、たとえば、拡張マークアップ言語(XML)またはJavaScript Object Notation(JSON)形式の応答メッセージの構造の定義を含む。ソーシャル・ネットワークのためのAPIは、通常、クライアントおよびサーバから構成されるRepresentational State Transfer(REST)構造を実装する。クライアントは、サーバへの要求を開始し、サーバは要求を処理し、適切な応答をクライアントに返す。要求および応答は、リソースの表現の転送について構築される。リソースは、実質的に、アドレス指定することができる任意の一貫性および意味のある概念でもよい。リソースの表現は、典型的には、リソースの現在の、または意図する状態を収めるドキュメントである。一般的に、REST−ful構造は、クライアントサーバ・ベース、ステートレス、キャッシュ可能、レイヤ構造であり、一様なインターフェースを使用する必要があり、要求に応じてコードを提供することができる。
以下は、開示された内容の一部の態様について基本的な理解を得るために、開示された内容を単純化して概要を示すものである。この概要は、開示された内容の完全な概要ではない。これは、開示された内容の重要または不可欠な要素を特定することも、開示された内容の範囲を示すことも意図するものではない。その唯一の目的は、後で記述するより詳細な記述の準備として、単純化した形で一部の概念を示すことである。
一実施形態では、クエリ言語を使用して、ウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張するための方法が提供される。方法は、ソーシャル・グラフへのインターフェースを修正するステップを含む。ソーシャル・グラフは、ノード間の関係を表すエッジによって接続されたノードを含み、これらのノードはユーザに関連する複数のツリーをソーシャル・グラフへと形成する。インターフェースを修正するステップは、少なくとも1つのユーザのツリーにノードを追加するステップと、1つまたは複数のクエリをノードに接続するステップとを含む。接続されたクエリは、追加されたノードのサブツリーで動作する。インターフェースは、ユーザが、サブツリーでクエリを実行するように構成されたサービスを呼び出すことに応答して修正される。方法の実施形態を実行するための装置も提供することができる。
他の実施形態では、クエリ言語を使用して、ウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張するための方法が提供される。方法は、ノード間の関係を表すエッジによって接続されたノードを含むソーシャル・グラフの一部に対してクエリを実行するように構成されたサービスを呼び出すステップを含む。ノードは、ユーザに関連する複数のツリーをソーシャル・グラフへと形成する。方法は、また、サービスを呼び出したユーザに関連するツリーにノードを追加することによるソーシャル・グラフへのインターフェースの修正を承認するための要求を受信するステップを含む。インターフェースは、1つまたは複数のクエリをノードに接続することによって修正され、クエリは、追加されたノードのサブツリーで動作する。方法の実施形態を実行するための装置も提供することができる。
さらに他の実施形態では、クエリ言語を使用して、ウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張するための方法が提供される。方法は、ソーシャル・グラフの部分に関連する1つまたは複数のクエリに対するサポートを提供することによって、ユーザに関連するソーシャル・グラフの一部分へのインターフェースを修正するステップを含む。インターフェースは、クエリを実装するサービスをユーザが呼び出すことに応答して修正される。方法は、また、ユーザに関連するソーシャル・グラフの部分でクエリの1つまたは複数を実行するステップを含む。方法の実施形態を実行するための装置も提供することができる。
開示された内容は、同じ参照番号は同じ要素を示している添付の図面とともに以下の記述を参照することによって理解されるだろう。
通信システムの代表的な一実施形態を概念的に示す図である。 ソーシャル・グラフの一部分の第1の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフへのインターフェースを修正するための方法の第1の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフへの修正されたアプリケーション・プログラミング・インターフェースにクエリする方法の第1の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフへのアプリケーション・プログラミング・インターフェースへの修正を取り除く方法の代表的な一実施形態を概念的に示す図である。 ソーシャル・グラフの部分の第2の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフへのインターフェースを修正するための方法の第2の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフへの修正されたアプリケーション・プログラミング・インターフェースにクエリする方法の第2の代表的な実施形態を概念的に示す図である。
例示的実施形態について以下に記述する。わかりやすくするために、実際の実装のすべての機能が本明細書に記述されているとは限らない。もちろん、そのような実際の実施形態を開発する際に、実装によって異なる、システム関連およびビジネス関連の制約への遵守など、開発者の特定の目標を達成するために多数の実装特有の決定が下されるべきであることを理解されたい。さらに、そのような開発努力は、複雑かつ時間がかかる可能性があるが、本開示の利益を受ける当業者にとっては日常的な仕事であろうことを理解されたい。記述および図は、単に特許請求される主題の原理を示すものである。したがって、本明細書に明示的に記述または図示していないが、本明細書に記述した原理を具体化し、特許請求された主題の範囲内に含まれ得る様々な構成を当業者であれば考案できることを理解されたい。さらに、本明細書に詳述したすべての例は、原則として、読者が特許請求された主題の原則およびその技術を推進する発明者(ら)によって提供された概念を理解するのを支援するために、教育を目的とすることを明確に意図するものであり、そのような具体的に詳述された例および条件に限定しないものとして解釈するべきである。
ここで、開示された内容について、添付の図面を参照して記述する。様々な構造、システム、およびデバイスは、説明のみを目的として、かつ当業者に周知の詳細によって記述を不明瞭にしないように、図面に概略的に示されている。しかし、添付の図は、開示された内容の実例となる例を記述し説明するために含まれている。本明細書に使用される単語および句は、当業者によるそれらの単語および句の理解に一致する意味を持つものと理解および解釈するべきである。本明細書において用語または句を一貫して使用することによって、用語または句の特別な定義、つまり、当業者によって理解されている通常および慣習的な意味とは異なる定義を意味することを意図するものではない。用語または句が特別な意味、つまり当業者によって理解されるものと異なる意味を持つことを意図する場合は、そのような特別な定義は、用語または句の特別な定義を直接的かつ明白に提供する定義方法で明細書に特に記述することになる。さらに、本明細書に使用する「または(or)」という用語は、そうでないことが明記されていない限り、非排他的な「または(or)」を示している(たとえば、「さもなければ(or else)」または「別の方法では(in the alternative)」など)。また、本明細書に記述した様々な実施形態は、必ずしも相互排他的ではなく、一部の実施形態は、新しい実施形態を形成するために、1つまたは複数の他の実施形態と組み合わせることができる。
ソーシャル・ネットワークのソーシャル・グラフは、ノード間の関係によって規定されたエッジを使用して互いに関連させることができる一連のノード(たとえば、「Subscriber」、「FriendsLists」、「CloseFriends」など)として構造化することができる。多くのソーシャル・グラフは、多くのノードおよび関係を含む。たとえば、Facebookは、10億人の加入者に急速に近づきつつある。ソーシャル・ネットワーク・サービスのプロバイダは、情報を収集すること、およびソーシャル・ネットワーク・サービスの異なる加入者(またはユーザ)間の関係を指定するソーシャル・グラフを構成することに、多くの時間およびリソースを投資する可能性がある。ソーシャル・ネットワーク・サービスの価値は、ソーシャル・グラフ、およびソーシャル・グラフに含まれる情報に基づいて、ユーザ/加入者に有益なサービスを提供するアプリケーションにほぼ完全に存在し得る。したがって、プロバイダは、(1)サード・パーティがソーシャル・グラフのデータを不法に使用するのを防ぐため、および(2)有益なサービスを提供するアプリケーションを作成するためにソーシャル・グラフのデータに対する十分な可視性およびアクセスを開発者に許可するために、ソーシャル・グラフのデータの可視性およびアクセス可能性を制御し競合する希望同士のバランスをとるソーシャル・グラフ・インターフェースを作成することができる。
本出願は、ユーザ/加入者に対するノードを規定し(たとえばユーザ/加入者に対するルート・ノードの子ノードであるノード)、次に1つまたは複数のクエリを新しいノードに関連付ける、または接続することによって、プロバイダによって規定されたインターフェースを開発者が拡張することを可能にするインターフェースの実施形態について記述する。次に、クエリの実施形態は、新しいノードに接続されたサブツリーのノードで動作することができる。クエリは、また、新しいノードのコンテキストによって規定されたパラメータまたは開発者によるクエリに含まれるパラメータを使用することができる。新しいノードおよびクエリを使用するインターフェースの拡張は、ソーシャル・グラフのユーザ、加入者、またはプロバイダによる承認に制約される場合がある。新しいノードの葉ノードは、ソーシャル・グラフの情報を使用して追加(populate)することができる。次に、修正されたインターフェースは、新しいクエリを使用して加入者に対する新しいサービスを作成するために使用することができる。
図1は、通信システム100の代表的な一実施形態を概念的に示す図である。図示する実施形態では、通信システム100は、複数のユーザまたは加入者105を含む。本明細書で使用する場合、「加入者」という用語は、ソーシャル・グラフをサポートするソーシャル・ネットワーク・サービスに申し込んだユーザを表すものと理解される。「ユーザ」という用語は、ソーシャル・グラフで参照できるか、またはソーシャル・グラフに関連している可能性があるが、必ずしもソーシャル・ネットワーク・サービスの加入者ではない人々またはエンティティを表している。したがって、加入者は、ソーシャル・ネットワーク・サービスに関連するユーザのサブセットの場合がある。たとえば、加入者は、ソーシャル・ネットワーク・サービスの登録されたユーザと呼ぶことができる。ユーザ105は、スマート・フォンなどの移動通信装置として示されている。しかし、本開示の恩恵を受ける当業者は、「ユーザ」という用語は、通信システム100にアクセスするために使用される電子デバイス、またはデバイスを所有または運用する人を表すことができることを理解されたい。さらに、当業者は、電子デバイスは移動通信装置に限定されず、一部の実施形態では、タブレット型コンピュータ、ラップトップ型コンピュータ、デスクトップ型コンピュータなどのデバイスも、通信システム100にアクセスするために使用することができることを理解されたい。様々な実施形態において、ユーザ105は、有線接続、無線接続、またはそれらの任意の組み合わせを使用して、通信システム100にアクセスすることができる。
ユーザ105は、1つまたは複数のソーシャル・ネットワーク・サービス110、115に加入することができる。代表的なソーシャル・ネットワーク・サービスには、Facebookによって提供されるソーシャル・ネットワーク・サービス110、およびGoogle+によって提供されるソーシャル・ネットワーク・サービス115が含まれる。しかし、本開示の恩恵を受ける当業者は、通信システム100の代替実施形態は、Twitter、LinkedIn、VKonkatke、Orkut、RenRenなど、他のソーシャル・ネットワーク・サービスを含むことができることを理解されたい。図示する実施形態では、ユーザ105(1〜2)は、ソーシャル・ネットワーク・サービス110に加入しており、ユーザ105(2〜3)は、ソーシャル・ネットワーク・サービス115に加入している。したがって、ユーザ105は、プロフィールを作成し、ソーシャル・ネットワーク・サービス110、115のソーシャル・グラフの他の加入者との関係を築いておくことができる。ユーザ105、ユーザ105に関係する情報、またはユーザ105間の関係は、ソーシャル・グラフの構造によって表すことができる。たとえば、ソーシャル・ネットワーク110のソーシャル・グラフは、ノード間の関係によって規定されたエッジを使用して互いに関連されたノード(たとえば、「Subscriber」、「FriendsLists」、「CloseFriends」など)を含むことができる。
アプリケーション開発者120は、ユーザ105、またはユーザ105に狙いを定めた広告を提供することを試みる広告主など他のサード・パーティのために有益な情報を生成および提供するために、ソーシャル・ネットワーク110、115のソーシャル・グラフの情報を使用するアプリケーション(アプリ)またはサービスを開発することができる。アプリケーション開発者120は、ソーシャル・ネットワーク・サービス110、115に対してアプリケーション・プログラミング・インターフェース(API)125、130を使用するアプリケーションまたはサービスをそれぞれ作成または規定する。API125、130は、ソーシャル・ネットワーク・サービス110、115のプロバイダまたは所有者によって最初に規定され、同じAPI125、130は、ユーザ105のすべてに対してサポートされる。本明細書に記述したように、従来のインターフェースは、開発者120によって変更または修正することができず、開発者120によって作成できる、可能なアプリケーションまたはサービスの範囲だけでなく、アクセスまたは配布できる「ユーザ・データ」が限定される。したがって、本出願は、たとえば、ユーザごとまたはサービスごとなど、プロバイダによって規定されたAPI125、130を修正するための技術について記述する。新しいアプリケーションによって必要とされる可能性があるサービス・リソースへのアクセスの粒度を予想しようと試みる代わりに、アプリケーション開発者120は、ウェブ・サービスAPI125、130を拡張するために、リソース階層(たとえばソーシャル・グラフ)に動的に挿入できる、ソーシャル・ネットワーク110、115のソーシャル・グラフからデータの新しいビューを表す指定されたクエリ・ステートメントを使用して、ウェブ・サービスAPI125、130を拡張することができる。
一実施形態では、API125、130は、Representational State Transfer(REST)構造によって課された制約に準拠する。ソーシャル・ネットワーキング・サイト110、115へのREST−fulウェブ・サービスAPI125、130は、(サービスAPIによって規定された)リソース階層を提供し、各ユーザ105に関連するソーシャル・ネットワーク情報の様々な要素への読み込みまたは書き込みアクセスをサポートすることができる。たとえば、リソース階層は、情報のカテゴリまたはサブセットを規定する非葉ノードを含むツリーを規定することができる。ツリーは、また、ウェブ・サービスAPI125、130を通じて読み込みまたは書き込みできるデータのインスタンスを表すノードまたは葉を規定することができる。この構成は、多くのウェブ・サービスにおいて一般的である。従来のウェブ・サービスで、リソース指定方式は、サービス・プロバイダによって規定されており拡張可能ではない。
通信システム100の実施形態は、新しい葉ノードが接続されたノードによって表されるデータの新しい「ビュー」を表す葉ノードを追加することによって、適切な権限を持つ開発者120がこのリソース・ツリーを拡張することを可能にすることができる。これらのノードは、開発者120によって指定し、新しい葉ノードが挿入されるツリーの枝によって識別されるデータ・サブセット(またはサブツリー)で動作するクエリに関連する場合がある。様々な実施形態において、開発者120は、ツリーのデータを「見る」ことができる場合、またはできない場合がある。たとえば、サービスは、生データから導き出された情報のみを提供することができるが、生データそれ自体は提供することができない。これらのノードは、オフラインのウェブ・インターフェースを通じて追加するか、またはHTTP POST要求を通じて挿入することができる。クエリ/ビューは、開発者120によって指定または規定することもでき、またはクエリ/ビューは、ソーシャル・ネットワーク・サービス110、115のプロバイダから利用可能な事前規定された「クエリ/ビュー」のメニューから選択することもできる。様々な代替的実施形態において、クエリ・パラメータは開発者によって規定する、コンテキスト/ノードによって決定する、またはサービスもしくはアプリケーションによって動的に決定することができる。
図2は、ソーシャル・グラフ200の一部分の代表的な一実施形態を概念的に示す図である。図示する実施形態では、部分200は、特定の加入者「Joe Subscriber(加入者ジョー)」に関連するノードを含む完全なソーシャル・グラフのサブツリーである。部分200は、入り口ノードまたは親ノードの205を介してアクセスすることができる。部分200は、1つまたは複数のサーバに格納することができ、クライアントは適切なユニフォーム・リソース・インジケータ(URI)または他のアドレスを使用して、入り口ノード205にアクセスすることができる。たとえば、入り口ノード205は、アドレスhttp://www.fakesocialnetwork.com/Joe.Subscriberを使用してアクセスすることができる。部分200は、また、入り口ノード205または部分200内の他のノードに接続された子ノード210を含む。子ノード210は、情報、カテゴリ、他の加入者などに関連する場合がある。たとえば、子ノード210は、「友達」「写真」、「プロフィール」、「音楽」などに関連する場合がある。ノード200は、また、家族、親しい友達、知人、職業上の連絡先などユーザ/加入者の間の関係の性質を示す関心事またはグループを共有する加入者またはユーザのグループと関連する場合がある。ノード210は、以下のような対応するアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/CloseFriends
図示する実施形態では、開発者または他のサード・パーティは、加入者に対応するソーシャル・グラフの部分200に1つまたは複数のノード215を追加することができる。たとえば、開発者は、サブツリー200のノード210(4)に関連付けられた、または接続されたノード215を挿入するためにHTTP POSTコマンドを使用することができる。次に、ノード215は、適切なURIまたは他のアドレスを使用してアクセスすることができる。たとえば、ノード210(3)は、Joe Subscriberの「FriendsLists」に関連する場合があり、ノード210(4)は、Joe Subscriberの「CloseFriends」に関連する場合があり、ノード215は、Joe Subscriberの「CloseFriends」の電話番号を含むカテゴリに関連する場合がある。ノード215は、また、図示する実施形態で複数の葉ノード225を含む、他のサブツリー220に関連付ける、または接続することができる。しかし、本開示の恩恵を受ける当業者は、サブツリー220は、ノードまたは葉ノードの異なる組み合わせを含むことができることを理解されたい。サブツリー220または葉ノード225は、開発者、サード・パーティ、加入者、またはサービス・プロバイダによって自動的に追加(populate)することができる。ノード215は、以下のようなアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/CloseFriends/CloseFriends_with_Numbers
一部の実施形態では、開発者またはサード・パーティは、ソーシャル・グラフにノード215を追加する権限または承認を取得する必要がある場合がある。たとえば、開発者またはサード・パーティは、Joe Subscriberまたはソーシャル・グラフのサービス・プロバイダもしくは所有者から権限または承認を取得する必要がある場合がある。承認は、たとえば、加入者がノード215を利用するアプリケーションまたはサービスを呼び出したか、または開始した後、加入者がアプリケーションまたはサービスを終了するまでなど、制限された時間のみ有効な場合がある。したがって、ノード215は、プロバイダによって格納された一時的または動的なノードの場合がある。
ソーシャル・グラフ200へのインターフェースは、開発者によって追加されたノード215のサブツリー220など、ツリー200においてノードで動作するクエリをサポートするように修正することができる。一実施形態では、開発者は、クエリを規定し、1つまたは複数のノードにクエリを接続するメッセージまたはコマンドを使用して、ソーシャル・グラフ200へのアプリケーション・プログラミング・インターフェース(API)を修正することができる。たとえば、ノード215を作成することができ、クエリ230は、Joe Subscriberが、クエリ230を利用するサービスを呼び出すことに応答してノード215(たとえばCloseFriends_with_Numbersノード)に接続することができる。クエリ230は、また、ソーシャル・グラフの部分200の他のノードに接続することができる。たとえば、クエリ230は、ノードFriendsLists、または友達のリストをさらに分類するCloseFriendsなどのノードに接続されるように設計できるクエリ・ノード「fof−phone−number」によって表すことができる。クエリ230は、友達の友達を見つけ、電話番号を自分の友達の各友達のものと比較するために、FriendsListsによって参照される友達のリストのそれぞれ、またはリストの1つ(たとえばCloseFriends)で参照される友達のそれぞれで動作することができる。クエリを呼び出すアドレスの一例は以下のとおりである。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/fof−phone−number
これはFriendsListsノードに接続されたクエリを呼び出す。他の例は以下のとおりである。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/CloseFriends/fof−phone−number
これは、FriendsLists/CloseFriendsノードに接続されたクエリを呼び出す。従来のクエリ言語の実施形態は、典型的には、ソーシャル・グラフ200内の異なる位置またはノードで適用できる単一のクエリを設計できるように十分に柔軟な場合がある。ノードは、開発者によって各クエリ230に対して選択することができるか、またはノードは、自動化された手順またはアルゴリズムを使用して選択することができる。たとえば、ソーシャル・ネットワーキング・サイトは、クエリ230を検査し、クエリ230を適用するべき適切なノードを選択し、ツリーにおいて選択されたノードにクエリ230を反復的に(または同時に)適用し、結果を組み合わせることができる。
本明細書に記述した他の実施形態に加えて、または代わりに実施することができる、一代替実施形態では、修正されたウェブ・サービスAPIは、リソース階層のノードとしてJoe Subscriberの「友達リスト」を規定するAPIを提供することができる。このノードに対して、(適切な権限を持つ)開発者は、葉ノード「has−friend−with−caller−id」を追加し、発信側idが加入者の友達の友達に関連しているかどうかを決定するためにアクセスできる新しいリソースを提供するクエリ(SQL、SPARQL、または類似のもので表現)に、この新しいノードを関連させることができる。クエリ230の一例は、以下の場合がある。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/CloseFriends/CloseFriends_with_Number/fof−phone−number?phone−number=212−555−1212
クエリ230は、Joe Subscriberの親しい友達の電話番号がクエリ230の電話番号と同じである場合、真であるブール値を返す。クエリは、クエリ230で電話番号を持つことをJoe Subscriberの親しい友達の誰も示していない場合、偽であるブール値を返す。
図3は、ソーシャル・グラフへのインターフェースを修正するための方法300の第1の代表的な実施形態を概念的に示している。図示する実施形態では、クエリは、開発者またはサード・パーティによって生成される(305)。クエリは、開発者またはサード・パーティによって作成されたサービスまたはアプリケーションの一部として使用することができる。クエリは、開発者またはサード・パーティによって規定されたノードのサブツリーで動作することができ、たとえば、クエリを利用するサービスを呼び出した加入者など、1人または複数のユーザに関連するソーシャル・グラフの一部分に挿入されることが意図される。次に、開発者またはサード・パーティは、ノードを作成し、新しく作成されたノードにクエリを接続するために、要求を送信することができる(310)。たとえば、クエリ表現は、ソーシャル・グラフへのAPIのプログラマのビューの修正を要求するREST−ful POST要求として書き込むことができる。適切な承認を持つ場合、次のURI
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/
へのAPIを拡張するためのポスト要求は、以下のように書くことができる。
POST/Joe.Subscriber/FriendsLists/HTTP/1.0
Content−Type:text/xml
<extend>
<node>has−friend−with−phone−number</node>
<query>SELECT...</query>
</extend>
しかし、本開示の恩恵を受ける当業者は、他のクエリ表現または形式を要求に使用できることを理解されたい。
図示する実施形態では、要求は、ユーザ/加入者からの承認を必要とする場合がある。ユーザ承認プロセスは、ユーザのソーシャル・グラフに新しいノードを挿入することをユーザが承認したことを検証するために実行することができる(315)。ユーザ承認は、様々な技術を使用して実行することができる。たとえば、ノードを作成し、クエリを接続する要求は、新しいノードの作成および新しいクエリの実装を承認または許可するかをユーザが示す(315)ことを許可する認証/承認プロセスを開始する要求を含むことができる。ユーザが確認または認証を提供しなければ、要求は拒否される(320)。加入者が要求を確認または認証すれば、要求を続行することができる。
図示する実施形態では、要求は、また、ソーシャル・ネットワーク(SN)サービスのプロバイダまたは所有者から承認を必要とする場合がある。プロバイダ承認プロセスは、ユーザのソーシャル・グラフに新しいノードを挿入することをプロバイダ/所有者が承認したことを検証するために実行することができる(325)。プロバイダ承認は、様々な技術を使用して実行することができる。たとえば、ノードを作成し、クエリを接続する要求は、新しいノードの作成または新しいクエリの実装を承認または許可するかをプロバイダが示す(315)ことを許可する認証/承認プロセスを開始する要求を含むことができる。一実施形態では、プロバイダは、要求を調査し、プロバイダによって確立されたセキュリティ、プライバシ、または他のポリシーに要求が準拠しているかどうかを決定する自動化されたシステムを使用して、認証/承認プロセスを実行することができる。ウェブ・サービスに設置する前に、クエリは、ウェブ・サービスのセキュリティ/使用法のポリシーにそれが準拠していることを保証するために機械的に検証することができる。たとえば、ウェブ・サービスは、ブール結果またはカウンタ値を返すクエリのみを許可することができ、そのようなクエリが関連付けられ得るノードのタイプを限定することができる(たとえば「FriendsLists」ノードのみ)。プロバイダが確認または認証を提供しなければ、要求は拒否される(320)。プロバイダが要求を確認または認証すれば、要求を続行することができる。本開示の恩恵を受ける当業者は、図3に示した特定の認証シーケンスは、説明を意図したものであることを理解されたい。代替実施形態は、同時または図3に示したものとは異なる順序で、ユーザおよびプロバイダの認証プロセスを実行することができる。さらに、他の代替実施形態は、両方ではなく、ユーザ認証またはプロバイダ認証のみを実行することができるか、または認証をまったく実行しない場合がある。
要求が承認されたら、要求されたノードは、ソーシャル・グラフ内の選択された位置に挿入することができる(330)。次に、ソーシャル・グラフへのインターフェースは、新しいノードにクエリを接続(335)することによって修正することができる。次に、開発者もしくはサード・パーティ、または他のエンティティは、新しいクエリを利用するアプリケーションまたはサービスを開発するために、修正されたインターフェースを使用することができる場合がある。たとえば、上に記述したPOST要求の結果として、加入者(Joe Subscriber)に対するAPIを拡張することになる場合があるため、ここで、URI
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/has−friend−with−phone−number?friend=Jane.Subscriber&phone−number=202−555−1313
に対してGET要求を行うことができる。したがって、方法300の実施形態は、ソーシャル・グラフを表す基礎をなすデータベースへの過度または完全なアクセスを提供するリスクを減らしながら、より広くより様々な組のクエリを提供する、修正されたインターフェースをサポートすることができる。POST要求によって行われた修正は、要求を承認したユーザ(Joe Subscriber)のみに影響することができ、対応するHTTP DELETE要求または他の操作によって撤回することができる。一実施形態では、クエリを挿入するためのメカニズムは、エンド・ユーザに関連するレコードを作成することの場合がある。挿入されたレコードは、GET要求で使用されるクエリおよび関連する経路を含むことができる。様々な実施形態において、ウェブ・サービスは、1つまたは複数のクエリ言語をサポートし、クエリ言語に伴うスキーマを公開する。
図4は、ソーシャル・グラフへの修正されたアプリケーション・プログラミング・インターフェースにクエリする方法400の代表的な一実施形態を概念的に示している。図示する実施形態では、方法400は、ユーザごとおよびアプリケーションごとにアプリケーション・プログラミング・インターフェースを修正するため、インターフェースは、いつでも全体的に変更されるのではなく、修正されたインターフェースを使用するサービスを特定のユーザが呼び出した場合のみ変更され、一部の実施形態では、関係するサービスを呼び出し、ソーシャル・グラフの関連する部分へのインターフェースの修正を承認したユーザに対してのみである。1人または複数のユーザは、サービスまたはアプリケーションを開始することができる(405)。開始されたアプリケーションは、プロバイダによって規定されたAPIによってサポートされないクエリを利用することができる。次に、1つまたは複数の新しいノードを作成することができ、また、クエリを新しいノードに接続することができる(410)。ノートを作成し、クエリを接続するための技術の実施形態については図3に示している。
次に、(たとえば、サービス・プロバイダによって所有または運用される1つまたは複数のサーバで実装されたソフトウェアを使用する)サービス・プロバイダは、サービスに関連するクエリを監視することができる(410)。サービス・プロバイダがクエリを検出しない限り、監視を継続することができる(410)。たとえば、加入者によって要求または呼び出されたサービスの一部として実行されたクエリなど、サービス・プロバイダがクエリを検出する場合(415)、クエリは、クエリに関連するノードのサブツリーに含まれる情報に対して実行することができる(420)。たとえば、クエリは、ブール値、カウント値、またはノードのサブツリーに含まれる情報に基づいて決定された他の値を返すことができる(420)。
図5は、ソーシャル・グラフへのアプリケーション・プログラミング・インターフェースへの修正を取り除くか、または撤回する方法500の代表的な一実施形態を概念的に示している。図示する実施形態では、アプリケーション・プログラミング・インターフェースは、1人または複数のユーザが、修正されたインターフェースを使用するサービスを呼び出すことに応答して、ユーザごとおよびアプリケーションごとに(たとえば図3〜図4に関して本明細書に記述したように)以前に修正されており、一部の実施形態では、関係するサービスを呼び出し、ソーシャル・グラフの関連する部分へのインターフェースの修正を承認したユーザに対してのみである。ソーシャル・グラフへのインターフェースを修正する結果となった、サービスを以前に開始した1人または複数のユーザは、アプリケーションを終了すると決定することができる。したがって、サービス・プロバイダは、アプリケーションを終了する要求を受信することができる(505)。次に、サービス・プロバイダは、修正されたインターフェースをサポートするために、ソーシャル・グラフで作成された一時的ノードを識別することができる(510)。一時的ノードの識別(510)は、サービス・プロバイダによって格納された情報またはユーザによって提供された情報を使用して実行することができる。次に、一時的ノードは削除することができ(515)、アプリケーションを終了することができる(520)。一実施形態では、一時的ノードの削除(515)は、ノード、葉ノード、サブツリー、または一時的ノードに関連する他の情報を取り除くことを含むことができる。
図6は、ソーシャル・グラフ600の部分605の第2の代表的な実施形態を概念的に示している。図示する実施形態では、部分605は、2人の加入者「Joe Subscriber」および「Frank Friendly(親切なフランク)」に関連するノードを含む完全なソーシャル・グラフのサブツリーである。各部分605は、入り口ノードまたは親ノード610を介してアクセスすることができる。本明細書に記述したように、部分605は、1つまたは複数のサーバに格納することができ、クライアントは、適切なユニフォーム・リソース・インジケータ(URI)または他のアドレスを使用して、入り口ノード610にアクセスすることができる。たとえば、入り口ノード610(1)は、以下のアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber
部分605は、また、入り口ノード610または部分605内の他のノードに接続されている子ノード615を含む。子ノード615は、情報、カテゴリ、他の加入者などに関連する場合がある。たとえば、子ノード615は、「友達」「写真」、「プロフィール」、「音楽」などに関連する場合がある。ノード615は、また、関心事を共有するユーザのグループに関連する場合がある。ノード615は、以下のような対応するアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists
図示する実施形態では、加入者「Joe Subscriber」および「Frank Friendly」は、ソーシャル・グラフ600の「Friend(友達)」関係によって接続された友達である。たとえば、部分605(1)のノード615(2)は、Joe Subscriberに対する「CloseFriends」グループの人を表すことができ、ソーシャル・グラフ600の部分605(2)に関係する情報に関連するか、または含む場合がある。しかし、Joe Subscriberは、Frank Friendlyとの関係を「所有」しているのみであるが、Frank Friendlyによって所有されるソーシャル・グラフ600の部分605(2)について修正を実行する特権または権限を持っていない場合がある。したがって、たとえば図2〜図5に関して本明細書に記述した方法では、Joe Subscriberはサブツリー605(2)に新しいノードを挿入できないか、またはサブツリー605(2)において既存または新しいノードにクエリを接続できない場合がある。
ソーシャル・グラフ600へのインターフェースは、代わりに、部分605(1)に1つまたは複数のシャドー・ノード620を追加し、次にシャドー・ノード620に1つまたは複数のクエリ625を接続することによって修正することができる。一実施形態では、両方向の矢印で示されるように、部分605(1)に挿入されるシャドー・ノード620(1〜2)は、部分610(2)のノード615(3〜4)に対応する。シャドー・ノード620(1〜2)は、ノード615(3〜4)と同じ方法で相互に関係または接続されるため、ノード615(2)からシャドー・ノード620(1)を通じ、シャドー・ノード620(2)に向かう経路は、入り口ノード610(2)からノード615(3)およびノード615(4)への経路と同じである。たとえば、シャドー・ノード620は、ノード615(3〜4)を表す、または示唆するスパース・ツリー(sparse tree)の一部の場合がある。シャドー・ノード620の追加およびクエリ625の接続は、本明細書に記述したように、ユーザまたはソーシャル・ネットワークのプロバイダ/所有者による要求の認証または承認に続いて実行することができる。
クエリ625は、葉ノード635だけでなく、図6に示していない他のノードも含むことができる、ノード615(4)のサブツリー630で動作するように規定することができる。次に、ソーシャル・グラフへのインターフェースは、新しいノード620(2)にクエリを接続することによって修正することができる。開発者もしくはサード・パーティ、または他のエンティティは、新しいクエリを利用するアプリケーションまたはサービスを開発するために、修正されたインターフェースを使用することができる。たとえば、加入者(Joe Subscriber)に対するAPIを拡張することができるため、ここで、Frank Friendlyに関連するURI
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/CloseFriends/Frank.Friendly/FriendsLists/CloseFriends/number?friend=Nancy.Friendly&phone−number−202−555−1414
に対するGET要求を行うことができる。クエリ625に対するアドレス/要求に示された経路を「たどり」、ノード615(3〜4)によって示された経路とのシャドー・ノード620(1〜2)によって示された経路とを一致させるために、経路一致技術、または他の技術を使用することができる。次に、クエリ625は、サブツリー630で実行することができる。したがって、シャドー・ノード620を使用することで、他の加入者に所有されるか、または他の加入者に関連するソーシャル・グラフの部分で動作する1人の加入者に対するクエリを規定することを開発者またはサード・パーティに許可するために、ソーシャル・グラフ600へのインターフェースを拡張することを可能にすることができる。
図7は、ソーシャル・グラフへのインターフェースを修正するための方法700の第2の代表的な実施形態を概念的に示している。方法700の第2の代表的な実施形態は、図3に示した方法300の第1の代表的な実施形態とは異なる。その理由は、挿入されたノードはシャドー・ノードであり、接続されたクエリは、他のユーザに関連するノードで動作できるためである。図示する実施形態では、クエリは、たとえば、加入者が、クエリを利用するサービスを呼び出すことに応答して、開発者またはサード・パーティによって生成される(705)。次に、開発者またはサード・パーティは、ソーシャル・グラフのユーザの部分にシャドー・ノードを作成し、新しく作成されたシャドー・ノードにクエリを接続するために、要求を送信することができる(710)。たとえば、本明細書に記述するように、クエリ表現は、ソーシャル・グラフへのAPIのプログラマのビューの修正を要求するREST−ful POST要求として書き込むことができる。
図示する実施形態では、要求は、ユーザからの承認を必要とする場合がある。ユーザ承認プロセスは、ソーシャル・グラフに新しいノードを挿入することをユーザが承認したことを検証するために実行することができる(715)。本明細書に記述するように、ユーザ承認は、様々な技術を使用して実行することができる。ユーザが確認または認証を提供しなければ、要求は拒否される(720)。ユーザが要求を確認または認証すれば、要求を続行することができる。図示する実施形態では、要求は、また、ソーシャル・ネットワーク(SN)サービスのプロバイダまたは所有者から承認を必要とする場合がある。本明細書に記述したように、プロバイダ承認プロセスは、ソーシャル・グラフに新しいノードを挿入することをプロバイダ/所有者が承認したことを検証するために実行することができる(725)。プロバイダが確認または認証を提供しなければ、要求は拒否される(720)。プロバイダが要求を確認または認証すれば、要求を続行することができる。本開示の恩恵を受ける当業者は、図7に示した特定の認証シーケンスは、説明を意図したものであることを理解されたい。代替実施形態は、同時または図7に示したものとは異なる順序で、加入者およびプロバイダの認証プロセスを実行することができる。さらに、他の代替実施形態は、両方ではなく、加入者認証またはプロバイダ認証のみを実行することができるか、または認証をまったく実行しない場合がある。
要求が承認されたら、要求されたシャドー・ノードは、ソーシャル・グラフ内の選択された位置に挿入することができる(730)。次に、ソーシャル・グラフへのインターフェースは、新しいシャドー・ノードにクエリを接続する(735)ことによって修正することができる。開発者もしくはサード・パーティ、または他のエンティティは、次に、本明細書に記述したように、ソーシャル・グラフ・ノードの部分のノードで動作し、他のユーザに関連する、新しいクエリを利用するアプリケーションまたはサービスを開発するために、修正されたインターフェースを使用できる場合がある。修正は、たとえば、対応するHTTP DELETE要求によって撤回することができる。一実施形態では、クエリを挿入するためのメカニズムは、エンド・ユーザに関連するレコードを作成することの場合がある。挿入されたレコードは、GET要求で使用されるクエリおよび関連する経路を含むことができる。様々な実施形態において、ウェブ・サービスは、1つまたは複数のクエリ言語をサポートし、クエリ言語に伴うスキーマを公開する。
図8は、ソーシャル・グラフへの修正されたアプリケーション・プログラミング・インターフェースをクエリする方法800の第2の代表的な実施形態を概念的に示す図である。図示する実施形態では、方法800は、ユーザごとおよびアプリケーションごとにアプリケーション・プログラミング・インターフェースを修正するため、インターフェースは、いつでも全体的に変更されるのではなく、修正されたインターフェースを使用するサービスを特定のユーザが呼び出した場合のみ変更され、一部の実施形態では、関係するサービスを呼び出し、ソーシャル・グラフの関連する部分へのインターフェースの修正を承認したユーザに対してのみである。方法800の第2の代表的な実施形態は、図4に示した方法400の第1の代表的な実施形態とは異なる。その理由は、挿入されたノードはソーシャル・グラフのシャドー・ノードであり、接続されたクエリは、他の加入者に関連するノードで動作できるためである。
図示する実施形態では、1人または複数のユーザは、サービスまたはアプリケーションを開始することができる(805)。開始されたアプリケーションは、プロバイダによって規定されたAPIによってサポートされないクエリを利用することができる。さらに、クエリは、ソーシャル・ネットワークの他のユーザのサブツリーのノードで動作することができる。次に、1つまたは複数の新しいシャドー・ノードは、要求するユーザのサブツリーで作成することができ、また、クエリは新しいシャドー・ノードに接続することができる(810)。本明細書に記述したように、シャドー・ノードを作成し(810)、ソーシャル・ネットワークへの他の加入者のサブツリーを通る経路に一致するか、または対応する場所で、ソーシャル・グラフに挿入することができる。シャドー・ノードを作成し、クエリを接続するための技術の実施形態は、図7に示している。
次に、(たとえば、サービス・プロバイダによって所有または運用される1つまたは複数のサーバで実装されたソフトウェアを使用する)サービス・プロバイダは、サービスに関連するクエリを監視することができる(810)。サービス・プロバイダがクエリを検出(815)しない限り、監視を継続することができる。たとえばユーザによって要求または呼び出されたサービスの一部として実行されたクエリなど、サービス・プロバイダがクエリを検出する場合(815)、たとえばパターン一致技術を使用するなど、1つまたは複数の他のサブツリーのシャドー・ノードおよび対応するノードを識別(820)するために、クエリを使用することができる。クエリは、他のユーザのソーシャル・グラフのノードのサブツリーに含まれる情報に対して実行することができる(825)。たとえば、クエリは、ブール値、カウント値、またはクエリに接続されたシャドー・ノードによって示されたノードのサブツリーに含まれる情報に基づいて決定された他の値を返すことができる(825)。本明細書に記述したように、シャドー・ノードは、シャドー・ノードを利用するサービスまたはアプリケーションの終了に応答して削除または取り除くことができる。
図9は、ソーシャル・グラフの部分を格納する、ソーシャル・グラフへのアプリケーション・プログラミング・インターフェースを実装する、ソーシャル・グラフのリソースへのアクセス制御を提供する、またはソーシャル・ネットワーク・サービスを実装するために使用できる、サーバ900の代表的な一実施形態を概念的に示している。図示する実施形態では、サーバ900は、プロセッサ905、データ記憶装置910、および入力/出力(I/O)インターフェース915を含む。プロセッサ905は、たとえば、データ記憶装置910または他の場所に格納されたデータまたは命令を使用するなど、サーバ900の動作を制御するように構成される。サーバ900によって実行できる動作の実施形態は、図1〜図8に関連して本明細書に記述している。一実施形態では、データ記憶装置910は、ソーシャル・グラフのリソースにアクセス制御を提供する情報を含むソーシャル・グラフへの1つまたは複数のアプリケーション・プログラミング・インターフェースを表す情報920、ソーシャル・グラフの部分を表す情報925、またはソーシャル・グラフに格納された情報を使用できるソーシャル・ネットワーク・サービスを表す情報930を格納する。
図9は単一のサーバ900を示しているが、本開示の恩恵を受ける当業者は、代替実施形態は、複数のサーバを使用し、複数のサーバの全体にわたり図9に示した機能の部分を分散することができることを理解されたい。一部の実施形態では、サーバ900はバーチャル・マシンの場合がある。これらの実施形態の一部では、バーチャル・マシンは、異なるマシンからのコンポーネントを含む場合も、または地理的に分散している場合もある。たとえば、データ記憶装置910およびプロセッサ905は、2台の異なる物理的なマシンにある場合がある。ソーシャル・ネットワーク・サービス930など、プロセッサで実行可能なプログラムがプロセッサ905で実装される場合、特定の論理回路と同様に動作する一意のデバイスを提供するために、プログラム・コード・セグメントはプロセッサ905と組み合わせられる。
開示した内容および対応する詳細な記述の部分は、ソフトウェア、またはアルゴリズムおよびコンピュータ・メモリ内のデータ・ビットの動作を記号で表現したものに関して示したものである。これらの記述および表現は、当業者が他の当業者に仕事の本質を効果的に伝達するものである。本明細書で使用し、一般的に使用されるアルゴリズムという用語は、望ましい結果につながる首尾一貫した連続したステップであると考えられる。ステップは、物理量の物理的な操作を必要とするものである。通常、必須ではないが、これらの量は、格納、転送、組み合わせ、比較、または操作可能な光学的、電気的、または磁気的な信号の形をとる。これらの信号は、主に一般的に使用する理由から、ビット、値、要素、記号、文字、用語、数値などと呼ぶことが便利であると分かっている。
しかし、これらおよび同様の用語はすべて、適切な物理量に関連しており、これらの量に適用される便利なラベルにすぎないことを覚えておくべきである。特に別記しない限り、または記述から明白でない限り、「処理」または「コンピューティング」または「計算」または「決定」または「表示」などの用語は、コンピュータ・システムのレジスタおよびメモリ内の物理的な電子量として表されたデータを操作し、コンピュータ・システムのメモリもしくはレジスタ、または他のそのような情報記憶装置、伝送デバイスもしくは表示デバイス内の物理量として同様に表される他のデータへと変形するコンピュータ・システム、または同様の電子計算デバイスの動作およびプロセスを指すものである。
また、開示された内容のソフトウェアに実装された態様は、典型的に、プログラム記憶媒体の一形式で符号化されるか、または何らかの伝送媒体を通じて実装されることに注意すること。プログラム記憶媒体は、磁気的(たとえば、フロッピー・ディスクまたはハードドライブ)、または光学的(たとえば、コンパクト・ディスクを使った読み出し専用メモリ、または「CD ROM」)でもよく、読み出し専用またはランダム・アクセスでもよい。同様に、伝送媒体は、ツイストペア線、同軸ケーブル、光ファイバ、または当技術分野で知られている他の何らかの適切な伝送媒体でもよい。開示された内容は、特定の実装のこれらの態様によって限定されるものではない。
上に開示した特定の実施形態は例を示しているにすぎず、開示した内容は、本明細書の教示の利益を受ける当業者に明白な、異なるが同等の方法で修正および実施することができる。さらに、以下の特許請求の範囲に記述した以外、本明細書に示した構造または設計の詳細に限定することを意図するものではない。したがって、上に開示した特定の実施形態は変更または修正することができ、そのような変形形態はすべて、開示された内容の範囲内にあると考えられることは明白である。したがって、本明細書に求められる保護は、以下の特許請求の範囲に記述するとおりである。

Claims (14)

  1. ノード間の関係を表すエッジによって接続されたノードを含むソーシャル・グラフへのインターフェースを修正するステップを含み、前記ノードは、前記ソーシャル・グラフのユーザに関連する複数のツリーを形成し、前記インターフェースを修正するステップは、
    少なくとも1つのユーザのツリーに第1のノードを追加するステップと、
    前記第1のノードに少なくとも1つのクエリを接続するステップであって、前記少なくとも1つのクエリは、前記第1のノードのサブツリーで動作する、ステップとを含み、
    さらに前記インターフェースは、少なくとも1人のユーザが、前記サブツリーで前記少なくとも1つのクエリを実行するように構成されたサービスを呼び出すことに応答して修正される
    方法。
  2. 前記少なくとも1つのユーザのツリーに前記第1のノードを追加するステップは、前記少なくとも1人のユーザが、前記第1のノードを追加することを承認した、または前記ソーシャル・グラフを所有するサービス・プロバイダが、前記第1のノードを追加し、前記第1のノードに前記少なくとも1つのクエリを接続することを承認したと決定したことに応答して前記第1のノードを追加するステップを含む請求項1に記載の方法。
  3. 前記第1のノードに前記少なくとも1つのクエリを接続するステップは、サード・パーティ開発者によって規定されたクエリまたは前記ソーシャル・グラフを所有するサービス・プロバイダによって規定された1組のクエリから選択されたクエリの少なくとも1つを接続するステップを含む請求項1に記載の方法。
  4. 前記第1のノードを追加するステップは、少なくとも1つの他のユーザのツリーにおいて第2のノードに関連するシャドー・ノードを追加するステップを含み、前記第1のノードに前記少なくとも1つのクエリを接続するステップは、前記シャドー・ノードに少なくとも1つのクエリを接続するステップを含み、前記シャドー・ノードに接続された前記少なくとも1つのクエリは、前記少なくとも1つの他のユーザのツリーにおいて前記第2のノードのサブツリーで動作する請求項1に記載の方法。
  5. 前記ノード間の関係を表すエッジによって接続されたノードを含むソーシャル・グラフの一部に対してクエリを実行するように構成されたサービスを呼び出すステップであって、前記ノードは、ユーザに関連する複数のツリーを前記ソーシャル・グラフへと形成する、ステップと、
    前記サービスを呼び出したユーザに関連するツリーにノードを追加することによる前記ソーシャル・グラフへのインターフェースの修正を承認する要求を受信するステップであって、前記インターフェースは、前記ノードに少なくとも1つのクエリを接続することによって修正され、前記少なくとも1つのクエリは、前記追加されたノードのサブツリーで動作する、ステップと
    を含む方法。
  6. 前記インターフェースを修正する要求を承認するステップを含み、前記ソーシャル・グラフへの前記インターフェースは、前記要求の承認に応答して修正される請求項5に記載の方法。
  7. 前記サービスの操作は、前記ソーシャル・グラフへの前記インターフェースの修正に応答して開始され、前記サービスの終了を要求するステップをさらに含み、前記ノードを削除する要求は、前記サービスの終了に対する要求に応答して提供され、前記ノードを削除した後に前記サービスを終了する請求項6に記載の方法。
  8. ソーシャル・グラフの部分に関連する少なくとも1つのクエリに対するサポートを提供することによって、ユーザに関連する前記ソーシャル・グラフの一部分へのインターフェースを修正するステップであって、前記インターフェースは、前記ユーザが、前記少なくとも1つのクエリを実装するサービスを呼び出すことに応答して修正される、ステップと、
    前記ユーザに関連する前記ソーシャル・グラフの部分に対して前記少なくとも1つのクエリを実行するステップと
    を含む方法。
  9. 前記インターフェースを修正するステップは、前記ユーザのツリーにノードを追加するステップと、前記ノードに前記少なくとも1つのクエリを接続するステップとを含み、前記少なくとも1つのクエリは、前記ノードのサブツリーで動作する請求項8に記載の方法。
  10. 前記インターフェースを修正するステップは、前記ユーザのツリーにシャドー・ノードを追加するステップと、前記シャドー・ノードに前記少なくとも1つのクエリを接続するステップとを含み、前記少なくとも1つのクエリは、他のユーザのツリーにおいてノードのサブツリーで動作し、前記シャドー・ノードは、前記他のユーザのツリーの前記ノードに関連し、前記少なくとも1つのクエリを実行するステップは、前記他のユーザのツリーにおいて前記ノードの前記サブツリーで前記少なくとも1つのクエリを実行するステップを含む請求項9に記載の方法。
  11. 前記ユーザが前記サービスを呼び出すことに応答して、前記ユーザまたは前記ソーシャル・グラフを所有するサービス・プロバイダの少なくとも1つから前記インターフェースを修正するための承認を要求するステップを含み、前記インターフェースを修正するステップは、前記ユーザまたは前記サービス・プロバイダの少なくとも1つから修正に対する承認を受信することに応答して、前記インターフェースを修正するステップを含む請求項8に記載の方法。
  12. ソーシャル・グラフの部分にアクセス制御を提供するための装置であって、データ記憶装置と、前記データ記憶装置に通信するように結合されたプロセッサとを含み、前記プロセッサは、請求項1乃至4のいずれか1項に記載した方法を実行するように構成されている装置。
  13. ソーシャル・グラフの部分にアクセス制御を提供するための装置であって、データ記憶装置と、前記データ記憶装置に通信するように結合されたプロセッサとを含み、前記プロセッサは、請求項5乃至7のいずれか1項に記載した方法を実行するように構成されている装置。
  14. ソーシャル・グラフの部分にアクセス制御を提供するための装置であって、データ記憶装置と、前記データ記憶装置に通信するように結合されたプロセッサとを含み、前記プロセッサは、請求項8乃至11のいずれか1項に記載した方法を実行するように構成されている装置。
JP2015501831A 2012-03-19 2013-03-18 クエリ言語を使用してウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張する方法 Active JP6181740B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/423,697 2012-03-19
US13/423,697 US9047643B2 (en) 2012-03-19 2012-03-19 Method of extending web service application programming interfaces using query languages
PCT/US2013/032759 WO2013142405A2 (en) 2012-03-19 2013-03-18 Method of extending web service application programming interfaces using query languages

Publications (2)

Publication Number Publication Date
JP2015520878A true JP2015520878A (ja) 2015-07-23
JP6181740B2 JP6181740B2 (ja) 2017-08-16

Family

ID=48045113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015501831A Active JP6181740B2 (ja) 2012-03-19 2013-03-18 クエリ言語を使用してウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張する方法

Country Status (6)

Country Link
US (1) US9047643B2 (ja)
EP (1) EP2828770B1 (ja)
JP (1) JP6181740B2 (ja)
KR (1) KR101692208B1 (ja)
CN (1) CN104169915B (ja)
WO (1) WO2013142405A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11164132B2 (en) 2012-05-14 2021-11-02 Organimi Inc. Method and system for generating and modifying electronic organizational charts
CA2776931A1 (en) * 2012-05-14 2013-11-14 Eric Apps Creation, management and interaction of users, profiles and relationships across multiple organizations using a dynamic, online application
US9311373B2 (en) 2012-11-09 2016-04-12 Microsoft Technology Licensing, Llc Taxonomy driven site navigation
US9338062B2 (en) * 2013-03-25 2016-05-10 Encompass Corporation Pty Ltd Information displaying method and apparatus
US10146512B1 (en) * 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
US10176263B2 (en) * 2015-09-25 2019-01-08 Microsoft Technology Licensing, Llc Identifying paths using social networking data and application data
KR102607216B1 (ko) 2016-04-01 2023-11-29 삼성전자주식회사 진단 모델 생성 방법 및 이를 위한 진단 모델 생성 장치
US10924467B2 (en) 2016-11-04 2021-02-16 Microsoft Technology Licensing, Llc Delegated authorization for isolated collections
US10514854B2 (en) 2016-11-04 2019-12-24 Microsoft Technology Licensing, Llc Conditional authorization for isolated collections
AU2017265144B2 (en) 2016-12-02 2022-04-14 Encompass Corporation Pty Ltd Information retrieval
CN112214694B (zh) * 2019-07-10 2023-03-14 浙江宇视科技有限公司 可见节点查询方法及装置、终端设备及可读存储介质
CN112333085B (zh) * 2020-10-30 2023-02-03 维沃移动通信有限公司 社交方法和电子设备
US20220308918A1 (en) * 2021-03-23 2022-09-29 Paypal, Inc. Automated generation of conversational workflows for automation chatbots
CN115048386A (zh) * 2022-06-28 2022-09-13 支付宝(杭州)信息技术有限公司 一种业务执行方法、装置、存储介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009505286A (ja) * 2005-08-18 2009-02-05 マイクロソフト コーポレーション 共通する知り合いへの公開記述子による注釈添付
JP2010272141A (ja) * 2004-03-15 2010-12-02 Yahoo Inc 信頼性ネットワークからのユーザ注釈を一体化したサーチシステム及び方法
JP2011504255A (ja) * 2007-10-22 2011-02-03 マイクロソフト コーポレーション アクセス制御リストを顧慮したソーシャル・ネットワークの使用
WO2011038491A1 (en) * 2009-09-30 2011-04-07 Evan V Chrapko Systems and methods for social graph data analytics to determine connectivity within a community

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2534360B2 (ja) * 1988-09-26 1996-09-11 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 接続方法、ノ―ド接続方法、デ―タ処理方法、及び木内にノ―ドを挿入する方法
US5892513A (en) 1996-06-07 1999-04-06 Xerox Corporation Intermediate nodes for connecting versioned subtrees in a document management system
US7467212B2 (en) 2000-12-28 2008-12-16 Intel Corporation Control of access control lists based on social networks
US20020131431A1 (en) 2001-03-14 2002-09-19 Wank Richard B. Method and apparatus for a network element to support a communication link in a communication network
US7069308B2 (en) 2003-06-16 2006-06-27 Friendster, Inc. System, method and apparatus for connecting users in an online computer system based on their relationships within social networks
US7853661B2 (en) 2006-01-03 2010-12-14 Microsoft Corporation Remote access and social networking using presence-based applications
WO2008089154A2 (en) 2007-01-12 2008-07-24 Geni, Inc. A system and method for providing a networked viral family tree
WO2008112293A1 (en) 2007-03-13 2008-09-18 Facebook, Inc. Systems and methods for network authentication
US8862622B2 (en) * 2007-12-10 2014-10-14 Sprylogics International Corp. Analysis, inference, and visualization of social networks
ATE544104T1 (de) * 2008-09-12 2012-02-15 Siemens Ag Verfahren zur einräumung einer zugriffsberechtigung auf ein rechnerbasiertes objekt in einem automatisierungssystem, computerprogramm und automatisierungssystem
US8024317B2 (en) 2008-11-18 2011-09-20 Yahoo! Inc. System and method for deriving income from URL based context queries
KR101107326B1 (ko) 2008-12-02 2012-01-20 한국전자통신연구원 센서 네트워크에서의 이웃 노드 발견 및 보고 방법
US8799315B2 (en) 2009-01-30 2014-08-05 International Business Machines Corporation Selective construction of data search result per search request specifying path information
US20110258203A1 (en) 2010-04-16 2011-10-20 Wouhaybi Rita H Methods and systems for relationship characterization and utilization from a user's social networks
US8180804B1 (en) * 2010-04-19 2012-05-15 Facebook, Inc. Dynamically generating recommendations based on social graph information
US20120066118A1 (en) 2010-09-13 2012-03-15 Dantas Kelly C F Interface Integration Application Connection between Websites and Social Network in Addition with the Social Network Tree Chart System

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010272141A (ja) * 2004-03-15 2010-12-02 Yahoo Inc 信頼性ネットワークからのユーザ注釈を一体化したサーチシステム及び方法
JP2009505286A (ja) * 2005-08-18 2009-02-05 マイクロソフト コーポレーション 共通する知り合いへの公開記述子による注釈添付
JP2011504255A (ja) * 2007-10-22 2011-02-03 マイクロソフト コーポレーション アクセス制御リストを顧慮したソーシャル・ネットワークの使用
WO2011038491A1 (en) * 2009-09-30 2011-04-07 Evan V Chrapko Systems and methods for social graph data analytics to determine connectivity within a community

Also Published As

Publication number Publication date
CN104169915B (zh) 2017-08-11
EP2828770B1 (en) 2020-07-08
KR101692208B1 (ko) 2017-01-17
KR20140126751A (ko) 2014-10-31
US9047643B2 (en) 2015-06-02
US20130246453A1 (en) 2013-09-19
WO2013142405A3 (en) 2013-11-21
EP2828770A4 (en) 2016-01-13
JP6181740B2 (ja) 2017-08-16
EP2828770A2 (en) 2015-01-28
WO2013142405A2 (en) 2013-09-26
CN104169915A (zh) 2014-11-26

Similar Documents

Publication Publication Date Title
JP6181740B2 (ja) クエリ言語を使用してウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張する方法
JP6444855B2 (ja) クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法
US11805180B2 (en) Native activity tracking using credential and authentication management in scalable data networks
US20210328963A1 (en) System and method for enabling real-time eventing
US11936652B2 (en) Proxied multi-factor authentication using credential and authentication management in scalable data networks
US10785222B2 (en) Credential and authentication management in scalable data networks
EP3695563B1 (en) Apparatus, method, and computing device for selectively granting permissions to group-based objects in a group-based communication system
US8683322B1 (en) Method, system and computer program product for structuring unstructured data originating from uncontrolled web application
KR102433089B1 (ko) 제 3 자 애플리케이션 활동 데이터 수집을 위한 시스템 및 방법
US10693971B2 (en) Identifying the best suitable application to open a file shared via a link
US8627411B2 (en) Techniques to share binary content
US20230137345A1 (en) System and method for decentralized user controlled social media
Yuan Cloud Services Provider

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170720

R150 Certificate of patent or registration of utility model

Ref document number: 6181740

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250