2011-08-18 59 views
3

我試圖獲得地理邊界框(大約涵蓋法國)中的所有事件,但我想排除所有重複發生的事件,所以我沒有獲得法國網球公開堆和類似。爲此,我在查詢中使用了以下內容。在任何反向反射上消除MQL結果

"/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查詢編輯器。

感謝您的幫助!

回答

1

試試這個:http://tinyurl.com/3okuuzw

一些改動:

  1. 我添加類型:/時間/事件,這樣你會只該類型的對象獲得。在你的查詢中,你沒有按類型限制,而在Freebase中,你可以在沒有類型的情況下在對象上聲明一個屬性。這是一個小變化,可能不會有很大的影響。

  2. 戛納電影節所屬的/ 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更強的標識符,因爲它能夠經受合併和其他數據轉換。要求中間而不是id更快 - 當結果集很大時,實際上會產生很大的差異。

b。 「limit」:0表示「在結果中根本不返回這個子句」。我認爲你仍然需要中期,因爲你必須在一個有其他指令的條款中至少有一個屬性(在這種情況下是限制和可選的)。

+0

乾杯,消除電影(和音樂)是我最終做的。感謝您的其他提示。 – kmc