Baloo: Difference between revisions

From KDE Community Wiki
No edit summary
(31 intermediate revisions by 12 users not shown)
Line 1: Line 1:
Baloo is the next generation of the Nepomuk project. It's responsible for handling user metadata such as tags, rating and comments. It also handles indexing and searching for files, emails, contacts, etc. Baloo aims to be lighter on resources and more reliable than its parent project.
[[File:Mascot konqi-support-search.png|thumbnail|right|Help [[Konqi]] find what he wants!]]
Baloo is the file indexing and file search framework for KDE Plasma, with a focus on providing a very small memory footprint along with with extremely fast searching.


== What's wrong with Nepomuk? ==
== Ways to communicate ==
:Mailing List: [email protected] ([https://mail.kde.org/mailman/listinfo/kde-devel info page])
:IRC Channel: #kde-devel on freenode
:Phabricator project: https://phabricator.kde.org/project/view/261


The Nepomuk project started as a research project in the European Union. It was build completely on top of RDF. While RDF is a great from a theoretical point of view, it is not the simplest tool to understand or optimize. The databases which currently exist for RDF are not suited for desktop use.
== Top bugs and feature requests ==
'''Bugs:''' https://bugs.kde.org/buglist.cgi?bug_severity=critical&bug_severity=grave&bug_severity=major&bug_severity=crash&bug_severity=normal&bug_severity=minor&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=REOPENED&list_id=1629910&priority=VHI&priority=HI&product=frameworks-baloo&query_format=advanced
<br/><br/>
'''Feature requests:''' https://bugs.kde.org/buglist.cgi?bug_severity=wishlist&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=REOPENED&list_id=1629911&priority=VHI&priority=HI&product=frameworks-baloo&query_format=advanced


The Nepomuk developers have tried very hard over the last years to optimize the indexing and searching infrastructure, and they have now come to the conclusion that Nepomuk cannot be further optimized without migrating away from RDF.
== Useful pages ==
* [[Baloo/Architecture | Architecture]]
* [[Baloo/Configuration]]
* [[Baloo/Debugging]]
* [[Baloo/NepomukPort]]
* [[Baloo/Tasks]]
* [[Baloo/XapianAlternatives]]
* [[Baloo/XapianProblems]]


RDF also heavily relied on ontologies. These ontologies are a way to describe how the data should be stored and represented. They used the ontologies from the original EU research project - Shared Desktop Ontologies. These ontologies were not designed from a performance or ease of use point of view. They are quite vague in certain areas and often duplicate information. This leads to scenarios where it takes forever to figure out how the data should be stored. Additionally, since all the data needs to be stored in RDF, one cannot optimize for one specific data type.
== Using Baloo ==


Given these shortcomings the Nepomuk developers decided to drop RDF and rechristen the project under the name of Baloo.
Baloo is not an application, but a daemon to index files.  Applications can use the Baloo framework to provide file search results.


= Migrating from Nepomuk to Baloo =
An [http://vhanda.in/blog/2014/04/desktop-search-configuration/ intentionally limited number of settings] are provided via the KDE System Settings "Desktop Search" icon.  Other adjustments can be made directly to the [[Baloo/Configuration | configuration file]].


Nepomuk was used to store the tags, ratings, and user comments in Files. This data can be migrated by running the <tt>nepomukbaloomigrator</tt>. Nepomuk was also used to store indexed information about Files, Emails and Contacts. Baloo shall reindex this information directly from the source.
== balooctl ==


= Running Nepomuk and Baloo together =
<code>balooctl</code> is a CLI command to perform certain operations on Baloo. The operations are indicated by '''arguments'''. All available arguments can be listed by issuing <code>balooctl --help</code> in terminal app, such as [[userbase:Konsole]].


Nepomuk and Baloo can both coexist perfectly. However, it may not be the best idea to run both of them on the same system as they both would then be indexing your files, emails and other data.
To be noted, argument <code>checkDb</code> is only meant to be used by developers for debugging. All it does is to print some messages but not to sanitize the database. And the execution time grows exponentially with the number of indexed files (see [https://bugs.kde.org/show_bug.cgi?id=380465#c5 Comment 5 under bug #380465]).
 
Tags, ratings and comments will be not be synchronized between Nepomuk and Baloo after the initial migration.
 
Applications relying on Nepomuk will have to migrate to Baloo. Their progress can be tracked over here - http://community.kde.org/Baloo/NepomukPort
 
= Baloo, Nepomuk, KDE4 and KF5 =
 
The Nepomuk project will not be ported to Qt5 and KF5. The Baloo project will be ported to KF5. This ported version of Baloo will continue to use the same database as the KDE4 version and will be completely compatible.

Revision as of 15:17, 11 June 2019

Help Konqi find what he wants!

Baloo is the file indexing and file search framework for KDE Plasma, with a focus on providing a very small memory footprint along with with extremely fast searching.

Ways to communicate

Mailing List: [email protected] (info page)
IRC Channel: #kde-devel on freenode
Phabricator project: https://phabricator.kde.org/project/view/261

Top bugs and feature requests

Bugs: https://bugs.kde.org/buglist.cgi?bug_severity=critical&bug_severity=grave&bug_severity=major&bug_severity=crash&bug_severity=normal&bug_severity=minor&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=REOPENED&list_id=1629910&priority=VHI&priority=HI&product=frameworks-baloo&query_format=advanced

Feature requests: https://bugs.kde.org/buglist.cgi?bug_severity=wishlist&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=REOPENED&list_id=1629911&priority=VHI&priority=HI&product=frameworks-baloo&query_format=advanced

Useful pages

Using Baloo

Baloo is not an application, but a daemon to index files. Applications can use the Baloo framework to provide file search results.

An intentionally limited number of settings are provided via the KDE System Settings "Desktop Search" icon. Other adjustments can be made directly to the configuration file.

balooctl

balooctl is a CLI command to perform certain operations on Baloo. The operations are indicated by arguments. All available arguments can be listed by issuing balooctl --help in terminal app, such as userbase:Konsole.

To be noted, argument checkDb is only meant to be used by developers for debugging. All it does is to print some messages but not to sanitize the database. And the execution time grows exponentially with the number of indexed files (see Comment 5 under bug #380465).