知識ベース。 パート2. Freebase:Googleナレッジグラフへのクエリの作成

画像

Googleは1年以上前に、今後は検索に神秘的なナレッジネットワーク(ナレッジグラフの公式翻訳)を使用すると発表しました。 おそらく、Web上のデータの大部分が誰でも使用可能であり、十分に説明されたAPIを介してアクセスできることを誰もが知っているわけではありません。 この部分は、Googleおよび愛好家によって管理されているFreebaseナレッジベースです。 この記事では、まず少しバカにしてから、MQLで簡単なクエリを作成してみます。

この記事は、ナレッジベースシリーズの2番目です。 お楽しみに。







一般ユーザーの観点から見たGoogleナレッジグラフ



Googleナレッジグラフの目に見える兆候の1つは、探しているオブジェクトを簡単に説明するダッシュボードです。 パーソナリティを検索する際にしばしば発生しますが、地理的名称は少し少なくなります。 英語のインターフェースで英語で定義されたクエリではより頻繁に発生しますが、可能な場合はロシア語に固執します。

たとえば、Roger Watersによるクエリでは、次の結果が得られます。

画像



情報ボックス内のリンクをクリックし、URLに注意してください-スティックパラメーターを使用します。その内容は、フォームの一部の識別子です&stick=H4sIAAAAAAAAAONg[VuLQz9U3]< >AAAA





ナレッジグラフが最初に表示されたとき、初心者は小さな通りの魔法を示すことができました。たとえば、マリリンモンローからの&スティックパラメーターをスティーブンキングからのリクエストに追加します。

画像



今、彼らはそのような機会を隠しました、そしてそれは私たちにとってそれは価値がありません-私たちは何か有用なものを見たほうがいいでしょう。 たとえば、最近、vsキーワードを使用して複数のオブジェクト比較することが可能になりました。



画像



Googleは、スマート検索と質問への回答に関連する多くの利点を追加することを約束します。ナレッジグラフは、この知性が支える柱の1つになります。 私たちにとって特に素晴らしいのは、ナレッジグラフの一部が誰でも使用できるように開かれていることです。



Freebase-GNGサブグラフ



歴史的なツアーから始めましょう。 Metawebは2005年にナレッジベースの作業を開始しました。 データを入力する方法では、FreebaseはDbpediaに最も似ていました。Freebaseで提示された知識の大部分はWikipediaのデータでした。 Dbpediaとの違いは、第1に、入力されたデータを手動で修正する機能であり、第2に、Freebaseは他のデータソースを軽視しなかったことです 。 DBpediaチームとは異なり、Metawebの代表者は科学記事を公開することをあまり気にしませんでした(最近始まったものの興味深いリストです)。グラフ化された主要なコンポーネントのコードが日の目を見ることはほとんどありません。

2010年、MetawebはGoogleに買収されましたが、Freebaseメーリングリストから判断すると、検索大手は新たに買収したチームの業務にあまり介入しませんでした。 Googleが新しいインテリジェントセマンティックテクノロジーを使用して競合他社を先駆的な真実として引き裂くカラフルなビデオのリリース後、Metaweb( およびGoogle )の代表者は、FreebaseがWikipediaおよびCIAファクトベースとともにKnowledge Networkの非常に重要な部分であることを確認しました。 すべてのGoogle APIの統合に関する大規模なサブボットニックの期間中、Freebaseプログラムのインターフェースは大きな変更を受けず、その説明はdevelopers.google.comに単純に転送されました 。 ナレッジベースに何かを尋ねるために、MQLクエリ言語(「mikl」と発音します)を使用します。 原因に!



最初のリクエストと編集者



簡単な質問から始めましょう。Freebaseにいくつかの事実、たとえばレオナルドダヴィンチの生年月日を尋ねます。

www.googleapis.com/freebase/v1/mqlread?query={"/type/object/id":"/en/leonardo_da_vinci","/people/person/date_of_birth":null}





完全に正しい結果が得られます。

 { "result": { "/type/object/id": "/en/leonardo_da_vinci", "/people/person/date_of_birth": "1452-04-15" } }
      
      





練習しやすくするために、Freebaseが提供するクエリエディターを使用します

