我正在尝试将所有事件都放在地理边界框中(大约覆盖法国),但我想排除所有重复发生的事件,因此我没有大量的法网打开等等。为此,我在查询中使用了以下内容。
"/time/event/instance_of_recurring_event": {
"id": null,
"optional": "forbidden"
}
但是,我注意到戛纳电影节的出现(每年的个别事件),因为它们没有设置instance_of_recurring_event属性。然而,我可以看到经常性的“戛纳电影节”与2006,2007,2008(等)电影节活动有关,所以我想我可以用一些反思消除它们。到目前为止我所拥有的是:
[{
"name": null,
"id": null,
"/time/event/instance_of_recurring_event": {
"id": null,
"optional": "forbidden"
},
"/time/event/locations": [{
"geolocation": {
"latitude>": 43.2,
"latitude<": 49.68,
"longitude>": -5.1,
"longitude<": 7.27
}
}],
"/type/reflect/any_reverse": [{
"id": null,
"estimate-count": null,
"name": null,
"/time/recurring_event/current_frequency": null
}]
}]
这让我可以看到2008年戛纳电影节与戛纳电影节主题相关(每年都有一次),但我不知道是否有办法用它来消除2008年戛纳电影我的名单上的节日。这有意义吗?
尝试here查询编辑器。
感谢您的帮助!
答案 0 :(得分:1)
试试这个:http://tinyurl.com/3okuuzw
一些变化:
我添加了类型:/ time / event,这样您就只能获得该类型的对象。在您的查询中,您没有按类型进行限制,并且在Freebase中,您可以在没有类型的对象上声明属性。这是一个小的改变,可能不会产生很大的影响。
戛纳电影节所属的/ film / film_festival_event类型有一个属性/电影/ film_festival_event /节日,指向节日系列节目。
我在查询末尾添加了一个子句,以排除具有该属性集的对象,并假设它们是重复发生的事件。
这只适用于电影节,但您可以为其他属性重复使用相同的模式。
[{
"name": null,
"mid": null,
"type" :"/time/event",
"/time/event/instance_of_recurring_event": {
"id": null,
"optional": "forbidden"
},
"/time/event/locations": [{
"geolocation": {
"latitude>": 43.2,
"latitude<": 49.68,
"longitude>": -5.1,
"longitude<": 7.27
}
}],
"/film/film_festival_event/festival": [{
"mid": null,
"optional": "forbidden",
"limit" : 0
}]
}]
其他一些要点:
一个。如果要将标识符存储在数据库中或以后以任何方式重新使用它们,则应使用“mid”而不是“id”。 mid是比id更强的标识符,因为它可以在合并和其他数据转换中幸存。要求mid而不是id也更快 - 当结果集很大时,实际上会产生很大的差异。
湾“限制”:0表示“在结果中根本不返回此条款”。我认为你仍然需要mid,因为你必须在一个具有其他指令的子句中至少有一个属性(在这种情况下是limit和optional)。