[OSM-dev] Possible GSoC project: tag/area monitoring service
michael at mdaines.com
Tue Mar 6 19:10:10 GMT 2012
> I wouldn't worry about monitoring area changes, as we have OWL
> (supposedly being integrated with the "Rails port"), Changepipe,
> and possibly others that do this already. I'd suggest you consider
> focusing on the idea of monitoring for changes based on tags and
> object IDs. I've been interested in changes to some large relations,
> and other widely dispersed objects, which isn't addressed by any of
> the current tools. Integration with Rails would be great, so we can
> "Watch" any object directly from the website. Of course performance
> would have to be considered before implementing such a service went
> live, but I don't think that's terribly important for a GSoC project.
When you mention changes to large relations and widely dispersed objects, I was wondering if you had any specific use cases in mind? I'd also be interested in hearing what kind of expressions you might expect to be able to use. For example, I was thinking you could say something like "give me updates for things with the tag highway=residential and is_in=Canada".
It looks like Changepipe is similar to what I'm proposing, and OWL is sort of the opposite. My idea is that clients would tell the API they're interested in hearing about something (a tag, an id, some expression involving multiple tags, an area) and then updates would be sent to them as they happen, instead of polling for what's happened in the past. This scheme would reduce the number of incoming requests at the cost of the client being responsible for receiving the information and doing something with it. I believe this approach would reduce the complexity of processing new information since it would be known in advance what updates are required.
Another approach would be that clients tell the API they're interested in getting information about something and can then request an RSS feed which has recent updates. But instead of requesting an RSS feed for an arbitrary watch expression, it's this sort of bin which stuff is thrown into as the map is updated. This seems easier to translate into something you can do manually with a web browser than what's described above.
I'm curious to hear which of these approaches would be useful to people interested in this sort of thing. It seems like being able to ask for RSS feeds would be more immediately useful, but having data "pushed" to clients would allow for more flexible applications.
More information about the dev