Запрос Freebase - исключение определенных значений - PullRequest
5 голосов
/ 09 апреля 2011

Я хочу получить название всех фильмов и их жанр. Это нормально, если информация о жанре пуста, но если жанр известен, я хочу получить его.

"/film/film/genre": [{"id":null,"optional":"optional"}]

Но я не заинтересован в гей-порнографии, поэтому я хочу, чтобы исключить все фильмы с жанром «/en/gay_pornography".

"/film/film/genre": [{"id|=":["/en/gay_pornography"],"optional":"forbidden"}]

Проблема в том, как объединить это в одном запросе? То есть как получить все фильмы, даже не имеющие жанра, и исключить pr0n?

Редактировать: необходимо исключить несколько жанров, например, также / en / pornographic_movie

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011

Вы в основном там: вам просто нужно два предложения "жанра".MQL позволяет вам сделать это, разрешив произвольные префиксы для любого предложения:

[{
  "id":   null,
  "type": "/film/film",
  "genre": [{
    "id":       null,
    "optional": true
  }],
  "forbid:genre": {
    "id|=": [
      "/en/gay_pornography",
      "/en/pornographic_movie"
    ],
    "optional": "forbidden"
  }
}]​

http://tinyurl.com/4449ufg

0 голосов
/ 09 апреля 2011

Используйте оператор "но не" :

 "genre": [{
    "id":       null,
    "id!=":     "/en/gay_pornography",
    "optional": true
  }]

Полный пример: http://tinyurl.com/3tjdb4j

Редактировать: Это не отвечает на вопрос.Это просто предотвращает указание этого конкретного идентификатора в качестве жанра фильма, но не запрещает фильм.Ответ @ phillip-kendal правильный.

...