Freebase: Вземете име и ID на Wikipedia в една заявка на определен език

Възможно ли е да направите една заявка в MQL, за да получите името и идентификатора на wikipedia за определен език от Freebase? Ако това е възможно, възможно ли е да се направи това и за набор от езици (напр. немски и английски)?


person Bernhard Vallant    schedule 01.12.2011    source източник


Отговори (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
comment
Добре, благодаря, това също разбрах по-късно този следобед :) Но едно нещо, което също пропускате, което се оказа важно за мен, е включването на "optional": "optional" във всички секции за име и wiki, защото в противен случай няма да има резултат се връща, ако нещо на дадения език не съществува! - person Bernhard Vallant; 02.12.2011
comment
Добра точка. Актуализирах заявката според вашето предложение. Можете също така да използвате по избор: 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