Freebase: получить имя и идентификатор Википедии в одном запросе на определенном языке - PullRequest
2 голосов
/ 01 декабря 2011

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

Ответы [ 2 ]

6 голосов
/ 02 декабря 2011

На вопрос и ответ, но вот несколько лучшая форма запроса:

[{
  "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", который эквивалентен идентификатору "/ en / white_house")

Обратите внимание, что вы нене нужно делать поиск по идентификатору.Вы можете использовать любое средство поиска, которое предоставляет MQL, например, поиск по одному из ключей Википедии или использование "name ~ =": "white house", чтобы найти все темы, содержащие эту строку, или что-либо еще, что работает для ваших начальных данных и вашего использования.случай.

0 голосов
/ 02 декабря 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
  }
}]
...