Google Summer of Code 2007 : Proposal
Creating plugins for embedding/producing RDF/XML and microformats in Forrest content objects http://wiki.apache.org/general/SummerOfCode2007#Forrest
Community focused data representation schemas such as RDF and Microformats are gaining in popularity in many socially-oriented web sites. Such RDF schemas are FOAF (Friend Of A Friend), DOAP (Description Of A Project), DOAC (Description Of A Career), SIOC (Semantically Interlinked Online Communities), etc., and various Microformats are hAtom, hCalendar, hCard, adr, geo, hReview, hResume, rel-directory, rel-nofollow, rel-tag, xFolk, XFN, XOXO, etc.
This project aims to create plugins in order to facilitate embedding of such formats in the Forrest content objects.
RDF/XML is a general method of modeling information and acts as a container for the various XML syntax formats. Microformats are markup that allow expression of semantics in an HTML or xHTML web page. These microformats include specific HTML attributes such as 'class', 'rel' and 'rev' in the HTML markup.
For each of the formats that is to be supported in Apache Forrest as mentioned above in the abstract, an XSL template will be written. The original document in the particular RDF format will be processed with the XSLT code that was specifically written for that format. This will generate the desired document format used by Apache Forrest.
The plugins that are planned to be delivered at the end of this project will extend the functionalities offered by Apache Forrest. It will enable a user to integrate many socially oriented XML formats into one universal XML format through the publishing framework.
Note: The plugins created will work with the skins and no dispatcher code would be created.
I have identified several key stages in the project. These stages would act as an escalation strategy and hopefully guide me to the successful completion of the project. Wherever and whenever possible, I hope to stick with test-first development strategy and get valuable feedback from the mentors, other Forrest developers and the user community at large.
Stage 1: Initial planning and design
During this stage I hope to study about Apache Forrest in depth and understand about plugin development further. In addition, I would get myself familiarized with the related technologies such as Cocoon pipelines. Finally, I hope to plan out the development tasks and the design for the plugins.
- Deliverable(s) - Design for plugins
- Estimated completion - May 31st
Stage 2: Prototype plugin for FOAF
The plugin for FOAF would be developed first and tested with an example. It will generate the HTML view of the FOAF data. Additionally this plugin could also be used to create JSON output.
- Deliverable(s) - FOAF plugin control files, config files, resources such as XSLs and DTDs along with an example
- Estimated completion - July 9th
Stage 3: Addition of other plugins
Based on the feedback from the mentors, and other Forrest developers on the FOAF plugin, other required plugins will be added one by one along with the associated examples. Plugin docs will themselves act as test cases, and I will provide valid and invalid documents to validate the correctness of the plugins.
- Deliverable(s) - DOAP plugin
- Estimated completion - July 14th
- Deliverable(s) - DOAC plugin
- Estimated completion - July 18th
- Deliverable(s) - hCalendar plugin
- Estimated completion - July 21st
- Deliverable(s) - hResume plugin
- Estimated completion - July 31st
Stage 4: Final touch ups, Testing and Documentation
During this stage, the code, configurations and resources for the plugins would be integrated into Forrest and tested rigorously. A testing framework such as WebTest would be used for testing purposes. Documentation would also be completed for the final evaluation.
- Deliverable(s) - Final code committed and comprehensive documentation
- Estimated completion - August 20th
Soon after finishing my undergraduate studies at UoM by July 2007, I will be starting my graduate studies at the Massachusetts Institute of Technology from September 2007. Since my research interests are in Distributed Computing and The Semantic Web, I will be joining the Decentralized Information Group at MIT and start my research under the guidance of Sir Tim Berners-Lee.
I took part in Google Summer of Code 2006, and obtained the Apache committership for my contributions to the Apache Woden project in developing the Axiom based WSDL2 document parsing.
This project interests me because I believe that it would give me an opportunity to do an implementation based on the things I have learned so far. Recently these various RDF formats was the hottest thing I learned, and I was very happy that this particular project was listed as a GSoC project under Apache Forrest.
If I get selected for this project, it would me my second GSoC. I really liked doing it last time and I guess this time too I would be able to successfully complete it! I consider this as a wonderful opportunity to learn new things, test my skills, interact with the Apache Forrest community (which would be a new community to me) and finally deliver something useful.
Why I am the best candidate for this project?
- I am very passionate about OSS development.
I successfully completed a GSoC project last year. So I know how the competition works and how best to manage a GSoC project.
- I am an Apache Committer. So I have a very good understanding about how the Apache community works.
- My final exams will be over by June 2007, and I would be starting at MIT in September 2007. So, I have lots of free time in-between, which luckily coincides with the GSoC timeline :-).
- I have a strong research interest in social data representation techniques. I believe this interest combined with my enthusiasm to learn new technologies and implement things, will propel me in to successful completion of the project.