GSoC Idea : Extending the RDF Module [Drupal-7]

Events happening in the community are now at Drupal community events on www.drupal.org.
mayankkandpal's picture

I am willing to contribute to Drupal-7 as a Student in GSoC-2011. I came up with this idea while recently working on Drupal-7 for a Semantic-Web project.

Drupal 7 comes with an inbuilt core RDF module. There is a contributed RDF module as well which allows us to extend the functionality of the core module through :
1. RDFx
2. RDF-UI
3. Evoc

I would like to further extend the functionality of the Contributed RDF module by adding a User Interface to "create" and "register" customised RDF-vocabularies. The module will generate the corresponding RDFS in backend and allow the user to register the vocabulary with the Drupal and provide an easy UI for creating the vocabularies in the frontend. Also, we can go ahead and even provide a system to map the predicates in the customised vocabularies to the existing standard vocabularies like DC, foaf etc.

Need of this extension :

It is a fact that presently no comprehensive vocabulary exists which can provide predicates to suit each and every Semantic web-development project.
For instance, foaf may be a very good choice of RDF vocabulary when it comes to building social networking web-sites. However, if one wants to create a project which involves Learning Objects, foaf would not be able to provide predicates for all the Learning object metadata elements.

Thus, in such cases, using the User Interface that I plan to develop, someone with even a little knowledge of writing an RDF Schema would be able to create and register his own vocabulary.

As of now, there is no standard User interface for creating an entire RDF Vocabulary in Drupal-7. One has to write an RDF Schema in XML format and then register it with Drupal.

I am a supporter of Drupal's vision to become the best CMS in projects related to semantic web. Since the Drupal has a relatively steep learning curve, we must try to make things as easy as possible for the newbies so that more and more people can enthusiastically join Drupal's Semantic initiative and start using Drupal for their Semantic Web Projects.

I have been working on creating a Proposal for this idea, which I would soon post. Please provide me feedback so that I can improve upon my idea and further strengthen my proposal. I would love to contribute to the Drupal Community.

Comments

Have you checked out

linclark.research's picture

Have you checked out Neologism? It is a project that Stéphane worked on a while back and that has recently started active development again. You can learn more about it here.

http://neologism.deri.ie/

One of the guys who is actively working on it sits right behind me, Richard Cyganiak. He knows a whole lot about Linked Data (he maintains the LOD cloud diagram) and might be able to be a mentor on this.

I think that you could really be a great asset to that team, I would suggest getting in touch with Richard. I will send you his contact details privately.

Thanks

mayankkandpal's picture

Thanks Lin!
I tried out Neologism to check out all the features it currently provides. It seems like an excellent reference point for what I intend to do in my GSoC project. I also checked out its issue tracker to see what development challenges lie ahead.

I will definitely get in touch with Richard and discuss my project and ideas with him in detail.

Regards
Mayank

FYI, they have been doing

linclark.research's picture

FYI, they have been doing their development on a Google group, so hopefully you were checking out the issues there.

Updates for the community

mayankkandpal's picture

I contacted Richard Cyganiak and he has agreed to mentor the project. We have been in touch since the last few days and have been discussing about the project.

As a result of the interaction, there has been a slight change in the Project Plan.

As suggested above by Lin Clark, I looked into Neologism, which is a free and opensource vocabulary publishing platform. At this moment, Neologism doesnt have a Drupal-7 module. However, it is undergoing active development and Richard told me that the Neologism team plans to port it to D7 soon.

Since my original idea was to create a vocabulary publishing module for Drupal7, I saw no sense in having two modules which provide the same functionality. Moreover, Neologism has undergone lot of development previously and it I felt it would be best to contribute to it. Thus, I offered to help in Porting Neologism to D7 as a part of my GSoC-11 Project.

Finally, we came up with the following abstract for the project :

  1. Porting Neologism to D7
  2. Migrating the Neologism code-base from Google Code to drupal.org
  3. Testing that the Neologism module works well in existing D7 sites

Working with the Neologism Developers would be a great learning experience for me and I would thus be able to make a fair contribution to Drupal.

Suggestions are welcome.

Mayank,

Richard and I work together

linclark.research's picture

Richard and I work together and I have worked a lot with the modules that you will be integrating with, so I can be available to help mentor, giving advice and answering any questions you have about the RDF work we've done in Drupal 7.

Timeline for the Proposed Project

mayankkandpal's picture

April 25 - May 23 (Before official coding period starts) [Information Learning Curve and Background readings]

* Familiarise with the current Neologism codebase and Drupal RDF modules.
* Go through the current documentation of the Neologism project.
* Discuss the implementation plans and risks with the mentors.
* Familiarise the coding standards and development practices followed while creating Drupal modules.
* Get used to working on the Drupal Repositories since code migration from Google code to Drupal repositories would also be a part of the SoC project.

May 23 - 29 (First week) [Familiarizing]

* Fix some bugs/implement simple features for the current Neologism platform to familiarize further with the codebase.
* Create a document for general reference which describes how the module would appear at the end of the Summer of Code. Documentation at this stage would not go into the technical details but only describe how the module would appear to the end user at the end of the project.

May 30 - June 5 (1 week) [DB Migration]
Neologism is currently running on D6. There are a lot of differences between the Evoc module in D6 and D7. Thus, we need to change the DB Schema of Neologism to match the D7 Version of Evoc.

This marks the End of Phase-1.
At this moment, we are ready to start porting Neologism to D7.

June 6 - July 24 (7 weeks)[Porting Neologism to D7]
This is the major task of the project. This task has been further divided into sub-tasks as follows :
Week 1 : Port the menu system and vocabulary list to D7
Week 2 : Port the vocabulary overview page to D7
Week 3 : Port the RDF output to D7
Week 4 : Provide the feature of importing and loading vocabulary by using the evoc module
Week 5 : Port the vocabulary creation/edit form to D7
Week 6 : Port the class/property creation/edit forms to D7
Week 7 : Port content negotiation and caching to D7

Also, during this period, I would need to carry out integration testing for the module.

This marks the end of Phase 2.
At this stage, we have a functional D7 port of Neologism module.

July 25 - July 31 (1 week) [Documentation Migration/Upgrading and Migrating the code to Drupal Repository]
The tasks planned for this phase are as following :
* Set up Drupal.org infrastructure for neologism module
* Coordinate with documentation team to move existing documentation to drupal.org
* Update documentation wherever needed
* Notify existing users of the changes

August 1 - August 7 (1 week) [Test the module on existing Drupal sites]
We would need to evaluate how the Neologism module works if installed into existing D7 sites and identify any issues. The need for the neologism installation profile would end once we port it to Drupal7 as a module. There might be some initialization which was previously done during the installation procedure which would now need to be done when the module is installed. Need to make sure there are no issues faced when the module is installed or reinstalled into existing D7 sites.

August 8 - August 14 (1 week) [Buffer period]
Buffer for general Neologism bugfixing/improvements as identified throughout the project

August 15 - GSoC Ends.
End of Phase 3.

Regards,
Mayank

Your schedule etc. already

dawehner's picture

Your schedule etc. already looks fine

So please post your proposal ASAP on melange. The deadline is not more than two days.

Take care that you use http://groups.drupal.org/google-summer-code-2011/proposal-template for the proposal.

Already posted !

mayankkandpal's picture

Dereine,
I have already submitted my proposal on melange. Thank you for reviewing the schedule.

Regards,
Mayank

Google Summer of Code 2011

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: