User:Yaron Koren

I'm a MediaWiki developer and entrepreneur.

My extensions
Extensions I've created:

Semantic Forms &middot; Semantic Drilldown &middot;Semantic Calendar (obsolete) &middot;Semantic Compound Queries &middot; Wiki Garden (unreleased) &middot; Data Transfer &middot; Replace Text &middot; External Data &middot; Admin Links &middot; Semantic Internal Objects

Extensions I've made substantial additions to:

Semantic Result Formats &middot; Semantic Google Maps (obsolete) &middot; Maps &middot; Semantic Maps

Extensions I've made small contributions to:

Semantic MediaWiki &middot; StringFunctions &middot; Configure

2006
Sometime in the winter of 2006, I had the idea of creating 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, consumer product 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: authors, sources (newspapers, magazines and the like), topics etc. would each be represented as a class, and each one would aggregate information so that a users could view opinions for each of these; 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 in wi-fi cafes, creating the site. Part of that task involved making changes and additions to Semantic MediaWiki to enable our interface to look the way we wanted; that was my introduction to MediaWiki programming. In August I took a trip to Boston to attend Wikimania 2006, where I saw a few talks by Markus Krötzsch and Denny Vrandečić, the developers of Semantic MediaWiki; it was fortuitous timing, since Nick and I had some uncertainties about how the wiki should be designed, and I got to ask them directly; sadly, neither of them later remembered meeting me at that conference. In September the site was released.

For all the work we had done to make Discourse DB user-friendly, there was a problem with it, which was that it required users to enter Wikipedia-style 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. It did make the entry of data much easier, though.

2007
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: you have the flexibility of a wiki combined with the power of a true database. Thinking about it more in January, that optimistic vision turned into a depressing one, as I imagined one programmer and/or administrator after another having the same idea, then spending the months that it had taken me and Nick to create such a site and its forms, and making all the same mistakes, or perhaps entirely different ones, all to create what were essentially copies of the same code. Soon afterwards, while sitting in a development meeting on an unrelated topic, I had a vision of being able to automate the creation of forms; this idea eventually became the Semantic Forms extension. The initial conception 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 June, at the encouragement of Sergey Chernyshev, a fellow SMW enthusiast (and early SF adopter), I created a Google Groups mailing list for Semantic Forms, which started off with around 10 members.

Starting in July I gave some feedback to Matt Williamson, an SF user who wanted to create a mapping tool, whose work would be released in September as the excellent Semantic Layers.

At the beginning of August I got my first sense of the possibilities of open-source development: I had released a new version of SF in which all of the user's interactions with a specific helper form were done client-side, through Javascript. Unfortunately, due to my lack of understanding of Javascript, the new version only worked fully on Firefox browsers: every other browser had at least some problems. Two days later, I was somewhat stunned when a user sent me a sizeable patch with a fix that worked perfectly across all browsers.