画像

このエディターは非常に便利で、要求を自動補完するための優れた機能を備えています-困難な場合は、Ctrl + Enterを押すだけで、優れたコンテキストプロンプトが表示されます。 エディターの下部パネルには、 マニュアルで詳しく説明されている便利なツールがあります 。 自習については、MQLの多くの機能を明らかにするクエリの例を含むサンプルボタンを確認することを特にお勧めします。



さて、ここに私たちのリクエストがあり、それに対する答えがここにあります:

リクエスト 答え
 { "id": "/en/leonardo_da_vinci", "/people/person/date_of_birth" : null }
      
      



 { "id": "/en/leonardo_da_vinci" "/people/person/date_of_birth": "1453-04-15", }
      
      





このリクエストをさらに詳しく分析しましょう。 用語id



を使用して、Freebaseでオブジェクト識別子を指定しました。 すべてのオブジェクトには識別子があり、 id



という単語は/type/object/id



略です。 すべてのFreebaseエンティティが持っている他の多くの/type/object



プロパティがありますが、それらについては後で説明します。

識別子が/en/leonardo_da_vinci



のオブジェクトには、プロパティ/people/person/date_of_birth



、その値はわかりません。 代わりに、特別な単語null



値を配置します。その代わりに、Freebaseはデータベースから値を書き込みます。

簡単にわかるように、要求と応答は対称的です。



複雑なリクエスト



ここで、より多くの質問が発生するように、かなり複雑なMQLクエリを作成し、簡単に説明します。 その後、Freebaseの構造の詳細な調査と言語の機能の概要を開始することができます。



したがって、ここにクエリがあります(MQLマニュアルから引用)。

リクエスト 答え
  1. [ {
  2. 「タイプ」 「/音楽/アルバム」
  3. 「名前」 null
  4. "name!=" "グレイテストヒッツ"
  5. "release_date | =" [
  6. 「1978」
  7. 「1979」
  8. ]
  9. 「ジャンル」 [ ]
  10. 「a:ジャンル」 「ニューウェーブ」
  11. 「b:ジャンル| = " [
  12. 「パンクロック」
  13. 「ポストパンク」
  14. 「プログレッシブロック」
  15. ]
  16. 「アーティスト」 {
  17. 「名前」 null
  18. 「タイプ」 {
  19. 「id」 「/人/人」
  20. 「オプション」 「禁止」
  21. }
  22. }
  23. 「制限」 2
  24. "sort" "name"
  25. } ]


[ {

「タイプ」 「/音楽/アルバム」

"name" "Dickies of Dickies"

「a:ジャンル」 「ニューウェーブ」

「アーティスト」 {

「名前」 「テレビ」

「タイプ」 null

}

「ジャンル」 [

「パンクロック」

「ニューウェーブ」

「ポストパンク」

「プロトパンク」

]

「ns0:名前」 「アドベンチャー」

「ns1:タイプ」 「/音楽/アルバム」

}

{

「a:ジャンル」 「ニューウェーブ」

「アーティスト」 {

"name" "The Dickies"

「タイプ」 null

}

「ジャンル」 [

「ニューウェーブ」

「パンクロック」

]

} ]




このクエリで使用されたMQLツールを簡単に説明してみましょう。

まず、ご覧のとおり、クエリ全体が[ { } ]



構造にラップされています。つまり、 { }



場合のように、単一のオブジェクトではなく、結果としてオブジェクトの配列が期待されます。

2行目から4行目までは問題ありません。アルバム( /music/album



)などのオブジェクトを探しているので、その名前を取得したいのですが、「 Greatest Hits 」というアルバムには興味がありません。

5-8行目と11-15行目にOR演算子が表示されます|=



-リリース日が1978または1979のアルバムに興味があります。 ジャンルに移りましょう:

「ジャンル」 [ ]

「a:ジャンル」 「ニューウェーブ」

「b:ジャンル| = " [

「パンクロック」

「ポストパンク」

「プログレッシブロック」

]


最初の行は、リクエストへの応答でこれらのアルバムのジャンルのリストを取得することを示しています。 これを行うために、空のリスト[ ]



