Freebase извлекает не отредактированные данные - PullRequest
0 голосов
/ 01 ноября 2011

В дополнение к этому вопросу: ссылка Я спрашиваю, могу ли я получить данные, такие как текст или даже геолокацию, из тем, которые, по-видимому, не содержат никакой информации (но текстовое описание от википедия)

1 Ответ

1 голос
/ 01 ноября 2011

Итак, проблема в том, что при выполнении следующего запроса вы не получите никаких результатов:

[{
  "name": "River Thames",
  "type": "/location/location",
  "geolocation": [{
    "latitude":  null,
    "longitude": null
  }],
  "/common/topic/article": [{
    "text": {
      "maxlength": 16384,
      "chars":     null
    }
  }]
}]​

Попробуйте

Это потому, чтоFreebase не имеет геокординаты (пока) для темы под названием «Река Темза».Другими словами, в Freebase нет комбинации фактов, которая бы точно соответствовала этой структуре запроса, поэтому она ничего не возвращает.Однако он имеет координаты для устья реки, поэтому вы получите результаты для этого аналогичного запроса:

[{
  "name": "River Thames",
  "type": "/location/location",
  "/geography/river/mouth_long_lat": [{
    "latitude":  null,
    "longitude": null
  }],
  "/common/topic/article": [{
    "text": {
      "maxlength": 16384,
      "chars":     null
    }
  }]
}]​

Попробуйте

Но что вы должны сделатьесли вы заранее не знаете, полностью ли заполнены искомые данные в Freebase?

Вы можете пометить определенные части запроса как «необязательные», что означает, что они должны быть возвращены, если данные присутствуют, но что запрос все равно должен возвращать результаты, даже если эти данные отсутствуют.Таким образом, для вашего исходного запроса, который будет выглядеть следующим образом:

[{
  "name": "River Thames",
  "type": "/location/location",
  "geolocation": [{
    "latitude":  null,
    "longitude": null,
    "optional":  true
  }],
  "/common/topic/article": [{
    "text": {
      "maxlength": 16384,
      "chars":     null
    }
  }]
}]​

Попробуйте его

Теперь вы должны получить результаты с текстом статьи, но геолокациивозвращается как пустой массив.

Еще одна вещь, на которую я должен обратить внимание, это то, что вы должны знать, что написанный вами запрос запрашивает список ВСЕХ тем в Freebase с именем «River Thames».Прямо сейчас этот запрос возвращает только один результат, но в будущем, когда в Freebase будет добавлено больше данных, он может вернуть несколько результатов.Если вы действительно интересуетесь только ЭТОЙ рекой Темзой, вам следует запросить ее с помощью уникального MID, например:

{
  "id": "/m/0d2kt"
  "name": null,
  "type": "/location/location",
  "geolocation": [{
    "latitude":  null,
    "longitude": null,
    "optional":  true
  }],
  "/common/topic/article": [{
    "text": {
      "maxlength": 16384,
      "chars":     null
    }
  }]
}​

Попробуйте

...