1

Is it possible to ask a question like "how tall is the Eiffel Tower?" using google knowledge graph api? If not what is the correct api to use?

when i try this:

https://kgsearch.googleapis.com/v1/entities:search?query=how+tall+is+eiffel+tower&key=my_key&limit=1&indent=True

I get and empty result.

S. Vaghar
  • 191
  • 1
  • 1
  • 7
  • There aren't many examples on https://developers.google.com/knowledge-graph/, but it seems to me that it's for looking up entities by name, not for finding entities in free text. – Josh Lee Feb 03 '17 at 21:08

1 Answers1

1

It's possible to ask, but half of the time it will "answer" with something different than what you were asking and the rest of the time it will give you an empty result.

Even unambiguous searches usually return empty or unexpected results. For example, when I search for the current US President it returns a result about Barack Obama, and when I search for the US population it doesn't really say what it should say (318.9 million (2014)):

=> #<HTTParty::Response:0x7ffc5857b938 parsed_response={"@context"=>{"@vocab"=>"http://schema.org/", "goog"=>"http://schema.googleapis.com/", "EntitySearchResult"=>"goog:EntitySearchResult", "detailedDescription"=>"goog:detailedDescription", "resultScore"=>"goog:resultScore", "kg"=>"http://g.co/kg"}, "@type"=>"ItemList", "itemListElement"=>[{"@type"=>"EntitySearchResult", "result"=>{"@id"=>"kg:/m/09c7w0", "name"=>"United States", "@type"=>["Country", "Thing", "Place", "AdministrativeArea"], "description"=>"Country", "image"=>{"contentUrl"=>"http://t1.gstatic.com/images?q=tbn:ANd9GcQKp8mjZhEK0hZroCA4srP9VA9eD8-0PcCsKSU4olhQlh6dMlxc", "url"=>"https://commons.wikimedia.org/wiki/File:USA_Flag_Map.svg", "license"=>"http://creativecommons.org/licenses/by-sa/2.5"}, "detailedDescription"=>{"articleBody"=>"The United States of America, commonly referred to as the United States or America, is a federal republic composed of 50 states, a federal district, five major self-governing territories, and various possessions. ", "url"=>"https://en.wikipedia.org/wiki/United_States", "license"=>"https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"}, "url"=>"http://www.usa.gov/"}, "resultScore"=>246.96698}, {"@type"=>"EntitySearchResult", "result"=>{"@id"=>"kg:/g/1q5jrvck9", "name"=>"Population: Us", "@type"=>["Thing"], "description"=>"Song by Frank Portman"}, "resultScore"=>20.875225}]}, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"content-type"=>["application/json; charset=UTF-8"], "vary"=>["Origin", "X-Origin", "Referer"], "date"=>["Fri, 03 Feb 2017 20:33:38 GMT"], "server"=>["ESF"], "cache-control"=>["private"], "x-xss-protection"=>["1; mode=block"], "x-frame-options"=>["SAMEORIGIN"], "x-content-type-options"=>["nosniff"], "alt-svc"=>["quic=\":443\"; ma=2592000; v=\"35,34\""], "connection"=>["close"], "transfer-encoding"=>["chunked"]}>

Regardless of how I phrase the query or what keywords I use, it is practically useless. I have also tried specifying the &types= of results I want. Rarely does it ever return expected results; for example when I search for United States of America:

=> #<HTTParty::Response:0x7ffc58619f20 parsed_response={"@context"=>{"@vocab"=>"http://schema.org/", "goog"=>"http://schema.googleapis.com/", "EntitySearchResult"=>"goog:EntitySearchResult", "detailedDescription"=>"goog:detailedDescription", "resultScore"=>"goog:resultScore", "kg"=>"http://g.co/kg"}, "@type"=>"ItemList", "itemListElement"=>[{"@type"=>"EntitySearchResult", "result"=>{"@id"=>"kg:/m/09c7w0", "name"=>"United States", "@type"=>["Country", "Thing", "Place", "AdministrativeArea"], "description"=>"Country", "image"=>{"contentUrl"=>"http://t1.gstatic.com/images?q=tbn:ANd9GcQKp8mjZhEK0hZroCA4srP9VA9eD8-0PcCsKSU4olhQlh6dMlxc", "url"=>"https://commons.wikimedia.org/wiki/File:USA_Flag_Map.svg", "license"=>"http://creativecommons.org/licenses/by-sa/2.5"}, "detailedDescription"=>{"articleBody"=>"The United States of America, commonly referred to as the United States or America, is a federal republic composed of 50 states, a federal district, five major self-governing territories, and various possessions. ", "url"=>"https://en.wikipedia.org/wiki/United_States", "license"=>"https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"}, "url"=>"http://www.usa.gov/"}, "resultScore"=>4238.782227}]}, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"content-type"=>["application/json; charset=UTF-8"], "vary"=>["Origin", "X-Origin", "Referer"], "date"=>["Fri, 03 Feb 2017 20:29:07 GMT"], "server"=>["ESF"], "cache-control"=>["private"], "x-xss-protection"=>["1; mode=block"], "x-frame-options"=>["SAMEORIGIN"], "x-content-type-options"=>["nosniff"], "alt-svc"=>["quic=\":443\"; ma=2592000; v=\"35,34\""], "connection"=>["close"], "transfer-encoding"=>["chunked"]}>

I'd recommend not to waste your time with it as I already did. Also note that the Custom Search API does not include results from the Knowledge Graph, and there "non-custom" search API has long been deprecated.

Bryan Dimas
  • 1,389
  • 13
  • 18