をリクエストに追加しました。 さらに、 New Waveが示されているジャンルのアルバムと、 「Punk Rock」、「Post-punk」、「Progressive rock」のリストにあるアルバムにのみ興味があると言います。

最後に、行23〜24にはMQLディレクティブが含まれています。2つの結果( limit



)のみに関心があり、名前でsort



sort



)必要があります。



MQLのJSON



MQLクエリとそれらへの回答はJSONオブジェクトなので、最小の(またはWeb開発者に関係のない)JSONについて説明します。

JSON一般情報
JSON(JavaScript Object Notation)は、キーと値のデータを交換するために作成された言語です。 当初、JSONはJavaScriptオブジェクトのシリアル化に使用されていましたが、すぐに言語に依存しなくなり、そのシンプルさにより、さまざまな言語およびプラットフォームのプログラマーに非常に愛され、尊敬されました。

最も単純なJSONオブジェクトは空のオブジェクトです。 次のように書かれています。

 {}
      
      





次に、Leonardo da Vinciに関する情報を保存するオブジェクトを作成しましょう。 そもそも、彼の名前だけに制限します。 これを行うには、キーと値を引用符で囲み、コロンで区切ります

 { "name" : "Leonardo di ser Piero da Vinci" }
      
      





Leonardoについていくつかの事実を追加し、それらをコンマで区切ります。

 { "name" : "Leonardo di ser Piero da Vinci", "date_of_birth": "1453-04-15", }
      
      





今では、ダヴィンチがどのような職業をしていたかを判断する価値があります。 しかし、これらの職業はたくさんありました。彫刻家、芸術家、建築家など。 単一のキーに複数の値を割り当てるために、JSONは値のリストを使用します-値はコンマで区切られた角括弧で囲まれています:

 { "name" : "Leonardo di ser Piero da Vinci", "date_of_birth": "1453-04-15", "profession": [ "Architect", "Engineer", "Anatomist", "Inventor", "Artist", "Sculptor" ], }
      
      





JSONについて知っておくべきもう1つのことは、ネストされたオブジェクトです。 それらは非常に単純になります。キーの後に、新しいキーと値のペアのセットを中括弧で挿入するだけです。 レオナルドの場合、イタリアにあるアンキアノの村であるレオナルドの出生地に関するデータを表示することができます。 キー「place_of_birth」は、イタリアにあるAnchianoという名前のオブジェクトに対応すると言います。

 { "name" : "Leonardo di ser Piero da Vinci", "date_of_birth": "1453-04-15", "profession": [ "Architect", "Engineer", "Anatomist", "Inventor", "Artist", "Sculptor" ], "place_of_birth": { "name": "Anchiano", "containedby": "Italy", }, }
      
      









本当にjsonではない



一般に、MQLクエリは有効なJSONオブジェクトではありません。 MQLはJSONのスーパーセットであり、あらゆる種類の自由を許可します。 Metaweb製品のアイデアの1つは、プログラムはユーザーが犯すエラーや事務的なエラーを許すことができるということです。 このアイデアは他の言語やプログラムにも存在し、そもそも-World Wide Webでは-htmlの一部がエラーで記述されていても問題ありません。ドキュメントを表示する必要があります。

たとえば、ここに、まれで価値のある職業を持つ人々を探す有効なJSONリクエストがあります。

 { "id": "/en/pope", "/people/profession/people_with_this_profession": [{ "name": null, "limit": 4 }] }
      
      





引用符を削除しても、リクエストは引き続き機能します。

 { id: /en/pope, /people/profession/people_with_this_profession: [{ name: null, limit: 4 }] }
      
      





