Възможно ли е да направите една заявка в MQL, за да получите името и идентификатора на wikipedia за определен език от Freebase? Ако това е възможно, възможно ли е да се направи това и за набор от езици (напр. немски и английски)?
Freebase: Вземете име и ID на Wikipedia в една заявка на определен език
Отговори (2)
Зададен и отговорен, но ето малко по-добра форма на заявката:
[{
"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,
}
}]
Ключовете на Wikipedia ще бъдат екранирани, ако съдържат специални знаци, така че трябва да се консултирате с http://wiki.freebase.com/wiki/MQL_key_escaping за това как да ги премахнете.
Някои от причините тази заявка да е по-добра включват:
- Английският е езикът по подразбиране, така че не е необходимо да се посочва за имена
- той премахва неяснотата на търсенето в пространството на имената. Вашата оригинална заявка всъщност търси ключа "white_house" във всяко пространство от имена (и го намира в "/en", което е еквивалентно на id "/en/white_house")
Имайте предвид, че не е необходимо да правите търсене по ID. Можете да използвате всяко средство за търсене, което MQL предоставя, като например търсене по един от ключовете на Wikipedia или използване на "name~=":"white house", за да намерите всички теми, съдържащи този низ или нещо друго, което работи за вашите начални данни и вашата употреба случай.
person
Tom Morris
schedule
02.12.2011
Добре, благодаря, това също разбрах по-късно този следобед :) Но едно нещо, което също пропускате, което се оказа важно за мен, е включването на
"optional": "optional"
във всички секции за име и wiki, защото в противен случай няма да има резултат се връща, ако нещо на дадения език не съществува!
- person Bernhard Vallant; 02.12.2011
Добра точка. Актуализирах заявката според вашето предложение. Можете също така да използвате по избор: True или optional:true в зависимост от езика за програмиране/JSON lib, който използвате.
- person Tom Morris; 03.12.2011
След като си поиграх с 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
}
}]
person
Bernhard Vallant
schedule
02.12.2011