JP2015531941A - グラフ照会ロジック - Google Patents

グラフ照会ロジック Download PDF

Info

Publication number
JP2015531941A
JP2015531941A JP2015529968A JP2015529968A JP2015531941A JP 2015531941 A JP2015531941 A JP 2015531941A JP 2015529968 A JP2015529968 A JP 2015529968A JP 2015529968 A JP2015529968 A JP 2015529968A JP 2015531941 A JP2015531941 A JP 2015531941A
Authority
JP
Japan
Prior art keywords
query
graph
data items
data item
data
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
JP2015529968A
Other languages
English (en)
Other versions
JP6200505B2 (ja
JP2015531941A5 (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 JP2015531941A publication Critical patent/JP2015531941A/ja
Publication of JP2015531941A5 publication Critical patent/JP2015531941A5/ja
Application granted granted Critical
Publication of JP6200505B2 publication Critical patent/JP6200505B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • 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/9024Graphs; Linked lists
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一実施形態の方法は、1つまたは複数のグラフであって、各グラフが階層フォーマットに構成された1つまたは複数のノードを含むものであり、各ノードが1つまたは複数のデータ項目を表すものである前記1つまたは複数のグラフを格納し、前記グラフ内の1つまたは複数の特定のデータ項目を要求する第1の照会であって、階層フォーマットを有する言語で表される前記第1の照会にアクセスし、前記グラフから前記特定のデータ項目を取り出し、前記特定のデータ項目を階層フォーマットに編成し、前記第1の照会に応答して前記特定のデータ項目を出力することを備える。

Description

本開示は、一般には、情報記憶、検索、および処理を含む情報管理に関する。
データまたは情報は特定のフォーマットに従って編成および格納される。その後で、特定のいくつかの格納されたデータまたは情報はストレージから取り出される。
格納されたデータまたは情報を取り出す実際の手段は、データまたは情報を編成および格納するのに使用される特定のフォーマットに依存することがある。例えば、データが表フォーマットに従って(例えば、列、行、およびセルを有する表で)編成および格納される場合、特定のいくつかのデータを取り出すために、所望のいくつかのデータが格納される特定の列、行、またはセルを識別することが必要であることがある。
いくつかの特定の実施形態では、各階層中に任意の数のノードを含み得る1つまたは複数の階層型グラフ内にデータ項目が編成および格納される。グラフ内の特定のノード間に関係が存在することがあり、その関係は、対応するノードによって表されるデータ項目間に存在する関係を反映し得る。したがって、グラフの構造はそのグラフ内に含まれる個々のデータ項目間の関係を反映し得る。
いくつかの特定の実施形態では、グラフ内に格納されたデータを求めてグラフに照会し、グラフから特定のデータ項目を取り出すアプリケーションプログラミングインターフェース(API)が提供される。さらに、グラフ内に格納される特定のデータ項目を求める照会は階層構造を有する言語で表現され得る。取り出されたデータ項目も階層構造で編成される。
いくつかの特定の実施形態では、APIは任意の数のバージョンを有し得る。APIの各バージョンに関連して任意の数の照会スキーマが存在し得る。照会スキーマは、グラフ内で利用可能な様々なデータタイプと、グラフからどれほど異なるタイプのデータを取り出すことができるかを含むことができる。照会スキーマを使用して、APIの異なるバージョンが検査および検証され得る。
いくつかの特定の実施形態では、グラフ内に格納されたデータ項目は、様々なデータタイプを有し得る。アプリケーションは、APIから返されるデータ項目のデータタイプおよびデータ構造を求めてAPIに照会し得る。
階層構造を有する例示的グラフを示す図。 階層型グラフから特定のデータ項目を取り出す例示的方法を示す図。 スキーマに基づいてアプリケーションプログラミングインターフェースのバージョンを検証する例示的方法を示す図。 内観的照会(introspection query)に基づいて階層型グラフからデータ項目を取り出す例示的方法を示す図。 例示的コンピュータシステムを示す図。
いくつかの特定の実施形態では、階層構造をそれぞれ有する任意の数のグラフ内にデータが編成および格納され得る。各グラフは、各階層中に任意の数のノードを含み得る。すなわち、1つのグラフ内に任意の数のレベルがあり、各レベルには任意の数のノードがある。各ノードは、いくつかの特定のデータ項目を表すことができ、またはいくつかの特定のデータ項目を格納するのに使用することができる。グラフ内の特定のノード間に関係が存在することがあり、その関係は、これらの対応するノードによって表される特定のデータ項目間の関係を反映し得る。したがって、グラフの構造はそのグラフ内に含まれる個々のデータ項目間の関係を反映し得る。いくつかの特定の実施形態では、データ項目は様々なタイプを有し得る。
いくつかの特定の実施形態では、グラフ内に格納されたデータを求めてグラフに照会し、グラフから特定のデータ項目を取り出すアプリケーションプログラミングインターフェース(API)が提供される。いくつかの特定の実施形態では、グラフ内に格納される特定のデータ項目を求める照会は、階層構造を有する言語で表現される。したがって、照会自体が階層構造を有する。いくつかの特定の実施形態では、照会によって指定される所望のデータ項目がグラフ内で見つかると、データ項目がまたはより具体的にはこれらのデータ項目を表すかまたは含むノードが、照会に応答してグラフから取り出される。取り出されたデータ項目も階層構造で編成される。
いくつかの特定の実施形態では、APIは任意の数のバージョンを有し得る。一例を挙げると、APIは古いバージョンから新しいバージョンに時々更新され得る。別の例を挙げると、異なるプラットフォーム(例えば、モバイル、デスクトップ、ウェブベース)のために開発された異なるバージョンのAPIが存在することがある。いくつかの特定の実施形態では、APIの各バージョンに関連して任意の数の照会スキーマが存在し得る。照会スキーマは、グラフ内で利用可能な様々なデータタイプと、グラフからどれほど異なるタイプのデータを取り出すことができるかを含み得る。
いくつかの特定の実施形態では、正しく機能することが知られているAPIの第1のバージョンが与えられると、第1および第2のバージョンにそれぞれ関連する複数の照会スキーマを使用して第2のバージョンのAPIがテストされて、第2のバージョンも正しく機能することが確認され得る。第2のバージョンのAPIに関連する照会スキーマは第1のバージョンに関連する照会スキーマと比較されて、例えば、第1のバージョンに関連する照会スキーマ内に存在するすべてのデータタイプが第2のバージョンに関連する照会スキーマ内にも存在することを確認することができ、第2のバージョンに関連する照会スキーマを使用してグラフから様々なタイプのデータを照会し取り出すことにより、第1のバージョンに関連する照会スキーマを使用するのと同一の結果が得られる。
いくつかの特定の実施形態では、グラフ内に格納されたデータ項目は様々なデータタイプを有し得る。アプリケーションは、APIから返されるデータ項目のデータタイプおよびデータ構造を求めてAPIに照会し得る。いくつかの特定の実施形態では、アプリケーションは、特定のデータタイプを求める内観的照会(すなわち、特定のデータタイプのコンテンツまたはデータ構造を検査することを求める要求)を生成し得る。アプリケーションは、APIに内観的照会をサブミットし、特定のデータタイプのデータ構造をグラフから取り出し得る。アプリケーションは、内観的照会によって取り出されたデータ構造に基づいて、特定のデータタイプを有するデータ項目をグラフに要求するデータ照会を構築し得る。
図1は階層構造を有する例示的グラフ100を示す。グラフ100は任意の数のレベルの階層内に任意の数のノードを有し得る。階層の各レベルには1つまたは複数のノードが存在し得る。様々なタイプの関係がいくつかの特定のノード間に存在することができ、当該関係が階層の構造に反映され得る。例えば、2つの特定のノード間に親子関係が存在することがある。図1では、ノード110Aがノード110B、110C、および110Dの親であり、逆に、ノード110B、110C、および110Dはいずれもノード110Aの子であり得る。一般には、ひとつのノードは任意の数の子または親を有し得る。別の例では、2つの特定のノード間に兄弟関係が存在することがある。図1では、ノード110B、110C、および110Dは共通の親ノード110Aを共有する兄弟である。第3の例を挙げると、2つの特定のノード間に接続が存在してもよい。図1では、ノード110Aおよび110Eの間にひとつの接続が存在する。
いくつかの特定の実施形態では、データはグラフ100などの階層型グラフに編成され格納される。グラフ内の各ノードは、いくつかの特定のデータ項目を表すかまたは含み得る。グラフの構造はノード間の関係を反映し、したがってこれらのノードによって表されるかまたはこれらのノード内に含まれる特定のデータ項目間の関係を反映する。
いくつかの特定の実施形態では、ソーシャルネットワーキングシステムに関連するデータまたは情報が、任意の数の階層型グラフ内に格納され得る。ソーシャルネットワーキングシステムに関連する様々なタイプのデータがあり、いくつかの特定のデータ項目は特定のノードによって表されるかまたは特定のノード内に含まれる。例えば、いくつかのノードは、ソーシャルネットワーキングシステムの個々のユーザを表すことができ、そのようなノードのうちの2つに対応する2人のユーザがソーシャルネットワーキングシステム内の「友人」である場合に、当該2つのノードは接続され得る。いくつかのノードは、特定のユーザによって実施される活動(例えば、オンラインまたはオフライン)を表してもよい。ユーザを表すノードと、そのユーザによって実施される活動を表すノードとは接続され得る。さらに、ユーザを表すノードは、そのユーザによって実施される活動を表すノードの親とみなすことができ、ユーザと活動との間の関係(すなわち、ユーザが活動を実施する)を反映する。いくつかのノードは、特定のユーザに関連するコンテンツ(例えば、画像、ビデオ、ポスト、メッセージ、フィード)を表し得る。ノードおよびその子ノードは、フォトアルバムおよびそのフォトアルバムに属する特定の写真をそれぞれ表してもよい。この場合、フォトアルバムを表すノードと、そのフォトアルバムに属する画像を表す各ノードとの間に接続が存在し得る。別のノードおよびその子ノードは、ユーザおよびそのユーザによってアップロードされたフォトアルバムをそれぞれ表すことがある。
いくつかの特定の実施形態では、データ(例えば、ソーシャルネットワーキングシステムに関連するデータ)を含むグラフは、(例えば、データストアまたはメモリ内に)格納され、所望されるときにはいつでもグラフから特定のデータ項目を取り出し得る。いくつかの特定の実施形態では、グラフ内に格納されたデータを求めてグラフに照会し、グラフから特定のデータ項目を取り出すAPIが提供される。
図2は階層型グラフから特定のデータ項目を取り出す例示的方法を示す。いくつかの特定の実施形態では、データが階層型グラフ内に格納され、グラフ内の各ノードが1つまたは複数の特定のデータ項目を含むかまたは表すものと想定する。ユーザは、APIを使用して、これらの階層型グラフ内に格納された特定のデータ項目を照会し得る。
いくつかの特定の実施形態では、図2に示す方法は、ユーザが階層型グラフから取り出すべき特定のデータ項目を識別する照会を送り得るステップ210で開始される。例えば、適切なコンピュータまたは通信接続(例えば、ワイヤレスまたはワイヤーライン接続)を介して、ユーザ装置(例えば、モバイルまたは非モバイルユーザ装置)から、グラフを管理するコンピューティングシステム(例えば、サーバ)に照会は送られる。いくつかの特定の実施形態では、適切なAPI呼出しがユーザ装置によって起動されてサーバに照会を送る。
いくつかの特定の実施形態では、照会は階層構造を有する言語で表現される。さらに、いくつかの特定の実施形態では、言語は事前定義された構文を有してもよい。以下に例示的照会を示す。
この例では、「me」は、照会をサブミットするユーザであり、「id」は、オブジェクト(例えば、ユーザまたはデータ項目)に関連する固有の識別子である。この例示的照会は、「my_objects」という特定のタイプの最初の10個のデータ項目を要求する。この例示的照会が示すように、この照会は階層構造を有する。この階層のトップレベルは「me」である。「me」内にネスト化される第2のレベルは、「id」、「name」、および「my_objects」である。「my_objects」内にネスト化される第3のレベルは「nodes」である。以下同様である。
いくつかの特定の実施形態では、ステップ220で、照会で指定されるデータ項目がグループから取り出される。より具体的には、指定されるデータ項目を表すかまたは含むノードがグループから識別されて、これらのノードからデータ項目が取り出される。照会において特定のデータ項目がその固有の識別子、そのデータタイプ、または任意の他の適用可能な手段(例えば、1つまたは複数の基準を満たすデータ項目)によって識別され得る。
いくつかの特定の実施形態では、データ項目は特定のデータタイプを有し得る。例えば、1つのタイプのデータ項目は「user」でよく、別のタイプのデータ項目は「message post」でよく、第3のタイプのデータ項目は「image」でよく、以下同様である。本開示は任意の適用可能なデータタイプを企図する。いくつかの特定の実施形態では、新しいデータタイプが必要に応じて(例えば、システムマネージャ、またはユーザ、またはサードパーティ開発者によって)定義され追加され得る。これらのデータタイプの定義は、APIおよびグラフに関するスキーマを形成し得る。特定のデータタイプの定義は、どのようにそのタイプのデータ項目を照会し、グラフから取り出すことができるかを指定し得る。以下に、「node」と呼ばれるデータタイプの例示的定義を示す。この定義はデータタイプ「node」を記述し、この定義をスキーマ内に含めることができる。
この例示的データタイプでは、その定義によって定義されるように、このタイプの名前は「node」である。タイプのフィールドは「id」および「url」を含む。さらに、データタイプ自体およびそのフィールドのそれぞれの説明も定義内に含めることができる(例えば、APIコードの一部として)。
いくつかの特定の実施形態では、ユーザは、適切なAPI呼出しを起動して、スキーマで定義された特定のデータタイプに関する情報を求めてそのデータタイプを照会し得る。例えば、「node」を求めて照会するために、ユーザは、次のような照会をサブミットし得る。
照会は、タイプ「node」自体の名前および説明、ならびにタイプ「node」のフィールドの名前および説明を要求する。この照会の結果、以下の応答が得られる。
応答は、上記で示した「node」の定義で定義されるように、タイプ「node」およびそのフィールドのそれぞれ(すなわち、「id」および「url」)の名前および説明を含む。さらに、応答も、照会の階層構造に対応する階層構造に構成される。
この例が示すように、いくつかの特定の実施形態では、特定のデータタイプを記述する情報をそのデータタイプの定義内に含めることができる。APIを使用してデータ項目を照会するのと同様に、APIを使用してデータタイプの説明を照会し得る。この意味で、APIは自己ドキュメンティング(self−documenting)である。すなわち、データタイプのドキュメンテーションが、その定義の部分としてスキーマ内に含まれる。
いくつかの特定の実施形態では、階層型グラフ内に格納されたデータ項目のうちのいくつかまたはすべてに関連するプライバシー保護が存在し得る。あるデータ項目は、特定のリストのユーザによってのみアクセスでき、他のユーザによってアクセスできない。例えば、あるユーザが写真(すなわち、データ項目)をポストするとき、そのユーザは、そのユーザのソーシャルフレンドだけが写真を閲覧できるように指定し得る。この場合、このユーザと友人ではない他のユーザは、この特定の写真にアクセスすることが許可されない。
いくつかの特定の実施形態では、照会に応答してデータ項目を取り出すとき、特定のデータ項目に関連するプライバシー保護が考慮に入れられる。一例を挙げると、第1のユーザが照会を行って、第2のユーザ(例えば、第1のユーザの友人)によってポストされた最新10個のメッセージを要求する状況を想定する。照会に応答してこれらのメッセージを第1のユーザのために取り出すとき、第2のユーザによってポストされた各メッセージは、第1のユーザがそのメッセージにアクセス許可されているかどうかを判定するために解析され得る。第2のユーザによってポストされた最新10個のメッセージの中で、(例えば、第2のユーザによって指定される)3つは第3のユーザだけが閲覧することができ、7つは第1のユーザを含むすべてのユーザが閲覧できる状況を想定する。この場合、第1のユーザの照会に応答して、7つのメッセージだけが取り出される。第1のユーザは、第3のユーザだけが閲覧することのできる3つのメッセージを閲覧することが許可されないので、これらの特定のメッセージは、第1のユーザのために取り出されない。その代わりに、第1のユーザの照会によって要求されるように10個のメッセージを埋め合わせるために、第1のユーザの閲覧が許可される、第2のユーザによってポストされた(例えば、逆発生順(reverse chronological order)で識別される)3つのわずかに古いメッセージが取り出され、先述の7つのメッセージと組み合わされる。一方、第2のユーザによってポストされた最新10個のメッセージを要求するのが第3のユーザである場合、第3のユーザは、これらのメッセージのすべてを閲覧することを許可されるので、第3のユーザの照会に応答して、10個の最新のメッセージのすべてを取り出すことができる。この例が示すように、2人のユーザが同一の照会をサブミットするとき、データ項目に関連するプライバシー保護のために、その2人のユーザは応答として異なる結果を受信することがある。
いくつかの特定の実施形態では、多数のデータ項目の取り出しが一連の照会に応答して実行され得る。このことは、モバイル装置などのいくつかのタイプのユーザ装置にとって性能改善の点で役立つことがある。一例を挙げると、あるユーザが、当該ユーザのソーシャルフレンドのすべてによってポストされた最新100枚の写真を取り出して閲覧することを望む状況を想定する。100枚の写真を求める単一の照会をサブミットする代わりに、ユーザは、各照会が1度に10枚の写真を要求する一連の10個の照会をサブミットし得る。このようにして、ユーザは、他の写真が取り出されユーザの装置に送られる間に、いくつかの写真の閲覧を開始することができる。さらに、ユーザは、(例えば、すべての100枚の写真を一緒に閲覧するのではなく)ある時にいくつかの写真を閲覧し、別の時に残りの写真を閲覧することができる。
いくつかの特定の実施形態では、ユーザによってサブミットされた照会およびその応答が記録され得る。上記の例では、ユーザがそのユーザの友人によってポストされた最新10枚の写真を求める第1の照会をサブミットしたとき、ユーザにとってアクセス可能な10枚の最新の写真がグラフから取り出されユーザに送られ得る。さらに、ユーザに送られた10枚の写真がまたはその10枚の写真のうちの最後の1枚が記録されてもよい。その後ユーザが別の10枚の写真を求める第2の照会をサブミットしたとき、ユーザにとってアクセス可能な、逆発生順で前の10枚の写真の後から始まる2番目に新しい10枚の写真群がグラフから取り出されユーザに送られてもよい。この場合も、ユーザにこの時送られた10枚の写真群のうちの最後の1枚が記録されてもよい。ユーザがさらに別の10枚の写真を求める第3の照会をサブミットしたとき、ユーザにとってアクセス可能な、逆発生順で前の10枚の写真の後から始まる3番目に新しい10枚の写真群がグラフから取り出されユーザに送られ得る。以下同様である。このようにして、データ検索工程は、ユーザのためのページ付け(pagination)を自動的に処理する。
ステップ230で、取り出したデータ項目は階層フォーマットに従って編成され、照会をサブミットするユーザに送られる。時には、要求されたデータ項目を表すかまたは含むノードは、異なる複数のグラフに属することがある。この場合、当該データ項目は、適切な複数のグラフ内の適切な複数のノードから取り出されて、単一の階層構造に構成され得る。
いくつかの特定の実施形態では、出力されるデータ項目の階層構造は、照会の階層構造に対応し得る。照会がタイプ「node」自体の名前および説明と、その後に続くタイプ「node」のフィールドの名前および説明を要求する上記の例で示したように、出力されるデータ項目が階層構造に構成される。1つのレベルはタイプ「node」である。「node」内にネスト化される次のレベルは、タイプ「node」の名前、説明、フィールドである。「fields」内にネスト化されるさらに次のレベルは、タイプ「node」のフィールドのそれぞれの名前および説明である。出力されるデータ項目の構成は、照会の構成に対応する。
いくつかの特定の実施形態では、個々のデータタイプの定義は、1つまたは複数のスキーマを形成し得る。これらの定義はデータ項目がその定義に基づいて照会され取り出されるように、API内に含められ得る。多くの場合、異なるバージョンのAPIが存在し得る。例えば、時々、APIは古いバージョンから新しいバージョンに更新され得る。異なるプラットフォーム(例えば、モバイルと非モバイルの、異なるオペレーティングシステム)のために異なるバージョンのAPIを実装することができ、各バージョンは、対応するプラットフォームに特に適したコードを含むことになる。
いくつかの特定の実施形態では、スキーマを使用して、特定のバージョンのAPIがテストされ検証され得る。図3はスキーマを使用してAPIのバージョンを検証する例示的方法を示す。正しく機能することが知られている第1のバージョンのAPIがあると想定する。1つまたは複数のスキーマを第1のバージョンのAPIに関連付けることができ、これらのスキーマは、利用可能なすべてのデータタイプ(例えば、階層型グラフ内に格納されたデータ項目が属するデータタイプ)の定義を含むことができる。第2のバージョンのAPIが利用可能となる、とさらに想定する。
ステップ310で、第1のバージョンのAPIに関連するスキーマが記録され得る。次いで、第2のバージョンのAPIを使用して、(例えば、テストおよび検証のために)グループからデータ項目が取り出され得る。いくつかの特定の実施形態では、ステップ320において、例えば、第1のバージョンに関連するスキーマ内のデータタイプのすべての定義が第2のバージョンに関連するスキーマ内でも見つかること(すなわち、第2のバージョンに欠落しているデータタイプはない)、または第2のバージョンに関連するスキーマで見つかる特定のデータタイプの定義が第1のバージョンに関連するスキーマで見つかるものと同一であること、または特定の照会に応答して第2のバージョンのAPIを使用してデータ項目を取り出すことが、第1のバージョンを使用するのと同一の結果を生み出す(すなわち、第1のバージョンに関連するスキーマに従って表現された照会と、同一のデータ項目に関する第2のバージョンに関連するスキーマに従って表現された照会とを使用することが、同一の結果を生み出す)ことを確認するために、第2のバージョンのAPIに関連するスキーマが第1のバージョンに関連するスキーマと比較され得る。
第2のバージョンのAPIがスキーマに基づいて正しく機能する場合、第2のバージョンはリリースされ得る。そうでない場合、第2のバージョンがリリース可能になる前に、第2のバージョンのエラー(例えば、データタイプ定義の紛失、または誤ったデータタイプ定義)をまず訂正する必要がある。
前述のように、階層型グラフ内に格納されたデータ項目は、様々なデータタイプを有することができる。通常、アプリケーション(またはアプリケーションのコードを書くプログラマ)は、特定のタイプのデータ項目をデータベース(例えば、階層型グラフ)に照会し、データベースから取り出す(または取り出したデータ項目のデータタイプを検証する)前に、特定のデータタイプの定義を必要とする。いくつかの特定の実施形態は、内観的照会に基づいて階層型グラフからデータ項目を取り出し得る。いくつかの特定の実施形態は、グラフのAPIに内観的照会をサブミットして、特定のデータタイプのデータ構造を取り出し得る。次いでいくつかの特定の実施形態は、内観的照会によって取り出されたデータ構造に基づいて、特定のデータタイプのデータ項目を求めるデータ照会をAPIにサブミットし得る。いくつかの特定の実施形態はまた、応答のデータ構造を取り出されたデータ構造と比較することにより、データ照会に対する応答を検証してもよい。
図4は内観的照会に基づいて階層型グラフからデータ項目を取り出す例示的方法を示す。いくつかの特定の実施形態では、図4に示す方法はアプリケーションが特定のデータタイプのデータ構造を要求する第1の照会(内観的照会)を送るステップ410で開始し得る。いくつかの特定の実施形態では、ステップ420で、アプリケーションはグラフから特定のデータタイプのデータ構造を取り出し得る。例えば、ユーザのクライアント装置によってホストされるアプリケーションにより、適切なコンピュータまたは通信接続(例えが、ワイヤレスまたはワイヤーライン接続)を介して、グラフを管理する1つまたは複数のコンピューティングシステム(例えば、サーバ)に内観的照会を送り得る。いくつかの特定の実施形態では、適切なAPI呼出しがアプリケーションによって起動されて、サーバに内観的照会を送り、サーバから結果を取り出す。いくつかの特定の実施形態では、特定のデータタイプのデータ構造を要求する照会は、階層構造を有する言語で表現され得る。さらに、いくつかの特定の実施形態では、言語は事前定義された構文を有し得る。以下に例示的内観的照会を示す。
この照会は、(プレフィックス「type」によって示されるように)データタイプ「my_objects」の名前およびフィールドを要求する。照会はまた、データタイプ「my_objects」のフィールドの1つまたは複数の子データ構造が存在する場合にその名前およびフィールドを要求する。取り出されたデータ構造(すなわち、内観的照会に対する応答)をJavaScript Object Notation(JSON)フォーマットで表現することができる。例えば、照会の結果、以下の応答が得られる。
応答は、データタイプ「my_objcts」の名前、およびそのフィールド(すなわち、「id」、「comment_count」、および「actors」)のそれぞれの名前を含む。応答はまた、フィールド「actors」のフィールド(すなわち、「id」および「friends」)のそれぞれの名前をも含む。すなわち、データタイプ「my_objcts」は、「name」、「id」、「comment_count」、および「actors」をトップレベルに含む階層データ構造を有すると共に、「id」および「friends」が、第2のレベルで「actors」内にネスト化される。
いくつかの特定の実施形態では、ステップ430で、アプリケーションが、特定のデータタイプを有する1つまたは複数の特定のデータ項目を要求する第2の照会(データ照会)を生成し得る。いくつかの特定の実施形態では、データ照会は、指定されたデータタイプの取り出されたデータ構造に対応するフォーマットで表現され得る。以下に例示的データ照会を示す。
この例では、アプリケーションは、固有の識別子「id」を有するユーザ「me」からの要求に基づいて照会をサブミットする。この照会は、特定のデータタイプ「my_objects」の最初の3つのデータ項目を要求する。照会は、指定されたデータタイプ「my_objcts」の取り出されたデータ構造に対応する階層フォーマットで表現され、照会要求の結果、トップレベルで「id」、「comment_count」、および「actors」が得られ、第2のレベルで「actors」内にネスト化される「id」および「friends」が得られる。
いくつかの実施形態では、アプリケーションは、指定されたデータタイプ「my_objcts」の取り出されたデータ構造内のすべてではないがいくつかのフィールドを有する第2の照会(データ照会)を生成することができる。以下に別の例示的データ照会を示す。
照会要求の結果、トップレベルで「id」および「actors」が得られ、第2のレベルで「actors」内にネスト化される「id」および「friends」が得られる。指定されたデータタイプ「my_objcts」の取り出されたデータ構造のトップレベルのフィールド「comment_count」は、照会では省略される。いくつかの特定の実施形態では、ステップ440で、アプリケーションが、グラフから特定のデータ項目を取り出し得る。取り出されたデータ項目はJSONフォーマットで表現され得る。例えば、照会の結果、以下の応答が得られる。
この応答は、「id」がそれぞれ「0123」、「2345」、および「6789」である3つの結果を含む。
データ照会が応答のデータ構造を完全に記述するので、いくつかの特定の実施形態は、データ照会のデータ構造(特定のデータタイプの取り出されたデータ構造に基づくもの)に対して応答を検証し得る。いくつかの特定の実施形態では、アプリケーションは、特定のデータタイプの取り出されたデータ構造に基づいて、取り出されたデータ項目を検証し得る。アプリケーションは、取り出されたデータ項目を再帰的構文解析アルゴリズムで検査することにより、取り出されたデータ項目を特定のデータタイプの取り出されたデータ構造と比較し得る。例えば、アプリケーションは、「0123」および「6789」の「id」を有する上記の結果が、「id」および「actors」がトップレベルにあると共に、「id」および「friends」が第2のレベルで「actors」内にネスト化される、取り出されたデータ構造と一致するデータ構造を有すると判定することができる。アプリケーションは、「2345」の「id」を有する上記の結果が、取り出されたデータ構造と一致するデータ構造を有しないと判定することができる。「2345」の「id」を有する結果は、そのデータ構造のトップレベルに「id」および「actors」を有するが、そのデータ構造の第2のレベルで「actors」内にネスト化される「id」および「profile_pic_img」を有する。「2345」の「id」を有する結果は、予期しないデータ構造を有し、誤った結果の可能性があるので、アプリケーションは、「2345」の「id」を有する結果を廃棄し得る。アプリケーションはまた、APIに別のデータ照会をサブミットして、特定のデータタイプの1つまたは複数のデータ項目をグラフから取り出し得る。
いくつかの特定の実施形態は、適切な場合に図4の方法のステップを反復し得る。なお本開示は図4の方法の特定のステップが特定の順序で行われるものとして説明および図示するが、図4の方法の任意の適切なステップが任意の適切な順序で行われることも企図する。さらに、本開示は、図4の方法の特定のステップを実施する特定の構成要素、装置、またはシステムを説明および図示するが、図4の方法の任意の適切なステップを実施する任意の適切な構成要素、装置、またはシステムの任意の適切な組合せも企図する。
1つまたは複数のコンピュータシステム上で特定の実施形態を実装することができる。図5に、例示的コンピュータシステム500を示す。いくつかの特定の実施形態では、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示する1つまたは複数の方法の1つまたは複数のステップを実施する。いくつかの特定の実施形態では、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示する機能を提供する。いくつかの特定の実施形態では、1つまたは複数のコンピュータシステム500上で動作するソフトウェアが、本明細書で説明または図示する1つまたは複数の方法の1つまたは複数のステップを実施し、または本明細書で説明または図示する機能を提供する。いくつかの特定の実施形態は、1つまたは複数のコンピュータシステム500の1つまたは複数の部分を含む。
本開示は、任意の適切な数のコンピュータシステム500を企図する。本開示は、任意の適切な物理的形態を取るコンピュータシステム500を企図する。限定ではなく例として、コンピュータシステム500は、組込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)やシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、またはこれらうちの2つ以上の組合せでよい。適切な場合、コンピュータシステム500は、一体型または分散型の、複数の位置にわたる、複数のマシンにわたる、あるいはクラウド内に常駐する、1つまたは複数のコンピュータシステム500を含むことができ、クラウドは、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含むことができる。適切な場合、1つまたは複数のコンピュータシステム500は、実質的な空間的または時間的な限定なしに、本明細書で説明または図示する1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく例として、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示する1つまたは複数の方法の1つまたは複数のステップをリアルタイムに、またはバッチモードで実施することができる。適切な場合、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示する1つまたは複数の方法の1つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
いくつかの特定の実施形態では、コンピュータシステム500は、プロセッサ502、メモリ504、ストレージ506、入力/出力(I/O)インターフェース508、通信インターフェース510、およびバス512を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータシステムを説明および図示するが、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータシステムを企図する。
いくつかの特定の実施形態では、プロセッサ502は、コンピュータプログラムを構成するような命令を実行するハードウェアを含む。限定ではなく例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、それを復号化および実行し、次いで内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に1つまたは複数の結果を書き込むことができる。いくつかの特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。適切な場合、本開示は、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ502を企図する。限定ではなく例として、プロセッサ502は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーでよく、命令キャッシュは、プロセッサ502によるそうした命令の検索を加速することができる。データキャッシュ内のデータは、プロセッサ502で実行中の命令が演算するための、メモリ504またはストレージ506内のデータのコピー、プロセッサ502で実行中の後続の命令がアクセスするための、またはメモリ504またはストレージ506に書き込むための、プロセッサ502で実行された以前の命令の結果、あるいは他の適切なデータでよい。データキャッシュは、プロセッサ502による読取りまたは書込み操作を加速することができる。TLBは、プロセッサ502のための仮想アドレス変換を加速することができる。いくつかの特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含むことができる。適切な場合、本開示は、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1つまたは複数の演算論理装置(ALU)を含むことができ、マルチコアプロセッサでよく、あるいは1つまたは複数のプロセッサ502を含むことができる。本開示は特定のプロセッサを説明および図示するが、任意の適切なプロセッサを企図する。
いくつかの特定の実施形態では、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が演算するためのデータを格納するメインメモリを含む。限定ではなく例として、コンピュータシステム500は、ストレージ506または別のソース(例えば、別のコンピュータシステム500など)からメモリ504に命令をロードすることができる。次いでプロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、それを復号化することができる。命令の実行中、または実行後、プロセッサ502は、1つまたは複数の結果(これは中間結果または最終結果でよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ502は、こうした結果のうちの1つまたは複数をメモリ504に書き込むことができる。いくつかの特定の実施形態では、プロセッサ502は、1つまたは複数の内部レジスタまたは内部キャッシュ、あるいは(ストレージ506または別の場所ではなく)メモリ504内の命令だけを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ、あるいは(ストレージ506または別の場所ではなく)メモリ504内のデータだけに対して演算する。1つまたは複数のメモリバス(これはアドレスバスおよびデータバスをそれぞれ含むことができる)が、プロセッサ502をメモリ504に結合することができる。バス512は、以下で説明するように、1つまたは複数のメモリバスを含むことができる。いくつかの特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ502とメモリ504との間に存在し、プロセッサ502によって要求されるメモリ504へのアクセスを容易にする。いくつかの特定の実施形態では、メモリ504はランダムアクセスメモリ(RAM)を含む。適切な場合、このRAMは揮発性メモリでよい。適切な場合、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)でよい。さらに、適切な場合、このRAMはシングルポートRAMまたはマルチポートRAMでよい。本開示は任意の適切なRAMを企図する。適切な場合、メモリ504は、1つまたは複数のメモリ504を含むことができる。本開示は特定のメモリを説明および図示するが、任意の適切なメモリを企図する。
いくつかの特定の実施形態では、ストレージ506は、データまたは命令のためのマスストレージを含む。限定ではなく例として、ストレージ506は、HDD、フロッピィディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含むことができる。適切な場合、ストレージ506は、取外し可能または取外し不能(すなわち固定)媒体を含むことができる。適切な場合、ストレージ506は、コンピュータシステム500の内部または外部でよい。いくつかの特定の実施形態では、ストレージ506は不揮発性固体メモリである。いくつかの特定の実施形態では、ストレージ506は読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気書換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つ以上の組合せでよい。本開示は、任意の適切な物理的形態を取るマスストレージ506を企図する。適切な場合、ストレージ506は、プロセッサ502とストレージ506との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ506は1つまたは複数のストレージ506を含むことができる。本開示は特定のストレージを説明および図示するが、任意の適切なストレージを企図する。
いくつかの特定の実施形態では、I/Oインターフェース508は、コンピュータシステム500と、1つまたは複数のI/O装置との間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。適切な場合、コンピュータシステム500は、これらのI/O装置のうちの1つまたは複数を含むことができる。これらのI/O装置のうちの1つまたは複数は、人とコンピュータシステム500との間の通信を可能にすることができる。限定ではなく例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/O装置、またはこれらのうちの2つ以上の組合せを含むことができる。I/O装置は1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/O装置、およびそのための任意の適切なI/Oインターフェース508を企図する。適切な場合、I/Oインターフェース508は、プロセッサ502がこれらのI/O装置のうちの1つまたは複数を駆動することを可能にする1つまたは複数の装置またはソフトウェアドライバを含むことができる。適切な場合、I/Oインターフェース508は、1つまたは複数のI/Oインターフェース508を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、任意の適切なI/Oインターフェースを企図する。
いくつかの特定の実施形態では、通信インターフェース510は、コンピュータシステム500と、1つまたは複数の他のコンピュータシステム500または1つまたは複数のネットワークとの間の通信(例えば、パケットベースの通信など)のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インターフェース510は、イーサネットまたは他のワイヤベースのネットワークと通信するネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI−FIネットワークなどのワイヤレスネットワークと通信するワイヤレスNIC(WNIC)またはワイヤレスアダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのための任意の適切な通信インターフェース510を企図する。限定ではなく例として、コンピュータシステム500は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(MAN)、またはインターネットのうちの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスでよい。一例を挙げると、コンピュータシステム500は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラ電話ネットワーク(例えば、Global System for Mobile Communications (GSM)ネットワークなど)、または他の適切なワイヤレスネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。適切な場合、コンピュータシステム500は、これらのネットワークのいずれかのための任意の適切な通信インターフェース510を含むことができる。適切な場合、通信インターフェース510は、1つまたは複数の通信インターフェース510を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、任意の適切な通信インターフェースを企図する。
いくつかの特定の実施形態では、バス512は、コンピュータシステム500の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス512は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、Enhanced Industry Standard Architecture(EISA)バス、front−sideバス(FSB)、HYPERTRANSPORT(HT)相互接続、Industry Standard Architecture(ISA)バス、INFINIBAND相互接続、low−pin−count(LPC)バス、メモリバス、Micro Channel Architecture(MCA)バス、Peripheral Component Interconnect(PCI)バス、PCI−Express(PCIe)バス、serial advanced technology attachment(SATA)バス、Video Electronics Standards Associationローカル(VLB)バス、または別の適切なバス、あるいはこれらのうちの2つ以上の組合せを含むことができる。適切な場合、バス512は1つまたは複数のバス512を含むことができる。本開示は特定のバスを説明および図示するが、任意の適切なバスまたは相互接続を企図する。
本明細書では、適切な場合、コンピュータ読み取り可能で非一時的な記憶媒体に対する参照は、半導体ベースの、または他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)や特定用途向けIC(ASIC)など)、ハードディスクドライブ(「HDD」)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィディスク、フロッピィディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、固体ドライブ(SSD)、RAMドライブ、セキュアデジタルカード、セキュアデジタルドライブ、または別の適切なコンピュータ読み取り可能で非一時的な記憶媒体、あるいはこれらの適切な組合せを含むことができる。本開示は、任意の適切なストレージを実装する1つまたは複数のコンピュータ読み取り可能な記憶媒体を企図する。適切な場合、いくつかの特定の実施形態では、コンピュータ読み取り可能な記憶媒体は、プロセッサ502の1つまたは複数の部分(例えば、1つまたは複数の内部レジスタやキャッシュなど)、メモリ504の1つまたは複数の部分、ストレージ506の1つまたは複数の部分、またはそれらの組合せを実装する。いくつかの特定の実施形態では、コンピュータ読み取り可能な記憶媒体はRAMまたはROMを実装する。いくつかの特定の実施形態では、コンピュータ読み取り可能な記憶媒体は、揮発性または永続性メモリを実装する。いくつかの特定の実施形態では、1つまたは複数のコンピュータ読み取り可能な記憶媒体はソフトウェアを実施する。本明細書では、適切な場合、ソフトウェアに対する参照は、1つまたは複数のアプリケーション、バイトコード、1つまたは複数のコンピュータプログラム、1つまたは複数の実行ファイル、1つまたは複数の命令、ロジック、マシンコード、1つまたは複数のスクリプト、あるいはソースコードを包含することができ、逆も同様である。いくつかの特定の実施形態では、ソフトウェアは1つまたは複数のアプリケーションプログラミングインターフェース(API)を含む。本開示は、任意の適切なプログラミング言語またはプログラミング言語の組合せで書かれ、あるいは表現される任意の適切なソフトウェアを企図する。いくつかの特定の実施形態では、ソフトウェアは、ソースコードまたはオブジェクトコードとして表現される。いくつかの特定の実施形態では、ソフトウェアは、例えばC、Perl、またはそれらの適切な拡張などの高水準プログラミング言語で表現される。いくつかの特定の実施形態では、ソフトウェアは、アセンブリ言語(またはマシンコード)などの低水準プログラミング言語で表現される。いくつかの特定の実施形態では、ソフトウェアは、JAVA、C、またはC++で表現される。いくつかの特定の実施形態では、ソフトウェアは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、または他の適切なマークアップ言語で表現される。
本明細書では、適切な場合、コンピュータ読み取り可能で非一時的な記憶媒体は、1つまたは複数の半導体ベースのまたは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)や特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィディスケット、フロッピィディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の適切なコンピュータ読み取り可能で非一時的な記憶媒体、あるいはこれらのうちの2つ以上の任意の適切な組合せを含むことができる。適切な場合、コンピュータ読み取り可能で非一時的な記憶媒体は、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は共同の(joint)および個別の(several)の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが共同で、または個別に」を意味する。
本開示は、当業者が理解する、本明細書の例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれかは、当業者が理解する、本明細書のいずれかの場所で説明または図示した構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含むことができる。さらに、添付の特許請求の範囲内の特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能であり、または動作する装置またはシステム、あるいは装置またはシステムの構成要素に対する参照は、装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能であり、または動作する限り、その装置、システム、構成要素を包含する。

