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

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


 * Public URL: http://www.mediawiki.org/wiki/User:Himeshi/GSoC_2013_Application
 * Announcement:https://bugzilla.wikimedia.org/show_bug.cgi?id=46662

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

Summary
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 MediaWiki
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.

Required
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 Structure
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.

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

Optional

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

About me
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. Therefor although my contribution through this project to create a web of data might be small, it would still be a small step towards what could be, which is the reason I'm excited about this project.

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

Communication of progress

 * 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 code
Wikimedia code review

Where I would turn for help
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 experience
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 concepts in modular JavaScript development concepts and technologies as well as a variety of libraries and utilities. The reason for the development of this framework is 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 info
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.