People are trying, once again, to kickstart the music scene here in my town. The other day I received two emails, each containing a schedule for a newly-activated local venue. In the past, I’ve advised folks to add this information to Eventful, which in turn feeds my my local aggregator. That hasn’t happened much, and when I sat down and did some of the data entry myself, I could see why. It’s such a drag!

There are really two very different scenarios for managing event data online: one personal, the other public. On the personal front, using services like Evite or Windows Live Events, you’re doing a single event: a meeting, a birthday party. It’s OK to fill in a form field by field.

But for public events, venue operators will typically want to do batch entry. And when you’ve got a schedule of dozens of events, it’s painful to decompose everything into fields and pump them into forms.

Here’s a piece of one of the schedules that was emailed to me:

March 15, 2008 (Saturday) Chris Fitz Band
March 20, 2008 (Thursday) Blues Jam w/ Otis Doncaster
March 22, 2008 (Saturday) Groove Theory

It was quick and easy for the author of that email to write out the schedule in that way. But it was really slow and difficult for me to input the same information to Eventful. Even though venue operators are highly motivated to do it, I can see why they often don’t.

So here’s how I speeded things up. I started with a template for a URL that invokes the Eventful API:

http://api.evdb.com/rest/events/new?app_key=XX&venue_id=XX&title=XX&start_time=2008-XX-XX+20:30

Then I made a bunch of copies, and tweaked them like so:

…title=Chris+Fitz&start_time=2008-03-15+20:30
…title=Otis+Doncaster&start_time=2008-03-20+20:30
…title=Groove+Theory&start_time=2008-03-22+20:30

Because all the events start at 8:30, I only need to adjust the title, month, and day for each record. It’s not only way quicker and easier to enter data this way, it’s also quicker and easier to check and correct. When I was done I put the email into one window, the new file into another, and compared. Corrections here are way easier than corrections that require you to navigate to an online database record and edit it in a form.

Finally I inserted the curl command in front of each record, yielding a script that invokes the set of URLs:

curl http://api.evdb.com/ … title=Chris+Fitz&start_time=2008-03-15+20:30
curl http://api.evdb.com/ … title=Otis+Doncaster&start_time=2008-03-20+20:30
curl http://api.evdb.com/ … title=Groove+Theory&start_time=2008-03-22+20:30

I saved this script as eventful.cmd, ran it on the Windows command line, and produced this result.

Now clearly this method is too geeky for a typical venue operator. But an online service like Eventful could smooth out the rough edges. I can easily imagine an unstructured input form that includes a template like the one I’ve shown here, invites people to copy and tweak it, and runs a batch insertion. It would need to let people preview the results before committing them, but that’s doable.

It seems to me that a lot of information systems expect civilians to do per-item data entry, but not batch entry. For that, they provide APIs for geeks to use. But as we see here, these two styles of data entry aren’t necessarily very far apart. And by applying a bit of Wiki-like inferencing to a more English-like script, they could be brought even closer.

The friction of data entry remains the single largest obstacle to bootstrapping the data web. Efforts to overcome that friction, and reduce the distance between what civilians can do with forms and what geeks can do with scripts, could make a huge difference.