Mit der Knowledge Graph Search API können Sie Entitäten im Google Knowledge Graph suchen. Die API verwendet standardmäßige schema.org-Typen und ist mit der JSON-LD-Spezifikation konform.
Typische Anwendungsfälle
Beispiele für die Verwendung der Knowledge Graph Search API:
- Abrufen einer Rangliste der bekanntesten Entitäten, die bestimmten Kriterien entsprechen.
- Entitäten in einem Suchfeld vervollständigen.
- Inhalte mithilfe der Knowledge Graph-Elemente annotieren/organisieren
Ausführliche Informationen zu den API-Methoden und -Parametern finden Sie in der API-Referenz.
Beispielanfrage
Das folgende Beispiel zeigt eine Art von Anfrage, die Sie an die API senden können. Lesen Sie jedoch zuerst den Abschnitt Voraussetzungen. Sie müssen außerdem Ihren eigenen API-Schlüssel einfügen.
https://kgsearch.googleapis.com/v1/entities:search?query=taylor+swift&key=API_KEY&limit=1&indent=True
Die obige Beispielsuche gibt ein JSON-LD-Ergebnis wie das folgende zurück:
{
"@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
}
]
}
Die folgenden Codebeispiele zeigen, wie Sie eine ähnliche Suche in verschiedenen unterstützten Sprachen ausführen können. Diese Suche gibt Einträge zurück, die mit Taylor Swift
übereinstimmen.
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-Elemente
Der Knowledge Graph enthält Millionen von Einträgen, die echte Entitäten wie Personen, Orte und Dinge beschreiben. Diese Entitäten bilden die Knoten der Grafik.
Im Folgenden finden Sie einige der Entitätstypen, die im Knowledge Graph enthalten sind:
- Buch
- Buchreihe
- Bildungseinrichtung
- Ereignis
- Regierungsorganisation
- LocalBusiness
- Film
- Filmreihe
- Musikalbum
- Musikgruppe
- Musikaufnahme
- Organisation
- Periodisch
- Person
- Ort
- Sportteam
- TV-Folge
- Serien
- Videospiel
- VideoGameSeries
- Website