Extension:Page Forms/Section handling in Semantic forms, GSoC 2013

Semantic MediaWiki features - Section handling in Semantic formsEdit

Described below is my GSoC project proposal for Section handling in Semantic forms project.

Name and contact informationEdit

Name: Himeshi De Silva
Email: himeshidslv@gmail.com
IRC or IM networks/handle(s): himeshi on freenode
Location: Colombo, Sri Lanka (GMT +0530h)
Working hours for the project: 6.00PM - 4.00AM



The Semantic Forms Extension is a useful and widely used feature of MediaWiki to make structured data, contained within template calls which are easy to create and edit. However at present Semantic Forms does not support structuring of wiki pages by page sections. Accomplishing this project would mean enabling administrators to define page sections in the form definition for the structure of their wiki pages. It would also allow users to add data to those defined page sections using forms in the Semantic Forms extension.

The project would also extend the Page schemas extension to allow defining of page sections.

Benefit to MediaWikiEdit

This project will finally allow administrators to define a full page structure and use forms to enforce it. The wiki pages will contain page sections in addition to the templates which will provide a more complete solution to Semantic MediaWiki and Semantic Forms users. This means users can create wiki pages which will be more rich in information than before.



The following are the required high-level deliverables for this project.

  • Extend Page schemas extension to allow for defining of page sections
  • Allow page administrators to define sections, subsections, smaller subsection names of the form(and add section in organized manner) in the Special:CreateForm of the Semantic Forms extension
  • Users should be allowed to add data under the page sections previously defined to text input areas when creating a page with forms
  • Users should be able to edit sections, subsections, smaller subsections defined by a title with "==", "===",etc. around it

Work breakdown StructureEdit

I have broken down the work of this project into two week slices as presented below. Each period has specified deliverables and deadline for completion.

Number Tasks Time Period
Sprint 0 * Read documentation, Familiarize with project, Setup required resources 27 May - 16 June
Sprint 1 * Define a "{{{section}}}" tag to the form definition syntax
* Testing
16 June - 28 June
Sprint 2 * Develop xml tags for page sections
* Extending Page Schema extension to allow for sections
* Testing
1 July - 12 July
Sprint 3 * Modifying interface by adding text areas and page titles
* Logic for integrating sections into Special:CreateForm
* Testing
15 July - 26 July
Sprint 4 * Enable adding data to sections in the user form creation page
* Implement adding of page sections to user created pages
* Testing
29 July - 9 August
Sprint 5 * Enable editing of forms by sections, subsections, etc.
* Testing
12 August - 23 August
Sprint 6 * Removing of SF "partial forms" feature
* Bug fixing
26 August - 6 September
Sprint 7 * Additional documentation of code
* User documentation
9 September - 16 September

September 16 : Soft pencils down date
September 23 : Firm pencils down date - Finish polishing work and prepare for submitting for evaluation
September 27 : Begin submitting required code samples to Google


  • Remove the Semantic Forms "partial forms" feature once page sections are implemented.

About meEdit

I am Himeshi De Silva and I have just begun the final academic year of the Computer Science and Engineering undergraduate degree program at University of Moratuwa, Sri Lanka. I enjoy trying out and learning new things related to web technologies.

Although I have been using the Wikimedia project Wikipedia, excessively during past years, this is the first time I came to learn of the concept of Semantic Web and Semantic MediaWiki. The more I learnt about it the more I became interested and now, I find the idea of applying semantics to unstructured text existing on the web to convert it into a web of data, fascinating. I believe it could be a real game changer and redefine how efficiently we can use the web.

Semantic Forms extension allows the making of structured data easy to create and edit. Therefore although my contribution through this project to create a web of structured data might be small, it would still be a small step towards to what could be, which is the reason I'm excited about this project.


This section describes on how I plan to work during the internship period.

Communication of progressEdit

  • Email - Weekly update of progress to mentor of the project
  • IRC Channel - I will be joined to the #semantic-mediawiki channel during the working hours of the project period
  • Mailing list - semediawiki-user mailing list will be used to communicate progress
  • Blog - Helpful articles regarding the project and its updates will be posted in personal blog

Publishing source codeEdit

Wikimedia code review

Where I would turn for helpEdit

These are avenues I would seek help in case of a difficulty in the order I would approach them.

  • MediaWiki Documentation
  • Mailing list archives
  • Project mentor
  • Sending a mail to semediawiki-user mailing list or asking on #semantic-mediawiki IRC channel
  • Teachers, friends at university

Past open source experienceEdit

I have previously worked on as one of the initial developers in the project http://boilerplatejs.org, which is an open source reference architecture for large scale JavaScript application development. I was involved in architectural decision making, development, testing and documentation of the framework. When working in this project I was exposed to many modular JavaScript development concepts and technologies as well as a variety of libraries and utilities. The reason for the development of this framework was that although JavaScript is gaining rapid popularity as browsers become more powerful, there is no proper architectural guidance for application developers to build application quickly and efficiently.

I was also involved an open source testing framework for automating the testing of web UIs named SeShell. It uses the open source tools Selenium web driver, NUnit and Log4net. I was involved in developing the test bed and an installer for the test bed.

To get a better understanding of the code base of Semantic Forms extension, this bug - https://bugzilla.wikimedia.org/show_bug.cgi?id=47606 was suggested to me. I have created a patch for it and sent it to my mentor for this project Yaron Koren.

Any other infoEdit

Currently I'm going through documentation of the MediaWiki and Semantic MediaWiki architecture, code, extensions etc. and trying out the examples provided to become a MediaWiki hacker.