2010-06-28 13 views
2

J'ai un script simple qui récupère tous les Freebase types dans un domaine. Maintenant, je veux filtrer les types CVT, mais je ne peux pas comprendre comment écrire ce test. Si je l'écris la façon qui semble le plus évident:Freebase MQL Test pour non vrai

<acre:script> 
    var q_categories = [{ 
    "id":  null, 
    "name": null, 
    "sort": "name", 
    "type": '/freebase/domain_category', 

    "domains": [{ 
     "id": null, 
     "name": null, 
     "sort": "name", 

     "!/type/type/domain": [{ 
     "id": null, 
     "name": null, 
     "sort": "name", 

     "/freebase/type_hints/mediator!=": true 
     }], 
    }] 
    }]; 

    var categories = acre.freebase.mqlread(q_categories).result; 
</acre:script> 

Je reçois une erreur:

JS exception: acre.freebase.Error: /api/status/error: Can't use comparison operators on boolean values

Je suppose que cela peut être un cas d'utilisation de la directive "optional": "forbidden", mais je suis Je ne sais pas comment structurer la syntaxe même si ma supposition est correcte.

Tout nudge dans la bonne direction serait très apprécié.

Répondre

2

Cela devrait fonctionner:

"/freebase/type_hints/mediator": { 
    "optional": "forbidden", 
    "value": true 
} 

post-scriptum Je suggère de travailler dans l'éditeur de requête lorsque vous essayez de développer une requête. Voici un exemple de la requête utilisant optionnel: interdit. http://tinyurl.com/2co63sy