[OSM-talk] The future of bugs in OSM
SteveC
steve at asklater.com
Wed Jul 1 15:22:32 BST 2009
I've been thinking a bit about how bugs work in OSM.
I really like the way OSB works
http://openstreetbugs.appspot.com/
But it's closed source afaik and doesn't have an API. It uses human
input. new OSB is cool and tries to fix some of this
http://wiki.openstreetmap.org/wiki/User:Emka/new_OSB
I like keepright
http://keepright.ipax.at/
But it's more automated.
Here's my vision for how bugs should work.
You go to http://bugs.openstreetmap.org/
There's a big map of bugs which looks similar to OSB. It doesn't know
who you are and drops you in to beginner mode which shows bugs that
are relevant to you - human entered stuff say. There is an
intermediate mode which shows a slide which, when slid, shows more
bugs. So at the low end human entered stuff, but at the high you get
every single fixme from OSM. Then there is expert mode which looks
like keepright, and you can click various things on and off.
How do you enter bugs? There are two ways. As a human on bugs.osm.. www.openstreetmap.org
you can click a little green plus like OSB has on the map, or
potlatch will let you do it too.
But, and this is key, it also has a RESTful API for mass uploading of
bugs.
We need to do two things - unify the various bug systems and expose
more of the bugs.
To give you an example there are tons of bugs in the US, but there is
no systematic way to fix them, or even begin fixing them. There are
some good HOWTOs on the wiki on the actual individual details of how
to fix a bridge connected to the road beneath it, but no big list of
such bridges or where they are. We need to make this systematic.
http://wiki.openstreetmap.org/wiki/TIGER_fixup/Over_Connectedness
Why is my system better than OSB or keepright?
OSB with a simple API might fly, but it's not open and not quite part
of OSM. Keepright kind of gets there but the barrier to entry is high.
If I want to do an import and list bugs to check, or I want to write
my own little maplint utility to check for X or Y or Z I have to learn
whatever language keepright is in and start hacking against a large
codebase. Instead, bugs.openstreetmap.org would offer a really simple
REST api to throw bugs at.
I envisage it as a sort of clearing house for bugs. It will quickly
become very useful for lots of people writing small, loosly-joined
tools. The barrier to me writing a small bug app is low. I imagine all
sorts of little apps writing things to submit bugs much as keepright
or maplint sort of do now. All they have to do, is run a script to
report the bugs from planet every week (or whatever) and keep track of
the bug IDs and see if they're closed yet.
Now on the output side I think there is a huge amount of potential.
Right now people don't know where to start fixing things. You can
point people at OSB but that is human only, or you could point them at
keepright or maplint but then you have to fight to maintain those
things. Instead, bugs.openstreetmap.org would be a central clearing
house which everyone can submit to and use.
To go back to that example, if someone writes a script to find all
freeways in the USA which connect at right angles to residential roads
and submits them through the api to bugs.openstreetmap.org then you
have a big dataset. It becomes super fun, cool and easy to motivate
the community and say - hey lets fix all those bugs in the US. You can
draw graphs of the number of bugs being eaten up, show progress, make
a leaderboard... all the things that will motivate a *lot* of people
to fix these things. It will be so cool to be able to have many people
working on closing bugs, I'd make it my number one slide in every talk
I go to, saying "go to bugs.openstreetmap.org and enter or fix a bug"
maybe I should already with OSB.
Now, you can of course just write a standalone app to do that freeways
in the US a bit like keepright is a standalone app, but having it work
for that, then someone else enters all the bugs in Spain that they're
interested in, someone else when they import the next GNIS or
something, adds bugs against all the imported PoIs that they need to
be checked, other people can just enter bugs they see.... it becomes a
very powerful system. All it needs is a little REST api.
And what's doubly great is that it's basically a weekend, if that,
project to get started and do the simplest pieces. Then we can iterate
it from there.
Thoughts?
Best
Steve
More information about the talk
mailing list