All of these clever remapping schemes scare me a bit to be honest. They all seem to imply a non-negligible impact on our query time, and a considerable amount of logic.
A simpler and more performant scheme, which requires an API break (!), is to simply add an extra field on our Subject structure "current_uri". In the DB we represent this as an extra column on the 'event' table which holds the URI id of the current location of the subject. Doing it like this would require that the file monitor lives inside Zeitgeist - and not as an extension, but as a core component, since it requires a special db structure. The file monitor would then directly modify the 'current_uri' column of the 'event' table on file events. This breaks our "events are immutable" invariant - which i'm otherwise very fond of... So there are many drawbacks to this approach. Despite all the drawbacks something inside me tells me that something like this is the right solution. I very much dislike adding advanced stuff like a file monitor as a core component, but we could make up for this, by having it be like a stub, that didn't do anything by default, but would have to be instrumented by an extension or something... So it requires air fair deal of thought architecture wise... -- Monitoring Create/Move/Copy Files events https://bugs.launchpad.net/bugs/602211 You received this bug notification because you are a member of Zeitgeist Framework Team, which is subscribed to Zeitgeist Framework. Status in Unity: Triaged Status in Unity Files Place: Triaged Status in Zeitgeist Framework: Confirmed Status in Zeitgeist Datahub: Confirmed Bug description: An issue we are facing at the moment is that ppl lose track of there files in a timeline if the file was moved around or renamed. I would propose using taskview or patch nautilus to actually grab those events and either: 1) Modify the uris in the uris table 2) Create a new table with | new_id | old_uri_id | event | to map uris to their actual ids and the event that allowed the change, this would allow us to track a history of renaming or moving a file. It will look a bit like the following: 9 | 9 | 48124 # CREATE EVENT 12 | 9 | 48126 # MOVE EVENT In other words the last row means uri 12 was moved from uri 9 with event 48126 UPDATE: 3) Create a changable_uri table that is a map of the uri table. it gets updated upon moved and rename. We then add new resulttype that allow you to ask for either pureSubject or adaptedSubject. depending on which one is chosen we then use the according table in the join of the find_events_query :) _______________________________________________ Mailing list: https://launchpad.net/~zeitgeist Post to : firstname.lastname@example.org Unsubscribe : https://launchpad.net/~zeitgeist More help : https://help.launchpad.net/ListHelp