括弧を閉じたり、ペアをコロンで区切ったりする必要もありません。そのため、絶対に不名誉な例を次に示します。

  id /en/pope /people/profession/people_with_this_profession [{ name null limit 4
      
      







Freebaseデバイス



公式ガイドは、Freebase内でのデータの保存方法に関する非常に優れた入門書です。 Freebaseで使用される4つのオブジェクトはオブジェクトパラダイムの背後に完全に隠れているため、これは私たちにとってあまり重要ではありません。 興味がある場合は、 マニュアルの対応するページを参照できます

そのため、Freebaseを使用すると、その中にあるオブジェクトについて考えることができます。 各オブジェクトは中括弧{ }



によって制限され、コロンで区切られたプロパティと値のペアで構成されます。 FreebaseがMQLクエリへの応答として発行するオブジェクトは有効なJSONオブジェクトですが、OOPパラダイムのオブジェクトとは異なります。 それらを無秩序なペアのセットと考えるのが最善です。

識別子は、MQLでプロパティ(つまり、コロンの前に来るもの)として使用できます。 値には、識別子、リテラル、配列、最後にネストされたオブジェクトを指定できますFreebaseには、識別子を作成するルールがあります。 識別子は、スラッシュ/



で区切られた名前空間とキーで構成されます。 たとえば、識別子/people/person/date_of_birth



考えてみてくださいdate_of_birth



がキーであり、 /people/person



が名前空間です。

識別子は一意です。 セマンティックロードを実行する必要はありませんが、多くの場合、オブジェクトの識別子によって何が問題になっているかを理解するのは簡単です。

画像

オブジェクトのユニバーサルプロパティ


すべてのFreebaseオブジェクトには、次の予約済み(ユニバーサルプロパティ)があります。



ここでは、MQLクエリで最もよく使用されるプロパティ、名前、識別子、およびタイプを検討します。



識別子


Freebaseには多くの識別子があります。 これらの中で最も重要なのは/type/object/guid



、これは一度だけ与えられます。 省略形/type/object/mid



ます。 まあ、彼らは通常リクエストで/type/object/id



します-それはしばしば人間が読むことができます。 最も重要なことは、同じ識別子を持つ2つのオブジェクトがないことです。 たとえば、アダム・スミスと呼ばれる人の数を見てみましょう。 英語版ウィキペディアの記事です。 道徳哲学者のアダム・スミスだけが、誇り高い識別子/en/adam_smith



ます。 他のすべてのアダムス/en/adam_smith_1965



政治家/en/adam_smith_1965



)、 サッカー選手/en/adam_smith_huddersfield



)、または他の誰でも、異なる方法で識別されます。



Freebase.comの検索フィールドに識別子を入力して、オブジェクトプロパティページを取得できます。

画像



プロパティ/タイプ/オブジェクト/名前


各オブジェクトには名前があります。 名前は一意のものではなく、オブジェクトには通常、複数の名前があります(言語ごとに1つ)。 最も興味深いのは、これによりクエリがまったく複雑にならないことです。名前を要求すると、現在の名前としてFreebaseにインストールされている言語の名前のみが与えられることに気付くでしょう。 したがって、通常の文字列のようなタイプ名のオブジェクトを処理できます。



プロパティ/タイプ/オブジェクト/タイプ


このプロパティは、オブジェクトのタイプを設定します。 1つのオブジェクトには複数のタイプがあります-これは通常発生します。

リクエストでtype



プロパティを指定した場合、このタイプのネームスペースを省略できます。 タイプ/film/director



プロパティは何ですか? もちろん、このタイプの名前空間にあるもの、つまり/film/director



で始まるもの。 たとえば、スタンリーキューブリックが製作したすべての映画のクエリを考えてみましょう。 クエリは左側に省略形で表示されます。これをさらに使用し、右側にMetaweb開発者がそれほど親切ではない場合の外観を示します。

リクエスト 完全な形のリクエスト
 [{ "name": "Stanley Kubrick", "type": "/film/director", "film": [], }]
      
      



 [{ "/type/object/name": "Stanley Kubrick", "/type/object/type": "/film/director", "/film/director/film" : [] }]
      
      





第二に、/ type / object名前空間のすべてのプロパティを省略することができます-そのため、 id



name



type



などのみを記述する権利があります。 なんで? FreebaseのすべてのオブジェクトはObject型であるためです。



さまざまなタイプのMQLクエリ



すでにかなりの数のクエリを整理していますが、言語自体にはまだ焦点を合わせていません。 まず、MQLで必要な値がどのように要求されるかを見てみましょう。 次の場合が発生します。



単一値リクエスト


Freebaseがリクエストオブジェクトと同じ構造のオブジェクトを返すが、不明なフィールドが埋められている場合、リクエストでこのフィールドをnull



