Google Knowledge Graph Search API

API جستجوی نمودار دانش به شما امکان می‌دهد موجودیت‌هایی را در نمودار دانش Google پیدا کنید. API از انواع استاندارد schema.org استفاده می کند و با مشخصات JSON-LD مطابقت دارد.

موارد استفاده معمولی

چند نمونه از نحوه استفاده از دانش Graph Search API عبارتند از:

  • دریافت لیست رتبه بندی شده از شاخص ترین نهادها که با معیارهای خاصی مطابقت دارند.
  • تکمیل پیش بینی موجودیت ها در یک جعبه جستجو.
  • حاشیه نویسی/سازماندهی محتوا با استفاده از موجودیت های نمودار دانش.

برای اطلاعات دقیق در مورد روش‌ها و پارامترهای 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 را برمی گرداند.

پایتون

"""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']) + ')')

جاوا

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();
    }
  }
}

جاوا اسکریپت

<!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/>';
}

موجودیت های نمودار دانش

نمودار دانش میلیون‌ها ورودی دارد که موجودیت‌های دنیای واقعی مانند افراد، مکان‌ها و چیزها را توصیف می‌کند. این موجودات گره های گراف را تشکیل می دهند.

در زیر برخی از انواع موجودیت های موجود در نمودار دانش آمده است: