Grants:IEG/MediaWiki data browser/Final

From Meta, a Wikimedia project coordination wiki

Welcome to this project's final report! This report shares the outcomes, impact and learnings from the Individual Engagement Grantee's 6-month project.

Part 1: The Project[edit]


In a few short sentences, give the main highlights of what happened with your project. Please include a few key findings or learnings from your project in bullet points, for readers who may not make it all the way through your report. The Miga Data Viewer application, or simply Miga, was developed - a lightweight, open-source, PHP- and JavaScript-based application that provides a mobile- and offline- friendly browsing interface for structured data. Though it does not have direct MediaWiki dependencies, this application is, in my opinion, ideally suited for browsing through the structured data contained in Wikipedia and Wikidata, as well as in other MediaWiki-based wikis.


In your midpoint report, you told us about the setup and background for your project. Do you have anything else to add to your methodology from the second half of your project? If so, please add it here.

The overall methodology was quite straightforward: design the software, write the code, and test and debug it. At the beginning I thought that it may be necessary to hire designers and/or developers to help with the task, but in the end no such hiring was necessary. I did consult informally with a few developers on various aspects of the software.


What did you do over the course of your project?

Please list all activities you’ve undertaken as part of your project, and provide a description for each activity.

  • I created the software, which, though it took a lot of time and ran into a number of challenges along the way, was straightforward as a work project.
  • I have attempted various efforts at marketing, mostly via emails and blog posts to various communities (Wikimedia, MediaWiki, Semantic MediaWiki, Wikidata, Open Knowledge Foundation). Most recently (in fact, after the end of the grant period), I presented Miga at the Semantic MediaWiki Conference (SMWCon) in Berlin.
  • Again as part of marketing, I created a "Miga app" that held schedule information for the Wikimania 2013 conference in Hong Kong. The organizers decided not to publicize it, and it was not widely used.

Outcomes and impact[edit]

What are the results of your project?

Please discuss anything you have created or changed (organized, built, grown, etc) as a result of your project.

  • The main outcome, of course, is MigaDV - a lightweight, open-source, PHP- and JavaScript-based application that provides a mobile- and offline- friendly browsing interface for structured data.
  • Tied in with that was also the creation of the site, linked above.
  • As part of the software creation, I developed a new file format (a subset of .ini) that allows for defining the schema of CSV files - i.e. the data type of each column, and connections between the columns. I named this format "Miga Schema". Whether it will ever be used by any other application is anyone's guess. It is fairly similar in concept to the Simple Data Format created by the Open Knowledge Foundation (OKFN) - a format, I only found out about after I started working on Miga. In my opinion, the Miga Schema format is superior to the Simple Data Format, being both more flexible and yet simpler - which, assuming those are the only two such schemas that exist, would make Miga Schema by default the world's best file format for defining the schema of a set of CSV files, or more generally, arbitrary data arranged in table form.
  • As another part of the application's development, I created PHP scripts that can be used to extract data from (a) infobox calls within Wikipedia and other MediaWiki-based wikis, (b) Semantic MediaWiki-based wikis, and (c) Wikidata; and in each case, save that data to one or more CSV files. As with the schema, this part of the application could in theory be used independently of everything else, to extract data for other purposes.

Progress towards stated goals and targets[edit]

Please use the provided table to:

  1. List each of your original goals/targets (measures of success) from your project plan.
  2. Next to each goal/target, list the actual outcome that was achieved.
  3. Explain how your outcome compares with the original goal. Did you reach your planned targets? Why or why not?

This table holds a combination of the "project goals" and the "measures of success".