に置き換える必要があります。 このような例を見てきましたが、ここにもう1つあります。 ミュージシャンのキース・エマーソンの出身はどこですか?



リクエスト 答え
 { "name": "Keith Emerson", "type": "/music/artist", "origin": null }
      
      





 { "result": { "name": "Keith Emerson", "origin": "England", "type": "/music/artist" } }
      
      









値の配列を照会する


null



を使用して音楽グループのすべてのアルバムを照会しようとすると、エラーが発生します。 オブジェクトの配列が必要な場合は、角括弧[]



使用します。 Freebaseは、この配列にコンマ区切りの行を挿入します。 音楽グループのアルバムの例も公式ガイドに記載されています。Hawkingによって書かれた本のリストがあります。



リクエスト 答え
 { "name": "Stephen Hawking", "type": "/book/author", "works_written": [] }
      
      





 { "result": { "name": "Stephen Hawking", "works_written": [ "The Universe in a Nutshell", "A Brief History of Time", "George's Secret Key to the Universe",
      
      





もっとたくさんあります
  "Computer Resources for People With Disabilities", "The Nature of Space and Time", "On the Shoulders of Giants", "Black Holes and Baby Universes and Other Essays", "George's Cosmic Treasure Hunt", "The Theory of Everything", "The Grand Design", "A Briefer History of Time", "God Created the Integers", "George and the Big Bang", "The Large Scale Structure of Space-Time", "The Illustrated Brief History of Time", "The Singularities of Gravitational Collapse and Cosmology", "Gravitational Radiation from Colliding Black Holes", "Black Holes in General Relativity", "Black Hole Explosions?", "The Development of Irregularities in a Single Bubble Inflationary Universe", "Wave Function of the Universe", "Information Loss in Black Holes", "The large scale structure of space-time", "General Relativity; an Einstein Centenary Survey", "Is the end in sight for theoretical physics?", "Black holes and baby universes and other essays", "A brief history of time", "My Brief History", "Vector Fields in Holographic Cosmology", "Inflation with Negative Lambda", "Accelerated Expansion from Negative Lambda", "The Dreams That Stuff Is Made Of: The Most Astounding Papers of Quantum Physics and How They Shook the Scientific World", "Local Observation in Eternal inflation", "The No-Boundary Measure in the Regime of Eternal Inflation", "The Classical Universes of the No-Boundary Quantum State", "No-Boundary Measure of the Universe", "Volume Weighting in the No Boundary Proposal", "The Measure of the Universe", "Populating the Landscape: A Top Down Approach", "A Non Singular Universe",
      
      







  "Black Holes and the Information Paradox" ], "type": "/book/author" } }
      
      









逆に、単一の値ではなく配列を要求する場合-これには問題はありません-Freebaseは結果を変換し、単一の値を持つ配列を返します。



オブジェクトのリクエスト


でも、私のアプリケーションでは、ホーキングの本の名前だけでなく、発売日も知りたいと思っています。写真は傷つきません。 これも可能です。 実際、最後のリクエストで受け取った本の配列は、文字列の配列のように見えるだけです。 実際、これはオブジェクトの配列であり、Freebaseはオブジェクトを文字列に折り畳むだけで、 name



プロパティのみを残します。



また、私たちのミュージシャンの出身地であるイングランドは、単なる「イングランド」というラインではなく、本格的なオブジェクトです。 クエリでオブジェクト表現を取得するには、次のように{ }



コンストラクトが使用されます。



 { "name": "Keith Emerson", "type": "/music/artist", "origin": { } }
      
      







その結果、オブジェクトに関する最も重要な情報、その識別子、名前、およびタイプリストが提供されます。

