|Google Summer of Code:||2011 • 2012 • 2013 • MediaWiki GSoC projects|
Information for students
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 IRC Channel.
Adding a proposal
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.
- Markus Krötzsch
- Yaron Koren
- Jeroen De Dauw
- Denny Vrandecic
- Benedikt Kämpgen
- Jesse Wang
- Daniel Herzig
- This can be you!
A More Usable UI for Semantic Search
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.
Mentor: Markus Krötzsch
Semantic Schemas extension
Component: new SMW 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.
Mentor: Yaron Koren
Component: SMW 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
Component: SMW core
Expected results: Modifications to SMW and additions to SMW extensions
- 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.
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 Semantic Bundle. The status of this project is described in this blog post.
Mentor: Jeroen De Dauw
Extended and improved RDBMS support
Component: SMW 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
Expected results: Being able to use Spark with Semantic MediaWikis as the backend stores easily, and using Sparks within SMWs from external backends
Further development of 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.
Linked Data Browser
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 . 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 ). 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: ). 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.
Mentor: Benedikt Kämpgen
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.
System Testing for SMW
Component: SMW core, maintenance
Expected results: System tests based on Wikimedia SeleniumA framework for recording and running system tests for web-based systems Framework  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  to develop a comprehensive and solid set of regression tests.
Mentor: Benedikt Kämpgen
Mobile support for GUIs
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
Also have a look at the roadmap, which contains todo's for both SMW and extensions.