Planned measure of success
(include numeric target, if applicable)
Actual result Explanation
Create a set of (open source) JavaScript code that can be used to automatically generate any number of data-specific "apps" (both web-based and device-based), that can be used to browse parts of Wikipedia/Wikidata, or any other MediaWiki-based wiki. Success This wording, written before the development started, could serve as an exact description of Miga as it currently exists. As demonstrated in the Miga demos page, the goal of generating "apps" was successful - Miga allows for the creation of such "apps" from all three such sources with a minimum of effort, thanks to the application itself as well as to the wiki-to-CSV scripts that it comes bundled with.
For "apps" that use Wikipedia/Wikidata's own data, some could potentially even be published by the Wikimedia Foundation itself, on the domains or elsewhere. Failure I don't know to what extent this was, or is, within my control, but at the moment there is no official usage of, or even acknowledgment of, the Miga Data Viewer. This is something I would very much like to change, and my guess is that Wikidata would present a much easier entree for such a thing than Wikipedia - and that the site is another strong possibility.
Software fully developed and available on a code-sharing site such as GitHub. Success Software is on GitHub.
At least 5 apps created by others that make use of Wikipedia/Wikidata data. Failure No such apps were created by others.
At least 1 such app available as a true mobile app. Failure See above.
The software in use in conjunction with at least 12 MediaWiki wikis, public and private. Failure It has been used only in conjunction with a handful of wikis.
A community of users for this software formed, that communicates on a regular basis on either its own mailing list or on one of the existing mailing lists, such as the main MediaWiki or Semantic MediaWiki mailing lists. Failure No such community exists..

The "measures of success" are, for the most part, "prorated" (since the funding was for half the requested amount).

Strategic impact[edit]

Please reflect on Wikimedia’s strategic priorities. We've provided 3 options below for the strategic priorities that IEG projects are mostly likely to impact. Select one or more strategic priorities that you feel your project has had impact on. Answer the question related to the priority you've selected by sharing any measures of success you have that point to this impact.

Option A: How did you increase participation in one or more Wikimedia projects?

Option B: How did you improve quality on one or more Wikimedia projects?

Option C: How did you increase the reach (readership) of one or more Wikimedia projects?

Sadly, I don't believe that the Miga project has done any of these. If it gains in usership, Miga could potentially benefit all three: increasing participation by pointing out the usefulness of the structured data within Wikipedia, Wikidata and any other MediaWiki-based wiki, large or small; improving quality by making the gaps and inconsistencies within the structured data of Wikipedia and Wikidata more apparent and much easier to find; and increasing readership by encouraging the creation and use of "apps" devoted to some subset of the data of Wikipedia and/or Wikidata. At the moment, none of the three has been accomplished.

Additional impact[edit]

Did your project have any other kinds of impact you had not anticipated when you planned your goals and targets?

  • Miga takes a "smart" approach to browsing data that I believe is quite innovative among software in general. The success (in my opinion) of Miga DV as a proof of concept for this kind of approach caused me to modify the Semantic Drilldown MediaWiki extension, an extension I created and maintain, to take a similarly "smarter" approach to data browsing, involving the software itself making more of the decisions about the input and layout of users' drill-down options.

Key Learnings[edit]

The best thing about trying something new is that you learn from it. We want to follow in your footsteps and learn along with you, and we want to know that you took enough risks in your project to have learned something really interesting! Think about what recommendations you have for others who may follow in your footsteps, and use the below sections to describe what worked and what didn’t.

  • In terms of technical knowledge, I learned a great deal about the HTML5 technologies Web SQL Database and LocalStorage, both of which I think are extremely important technologies. I also increased my understanding of programming object-oriented JavaScript and asynchronous JavaScript.
  • I think Miga, besides its usefulness as an actual application, is also a fantastic proof of concept for the idea of "smart" data browsing - in which the entire browsing interface is determined by the size, layout and nature of the data, and not user or adminstrator settings. We'll see if this idea catches on in any way in the larger world; it's certainly influenced my thinking quite a bit.

What worked well[edit]

What was successful? What would you recommend doing again? Please list these as short bullet points.

  • I believe the creation of the software was very successful. Despite technical obstacles, every goal set for the software's functionality was achieved.

What didn’t work[edit]

What would you not do again or recommend that others do differently in the future? Please list these as short bullet points.

  • Usage of the software, both in general and among Wikimedia project users, has not reached the level that I would like it to. Beyond that, see the "Grantee reflection" section, below.

Other recommendations[edit]

If you have additional recommendations or reflections that don’t fit into the above sections, please list them here.

  • See the "Grantee reflection" section, below.

Next steps and opportunities[edit]

Are there opportunities for future growth of this project, or new areas you have uncovered in the course of this grant that could be fruitful for more exploration (either by yourself, or others)? What ideas or suggestions do you have for future projects based on the work you’ve completed? Please list these as short bullet points.

  • The biggest effort that MigaDV requires is one of marketing, to get more people to use this software, specifically (for the needs of this grant) to view data from Wikipedia, Wikidata and other MediaWiki-based websites, but also to serve as a viewer for any structured data.

