Web research projects

This page is written in the hope that someone, somewhere may find the project proposals interesting enough to start implementing. The underlying theme in all of the projects is to make the web richer by using web standards creatively. The web is wonderful place and we should make sure it can hold all the infomration mankind produces.

Publish a book!

Write a book. Or find one in Project Gutenberg. Mark it up in semantic HTML, possibly using the Boom microformat. Publish it on the web. Convert it to PDF with Prince.

Anthems: musical notation for the Web

Much efforts have been spent trying to find a mathematical notation for the web. I believe musical notation deserves the same level of attention. Like mathematics, musical notation can be arbitrarily complex; therefore, it is important to limit the scope of the problem.

National anthems may be a suitable use case for a project. That is, one should find a way to encode the music and words of national anthem so that web pages (e.g., on Wikipedia) can include a visual representation of the musical score that is generated on the client side. In a more advanced version, users would be able to press a button and have the notes played out loud with a bouncing ball on the visual score.

One syntactic basis for a language like this is the ABC musical notation. JavaScript would be used on the client side to convert the musical notation from ABC (or whatever) to a graphical representation (e.g., SVG, the <canvas< element, or a webfont with glyphs positioned with CSS) and even to audio (e.g., using the audio interface of HTML5). These converters do not exist and they are not trivial to write. But I think it's possible.

Here is a sample doucument that uses the canvas element. As one can see in the source code, an ad-hoc markup is processed by JavaScript and converted to a graphical representation. A skilled programmer could convert ABC notation into musical scores using similar techniques.

Publish video

Take your phone/camera/videocamera to an interesting place, e.g., a zoo. Record videos. Classify you video snippets. Convert them to ogg/theora. Upload them to Wikimedia.

Invitation generator

Many of the freely available fonts on the web are humorous and visually striking. Some of them may be suitable for invitations, e.g., birthday and wedding invitaions. Make an automated invitation generator that takes name/date/occation/venue as input and generates an HTML document with some proper webfonts as output.

Flash to <video> converter

Flash is often used for video content on the web. This is not optimal as the resulting markup is complex and browsers rely on third-party plugins to decode it. Efforts are underway to add support for the <video< element in browser, along with the Ogg/Theora video format. Create a

Write a scalable widget

Write a scalable widget.

CSS font format

In CSS, properties and values are set on a tree structure of elements. Many element/property combinations have the same values. For example, the value of 'font-size' will be shared between most element, but some element (e.g., h1) will typically have a larger value.

Likewise, one may think of fonts as characters that often share values (e.g., the height), and some characters will often share visual features (e.g., «v» and «w», «d» and «b», «E» and «F»). I believe it's possible to design a system based on the CSS syntax and value propagation mechanism to make an easily editable web format.