Participating in the GSoC

Xavier Claude claude.xavier at gmail.com
Mon Apr 2 21:44:16 UTC 2012


2012/3/31 Teo Mrnjavac <teo at kde.org>:
> On Thu, Mar 29, 2012 at 22:16, Xavier Claude <claude.xavier at gmail.com> wrote:
>>        Hello,
>>
>>    I'm interesting in joining the Google summer of code. I hope it's not too
>> late. I'm using KDE for more than 5 years and I'm a member of the French
>> translation team, that's why I choose KDE as the GSoc organization. I'm a
>> student in computer science in Belgium, I'm in the third and the final academic
>> year of my study.
>>
>>    I've read the ideas page and I've found the nepomuk backend for Amarok. As
>> I'm currently doing an internship about semantic data for some countries
>> budget, I already know RDF and Sparql. And I've also written some Qt
>> applications for my course.
>>
>>    Cordially,
>>
>
> Hello,
>
> thanks for contacting us. It is very good that you already have
> experience with RDF and SPARQL. I suggest that you start by building
> Amarok from git and taking a look at the collection code to get an
> idea of the result you'd need to achieve. What we need is a collection
> backend that could replace the current SQL collection (if needed)
> without feature regressions, but you should plan on both backends
> being available rather than one being a drop-in replacement of the
> other. Please see this article [1] for some guidelines on how to
> structure a GSoC proposal for Amarok. When you prepare a first draft,
> please submit it for review on this mailing list.
>
> [1] http://teom.wordpress.com/2012/03/01/how-to-write-a-kick-ass-proposal-for-google-summer-of-code/
>
> Cheers,
> --
> Teo

Thank you for the explanation, the blog post was very useful. Here is
what I've write:

Name: Xavier Claude


Email Address: claude.xavier at gmail.com


Freenode IRC Nick: claudex


IM Service and Username: N/A


Location (City, Country and/or Time Zone): Arlon, Belgium


Proposal Title: Semantic desktop collection in Amarok


Introduction:

Amarok currently uses MySQL (embedded or external) to store the
collection  but this doesn't allow other applications to easily use
Amarok collections.

Motivation for Proposal / Goal:

- A fully functionnal Nepomuk backend to store Amarok collection
- A GUI to choose the backend
- A tool to migrate an existing MySQL collection to the Nepomuk backend.
Implementation Details:

Nepomuk is a tool used by KDE to provide a semantic desktop that all
applications can use. I'll have to define how to store the data
currently stored in the MySQL database. This mean that I'll have to
use the class already defined and used by Nepomuk and other
applications which use Nepomuk such as Dolphin. If the ontology does
not cover all the information in the database, I'll have to extend it.

When the data model will be defined, I'll have to write C++ code and
the SPARQL queries to retrieve the data and insert/modify them when
they are added/changed by another application or by Amarok. When doing
that, I'll reuse as much as possible the existing code used by the
MySQL backend, the UI code should be used with the two backends
without disctinction.

The GUI will consist on two radio buttons in the current database tab
in the Amarok configuration. One will say Nepomuk and the other MySQL,
if the second is chosen, the external MySQL database could be checked.
If Nepomuk is disabled, the Nepomuk button will be inactive and their
will be an explanation why.

The migration tool will be a tool that will read the MySQL database
and write the data in Nepomuk. The GUI will automatically ask if the
user want to use it when he switches from MySQL to Nepomuk and could
be manually triggered if the Nepomuk backend is chosen. It could read
both embedded or external MySQL database.

Tentative Timeline (in weekly intervals until 2 weeks after the end of GSoC):

- List the needed functions and define their specifications (2 weeks,
21st May to 3rd June): lists which functions are used and,
particularly, what are the limits behavior. This will allow me to
understand how the Amarok code is designed and written.
- Define the data model (1 week, 4th June to 10th June): define which
class in the ontology I'll use and understant how to use Nepomuk API.
- Writing the functions (3 weeks, 11th June to 1st July): write the backend.
- Performance tests and improving code if needed (2 weeks, 9th July to
22nd July): find the bottleneck and improve the code, this should
mostly be SPARQL queries improvement.
- Migration tool (2 weeks, 16th July to 29th July)
- GUI (1 week, 30th July to 5th August)
- Advanced tests (1 week, 6th August to 12th August): creating exotic
collection and test the migration tools and the backend.
- Documentation (1 week, 13th August to 19th August): writing
documentation to user on userbase to explain them how to use the
backend and to developers on techbase to explain how the backend work.

Do you have other obligations from late May to early August (school,
work, vacation, etc.)?

I have  final work and internship presentations in mid-June but since
most of the work should be done by mid-May, I will have enough time to
work for the GSoC.

About Me (let us know who you are!):

I'm a student in computer science in Belgium, I'm using KDE since 5
years. I'm a moderator on the French Linux website Linuxfr.org. I'm
currently doing an internship about semantic budget and using RDF and
SPARQL.

You can also find it here
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/claudex/1

-- 
Xavier Claude
claude.xavier at gmail.com


More information about the Amarok-devel mailing list