2015-09-01 3 views
0

Я хочу получить информацию о фильме, но этот запрос не работает, если я использую свойство языка (что очень важно для меня). Есть ли способ достичь этого?Freebase не работает, когда используется языковое свойство

[{ 
    "type": "/film/film", 
    "name": "terminator", 
    "mid": null, 
    "language": "en", 
    "starring": [{ 
    "actor": null, 
    "mid": null 
    }] 
}] 
+0

Какие API вы используете? –

ответ

0

Во-первых, обязательное предупреждение - все Freebase API, являются уезжаю в ближайшем будущем, так что вы не должны писать новый код на их основе.

Предполагая, что вы используете API MQLread, есть несколько проблем, связанных с вашим запросом:

  • Там нет фильм называется просто «терминатор» Вы можете изменить свой запрос «Терминатор» или использовать оператор матча слово
  • Там нет собственности language для типа /film/film (или /type/object)
  • идентификатор для английского языка является /lang/en

Этот запрос будет делать примерные слова для языка по умолчанию (английский язык) и показывать имена на всех языках:

[{ 
    "type": "/film/film", 
    "name~=": "terminator", 
    "name": { 
    }, 
    "mid": null 
}] 

Если вы хотите изменить язык для всех меток, вы можете использовать параметр lang запроса, например

https://www.googleapis.com/freebase/v1/mqlread/?lang=%2Flang%2Fzh&query=%5B%7B+%22type%22%3A+%22%2Ffilm%2Ffilm%22%2C+%22n1%3Aname%22%3A+%7B+%22value%22%3A+%22The+Terminator%22%2C+%22lang%22%3A+%22%2Flang%2Fen%22+%7D%2C+%22name%22%3A+null%2C+%22mid%22%3A+null+%7D%5D

Это переключает язык на китайский язык, но затем переопределяет его в запросе для запроса на английском языке, как это:

[{ 
    "type": "/film/film", 
    "n1:name": { 
    "value": "The Terminator", 
    "lang": "/lang/en" 
    }, 
    "name": null, 
    "mid": null 
}] 
+0

Спасибо. Запрос работал. Но то, что вы сказали, пугает меня, «все API Freebase уходят в ближайшем будущем». Итак, какова альтернатива? –

+0

Это не должно быть неожиданностью. На страницах документации API Google и на веб-сайте Freebase есть очень большое предупреждение. Сейчас нет хорошей альтернативы. Для приложения для фильма некоторая комбинация IMDB, Wikidata, DBpedia может удовлетворить ваши потребности в зависимости от вашего бюджета, приложения и т. Д. –

+0

Да, попытался извлечь из вики-данных. Понимание структуры запросов становится слишком жестким для меня. Документация API wikidata не очень помогает. Можете ли вы помочь мне сформировать запрос, чтобы «получить детали всех индийских фильмов?» или «получить информацию о всех хинди-языковых фильмах»? Ваша помощь очень ценится. Спасибо. Следующий запрос возвращает слишком меньшее количество индийских фильмов по сравнению с тем, что есть в Википедии, https://wdq.wmflabs.org/api?q=claim[31:(TREE[11424][][279])]% 20and% 20tree [668] [150] [17131] –

Смежные вопросы