GSoC 2011

From semantic-mediawiki.org
Google Summer of Code: 201120122013MediaWiki GSoC projects

This page collects ideas for Google Summer of Code 2011 projects that are related to Semantic MediaWiki or to some of its extensions.

Guidelines[edit]

Information for students[edit]

These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

Being accepted as a Google Summer of Code student is quite competitive. Accepted students typically have researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out. If you have an idea for an interesting SMW-related project and want to get feedback on it from users and developers, please use the SMW developer mailing list or our Semantic MediaWiki chatroom.

Adding a proposal[edit]

When adding an idea to this section, please try to include the following data:

  • the component the project relates to (use "new [[SMW]] extension" for projects that would produce new extensions)
  • a brief explanation
  • the expected results
  • prerequisites for working on your project
  • if applicable, links to more information or discussions
  • optionally, your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

Mentor signup[edit]

Ideas[edit]

A More Usable UI for Semantic Search[edit]

Component: Semantic MediaWiki

Expected results: A usable interface to edit queries in SMW to replace Special:Ask.

Short explanation: Semantic search is the most important SMW feature for many applications, and SMW provides a rich query language to control query results and their display. Queries are formulated using wiki syntax or the interface Special:Ask. The latter is cluttered and unwieldy, yet cannot represent all features of SMW queries. It should be reworked from scratch to provide a modern, interactive UI that does not overwhelm the user with options and is still powerful enough to capture current and future query options. This will especially require creative design of a compelling UI concept that makes query editing an easy and intuitive process for larger user groups. Depending on the skills and interests of the applicant, it is possible to incorporate sub-projects such as a graphical query editor with interfaces in the style of WireIt. If successful, the new interface will become a central component for all following SMW versions, replacing the existing UI for all major purposes. If goals are achieved only partially (e.g. regarding stability or platform support), the results will be released as an independent extension that can be used optionally in addition to the old interface.