Claims (18)

  1. コンピュータにより実装される方法において、
    1つまたは複数のグラフであって、各グラフが階層フォーマットに構成された1つまたは複数のノードを含むものであり、各ノードが1つまたは複数のデータ項目を表すものである前記1つまたは複数のグラフを格納し、
    前記グラフ内の1つまたは複数の特定のデータ項目を要求する第1の照会であって、階層フォーマットを有する言語で表される前記第1の照会にアクセスし、
    前記グラフから前記特定のデータ項目を取り出し、
    前記特定のデータ項目を階層フォーマットに編成し、
    前記第1の照会に応答して前記特定のデータ項目を出力すること
    を備えるコンピュータにより実装される方法。
  2. 前記特定のデータ項目の階層フォーマットは、前記第1の照会の階層フォーマットに対応するものである請求項1に記載のコンピュータにより実装される方法。
  3. 前記グラフから前記特定のデータ項目を取り出することは、
    前記グラフから前記特定のデータ項目を表す1つまたは複数の特定のノードを特定し、
    前記特定のノードから前記特定のデータ項目を取り出すことを備える請求項1に記載のコンピュータにより実装される方法。
  4. 前記第1の照会はユーザによってサブミットされるものであり、
    前記第1の照会は1つまたは複数の基準を満たすn個のデータ項目を要求するものであり、
    前記グラフから前記特定のデータ項目を取り出すことは、
    前記基準を満たすグラフからデータ項目を見つけること、
    前記ユーザが当該データ項目へのアクセスが許可されているかどうかを判定すること、
    もし前記ユーザが当該データ項目へのアクセスが許可されていれば、当該データ項目を、出力すべき前記データ項目の1つに含めること、及び、
    もし前記ユーザが当該データ項目へのアクセスが許可されていなければ、当該データ項目を破棄することを、
    n個のデータ項目が見つかるまで反復的に行うことを備える請求項1に記載のコンピュータにより実装される方法。
  5. 前記第1の照会は、1つまたは複数の基準を満たすn個の第1データ項目を要求するものであり、
    前記グラフから前記特定のデータ項目を取り出すことは、
    前記基準を満たすグラフからn個のデータ項目を見つけること、及び
    見つかった前記n個のデータ項目の内の最後の1つを記録すること
    を備える請求項1に記載のコンピュータにより実装される方法。
  6. 前記基準を満たすn個の第2データ項目を要求する第2の照会であって、前記階層フォーマットを有する前記言語で表される前記第2の照会にアクセスし、
    前記第1の照会に応答して見つかった前記n個の第1データ項目の内の最後の1つの後に始まる、前記基準を満たす前記グラフからn個の第2データ項目を見つけ、
    前記n個の第2データ項目を階層フォーマットに編成し、
    前記第2の照会に応答して前記n個の第2データ項目を出力すること
    を備える請求項5に記載のコンピュータにより実装される方法。
  7. 実行されたときに、
    1つまたは複数のグラフであって、各グラフが階層フォーマットに構成された1つまたは複数のノードを含むものであり、各ノードが1つまたは複数のデータ項目を表すものである前記1つまたは複数のグラフを格納し、
    前記グラフ内の1つまたは複数の特定のデータ項目を要求する第1の照会であって、階層フォーマットを有する言語で表される前記第1の照会にアクセスし、
    前記グラフから前記特定のデータ項目を取り出し、
    前記特定のデータ項目を階層フォーマットに編成し、
    前記第1の照会に応答して前記特定のデータ項目を出力すること
    を行うように動作可能なソフトウェアを実施する1つまたは複数のコンピュータ読み取り可能で非一時的な記憶媒体。
  8. 前記特定のデータ項目の階層フォーマットは、前記第1の照会の階層フォーマットに対応するものである請求項7に記載の記憶媒体。
  9. 前記グラフから前記特定のデータ項目を取り出することは、
    前記グラフから前記特定のデータ項目を表す1つまたは複数の特定のノードを特定し、
    前記特定のノードから前記特定のデータ項目を取り出すことを備える請求項7に記載の記憶媒体。
  10. 前記第1の照会はユーザによってサブミットされるものであり、
    前記第1の照会は1つまたは複数の基準を満たすn個のデータ項目を要求するものであり、
    前記グラフから前記特定のデータ項目を取り出すことは、
    前記基準を満たすグラフからデータ項目を見つけること、
    前記ユーザが当該データ項目へのアクセスが許可されているかどうかを判定すること、
    もし前記ユーザが当該データ項目へのアクセスが許可されていれば、当該データ項目を、出力すべき前記データ項目の1つに含めること、及び、
    もし前記ユーザが当該データ項目へのアクセスが許可されていなければ、当該データ項目を破棄することを、
    n個のデータ項目が見つかるまで反復的に行うことを備える請求項7に記載の記憶媒体。
  11. 前記第1の照会は、1つまたは複数の基準を満たすn個の第1データ項目を要求するものであり、
    前記グラフから前記特定のデータ項目を取り出すことは、
    前記基準を満たすグラフからn個のデータ項目を見つけること、及び
    見つかった前記n個のデータ項目の内の最後の1つを記録すること
    を備える請求項7に記載の記憶媒体。
  12. 前記ソフトウェアは実行されたときに、
    前記基準を満たすn個の第2データ項目を要求する第2の照会であって、前記階層フォーマットを有する前記言語で表される前記第2の照会にアクセスし、
    前記第1の照会に応答して見つかった前記n個の第1データ項目の内の最後の1つの後に始まる、前記基準を満たす前記グラフからn個の第2データ項目を見つけ、
    前記n個の第2データ項目を階層フォーマットに編成し、
    前記第2の照会に応答して前記n個の第2データ項目を出力すること
    を行うように更に動作可能である請求項11に記載の記憶媒体。
  13. 1つまたは複数のプロセッサと、
    前記プロセッサに結合される前記プロセッサによって実行可能な命令を含むメモリと
    を備えるシステムであって、
    前記プロセッサは、前記命令を実行するときに、
    1つまたは複数のグラフであって、各グラフが階層フォーマットに構成された1つまたは複数のノードを含むものであり、各ノードが1つまたは複数のデータ項目を表すものである前記1つまたは複数のグラフを格納し、
    前記グラフ内の1つまたは複数の特定のデータ項目を要求する第1の照会であって、階層フォーマットを有する言語で表される前記第1の照会にアクセスし、
    前記グラフから前記特定のデータ項目を取り出し、
    前記特定のデータ項目を階層フォーマットに編成し、
    前記第1の照会に応答して前記特定のデータ項目を出力する
    ように動作可能であるシステム。
  14. 前記特定のデータ項目の階層フォーマットは、前記第1の照会の階層フォーマットに対応するものである請求項13に記載のシステム。
  15. 前記グラフから前記特定のデータ項目を取り出することは、
    前記グラフから前記特定のデータ項目を表す1つまたは複数の特定のノードを特定し、
    前記特定のノードから前記特定のデータ項目を取り出すこと
    を備える請求項13に記載のシステム。
  16. 前記第1の照会はユーザによってサブミットされるものであり、
    前記第1の照会は1つまたは複数の基準を満たすn個のデータ項目を要求するものであり、
    前記グラフから前記特定のデータ項目を取り出すことは、
    前記基準を満たすグラフからデータ項目を見つけること、
    前記ユーザが当該データ項目へのアクセスが許可されているかどうかを判定すること、
    もし前記ユーザが当該データ項目へのアクセスが許可されていれば、当該データ項目を、出力すべき前記データ項目の1つに含めること、及び、
    もし前記ユーザが当該データ項目へのアクセスが許可されていなければ、当該データ項目を破棄することを、
    n個のデータ項目が見つかるまで反復的に行うことを備える
    請求項13に記載のシステム。
  17. 前記第1の照会は、1つまたは複数の基準を満たすn個の第1データ項目を要求するものであり、
    前記グラフから前記特定のデータ項目を取り出すことは、
    前記基準を満たすグラフからn個のデータ項目を見つけること、及び
    見つかった前記n個のデータ項目の内の最後の1つを記録すること
    を備える請求項13に記載のシステム。
  18. 前記プロセッサは前記命令を実行するときに、
    前記基準を満たすn個の第2データ項目を要求する第2の照会であって、前記階層フォーマットを有する前記言語で表される前記第2の照会にアクセスし、
    前記第1の照会に応答して見つかった前記n個の第1データ項目の内の最後の1つの後に始まる、前記基準を満たす前記グラフからn個の第2データ項目を見つけ、
    前記n個の第2データ項目を階層フォーマットに編成し、
    前記第2の照会に応答して前記n個の第2データ項目を出力する
    ように更に動作可能である請求項17に記載のシステム。
