KDE TechBase is a Wiki - You can help! Please contribute! Questions?
Please ask development related questions in the KDE Community Forum.
Please ask development related questions in the KDE Community Forum.
Projects/PIM/Akonadi/Bookmarks
This page is about the bookmarks system refactoring for 4.3 using Akonadi / Nepomuk. It's mostly Konqueror-centric, but we must keep in mind the bookmarks system is used by many applications. Comments and ideas are welcome.
Contents |
General picture
Current state of bookmarks
- Currently provided classes : KBookmark, KBookmarkGroup, KBookmarksManager and others.
- Many apps use it : Konqueror, Konsole, Kate, Okular, ... need to keep backwards compatibility.
- Bookmarks are stored in a per-application XBEL file, parsed by KBookmarksManager.
Desired features
- Sync with online services / other sources
- Rating / tagging / other metadata
- Site snapshots storage
- Search by tag / metadata
- Full text indexing (Strigi)
Other ideas to discuss
- Only use tags instead of folders. Epiphany does this, mitigated reactions
- Merge bookmarks and history (to get history tagging / rating) : a bookmark may be a properly tagged history entry
- Ability to store a page (like the scrapbook firefox plugin)
- I suggest to do this using Basket Note Pads http://basket.kde.org/ Zeroheure 09:01, 12 January 2009 (UTC)
- why not use existing archive web page extension Llukas 14:11, 7 February 2010 (UTC)
Implementation
The consensus seems to be :
- Akonadi to handle storage and sync
- Nepomuk to handle tagging / metadata
- reuse and extend existing kdelibs/kio API
We need to define :
- the new properties to add to bookmarks
- what is already done and what is to implement
Potential issues
- KBookmark* extend QDom while Akonadi works by fetching individual items. Should we emulate a QDom or create new classes ? As the Akonadi implementation will still use bookmarks.xml, the two implementations may be used on the same data.
- A lot of Akonadi KDE api and agents are in kdepimlibs on which kdelibs can't depend.
Feature matrix
| Status | Category | Description | Contact |
|---|---|---|---|
| IN PROGRESS | Storage | Define new attributes to store | Xavier Vello <xavier.vello@gmail.com> |
| DONE | Storage | Local file ressource (in kdepim) | [mailto: <>] |
| IN PROGRESS | Storage | del.icio.us ressource (in playground) | Robert Knight <robertknight@gmail.com> |
| TODO | Storage | Storage of screenshots | [mailto: <>] |
| DONE | Metadata | Tagging of akonadi items | Toma <toma@kde.org> |
| TODO | Metadata | Strigi index and search | [mailto: <>] |
| TODO | Libs | Port KBookmarks* | [mailto: <>] |