Project resources[edit]

Please provide links to all public, online documents and other artifacts that you created during the course of this project. Examples include: meeting notes, participant lists, photos or graphics uploaded to Wikimedia Commons, template messages sent to participants, wiki pages, social media (Facebook groups, Twitter accounts), datasets, surveys, questionnaires, code repositories... If possible, include a brief summary with each link.

Part 2: The Grant[edit]


Actual spending[edit]

Please copy and paste the completed table from your project finances page. Check that you’ve detailed all approved and actual expenditures. If there are differences between the planned and actual use of funds, please use the column provided to explain them.

  • I believe this question is not relevant to my project, since the payment all went directly to me to create the software.

Remaining funds[edit]

Do you have any unspent funds from the grant?

Please answer yes or no. If yes, list the amount you did not use and explain why.

  • I believe this question is not relevant to my project.

If you have unspent funds, they must be returned to WMF, please see the instructions for returning unspent funds and indicate here if this is still in progress, or if this is already completed:

  • I believe this question is not relevant to my project.


Did you send documentation of all expenses paid with grant funds to grantsadmin(_AT_), according to the guidelines here?

Please answer yes or no. If no, include an explanation.

  • I believe this question is not relevant to my project.

Confirmation of project status[edit]

Did you comply with the requirements specified by WMF in the grant agreement?

Please answer yes or no.

  • Yes, I believe so.

Is your project completed?

Please answer yes or no.

  • Yes.

Grantee reflection[edit]

We’d love to hear any thoughts you have on what this project has meant to you, or how the experience of being an IEGrantee has gone overall. Is there something that surprised you, or that you particularly enjoyed, or that you’ll do differently going forward as a result of the IEG experience? Please share it here!

I have mixed feelings about the overall experience of being an IEG grantee, and specifically about doing a software development project via an IEG. I'm certainly very grateful to the Wikimedia Foundation for this funding, which kickstarted a project that may not have been created for years otherwise. And the regular check-ins with Siko Bouterse provided helpful outside feedback on the software as I was creating it. On the other hand, I'm not sure that the IEG program is well-designed for software projects in general. The structure of it is obviously intended more for outreach and community-building projects of various kinds, as the nature of the questions here alone makes clear. Beyond that, the whole concept of giving a grant in this way may not be ideal for software programming. After three months of the six-month grant period, I had already completed the technical goals of the project, and had put in a set of hours that I felt was commensurate with the $15,000 grant amount. After that halfway period, I was conflicted about what to do next: my natural desire to keep improving the software, as well as the fact that the grant period was only halfway over, pushed me in the direction of continuing at the same pace; but the fact that, in my view of things, I had already done the work paid for - and, perhaps more importantly, that I didn't want to set an unreasonable expectation among the IEG committee of how much development $15,000 could achieve for future projects - pushed me in the direction of stopping development work entirely. In the end, I essentially did the latter, though I did continue to make bug fixes; and stopping was a decision I wasn't entirely happy about.

The grant-based approach, or at least the one taken by the IEG program, is an unnatural one for software development, in that it doesn't pay based on results, or even based on hours spent, but rather based on the duration of time between the start of the project and the end of the project: a somewhat artifical concept in programming. It could be that that same awkwardness applies event for non-technical projects; and conversely, it could be that the awkwardness existed mostly in my mind, and that I should have just explicitly stated halfway through that I was essentially done with the project. I'm not sure about either of those.

Perhaps a big part of the problem was that the funding amount may have simply been too low. I originally asked for $30,000 for the grant; then stated that I would be willing to work for as little as $15,000 instead (with a corresponding reduction in time spent) when I got feedback that the amount I had requested was a concern to the committee. My thinking was that I would rather have half the amount than none at all. As perhaps I should have expected, I then received $15,000, the minimum amount I was willing to work for. Perhaps the grant period would have gone more smoothly and stress-free, at least for me, if there had been a recognition on all sides that I was essentially doing half a project.

Overall, I'm glad that the project happened, and I'm pleased at its outcome; but there may be ways to improve the process for software-based projects. Perhaps simply shortening the grant period to 3 months for development projects would go a long way toward alleviating the issues I mentioned, given the massive unpredictability of a software project compared to any standard project involving outreach and the like.