JP2015529968A 2012-08-31 2013-08-28 グラフ照会ロジック Expired - Fee Related JP6200505B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/601,769 2012-08-31
US13/601,769 US9646028B2 (en) 2012-08-31 2012-08-31 Graph query logic
PCT/US2013/056940 WO2014036054A1 (en) 2012-08-31 2013-08-28 Graph query logic

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017162091A Division JP6498735B2 (ja) 2012-08-31 2017-08-25 グラフ照会ロジック

Publications (3)

Publication Number Publication Date
JP2015531941A true JP2015531941A (ja) 2015-11-05
JP2015531941A5 JP2015531941A5 (ja) 2017-07-06
JP6200505B2 JP6200505B2 (ja) 2017-09-20

Family

ID=50184267

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015529968A Expired - Fee Related JP6200505B2 (ja) 2012-08-31 2013-08-28 グラフ照会ロジック
JP2017162091A Active JP6498735B2 (ja) 2012-08-31 2017-08-25 グラフ照会ロジック

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017162091A Active JP6498735B2 (ja) 2012-08-31 2017-08-25 グラフ照会ロジック

Country Status (7)

Country Link
US (2) US9646028B2 (ja)
JP (2) JP6200505B2 (ja)
KR (2) KR101818710B1 (ja)
AU (2) AU2013308885B2 (ja)
CA (2) CA2882360C (ja)
IL (2) IL237334A (ja)
WO (1) WO2014036054A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015733B2 (en) 2012-08-31 2015-04-21 Facebook, Inc. API version testing based on query schema
US9910887B2 (en) 2013-04-25 2018-03-06 Facebook, Inc. Variable search query vertical access
US9223898B2 (en) 2013-05-08 2015-12-29 Facebook, Inc. Filtering suggested structured queries on online social networks
US9405855B2 (en) * 2014-03-27 2016-08-02 Sap Ag Processing diff-queries on property graphs
US10452672B2 (en) 2016-11-04 2019-10-22 Microsoft Technology Licensing, Llc Enriching data in an isolated collection of resources and relationships
US10614057B2 (en) 2016-11-04 2020-04-07 Microsoft Technology Licensing, Llc Shared processing of rulesets for isolated collections of resources and relationships
US11475320B2 (en) 2016-11-04 2022-10-18 Microsoft Technology Licensing, Llc Contextual analysis of isolated collections based on differential ontologies
US10885114B2 (en) 2016-11-04 2021-01-05 Microsoft Technology Licensing, Llc Dynamic entity model generation from graph data
US10481960B2 (en) 2016-11-04 2019-11-19 Microsoft Technology Licensing, Llc Ingress and egress of data using callback notifications
US10402408B2 (en) 2016-11-04 2019-09-03 Microsoft Technology Licensing, Llc Versioning of inferred data in an enriched isolated collection of resources and relationships
US10445319B2 (en) * 2017-05-10 2019-10-15 Oracle International Corporation Defining subgraphs declaratively with vertex and edge filters
US11036797B2 (en) 2017-10-12 2021-06-15 Adtran, Inc. Efficient storage and utilization of a hierarchical data set
US10963514B2 (en) 2017-11-30 2021-03-30 Facebook, Inc. Using related mentions to enhance link probability on online social networks
US11604968B2 (en) 2017-12-11 2023-03-14 Meta Platforms, Inc. Prediction of next place visits on online social networks
US10129705B1 (en) 2017-12-11 2018-11-13 Facebook, Inc. Location prediction using wireless signals on online social networks
KR101977107B1 (ko) * 2018-11-26 2019-05-10 (주)시큐레이어 Lucene 데이터베이스에 대한 쿼리를 분석하여 계층형 구조의 UI로 표현하는 방법 및 장치
KR101949827B1 (ko) * 2018-11-29 2019-02-19 (주)시큐레이어 Lucene 데이터베이스에 이용하기 위한 쿼리를 사용자가 용이하게 생성하도록 하기 위한 사용자 인터페이스를 제공하는 방법 및 장치
RU2704873C1 (ru) * 2018-12-27 2019-10-31 Общество с ограниченной ответственностью "ПЛЮСКОМ" Система и способ управления базами данных (субд)
US11379526B2 (en) 2019-02-08 2022-07-05 Intuit Inc. Disambiguation of massive graph databases
US11429669B2 (en) 2019-08-06 2022-08-30 Twitter, Inc. Managing query subscription renewals in a messaging platform
US11741084B2 (en) * 2019-09-27 2023-08-29 Autodesk, Inc. High frequency data management (HFDM)
US11113267B2 (en) * 2019-09-30 2021-09-07 Microsoft Technology Licensing, Llc Enforcing path consistency in graph database path query evaluation
US11381601B2 (en) 2020-01-15 2022-07-05 International Business Machines Corporation Customizable dynamic GraphQL API management platform
US11416526B2 (en) * 2020-05-22 2022-08-16 Sap Se Editing and presenting structured data documents

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073589A (ja) * 2000-08-25 2002-03-12 Nippon Telegr & Teleph Corp <Ntt> 文書情報抽出装置、方法、及びそのプログラムを記録した記録媒体
JP2007257550A (ja) * 2006-03-24 2007-10-04 Nippon Telegr & Teleph Corp <Ntt> センサデータ関連情報送受信装置
US20100153412A1 (en) * 2008-12-15 2010-06-17 Robert Mavrov User Interface and Methods for Building Structural Queries
JP2010277553A (ja) * 2009-06-01 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 検索装置、検索プログラムおよび検索方法
JP2011215907A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd 検索プログラム、検索装置および検索方法
JP2012008944A (ja) * 2010-06-28 2012-01-12 Hitachi Aloka Medical Ltd 診断レポート検索装置
US20120110560A1 (en) * 2010-10-27 2012-05-03 Microsoft Corporation Data type provider for a web semantic store

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201046A (en) * 1990-06-22 1993-04-06 Xidak, Inc. Relational database management system and method for storing, retrieving and modifying directed graph data structures
US5970496A (en) 1996-09-12 1999-10-19 Microsoft Corporation Method and system for storing information in a computer system memory using hierarchical data node relationships
US6377953B1 (en) 1998-12-30 2002-04-23 Oracle Corporation Database having an integrated transformation engine using pickling and unpickling of data
US6571232B1 (en) 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
US6654734B1 (en) * 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
JP2002091991A (ja) * 2000-09-20 2002-03-29 Intec Web & Genome Informatics Corp 遺伝子ネットワーク研究支援システム及び方法
AU2002334721B2 (en) * 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US8924408B2 (en) * 2001-09-28 2014-12-30 International Business Machines Corporation Automatic generation of database invocation mechanism for external web services
EP1324216A1 (en) 2001-12-28 2003-07-02 Deutsche Thomson-Brandt Gmbh Machine for classification of metadata
US9043365B2 (en) 2002-02-26 2015-05-26 International Business Machines Corporation Peer to peer (P2P) federated concept queries
EP1665622A2 (en) 2003-08-19 2006-06-07 General Dynamics-Advanced Information Systems, Inc. Trusted interface unit (tiu) and method of making and using the same
US7818759B2 (en) 2003-11-24 2010-10-19 Ebay Inc. API and business language schema design framework for message exchanges
US7844639B2 (en) * 2003-11-24 2010-11-30 Ebay Inc. Backward compatibility in database schemas
US7694315B2 (en) 2004-02-13 2010-04-06 Microsoft Corporation Schema-based machine generated programming models
US7496912B2 (en) 2004-02-27 2009-02-24 International Business Machines Corporation Methods and arrangements for ordering changes in computing systems
US7702725B2 (en) * 2004-07-02 2010-04-20 Hewlett-Packard Development Company, L.P. Digital object repositories, models, protocol, apparatus, methods and software and data structures, relating thereto
US20060206479A1 (en) * 2005-03-10 2006-09-14 Efficient Frontier Keyword effectiveness prediction method and apparatus
JP2006260053A (ja) 2005-03-16 2006-09-28 Mitsubishi Electric Corp 特定サブルーチン検索システムおよびこれに用いるプログラム
US9129038B2 (en) * 2005-07-05 2015-09-08 Andrew Begel Discovering and exploiting relationships in software repositories
US7512633B2 (en) 2005-07-13 2009-03-31 International Business Machines Corporation Conversion of hierarchically-structured HL7 specifications to relational databases
JP2007156845A (ja) * 2005-12-05 2007-06-21 Toshiba Corp データ検索装置、データ検索方法、およびプログラム
US7702685B2 (en) * 2006-01-20 2010-04-20 Microsoft Corporation Querying social networks
US20080016023A1 (en) 2006-07-17 2008-01-17 The Mathworks, Inc. Storing and loading data in an array-based computing environment
US20080028375A1 (en) 2006-07-26 2008-01-31 International Business Machines Corporation Validator-driven architecture of an xml parsing and validating solution
US8769485B2 (en) 2006-12-04 2014-07-01 Tibco Software, Inc. Data parallelism and parallel operations in stream processing
US20090024590A1 (en) 2007-03-15 2009-01-22 Sturge Timothy User contributed knowledge database
AU2008229623A1 (en) 2007-03-16 2008-09-25 Pr Software Pty Limited An internet mediated booking and distribution system
US8005848B2 (en) 2007-06-28 2011-08-23 Microsoft Corporation Streamlined declarative parsing
US7958154B2 (en) 2007-08-29 2011-06-07 International Business Machines Corporation Apparatus, system, and method for command manager support for pluggable data formats
US8972377B2 (en) 2007-10-25 2015-03-03 International Business Machines Corporation Efficient method of using XML value indexes without exact path information to filter XML documents for more specific XPath queries
EP2260404A4 (en) 2008-02-26 2016-03-30 Ab Initio Technology Llc GRAPHICAL PRESENTATIONS OF DATA RELATIONSHIPS
JP2009217635A (ja) * 2008-03-11 2009-09-24 Canon Inc 検索条件作成方法、検索条件作成装置及びプログラム
US8082220B2 (en) * 2008-04-17 2011-12-20 Elbit Systems Ltd. Computing solutions to problems using dynamic association between abstract graphs
CN101571863B (zh) 2008-04-29 2012-03-28 国际商业机器公司 用于可变模式的xml文档的xml查询方法和系统
US20090313270A1 (en) 2008-06-17 2009-12-17 Microsoft Corporation Semantic frame store
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US8321834B2 (en) 2008-09-25 2012-11-27 International Business Machines Corporation Framework for automatically merging customizations to structured code that has been refactored
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
EP2433200B1 (en) 2009-05-21 2020-02-26 Salesforce.Com, Inc. System, method and computer program product for versioning components of an application
US20110004692A1 (en) * 2009-07-01 2011-01-06 Tom Occhino Gathering Information about Connections in a Social Networking Service
US9126120B2 (en) 2009-09-30 2015-09-08 Zynga Inc. Apparatuses, methods and systems for a virtual security camera
US8316056B2 (en) 2009-12-08 2012-11-20 Facebook, Inc. Second-order connection search in a social networking system
US8195691B2 (en) 2009-12-18 2012-06-05 Microsoft Corporation Query-based tree formation
US8341193B2 (en) 2010-01-12 2012-12-25 Microsoft Corporation Data versioning through data transformations
US9015733B2 (en) 2012-08-31 2015-04-21 Facebook, Inc. API version testing based on query schema
US8504490B2 (en) * 2010-04-09 2013-08-06 Microsoft Corporation Web-scale entity relationship extraction that extracts pattern(s) based on an extracted tuple
US8786597B2 (en) * 2010-06-30 2014-07-22 International Business Machines Corporation Management of a history of a meeting
US10146777B2 (en) * 2011-05-25 2018-12-04 Facebook, Inc. Synchronous display of personal and contact-shared contact information
US9177168B2 (en) * 2012-03-19 2015-11-03 Alcatel Lucent Method of modifying access control for web services using query languages
US9609374B2 (en) * 2012-06-27 2017-03-28 Rovi Guides, Inc. System and methods for automatically obtaining cost-efficient access to a media content collection
US20140067781A1 (en) 2012-08-31 2014-03-06 Scott W. Wolchok Graph Query Language API Querying and Parsing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073589A (ja) * 2000-08-25 2002-03-12 Nippon Telegr & Teleph Corp <Ntt> 文書情報抽出装置、方法、及びそのプログラムを記録した記録媒体
JP2007257550A (ja) * 2006-03-24 2007-10-04 Nippon Telegr & Teleph Corp <Ntt> センサデータ関連情報送受信装置
US20100153412A1 (en) * 2008-12-15 2010-06-17 Robert Mavrov User Interface and Methods for Building Structural Queries
JP2010277553A (ja) * 2009-06-01 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 検索装置、検索プログラムおよび検索方法
JP2011215907A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd 検索プログラム、検索装置および検索方法
JP2012008944A (ja) * 2010-06-28 2012-01-12 Hitachi Aloka Medical Ltd 診断レポート検索装置
US20120110560A1 (en) * 2010-10-27 2012-05-03 Microsoft Corporation Data type provider for a web semantic store

