User:Yaron Koren

Sometime in the winter of 2006, I had the idea that it would be neat to see a site like Rotten Tomatoes, but for political opinions - why was it so hard, I thought, to find the opinions of commentators on the important issues, when it was so easy to find aggregated opinions on any old movie, video game, etc.? The idea lay dormant for a while, but in June I suggested working on it to a friend of mine, Nick Grandy. The timing was good, since we were both between jobs (I had quit my last job the previous year, to work on a website that ended up not going anywhere, but that's a different story.) We both were fascinated by Wikipedia, and decided to set up the site as a wiki; given the controversial nature of political opinion, we thought that it was important to allow many users to edit it, to avoid charges of bias (or actual bias, for that matter). We also thought making it a wiki, and thus editable by everyone, would mean less work for us in the long run; an ironic thought, in retrospect.

We looked at a few solutions, and quickly settled on MediaWiki and the Semantic MediaWiki extension. From there, many decisions flowed: there would be a series of classes, each one aggregating information so that one could view opinions by author, source, topic etc.; and semantic information would be contained only within templates, enforcing structure throughout the site and making editing easier. In July, Nick also came up with the eventual name: Discourse DB (the site is still running, and you can see it here). We spent part of the summer creating the site, and also making some additions to Semantic MediaWiki to get the interface looking the way we wanted; that was also my introduction to MediaWiki programming. In September the site was released.

There was still a problem with the site, which is that it required users to enter template calls into pages to add information, a requirement that, as I discovered from talking to people, essentially made data entry impossible for the vast majority of potential users. In December I added a form on the site that prompted the user for the fields of an opinion item, turned those values into a template call and saved it to the wiki. Not a big deal, but it still took over a week of development time, mostly because the form had autocompletion of author and source names.

After the form was added, I had the thought that such a form-based semantic wiki site could eventually become extremely popular, since it allowed for widespread collaboration on data with an ease that had never been available before. Thinking about it more in January, I had the depressing vision of one programmer and/or administrator after another spending the months that it had taken me and Nick to create such a site and its forms, and making all the same mistakes, all to create what were essentially copies of the same code. That's when I had a vision of being able to automate the creation of forms; or what eventually became the Semantic Forms extension. The initial vision looked almost nothing like what the current solution does: it was going to be a component of Semantic MediaWiki and not a separate extension; it would generate complete, autonomous PHP code for each form on one's site, instead of using scripted form-definition files; and the forms would be used only for adding data - editing data would still have to be done by hand.

I worked on the code on and off over the next four months, and discussed it with a few of the SMW developers and others, and in May 2007 Semantic Forms 0.1 was released. I've since put a great deal of work into improving it and trying to make it a truly enterprise-level application, trying to reduce the amount of time needed to create a full structured semantic wiki from several months to several hours. A large number of developers and users have also helped, making invaluable code contributions, bug fixes and suggestions.

In August I took on my first consulting job implementing an SMW- and SF-based semantic wiki (at my suggestion - they did need some convincing); the experience proved very helpful in seeing the software through fresh eyes, and seeing what features are really needed by real-world users. This led to a set of changes in SF, as well as code I wrote to enable an XML export of the data, which that project required.

In November 2007 I had the thought that search by semantic properties could benefit from the same automation as Semantic Forms had done for data entry, and the next month the Semantic Drilldown extension was created and released.

In January 2008 I was commissioned to create a calendar extension; Semantic Calendar was released in February. Just as with my previous extensions, the semantic nature of the data made it very easy to create a generic, all-purpose application; much easier than if the appliation were querying a typical relational database.

Later in February I packaged the XML-export code I created before, releasing it as the extension Data Transfer.

And that's the story of my MediaWiki development career. You can read more about me at my homepage, at http://yaronkoren.com.