クエリ結果
 { "result": { "origin": { "id": "/en/england", "name": "England", "type": [ "/common/topic", "/location/location", "/film/film_subject", "/book/book_subject", "/location/administrative_division", "/film/film_location", "/location/uk_constituent_country", "/user/xleioo/winning_night/option_list", "/location/statistical_region", "/location/dated_location", "/symbols/name_source", "/m/04kp2w0", "/user/robert/military/military_power", "/symbols/flag_referent", "/user/skud/flags/topic", "/user/skud/names/topic", "/user/robert/military/topic", "/base/petbreeds/topic", "/m/04mp17s", "/user/xleioo/winning_night/topic", "/organization/organization_scope", "/base/charities/geographic_scope", "/sports/sports_team_location", "/base/thoroughbredracing/thoroughbred_racehorse_origin", "/user/tsegaran/random/taxonomy_subject", "/base/authors/country_of_origin", "/base/authors/topic", "/biology/breed_origin", "/fictional_universe/fictional_setting", "/government/political_district", "/olympics/olympic_participating_country", "/base/summermovies2009/topic", "/base/leicester/topic", "/base/popstra/location", "/location/country", "/base/england/topic", "/base/ontologies/ontology_instance", "/event/speech_topic", "/user/skud/legal/treaty_signatory", "/government/governmental_jurisdiction", "/base/masterthesis/topic", "/user/jamie/default_domain/yacht_racing/yacht_racing_country", "/base/horticulture/cultivar_origin", "/base/horticulture/topic", "/base/localfood/food_producing_region", "/base/localfood/topic", "/sports/sport_country", "/base/todolists/topic", "/base/tagit/concept", "/food/beer_country_region", "/periodicals/newspaper_circulation_area", "/location/uk_statistical_location", "/base/biblioness/bibs_location", "/base/biblioness/bibs_topic", "/base/aareas/schema/gb/constituent_country", "/base/aareas/schema/administrative_area", "/base/uncommon/topic", "/base/schemastaging/statistical_region_extra", "/people/place_of_interment", "/base/allthingsnewyork/topic", "/base/events/topic", "/base/events/geographical_scope", "/base/tonyfranksbuckley/topic", "/base/piratesofthewirralpeninsula/topic", "/military/military_combatant", "/military/military_post", "/organization/organization_member" ] }, "name": "Keith Emerson", "type": "/music/artist" } }
      
      







ネストされたクエリ


ミュージシャンの出身国に関するその他の情報を入手することができます。これにより、埋め込みリクエストが作成されます。 たとえば、エマーソンの出身国で話されている言語を知りたいです。 クエリエディターからのプロンプトを受信する国のタイプを追加していることに注意してください。

リクエスト 答え
 { "name": "Keith Emerson", "type": "/music/artist", "origin": { "type": "/location/country", "official_language": null } }
      
      



 { "result": { "name": "Keith Emerson", "type": "/music/artist", "origin": { "type": "/location/country", "official_language": "English Language" } } }
      
      







下に行くことができます:その国で話されている言語はどの言語ファミリーに属しますか、エマーソンはどこから来ますか?

リクエスト 答え
 { "name": "Keith Emerson", "type": "/music/artist", "origin": { "type": "/location/country", "official_language": { "type": "/language/human_language", "language_family": [] } } }
      
      



 { "result": { "type": "/music/artist", "name": "Keith Emerson", "origin": { "type": "/location/country", "official_language": { "language_family": [ "West Germanic languages", "Indo-European languages", "Anglo-Frisian languages" ], "type": "/language/human_language" } } } }
      
      







これらのかなり愚かなクエリは、より有用なものに簡単に一般化されます。たとえば、もともと英語圏の国からのミュージシャンのリストのリクエスト。配列出力をよく使用することに注意してください。さて、limit



出力を3つの結果に制限する別の言葉



リクエスト 答え
 [{ "name": null, "type": "/music/artist", "origin": [{ "type": "/location/country", "official_language": "English Language" }], "limit": 3 }]
      
      



 { "result": [ { "origin": [{ "type": "/location/country", "official_language": "English Language" }], "name": "The Katinas", "type": "/music/artist" }, { "origin": [{ "type": "/location/country", "official_language": "English Language" }], "name": "Shermain Jeremy", "type": "/music/artist" }, { "origin": [{ "type": "/location/country", "official_language": "English Language" }], "name": "Patsy Moore", "type": "/music/artist" } ] }
      
      







すべてのオブジェクトプロパティを要求する


クエリを作成するときに役立つのは、オブジェクトのすべてのプロパティを取得することです。これに使用されるデザインは非常にシンプルで便利です。プロパティの名前としてのアスタリスクと、値で満たされた空の配列"*" : []