In August I also took on my first consulting job implementing an SMW- and SF-based semantic wiki (at my suggestion - they needed 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, and user-friendliness, that Semantic Forms attempts to do for data entry. I did some planning work on it, soliciting some feedback from the Semantic Forms users, and the next month I created and released the Semantic Drilldown extension.

2008
In January 2008 the site Chickipedia was launched - I wasn't involved with it, but I mention it because it was, and perhaps remains, the biggest and most high-profile user of Semantic Forms. That same month, 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 application were querying a typical relational database.

In February I also transferred Semantic Forms from the script.aculo.us Javascript library to the Yahoo! UI library, which enabled some important improvements for autocompletion in the forms.

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

By March, I was working almost exclusively on MediaWiki-related projects in one way or another. I was hired to set up some semantic wikis, and do development work for a (non-semantic) wiki-based company. I was also commissioned to upgrade Semantic Drilldown, an upgrade that was released in April as SD 0.4. When I needed to make new business cards, I had them read "MediaWiki developer" as my job title.

In April I released the extension Replace Text, which does global text replacements, and whose main purpose was to get around SMW's limitation of semantic properties not following redirects. As with Data Transfer, I had already created most of the code well beforehand, for internal use on various projects, but hadn't gotten around to releasing it until later.

In July I released the site Referata, a site that hosts wikis that use SMW and these other extensions. This site had been in the works for a long time, in fact nearly as long as Semantic Forms had been out; but its scope kept expanding as other extensions were added. That same month I also took over the development of the Semantic Google Maps extension, which had lain neglected for a while and lacked the ability to do aggregation of points. I added this ability in and released a new version. The next week, I flew to Alexandria, Egypt for Wikimania 2008, where I gave a talk on my various extensions and co-presented with Markus and Denny; it was the first time I had seen either one since Wikimania 2006, and we had some very interesting conversations; it was a nice trip all around. After getting back from Egypt, I created and released the Semantic MediaWiki Community Wiki, a wiki on Referata intended to serve as a directory for the people, sites and other information connected with SMW. It was a rewarding experience being able to create the site, announce it and start getting the first contributions all within a matter of hours.

In August I was invited to visit the RPI Tetherless World Constellation, a research group headed by semantic-web pioneer James Hendler; it turned out that they were doing some rather extensive work around Semantic MediaWiki, including several of my extensions. It was very interesting to see the extensions being used in a research context, and some of the demos were quite thought-provoking, including the RPI Map, which displays multiple sets of points on the same map. Later in August I released the Semantic MediaWiki quick reference guide (available in and  formats), a one-page "cheat sheet" for the SMW, Semantic Forms, Semantic Drilldown and Semantic Calendar extensions. The idea for it had actually come in June, though the execution took a little time.

In September the wiki Verwaltungskooperation, run by the Austrian KDZ - Centre for Public Administration Research, which uses a number of my extensions including Semantic Forms, Semantic Drilldown and Semantic Google Maps, won a jury award in Austria's Multimedia State Awards. It was, I believe, the first time my software or any wiki running it received public recognition.

In October I added the code from Semantic Calendar into the Semantic Result Formats extension, as a new format for inline queries, called 'calendar'.

In November I released the extension Semantic Compound Queries, which allows for calling multiple queries at the same time; it was directly inspired by the RPI Map I saw three months earlier. Later that month, we held the first-ever Semantic MediaWiki users meeting in Cambridge, Massachusetts, which I had helped to organize; the meeting was a success, with around 30 attendees, and a lot of focused discussions on both the business and technical side of things.

In December I deprecated Semantic Calendar, making it my first obsolete extension. Later that month I added four new formats to Semantic Result Formats: 'sum', 'average', 'min' and 'max', all simple math functions. I also made some changes to the setup of SRF, which made me, at least temporarily, in charge of that extension as well. I also released a new version of the quick reference guide, incorporating these and other changes.

2009
In January 2009 I released the External Data extension, which doesn't require Semantic MediaWiki, but was created in order to allow SMW to use data from external APIs.

In February, another developer added code to enable caching in External Data; later, in June, yet another developer would contribute code that allowed External Data to access data directly from both databases and LDAP servers. I still consider External Data my ultimate "stone soup" project, whose initial version contained the seed of a good idea that others quickly saw the potential in, and turned into a full-featured extension.

In March a wiki I helped develop, the OpenCongress wiki, launched; it was the first high-profile usage of the External Data extension, along with being one of the most high-profile usages of Semantic MediaWiki. I believe it also provided a template (no pun intended) for how a MediaWiki wiki can be used for data integration: the site, through External Data and some other extensions, displayed data from outside APIs, maps and feeds, in conjunction with homegrown data compiled using Semantic Forms.

In April I added the importing of XML to the Data Transfer extension, which finally justified its name (it was always intended for both import and export).

In May I released the extension Admin Links, which creates a special page meant to serve as a "control panel" for the wiki; until then, MediaWiki had not really had such a feature. It was actually based on a "helpful links" page I created for Referata. I also helped bring about the SMW testimonials page, which was intended to help bring SMW in line with other enterprise applications, in order to help "sell" it to businesses. I also added the 'outline' format to Semantic Result Formats. I also added import of CSV files to Data Transfer, which proved much more useful than import of XML files (I'm still not sure if XML-import is useful at all.) Later that month I added support for Semantic MediaWiki and four of its related extensions to the great Configure extension, so that their settings could now be configured through the wiki interface.

In May I also started supervising Jeroen De Dauw, a student in the Google Summer of Code, whose project was to create a "Semantic Maps" extension that would integrate Semantic Google Maps, Semantic Layers and hopefully some other mapping services.

In June, Sergey Chernyshev and I released the Semantic Bundle - a package of Semantic MediaWiki and 14 other extensions that are often used in conjunction with it. The aim was to try to simplify the process of installing SMW for new users, given the large tangle of extensions that had grown around it (which, admittedly, both Sergey and I had helped a great deal to create).

In July, I helped Jeroen with the first release from the Google Summer of Code project, which had by now become two extensions: Maps and Semantic Maps. These two extensions helped to provide a rather-complete mapping solution for Semantic MediaWiki, by providing full support for Google Maps, Google Earth, OpenLayers (previously the basis of Semantic Layers), and Yahoo! Maps. I also terminated the SF mailing list that month; all future emails were to be sent to the SMW mailing lists, which was part of an attempt to streamline the process of communication for SMW users. That month I also attended the 2009 New York City Wiki-Conference, where I presented about both the new maps extensions and Semantic MediaWiki in general.

In August I released the extension Semantic Internal Objects, which lets you store so-called "n-ary relations" in SMW in a flexible way; this was something that had been discussed for over two years at that point. Later that month was the Wikimania conference in Buenos Aires, where I presented about the External Data extension, as well as being on a panel about Semantic MediaWiki. This was also the Wikimania where SMW and various of the other spinoff extensions (some of them mine) began to be seriously discussed as additions onto Wikipedia.

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