Development/Tutorials/Metadata/Nepomuk/NepomukServices

From KDE TechBase
Nepomuk Services
Tutorial Series   Nepomuk
Previous  
What's Next   Advanced Queries
Further Reading   Introduction to RDF and Ontologies, Handling Resources with Nepomuk, Nepomuk Server

Nepomuk Services

The Nepomuk Server manages all Nepomuk services. It provides a simple ServiceManager D-Bus interface to start and stop services and to modify their autostart behaviour.

A Nepomuk service has three properties from a service manager point of view:

  • Autostart - should the service be automatically started when the Nepomuk server stars
  • Run once - A Nepomuk service may be defined as run once which means that it will be started automatically once and not afterwards. This is useful for services that update data to new ontology versions and such.
  • Dependencies - A list of services that need to run for the service to work. The Nepomuk server will make sure all dependencies are running before the service is started.


Implementing a Nepomuk Service

Implementing a Nepomuk service is simple: derive a new class from Nepomuk::Service, put it into a plugin, and register it via a proper plugin desktop file. The Nepomuk::Service class documentation provides more detail and examples.


Accessing Nepomuk Services

Each Nepomuk service is registered as a D-Bus service under the following ID:

org.kde.nepomuk.services.SERVICENAME

All services provide a org.kde.nepomuk.ServiceControl interface exported at servicecontrol.

Standard Nepomuk Services

Nepomuk provides a set of standard services:

  • Storage Service - The probably most important service hosts the Nepomuk data repository using Soprano.
  • Ontology Loader Service - Makes sure installed ontologies such as RDF, RDFS, NRL, or Xesam are loaded into the storage repository.
  • File Watch Service - Monitors the file system for changes and updates the file resource paths and URIs in Nepomuk.
  • Strigi Service - Controls Strigi, the file indexing tool which extracts metadata from files and stores it into the storage repository.
  • Query Service - Provides persistant query folders.