ממשק ה-API לחיפוש של Knowledge Graph מאפשר למצוא ישויות ב-Google Knowledge Graph. ה-API משתמש בסוגים רגילים של schema.org ועומד בדרישות של מפרט JSON-LD.
תרחישים לדוגמה
דוגמאות לדרכים שבהן ניתן להשתמש ב-Knowledge Graph Search API:
- קבלת רשימה מדורגת של הישויות הבולטות ביותר שתואמות לקריטריונים מסוימים.
- השלמה חזויה של ישויות בתיבת חיפוש.
- הוספת הערות/ארגון תוכן באמצעות הישויות של Knowledge Graph.
מידע מפורט על השיטות והפרמטרים של ה-API זמין במאמר הפניית API.
בקשה לדוגמה
בדוגמה הבאה מוצג סוג אחד של בקשה שאפשר לשלוח ל-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/>';
}
ישויות של Knowledge Graph
ב-Knowledge Graph יש מיליוני ערכים שמתארים ישויות בעולם האמיתי כמו אנשים, מקומות ודברים. הישויות האלה יוצרות את הצמתים של התרשים.
אלה כמה מסוגי הישויות שנמצאות ב-Knowledge Graph:
- הזמנה
- BookSeries
- EducationalOrganization
- אירוע
- GovernmentOrganization
- LocalBusiness
- סרט
- MovieSeries
- MusicAlbum
- MusicGroup
- MusicRecording
- ארגון
- כתבי עת
- אדם
- מקום
- SportsTeam
- TVEpisode
- TVSeries
- VideoGame
- VideoGameSeries
- WebSite