Fancy Bookmarking for Konqueror and Rekonq
Phaneendra Hegde
Short description: Development of a bookmarking tool for Konqueror and Rekonq, which allows users to link web pages to projects, tasks, people, files etc. and hence providing a effective bookmark management system.Nepomuk would be ideal candidate to add these features. Nepomuk has a strong user base and I feel that it would be a great enhancement to Nepouk.
Additional info: http://www.google-melange.com/gsoc/proposal/rev...
Name Phaneendra Hegde
Email pnh.pes@gmail.com
Freenode IRC Nick pnh
IM Service GTalk
Username pnh.pes
Location Bangalore,India(GMT+5:30)
Proposal Title
Fancy Bookmarking for Konqueror and Rekonq
Project Goal
Development of a bookmarking tool for Konqueror and Rekonq, which allows users to link web pages to projects, tasks, people, files etc. and hence providing a effective bookmark management system.
Implementation details
Bookmarking can be done in two ways-
Mapping of Web page to a file,person,task or a project (Direct bookmarking)
This method of bookmarking follows the normal,traditional bookmarking system with few extra features.Whenever a user wants to bookmark a web page while browsing,he/she can directly tag that page using a bookmark button(which will be provided by this tool).Currently available bookmarking tool in Konqueror allows the user to create a tag and name a webpage. This new tool shall provide few more extra features, which allow the user to comment on a web page,link a webpage to a project or to a person/task.This can be achieved by making use of metadata associated with each page. Nepomuk stores all these information in RDF which when
required can be fetched using SPARQL queries.
Integration of different NIE Ontologies(Nepomuk Information Element) would be a better choice ie., NFO (Nepomuk File Ontology)describes different files in a project, NCO (Nepomuk Contact Ontology)describes the contact files, using which people involved in the project can be linked to a web page,NCAL(Nepomuk Calander Ontology) describes the task list(calander) using which different tasks can be linked to a web page.All these ontologies describe different desktop resources which are required to populate the meta data associated with each bookmark page. Making use of different NIEs would result in a better bookmarking management system.Metadata associated with each of the bookmarks contains all this information.
The bookmarks will be stored as pages with some semantic data attached to them.
(URL, title, tags, user rating, usage, date,related projects,files,people,task and complete text of the page using Nepomuk + strigi).Tagging and rating of a web page will done using Nepomuk::Resource. A Project consists of many files.In order to link a project to a web page the libstreamanalyzer service may be used to analyze all files in the configured folders and store their metadata in the Nepomuk repository.Nepomuk can be used directly to create and retrieve metadata related to contacts,tasks etc. Efficiency may be increased by this approach.
How to link a file or project with a web page?
More details about linking webpage to a project can be found here.(This is my other GSoC proposal)
From the end user perspective: If you want to bookmark a web page just click on bookmark button which you will find in the browser.Then you’ll find a popup window(dialog box) where you can add a name,comment etc. Also you can connect that page with a project/file by clicking on
connect(file/task/person) button.If that button is clicked, you’ll find a file browser/calander/contact using which you can select the file/task/person of your choice.(File browser shows all related files or recently used files together).This completes typical bookmarking procedure.
Mapping of file/person/task/project to a web page (Reverse bookmarking)
This method of bookmarking is not provided by any bookmarking system/tool till date.Here users can attach a web link to a file/task/person without making considerable changes to the back end.
User is provided with a facility that allows him/her to link a previously bookmarked web page or new url to a resource(file/task/person).
A typical Use case :
User selects a file and right clicks his mouse,Right click menu contains an option called ‘link to a web page’. On clicking that option, the user will be displayed a popup menu/dialog box which contains all previously bookmarked web pages along with a text box where the new url can be
entered.By selecting any bookmark and clicking OK ,the webpage is linked to that file.
About GUI
Screenshots of sample GUI can be found here.
There will be a smart url tab in which user can search the desktop,web,bookmarks and also projects,files,tasks etc. (which are already linked with bookmarks).This will look similar to rekonq's smart url bar but with integrated meta data search.Each bookmark can have a link with a project,file,person,task etc. So bookmark list will contain all these details.
Bookmarks will be shown in a list format in which user can edit/delete the existing bookmark and can create new bookmarks as well.There will be a search box in which user can enter a keyword and can set search preferences.Preferences(combo box) contain different options like recently used,project,person,task etc.The search results will be based on the preferences.There will be an option for sorting the search result(again a combo box).There will be an edit button using which user can edit any bookmark.(any attribute of a bookmark, like name,url,comment,project,task etc).
Finally,after doing all changes,user can click on the save button which will update all the changes.
Further Extensions
Sharing bookmarks:
Share your bookmarks with your project partners/friends. Since each bookmark is linked with a project ,sharing it with your project partners makes more sense.Each bookmark can have link with contact information of all people involved in a particular project.It will be similar to Google docs’ share button,in functionality and capabilities.Options to share bookmarks with a mouse click, email as attachments, and even publishing to the web can be thought of.
As an enhancement to bookmark sharing, there can be a web space in which all people involved in a particular project can share same space so that online backup of bookmarks can also be achieved (if time permits).
Project plan
An iterative approach will followed in developing the application. The mentor will notified and supplied with significant patches every fortnight.In the initial stage, I shall discuss the requirements of the project with my mentor for better understanding. A detailed report of the
requirements will be formulated, and then discussed again with the mentor for final changes.
Then I would educate myself if any technology gap is present. Then in the design stage, I shall first formulate the design based on the requirements, discuss it with the mentor and then proceed to the coding phase.After the completion of coding phase,the project will be evaluated and analysed thoroughly. Optimization will be done in the last phase along with hardcore testing.I shall support and maintain the application if needed even after the conclusion of the project. With help and support from the mentor , I hope to reach the deadlines and successfully complete the project.
Phase i - (2 weeks)
- Finalize the project requirements and specification.
- Designing the project model,class diagram,state diagram and flowchart.
Phase ii - (3 weeks)
- Providing basic functionalities like linking a web page with different resources,commenting and naming on a web page etc.
- Front end design.Integration of front end and back end.
Phase iii - (3 weeks)
- Connection of resources which are stored in file system to bookmarks/new url by providing an option in the right click menu.
- Implementation of bookmark search,edit,update etc.
Phase iv - (2 weeks)
- UI cleanup,Optimization of back end code.
- Hardcore testing.
Q:Do you have other obligations from late May to early Aug (school, work, vacation, etc.)?
Ans: NO , All My exams will be finished with in 24th May and I don’t have any vacation or other activity planned for the summer.
I intend to code on GSoC project from May to August, 8 hours a day, 5-6 days a week (or more if the situation demands it).
About Me
Key Skills
- To work in an environment that encourages originality and innovative thinking
- Adaptable to usage of any technology, and have a fundamental understanding of basics of software development life cycles and API design.
Personal Information
- Nationality : Indian
- Date of Birth : 19th October 1990
- Gender : Male
- Education : BE, Computer science and Engineering, 6th sem.
- University : PES Institute of Technology , Bangalore,India
Technical skill set
Operating Systems :
Linux, Windows
Programming languages :
C, C++, Java,Familiar with scripting languages (perl,python,shell script etc )
Databases :
Oracle, MySQL,Google Data Store,SQL and GQL. Familiar with SPARQL.
Web Technology :
HTML, JavaScript, GWT, Google App Engine,AJAX, Facebook APIs,Google Lab APIs,Chrome Extensions and plugins.
Mobile Technology :
J2ME(JSR 179-Location based services), Familiar with QT and Android platform.
Development Environment :
Linux console, Eclipse, Netbeans,JGrasp,Code blocks etc.
Open source tools & platforms :
Familiar with RDF, NRL, Nepomuk shell,KDE development,QT platform
Note:My resume can be found here
