Возможно ли сделать один запрос в MQL для получения имени и идентификатора википедии для определенного языка из Freebase? Если это возможно, возможно ли это сделать и для набора языков (например, немецкий & английский)?Freebase: Получить имя и идентификатор Википедии в одном запросе на определенном языке
2
A
ответ
6
На вопрос и ответил, но вот немного лучше форма запроса:
[{
"id": "/en/white_house",
"mid": null,
"de:name": {
"lang": "/lang/de",
"value": null
},
"en:name": null,
"wiki_de:key": {
"/type/key/namespace": "/wikipedia/de_id",
"value": null,
"optional": True,
},
"wiki_en:key": {
"/type/key/namespace": "/wikipedia/en_id",
"value": null,
"optional": True,
}
}]
Ключи Википедии будут экранированы, если они содержат специальные символы, поэтому вы должны проконсультироваться с http://wiki.freebase.com/wiki/MQL_key_escaping, чтобы узнать, как их отменить.
Некоторые из причин этого запроса лучше включают:
- английский язык по умолчанию, так что не нужно быть указаны имена
- снимает неоднозначность поиска пространства имен. Ваш исходный запрос на самом деле ищет ключ «white_house» в любом пространстве имен (и находит его в «/ en», что эквивалентно id «/ en/white_house»)
Обратите внимание, что вам не нужно для поиска по идентификатору. Вы можете использовать любое средство поиска, которое предоставляет MQL, например, поиск одним из ключей Википедии или использование «name ~ =»: «white house» для поиска всех тем, содержащих эту строку, или что-либо еще, что работает для ваших исходных данных и вашего использования дело.
0
Позабавившись с MQL я наконец придумал следующий запрос (для white_house
):
[{
"id": null,
"mid": null,
"de:name": {
"lang": "/lang/de",
"value": null
},
"en:name": {
"lang": "/lang/en",
"value": null
},
"key": {
"value": "white_house"
},
"wiki_de:key": {
"/type/key/namespace": "/wikipedia/de_id",
"value": null
},
"wiki_en:key": {
"/type/key/namespace": "/wikipedia/en_id",
"value": null
}
}]
Хорошо, спасибо, это то, что я узнал позже днем ... Но одна вещь, которую вам тоже не хватает, которая оказалась для меня существенной, включает в себя «необязательный»: «необязательный» «во всех название и разделы вики, потому что иначе результат не будет возвращен, если что-то на данном языке не существует! –
Хорошая точка. Я обновил запрос по вашему предложению. Вы также можете использовать «optional»: True или «optional»: «true» в зависимости от того, какой язык программирования/JSON lib вы используете. –