Prerequisites: Good background in Web UI technologies (PHP, JavaScript, AJAX, HTML), interest in usability aspects, familiarity with SMW (from a user's perspective)

Mentor: Markus Krötzsch

Semantic Schemas extension[edit]

Component: new Semantic MediaWiki extension

Expected results: A new extension, "Semantic Schemas".

Short explanation: Semantic Schemas is a proposed extension (it may actually get renamed to something like "Class Schemas"), that would let users and admins define everything about the wiki's data structure via XML contained within wiki pages. That XML in turn would be used to generate all the other relevant pages: templates, properties, forms, etc. And the XML would be editable via a helper form, so that ideally users would never have to do direct XML editing. Also, the XML could theoretically be imported from, and exported to, other data-structure formats, like OWL and UML. The concept of embedding XML within wiki pages is fairly new, and a student who took on this project would be involved in work that's both innovative and potentially high-visibility.

Prerequisites: Good knowledge of PHP, Javascript and HTML

Mentor: Yaron Koren

Query management[edit]

Component: Semantic MediaWiki core

Expected results: New capabilities added to SMW

Short explanation: Query management is a proposed addition to the capabilities of Semantic MediaWiki that would allow automatic updating of queries and gathering of query statistics. This would work by storing query meta data as semantic properties, which can then be queried. Query management would allow automatic updating of query results when their source data is modified. This ensures up-to-date query results everywhere, without the need of more resource-intensive solutions like disabling the cache, or rebuilding all pages via a cron-job. This automatic updating is made possible by storing query dependencies among the query meta-data. Query management would allow you to query various things about query usage such as where queries are located, how much dependencies they have, how long/expensive they are, time of their last update, ect. With this information you can get a better overview of how queries are used across your wiki and pinpoint inefficient usage.

Prerequisites: Good knowledge of PHP, decent database knowledge is a plus

New result format capabilities[edit]

Component: Semantic MediaWiki core

Expected results: Modifications to SMW and additions to SMW extensions

Short explanation:

  • Support for interactive result formats that allow you to filter and expand data. Obviously each format will have to implement this itself, but a general infrastructure to handle HTTP reqs needed for this functionality in SMW would be very nice.
  • Syntax extension to group results.
  • Syntax extension to allow modifying of the page name based on properties. Might make sense to implement this as a more general feature.
  • More control over the display of values for properties. For example when using #show to list all attendees of a single event, you can't really change the display right now.

Prerequisites: PHP, JavaScript

Extension management[edit]

Component: new MediaWiki extension + modifications to MW core

Expected results: An administrative interface for managing MediaWiki extensions

Short explanation: MediaWiki currently lacks an administrative interface to manage the installed extensions, and to install new ones. A GSoC project last year by Jeroen De Dauw did research and initial work on this, but is unfinished and in need of completion to be of any use. Although this is not directly SMW related (but a general MW project), SMW and extensions would greatly benefit from having such a platform. For one, it would remove the need for the Extension "Semantic Bundle". The status of this project is described in this blog post.

Prerequisites: PHP, MySQL, JavaScript

Mentor: Jeroen De Dauw

Extended and improved RDBMS support[edit]

Component: Semantic MediaWiki core

Expected results: Additions to the relational database store support of SMW, and improvements to the existing implementation.

Short explanation: SMW currently has support for MySQL and, to some degree, PostGres. This is done via a single "SQL store", which varies it's behaviour slightly on the type of database used. Having 2 separate stores would likely be better. This store currently also lacks support for special data types, such as geographical entities, which can not be interacted with, since this requires putting SQL functions around field names or values in SQL statements, which is currently not possible. Adding support for the other RDBMS (partially) supported by MediaWiki core (mainly Oracle and MSSQL) would also be nice.

Prerequisites: PHP, SQL, the RDBMS you want to work with

Improving the interplay between Spark and SMW[edit]

Component: Extension "Semantic Result Formats" and Spark

Expected results: Being able to use Spark with Semantic MediaWikis as the backend stores easily, and using Sparks within SMWs from external backends

Short explanation: Spark is a JavaScript library which allows to take SPARQL query results and visualize them within any HTML5 site. It is basically like inline queries in SMW, but against any SPARQL endpoint and with no required backend. The idea would be to extend Spark so that it can be used against a SMW and not only against SPARQL endpoints, explore if the Ask-syntax makes sense, and to add a Semantic Result Format that allows to integrate Sparks into a Semantic MediaWiki.

Prerequisites: JavaScript, PHP (a little)

Further development of Shortipedia[edit]

Component: Shortipedia

Expected results: A set of extensions based on the Shortipedia codebase that can be reused in other SMW installations / extending the capabilities of Shortipedia

Short explanation: Shortipedia is an award-winning website build using Semantic MediaWiki, but its current codebase is geared solely towards that one site, and cannot be easily reused. In order to make the components that build Shortipedia reusable, they need to be examined, generalized, and extended. Also, further features can be developed for Shortipedia and its components.

Prerequisites: PHP, JavaScript

Linked Data Browser[edit]

Component: A new extension, "Linked Data Browser" or an extension to Shortipedia.

Expected results: SMW can be used to browse and selectively gather linked data [1]. Information residing in the wiki is both more cross-linked and connected to external information sources, resulting in better possibilities for managing knowledge.

Short explanation: More and more web pages offer their information not only in a human-readable but also in a machine-readable form (see [2]). However, although this opens up the possibility of enhanced browsing for information, Semantic Web browsers have not yet reached their full potential (try for yourself using the LOD browser switch and Tim Berners-Lee's foaf file: [3]). If browsing would be possible directly from SMW, links between content from the wiki and information from the Web can be automatically identified (e.g., using simple matching rules, or through reasoning and machine learning). New information can first be checked for correctness and relevance, and possibly be curated, then partly gathered in the wiki. Search and gathering of information inside SMW would be enhanced.

Prerequisites: PHP, JavaScript

Mentor: Benedikt Kämpgen

Inline Editing[edit]

Component: An extension to SMW, e.g., based on Aloha Editor [4], RDFa [5], and SMWWriter [6].

Expected results: Annotations from a single wiki page or displayed in Inline Queries can be edited without going into edit mode, visiting queried pages, or using wiki text.

Short explanation: In this work we seek to make it easier for users to edit semantic annotations.

Prerequisites: PHP, JavaScript

System Testing for SMW[edit]

Component: SMW core, maintenance

Expected results: System tests based on Wikimedia Selenium Framework [7] for SMW helping to keep code quality high.

Short explanation: System tests can help core and extension developers to check whether their code breaks functionalities of SMW. In this work it can be built on previous results [8] to develop a comprehensive and solid set of regression tests.

Prerequisites: PHP

Mentor: Benedikt Kämpgen

Mobile support for GUIs[edit]

Component: SMW core, Semantic Forms, other SMW extensions with GUIs

Expected results: Make versions of the SMW and related extensions graphical user interfaces optimized for mobile. In particular Special:Ask and the Special:FormEdit (Semantic Forms).

Short explanation: Currently SMW lacks specific support for mobile. Although the interfaces are usable on mobile devices, they could be a lot more optimized.

Prerequisites: PHP, UI experience

More ideas[edit]

Also have a look at the roadmap, which contains todo's for both SMW and extensions.