Knowledge Graph Search API ช่วยให้คุณค้นหาเอนทิตีในกราฟความรู้ของ Google ได้ API ใช้ประเภท schema.org มาตรฐานและเป็นไปตามข้อกำหนดของ JSON-LD
กรณีการใช้งานทั่วไป
ตัวอย่างวิธีใช้ Knowledge Graph Search API มีดังนี้
- ได้รับการจัดอันดับของรายการที่มีชื่อเสียงที่สุดซึ่งตรงกับเกณฑ์ที่กำหนด
- คาดคะเนเอนทิตีที่เติมในช่องค้นหา
- การใส่คำอธิบายประกอบ/การจัดระเบียบเนื้อหาโดยใช้เอนทิตีกราฟความรู้
ดูข้อมูลโดยละเอียดเกี่ยวกับวิธีและพารามิเตอร์ของ API ได้ที่ข้อมูลอ้างอิง API
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงคำขอ 1 ประเภทที่คุณส่งไปยัง API ได้ (แต่โปรดดูส่วนข้อกำหนดเบื้องต้นก่อน นอกจากนี้คุณจะต้องใส่คีย์ API ของคุณเองด้วย)
https://kgsearch.googleapis.com/v1/entities:search?query=taylor+swift&key=API_KEY&limit=1&indent=True
ตัวอย่างการค้นหาด้านบนแสดงผลลัพธ์ JSON-LD ที่คล้ายกับตัวอย่างต่อไปนี้
{
"@context": {
"@vocab": "http://schema.org/",
"goog": "http://schema.googleapis.com/",
"resultScore": "goog:resultScore",
"detailedDescription": "goog:detailedDescription",
"EntitySearchResult": "goog:EntitySearchResult",
"kg": "http://g.co/kg"
},
"@type": "ItemList",
"itemListElement": [
{
"@type": "EntitySearchResult",
"result": {
"@id": "kg:/m/0dl567",
"name": "Taylor Swift",
"@type": [
"Thing",
"Person"
],
"description": "Singer-songwriter",
"image": {
"contentUrl": "https://t1.gstatic.com/images?q=tbn:ANd9GcQmVDAhjhWnN2OWys2ZMO3PGAhupp5tN2LwF_BJmiHgi19hf8Ku",
"url": "https://en.wikipedia.org/wiki/Taylor_Swift",
"license": "http://creativecommons.org/licenses/by-sa/2.0"
},
"detailedDescription": {
"articleBody": "Taylor Alison Swift is an American singer-songwriter and actress. Raised in Wyomissing, Pennsylvania, she moved to Nashville, Tennessee, at the age of 14 to pursue a career in country music. ",
"url": "http://en.wikipedia.org/wiki/Taylor_Swift",
"license": "https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"
},
"url": "http://taylorswift.com/"
},
"resultScore": 4850
}
]
}
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาที่คล้ายกันในภาษาต่างๆ ที่รองรับ การค้นหานี้จะแสดงรายการที่ตรงกับ Taylor Swift
Python
"""Example of Python client calling Knowledge Graph Search API.""" import json import urllib api_key = open('.api_key').read() query = 'Taylor Swift' service_url = 'https://kgsearch.googleapis.com/v1/entities:search' params = { 'query': query, 'limit': 10, 'indent': True, 'key': api_key, } url = service_url + '?' + urllib.urlencode(params) response = json.loads(urllib.urlopen(url).read()) for element in response['itemListElement']: print(element['result']['name'] + ' (' + str(element['resultScore']) + ')')
Java
package com.google.knowledge.platforms.syndication.entitymatch.codesample; import com.google.api.client.http.GenericUrl; import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponse; import com.google.api.client.http.HttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.jayway.jsonpath.JsonPath; import java.io.FileInputStream; import java.util.Properties; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; /** Example of Java client calling Knowledge Graph Search API */ public class SearchExample { public static Properties properties = new Properties(); public static void main(String[] args) { try { properties.load(new FileInputStream("kgsearch.properties")); HttpTransport httpTransport = new NetHttpTransport(); HttpRequestFactory requestFactory = httpTransport.createRequestFactory(); JSONParser parser = new JSONParser(); GenericUrl url = new GenericUrl("https://kgsearch.googleapis.com/v1/entities:search"); url.put("query", "Taylor Swift"); url.put("limit", "10"); url.put("indent", "true"); url.put("key", properties.get("API_KEY")); HttpRequest request = requestFactory.buildGetRequest(url); HttpResponse httpResponse = request.execute(); JSONObject response = (JSONObject) parser.parse(httpResponse.parseAsString()); JSONArray elements = (JSONArray) response.get("itemListElement"); for (Object element : elements) { System.out.println(JsonPath.read(element, "$.result.name").toString()); } } catch (Exception ex) { ex.printStackTrace(); } } }
JavaScript
<!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> </head> <body> <script> var service_url = 'https://kgsearch.googleapis.com/v1/entities:search'; var params = { 'query': 'Taylor Swift', 'limit': 10, 'indent': true, 'key' : '<put your api_key here>', }; $.getJSON(service_url + '?callback=?', params, function(response) { $.each(response.itemListElement, function(i, element) { $('<div>', {text:element['result']['name']}).appendTo(document.body); }); }); </script> </body> </html>
PHP
<?php require '.api_key'; $service_url = 'https://kgsearch.googleapis.com/v1/entities:search'; $params = array( 'query' => 'Taylor Swift', 'limit' => 10, 'indent' => TRUE, 'key' => $api_key); $url = $service_url . '?' . http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = json_decode(curl_exec($ch), true); curl_close($ch); foreach($response['itemListElement'] as $element) { echo $element['result']['name'] . '<br/>'; }
เอนทิตีของกราฟความรู้
กราฟความรู้มีรายการต่างๆ หลายล้านรายการที่อธิบายสิ่งต่างๆ ในโลกจริง เช่น ผู้คน สถานที่ และสิ่งของ เอนทิตีเหล่านี้จะสร้างโหนดของกราฟ
เอนทิตีบางประเภทที่พบในกราฟความรู้มีดังนี้
- หนังสือ
- BookSeries
- EducationalOrganization
- เหตุการณ์
- GovernmentOrganization
- LocalBusiness
- ภาพยนตร์
- MovieSeries
- MusicAlbum
- MusicGroup
- MusicRecording
- องค์กร
- วารสาร
- Person
- สถานที่
- SportsTeam
- TVEpisode
- TVSeries
- VideoGame
- VideoGameSeries
- WebSite