リクエスト 答え
 { "name": "Keith Emerson", "type": "/music/artist", "origin": { "type": "/location/country", "*": [] } }
      
      



イギリスには多くの財産があります
 { "result": { "origin": { "fifa_code": [ "ENG" ], "second_level_divisions": [ "Rutland", "Leicestershire", "Leicester", "Derbyshire", "Derby", "Northamptonshire", "Nottinghamshire", "Nottingham", "Lincolnshire", "London Borough of Wandsworth", "London Borough of Bromley", "London Borough of Hounslow", "London Borough of Croydon", "London Borough of Sutton", "London Borough of Enfield", "London Borough of Hillingdon", "London Borough of Lambeth", "London Borough of Redbridge", "City of Westminster", "London Borough of Merton", "London Borough of Brent", "London Borough of Waltham Forest", "London Borough of Camden", "Royal Borough of Kingston upon Thames", "London Borough of Haringey", "London Borough of Bexley", "London Borough of Lewisham", "London Borough of Southwark", "London Borough of Harrow", "City of London", "London Borough of Newham", "London Borough of Barking and Dagenham", "London Borough of Richmond upon Thames", "London Borough of Barnet", "London Borough of Hammersmith and Fulham", "London Borough of Islington", "London Borough of Havering", "Royal Borough of Kensington and Chelsea", "Royal Borough of Greenwich", "London Borough of Tower Hamlets", "London Borough of Hackney", "London Borough of Ealing", "Lancashire", "Blackburn with Darwen", "Blackpool", "Greater Manchester", "Cheshire", "Cheshire West and Chester", "Borough of Halton", "Cheshire East", "Warrington", "Cumbria", "Merseyside", "Cornwall", "Isles of Scilly", "Wiltshire", "Borough of Swindon", "Devon", "Torbay", "Plymouth", "Bristol", "Somerset", "North Somerset", "Bath and North East Somerset", "Dorset", "Poole Borough Council", "Bournemouth Borough Council", "Gloucestershire", "South Gloucestershire", "Middlesbrough Borough Council", "Borough of Stockton-on-Tees", "Tyne and Wear", "Redcar and Cleveland", "North Yorkshire", "County Durham", "Borough of Darlington", "Borough of Hartlepool", "Northumberland", "Cambridgeshire", "Peterborough", "Essex", "Thurrock", "Southend-on-Sea", "Hertfordshire", "Suffolk", "Norfolk", "Bedford", "Luton", "Central Bedfordshire", "West Midlands", "Shropshire", "Telford and Wrekin", "Worcestershire", "Warwickshire", "Herefordshire", "Staffordshire", "Stoke-on-Trent", "South Yorkshire", "North East Lincolnshire", "East Riding of Yorkshire" ], "national_anthem": [], "permission": [ "/boot/all_permission" ], "guid": [ "#9202a8c04000641f8000000000014381" ], "name": [ "England" ], "creator": [ "/user/metaweb" ], "type": "/location/country", "languages_spoken": [ "Old English", "Early Modern English", "English Language" ], "calling_code": [ 44 ], "id": [ "/en/england" ], "iso_alpha_3": [], "iso3166_1_alpha2": [], "currency_formerly_used": [], "gdp_nominal": [], "form_of_government": [ "Constitutional monarchy", "Constituent country" ], "iso_numeric": [], "administrative_divisions": [ "North East England", "North West England", "Yorkshire and the Humber", "West Midlands", "East Midlands", "East of England", "Greater London", "South East England", "South West England", "Little Gidding", "Dominion of New England", "Chilton", "Selby District", "Wakefield", "Dalvíkurbyggð", "Manor", "Upleadon" ], "third_level_divisions": [], "timestamp": [ "2006-10-22T08:58:48.0043Z" ], "key": [ "9316", "england", "ENG", "01Yg6fA3mG5Bf", "0080-5673", "190404", "66705302048946451041", "$0410$043D$0433$043B$0438$044F", "27953", "3003238", "713477", "Inglaterra", "$30A4$30F3$30B0$30E9$30F3$30C9", "8690", "Inghilterra", "10342", "Inglaterra", "England", "16627", "1023", "Angleterre", "4925", "$0410$043D$0433$043B$0438$044F", "Angleterre", "$0410$043D$0433$043B$0438$044F", "$0410$043D$0433$043B$0438$044F", "Inglaterra", "Inglaterra", "Inghilterra", "England", "$30A4$30F3$30B0$30E9$30F3$30C9", "England", "E92000001", "england$002F942213", "England", "$0625$0646$062C$0644$062A$0631$0627", "252", "281", "$067E$0627$062F$0634$0627$0647$06CC_$0627$0646$06AF$0644$0633$062A$0627$0646", "Anglija", "$C601$B780", "Anglia", "England", "England", "England", "Anglia", "13531", "$C601$AE38$B9AC", "England", "Engeland", "$0410$043D$0433$043B$0456$044F", "$0627$0646$062C$0644$062A$0631$0627", "Inggeris", "Anglia", "2353", "Anglija", "England", "$0130ngiltere", "Inggris", "England", "372", "England", "$0907$0902$0917$094D$0932$0945$0923$094D$0921", "$0627$0646$0643$0644$062A$0631$0629", "$0627$0646$062C$0644$062A$0640$0640$0631$0627", "Mellemengland", "GB-ENG", "$0907$0902$0917$094D$0932$0948$0923$094D$0921", "$0628$0625$0646$062C$0644$062A$0631$0627", "Engelske", "X$1EE9_Anh", "England", "$0391$03B3$03B3$03BB$03AF$03B1", "$0386$03B3$03B3$03BB$03BF$03B9", "Anh_C$00E1t_L$1EE3i", "Englanti", "Anglia", "Engelse", "$0E41$0E04$0E27$0E49$0E19$0E2D$0E31$0E07$0E01$0E24$0E29", "Anglija", "$0627$0644$0625$0646$062C$0644$064A$0632$064A", "11799", "$82F1$683C$5170", "Anglija", "England", "801", "$0625$0646$0643$0644$062A$0631$0647", "$0E0A$0E32$0E15$0E34$0E2D$0E31$0E07$0E01$0E24$0E29", "Anh", "Inglesa", "3812", "$05D0$05E0$05D2$05DC$05D9$05D4", "$0391$03B3$03B3$03BB$03AF$03B1", "$0627$0646$062C$0644$064A$0632$064A", "$0625$0646$0643$0644$062A$0631$0627", "England", "$0627$0646$06AF$0644$0633$062A$0627$0646", "$0625$0646$0643$0644$062A$0631$0651$0627", "Anglesa", "$0410$043D$0433$043B$0438$0439$0441$043A$0430" ], "official_language": [ "English Language" ], "currency_used": [ "UK £" ], "first_level_divisions": [ "East Midlands", "Greater London", "North West England", "South West England", "North East England", "East of England", "West Midlands", "Yorkshire and the Humber", "South East England" ], "search": [], "fourth_level_divisions": [], "gdp_nominal_per_capita": [], "iso3166_1_shortname": [], "capital": [ "London" ], "attribution": [ "/user/metaweb" ], "fips10_4": [], "mid": [ "/m/02jx1", "/m/071yqyc", "/m/071yqqb", "/m/07xyh0z" ], "internet_tld": [ "uk" ] }, "type": "/music/artist", "name": "Keith Emerson" } }
      
      





オブジェクトをより良くリクエストする方法


かっこで混乱した人のために、Freebaseでオブジェクトをリクエストする方法の概要を以下に示します。

建設業 その意味
 "" : null
      
      



. default- : value ( ) name ( ). , !
 "" : []
      
      



. , ,
 "*" : []
      
      



 "" : {}
      
      



. ,
 "" : [{}]
      
      



. {},
 "" : { }
      
      



- ,
 "" : [{ }]
      
      



. .




開始するには十分です。MQLには、さまざまなコンパレータ、正規表現、あらゆる種類のAND、OR、およびNOTがあることが明らかです。もう1つの優れた言語はAcreです。これにより、Semantic MediaWikiで行われるのと同様の方法でクエリ結果をフォーマットできます。DbpediaとWikidataの話よりも先に。そもそも何に興味がありますか?



All Articles