Difference between revisions of "Projects/Baloo"

Jump to: navigation, search
(Architecture)
(Replaced content with "Baloo is a metadata and search framework for KDE. This page is now moved to [http://community.kde.org/Baloo/Architecture community.kde.org]")
 
Line 1: Line 1:
 
Baloo is a metadata and search framework for KDE.
 
Baloo is a metadata and search framework for KDE.
  
'''Mailing List: ''' kde-devel@kde.org <br/>
+
This page is now moved to [http://community.kde.org/Baloo/Architecture community.kde.org]
'''IRC Channel:''' #baloo on freenode
+
 
+
== Architecture ==
+
 
+
Baloo focuses on decentralization of data, and does not have any central database. At its core it is a set of 3 services -
+
 
+
* Data Stores
+
* Search Stores
+
* Relations
+
 
+
=== Data Store ===
+
 
+
A Data Store is a place to permanently store data. Its format and APIs are not dictated by Baloo, and can in any way that is most efficient for the data in question.
+
 
+
=== Search Store ===
+
 
+
A Search Store is a plugin which provides search capabilities for a specific kind of data. Each of these stores provide a plugin which can be used to search through the data using a consistent API. At this moment there are 3 search stores that have been implemented -
+
 
+
* File Search
+
* Email Search
+
* Contact Search
+
 
+
 
+
Each Store can also provide custom APIs for searching the data.
+
 
+
=== Relations ===
+
 
+
Baloo can be used to create relations between two uniquely identifiable identifiers. The key aspect is that when creating a relation between A and B, both of them are uniquely identifiable. For most of the PIM data, Akonadi already provides a unique identifier of the 'akonadi:?item=x'. For File data, Baloo provides unique identifiers of the form 'file:x'.
+
 
+
Each relation is stored in an independent store in the desired mechanism. A sample sqlite implementation is provided which maps both the identifiers in a 2 column sqlite database.
+
 
+
For example, there exists a TagRelation which maps a Tag and any unique identifier. Similarly, there can be an ActivityRelation, and relations for other aspects such as mapping a file received via Bluetooth to a Bluetooth device.
+
 
+
== Implementation ==
+
=== Files ===
+
 
+
Baloo concentrates heavily on files, and provides both a data store and search store for files. These are stored using a combination of sqlite and xapian.
+
 
+
=== Akonadi ===
+
 
+
In the case of PIM, since Akonadi already stores (caches) the data, only a Search Store is required. There are currently separate search stores for contacts and emails. They are both implemented using Xapian.
+
 
+
=== Tags ===
+
 
+
Tags are stored in a custom format. In order to relate tags with files / email, a TagRelation is provided.
+

Latest revision as of 15:40, 18 January 2014

Baloo is a metadata and search framework for KDE.

This page is now moved to community.kde.org


This page was last modified on 18 January 2014, at 15:40. This page has been accessed 2,867 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal