2014-01-31 3 views
0

Могу ли я создать внутреннее соединение на бесплатной основе, которое использует другой запрос?Запрос Freebase с внутренними соединениями в статусе

Я пытался создать соединение между 2 querys:

Во-первых, выбрать все художника, что жанр является таким же, как нирвана без нирваны:

[{ 
    "id": null, 
    "name": null, 
    "name!=": "nirvana", 
    "type": "/music/artist", 
    "genre": [{ 
    "name|=": [ 
     "Punk rock", 
     "Grunge", 
     "Alternative rock", 
     "Rock music", 
     "Hardcore punk" 
    ] 
    }] 
}] 

второй, выбрать все жанр of nirvana:

[{ 
    "name": "nirvana", 
    "type": "/music/musical_group", 
    "/music/artist/genre": [] 
}] 

Я хочу создать такой запрос, но он не работает.

[{ 
    "id": null, 
    "name": null, 
    "name!=": "nirvana", 
    "type": "/music/artist", 
    "genre": [{ 
    "name|=": 
    [{ 
     "name": "nirvana", 
     "type": "/music/musical_group", 
     "/music/artist/genre": [] 
    }] 
    }] 
}] 

ответ

1

Я не уверен, почему вам нужно сделать все это как один запрос. Поскольку музыка Nirvana охватывает множество очень популярных жанров, ваш запрос, вероятно, вернет тысячи результатов, что будет означать, что вам придется сделать несколько запросов API, чтобы получить все результаты в любом случае.

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

[{ 
    "id": null, 
    "name": null, 
    "/music/artist/genre": [{ 
    "id": null, 
    "name": null, 
    "!/music/artist/genre": { 
     "id": "/m/0b1zz", 
     "name": null 
    } 
    }] 
}] 

Восклицательный знак перед 2-й жанр собственности означает, что мы хотим обратная связь, т.е. «музыкальные художники с этим жанром», а не «музыкальные жанры для этого художника».

Обратите внимание, что я использовал MID (/ m/0b1zz) для представления Nirvana. Вы не должны использовать имена для определения тем в запросе, поскольку они не уникальны. Вы хотите получить результаты для Нирвана, начатый Курт Кобейном в 1987 году, а не только любая группа под названием Nirvana.