Also Published As

Publication number Publication date
CA2882360A1 (en) 2014-03-06
KR101985717B1 (ko) 2019-06-05
IL237334A (en) 2017-10-31
AU2013308885B2 (en) 2017-07-20
CA2882360C (en) 2017-09-12
AU2013308885A1 (en) 2015-03-12
AU2017219167A1 (en) 2017-09-21
CA2973850A1 (en) 2014-03-06
JP6200505B2 (ja) 2017-09-20
US20140067850A1 (en) 2014-03-06
WO2014036054A1 (en) 2014-03-06
IL254805A0 (en) 2017-12-31
JP6498735B2 (ja) 2019-04-10
AU2017219167B2 (en) 2019-05-09
KR20150052162A (ko) 2015-05-13
KR101818710B1 (ko) 2018-01-16
KR20180007004A (ko) 2018-01-19
US9646028B2 (en) 2017-05-09
JP2018010664A (ja) 2018-01-18
US20170212914A1 (en) 2017-07-27
US10671661B2 (en) 2020-06-02
IL237334A0 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
JP6498735B2 (ja) グラフ照会ロジック
JP6280971B2 (ja) 照会スキーマに基づくapiバージョン検査
JP6298821B2 (ja) グラフ照会言語api照会および構文解析

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170529

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170529

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170721

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: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170825

R150 Certificate of patent or registration of utility model

Ref document number: 6200505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees