User:Devayon

'''Profile text still being churned out. Reading this now, may make you angry'''

Identity
Name:Devayon Das Email:shyan.s@gmail.com Project title:Improving Semantic Search/Semantic Query usability issues in SMW

Contact/working info
Timezone:+0530 GMT (IST) Typical working hours:11:00hrs to 1700hrs (flexible) IRC or IM networks/handle(s): shyan.s (Gtalk)

Project summary
This project is based on the idea by Markus Krötzsch with inputs from him and others over at the SMW development mailing list.

The Semantic MediaWiki (SMW) holds promise in one day being implemented successfully in large projects such as Wikipedia. The two major issues which need to have elegant solutions before this happens are:
 * Performance improvements for massively large scale wikis
 * Usability improvements.

On the second point, many improvements have been made, many growing into extensions, such as the Halo Project extensions and Ask the Wiki. However, as usable as these interfaces are, they have not been able to eliminate the need of the Special:Ask. This, even though Special:Ask is "cluttered and unwieldy, yet cannot represent all features of SMW queries".

My proposal is to improve the user experience in constructing Semantic Queries in SMW.

Present approaches could be categorized as: But they have disjoint starting points, although (as I've been pointed out) common aspects.
 * form-based/query centred (current Special:Ask)
 * form-based/data centred (like Semantic Forms for queries)
 * browsing based (like Drilldown or Exhibit)
 * structured query builder (like in Halo)
 * graphical query builder

So, what we need is a clean underlying framework/architecture, over which these UI's could be built. My proposal is to rework Special:Ask and separate it into two modules (performance obviously kept in mind): This will go a long way in helping people conduct semantic searches, and should have a long-term future as a base on which other query/data explorer modules could be 'plugged in'.
 * A better version of the query-centred UI, Special:Ask, attempting to make as many underlying features of SMW queries available to the user.
 * A module over which the new Special:Ask will run on. (future alternate UI modules should be able to be plugged into this)

If the future on MediaWiki meshes in with the Semantic Web (which I think everyone in the SMW community believes), this project should be an important step.

About me
I'm am a student of CS in Assam, India. When using any new software, I try to approach as the most clueless customer which usually seems to point out any UI design issues. As a programmer, when I try designing an architecture, or coding a file, I like it to be simple to understand. Which makes maintenance easier.

This minor obsession with wondering what makes us get the system design drew me to MediaWiki(because it stores useful information in one place) and SMW (because the Semantic Web is a godsend for clueless people).

I had come across Semantic Queries in SMW a while ago, discussing Semantic Web in class. It bothered me that I needed to go through the documentation to get usable results. Months later, when I came across the same issue posted as a GSoC idea, that too by a core member of SMW, it was good to know I wasn't imagining the problem. Whew!

Getting this right is very important simply because Semantic Queries, if not improved, could soon become a bottleneck for SMW's future. Or maybe I'm just imagining it. I'm currently doing research for a project related to data privacy in my department. My other hobbies, include working on Processing and visualization of datasets. When I scrape out extra free time, I also try to do some reading and gardening, which stems from appreciating good design.

Deliverables
It should be possible to break down your project into some bullet points describing particular features or milestones which can be reached individually. Consider that we may wish to roll out the system for testing when at an intermediate stage of completion, and that time estimates might vary, leaving you with more time than you expected or (more likely) a lot less -- some features can be pushed back if you end up short.

Project schedule

 * Milestone 1 Expected time: Week 1 and 2
 * Separate SMW_SpecialAsk.php into UI and non-UI components. Non UI components to be forked into separate class. Test. Will also end up expanding documentation currently available.


 * Milestone 2 Expected time: Week 3 and 4
 * Simplify UI layout. Add/remove page elements to simplify look for the newbie user. test. will take so much time because I want to make multiple mock-ups of the UI.


 * Milestone 3 Expected time: Week 5
 * Javascript Autocomplete. Seperate the existing auto-complete into specialized one for different query tokens. Create PHP code to feed the JavaScript. Tests for php expected to fail.


 * Milestone 4 Expected time: Week 6
 * PHP feeds to JavaScript Fix PHP code from previous milestone to return list of categories ranked in custom order(alphabetic, best match or height in category tree. Useful for building other UI. Should take less time if I can leverage existing query printers to return json. If not not, may spill into next week. Trouble expected for ranking according to height in the category tree/graph.


 * Milestone 5 Expected time: Week 7
 * Other Stuff. Code Cleanup. Document. Improve UI (add keyboard shortcuts)


 * Milestone 6 Expected time: Week 8
 * More JavaScript Create more PHP code to return data for JavaScripts for other tokens. Should be able to modify work from Milestone 6 to do this. Hence this should move faster now.


 * Milestone 7 Expected time: Week 9 and 10
 * Tests! Write Selenium Test cases for Special:Ask. Although pages by now are expected to work for valid queries, invalid queries are expected to cause trouble. Code. Rinse. Repeat.


 * Milestone 8 Expected time: Week 11 and 12
 * Example UI Hopefully, I should be done by now. So will try to build a sample category selector based on the above work and JS InfoVis Toolkit. The code is expected to be hacky but will be a good example on how to build on from all this work I've done.


 * Alternatively, mentor(s) may (they have suggested this) to put me to work on UI improments elsewhere on SMW.


 * If course, this time may also be spent fixing code in case I'm running behind.

Participation
We don't just want to know what you plan to accomplish; we want to know how. Briefly describe your work style: how you plan to communicate progress, where you plan to publish your source code while you're working, how and where you plan to ask for help. (We will tend to favor applicants that demonstrate a clear vision for what it means to be an active participant in our development community)

Past open source experience
I confess to being a FOSS newbie (everyone is a newbie sometime, right?) but am passionate enough about getting this right. Just to clarify, I've been working with PHP, MySQL and Javascript for quite sometime, but if selected of GSoC, this would be the first time I'd be contributing.

I've been informally helping a friend with the iCub Simulator and YARP, but have not committed any code.

And but of course, I just like everyone else, use a lot of FOSS software/libraries in my work.

Any other info
If there's other relevant information -- UI mockups, references to related projects, a link to your proof of concept code, whatever. There are no specific requirements, but we love to see people who love what they're doing. Show us you're excited about this project and have an interest in the background and are considering how best to make your idea work.