2011-04-09 11 views
5

Deseo recuperar el nombre de todas las películas y su género. Está bien si la información sobre el género está vacía, pero si se conoce el género, quiero recuperarlo.Consulta de Freebase: exclusión de ciertos valores

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

Pero no estoy interesado en pornografía gay, así que quiero excluir todas las películas con género "/ es/gay_pornography".

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

El problema es ¿cómo combinarlo en una consulta? Es decir. cómo obtener todas las películas, incluso aquellas sin género y excluir pr0n?

Editar: es necesario excluir varios géneros, p. También/es/pornographic_movie

+2

Esta pregunta me hizo lawl. Exclusión de "ciertos valores". – FreeAsInBeer

Respuesta

4

Básicamente estás ahí: solo necesitas dos cláusulas de "género". MQL le permite hacer esto al permitir prefijos arbitrarios en cualquier cláusula:

[{ 
    "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

¡Gracias! Ahora me di cuenta de que mi intento anterior con 2 cláusulas no funcionaba porque no era JSON válido. Con prefijos, funciona bien :) – user574959

0

Utilice el operador "but not":

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

ejemplo completo: http://tinyurl.com/3tjdb4j

Editar: Esto no responde a la pregunta. Solo evita que esa identificación particular aparezca como un género de la película, pero no prohíbe la película. La respuesta de @ phillip-kendal es correcta.

+0

no funciona: '"id": "/ es/every_poolboys_dream", "tipo": "/ película/película", "género": [{ "id": null, "id! =" : "/ es/gay_pornography", "opcional": verdadero }] ' – user574959

Cuestiones relacionadas