[Nepomuk] Re: GSOC proposal

Who Knows who828 at gmail.com
Fri Apr 1 19:35:48 CEST 2011


This is the text version of the document

On Fri, Apr 1, 2011 at 10:50 PM, Who Knows <who828 at gmail.com> wrote:

>  Here i have made a second draft of my proposal, any tips or anything is
> welcomed.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/nepomuk/attachments/20110401/7cd9da5c/attachment.htm 
-------------- next part --------------
?Abstract:
The project aims to develop a service that write backs metadata changes to the given file additionally to develop a plugin system to support different file formats.
Google Summer of Code Project Proposal
Name: Smit Shah
Email Address: Who828 at gmail.com
Freenode IRC Nick: Who,Who828
IM Service and Username: gTalk ? who828
Location: Bangalore, India. ( +5:30 GMT )
Proposal Title: Metadata Writeback
Motivation for Proposal :
Nepomuk is one of the most unique piece of software, it not only offers metadata management it offers manipulation of metadata as well, with ability to metadata syncing implemented recently the data not confined to one system anymore.
 Now the future of Nepomuk already looks bright with ability to search similar images,searching a video using subtitles or implementing web extractor to fetch information from the web, the chance to work on project like this and learn lot of new things like Resource Description Framework(RDF) or extracting metadata using strigi would be very exciting.
Now the goal of this project is to implement a writeback service that will write back any metadata changes that is supported by the file (ratings,comments,tags etc) to the file itself and a plugin system to add support for new file formats easily.
This greatly enhances the Nepomuk?s cross platform ability, as the metadata is saved within the file itself and it also increases Nepomuk?s integration with applications like Digikam and Amarok.
Implementation Details :
The project can be divided into three parts as follows,
1. Core Part
2. Interface Part
3. Optimization Part
1)  Core Part:
          
Writeback Service:  The job of this service will be consist of loading the correct plugin which can be accomplish by using KServiceTypeTrader to identify which plugin is required then loading the plugin using KPluginLoader , then its other work would be monitor the virtuoso back end of soprano for any metadata changes which can be accomplished using APIs of Nepomuk data management services, finally we will be using third party libraries to perform the writeup.
(e.g. Amarok?s metadata writing for audio files, Digikam for images)
Plugin System: This system will be implemented using a base plugin class which will be inherited by every plugin thus making it easier to manage all the plugins, then developing a interface so the plugins can access the service using DBUS.
2) Interface Part 
 DBUS: It will be used to control the writeback service , since other Nepomuk services use the same interface it will be provide consistency and it will be used by plugins to access the writeback service.
User Interface: A simple user interface to enable/disable plugin will made with the help of KPluginSelector.
3) Optimization Part 
     The entire process should be automated and it should take little time and resource to accomplish it, if it takes considerable amount of time or resource it can get in the way of the  important jobs of system, so optimization will have important part in the entire project.
    One way to accomplish would be saving the metadata changes and performing the writeback only when system is in a idle state, thus minimizing the user intervention as possible.
Tentative Timeline:
Before May 23 ?
1. To familiarize myself with Nepomuk?s data management API.
2. To learn more about KDE classes and DBUS
3. Read about amarok?s,digikam?s metadata writing system and tracker services.
4. Implementing demo services
5. Staying active and clearing any doubts regarding the future goals with my mentor.
May 24 to June 24 ?
1. Learn more about Nepomuk from Randa ?11.
2. Implement Writeback Service
3. Implement Plugin system
4. Setup testing environment to test Writeback Service and Plugins.
June 24 to July 24 -
1. Optimize Services
2. Implement interfaces
July 24 to Aug 16 -
1. Documentation, and bug fixing
Aug 16 -
Submit code
Obligations: 
   I have my end semester exams from 17Th of May to 28Th of May during this time i won?t be able to make any progress in the project, besides that i have no other obligations as such, so i plan to use my free time entirely on GSOC for the summer.
About Me:
Hey,  I am Smit Shah a student of Information Science in R.V. College of Engineering, Bangalore. I am currently in my 3rd year and i have some experience with C/C++ before, i have also made some patches for Nepomuk in the past 3 weeks, this in turn has given me valuable experience with KDE classes and Qt.
   I realized in my 3 weeks stay that making some difference for the better in Nepomuk or anything for that matter makes me happy the most , i think be it any community ( gaming,open source etc) the greatest satisfaction comes from making differences albeit even small ones, thus i plan to make the difference through my coding/developing ability.
   After my GSOC i am planning to develop various plugins to add support for different files formats in metadata writeback service, then i would like continue and work on internal Nepomuk to implement metadata sharing or any other projects required in the future.


More information about the Nepomuk mailing list