Jump to content

Development/Tutorials/Metadata/Nepomuk/NepomukServer

From KDE TechBase


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

The Nepomuk Server

Nepomuk Architecture

The Nepomuk Server is a daemon which hosts all Nepomuk service including the main Nepomuk data repository. In normal operation it is started through KDE's autostart feature when logging into KDE. Starting it manually is as simple as typing "nepomukserver". This will start the daemon and all services.

Services are started as separate processes via the service wrapper application "nepomukservicestub". This design descision has been taken to enhance the stability of the Nepomuk system. Services are implemented by subclassing Nepomuk::Service and exporting it like any other KDE plugin. The Nepomuk::Service class documentation explains this in detail.

With kdebase a set of default services are installed. Most notably the storage service which hosts the RDF database used to store all Nepomuk-related data. Nepomuk Services explains the services in detail.

Using the Server

The Nepomuk server is registered as a DBus service at org.kde.NepomukServer and provides three DBus interfaces: The service manager, the legacy storage bridge, and the standard configuration interface.

Service Manager

The Service Manager DBus Interface named org.kde.nepomuk.ServiceManager and exported at servicemanager provides methods to start and stop Nepomuk Services, to list available or running services, and to request some basic information about services:

QStringList availableServices()

Lists the names of all available services, running and non-running.

bool isServiceAutostarted(QString service)

Checks if a service is started automatically.

bool isServiceInitialized(QString name)

Checks if a services is running and initialized (running services might still be initializing).

QStringList runningServices()

Lists the names of all running services.

void serviceInitialized(QString name)

Signal which is emitted once a service finished initialization and is ready for usage.

void setServiceAutostarted(QString service, bool autostart)

Change the autostart behaviour of a service.

bool startService(QString name)

Start a service. This will also start all dependencies.

bool stopService(QString name)

Stop a service. This will also stop all services depending on the stopped one.


Legacy Storage

The Legacy Storage interface exported at org.soprano.Server is a simple wrapper around the storage service and not meant to be used in new applications.


Configuration

The Nepomuk Service Configuration interface named org.kde.NepomukServer and exported at nepomukserver provides methods to configure the server. These methods are for example used by the Nepomuk KCM:

QString defaultRepository()

Returns the name of the default repository (the Soprano server API used in the storage service provides API to create multiple repositories. Nepomu only uses one: main).

void enableNepomuk(bool enabled)

The method to enable or disable the whole Nepomuk system. Setting enable to false will stop all services.

void enableStrigi(bool enabled)

Enable or disable Strigi file indexing.

bool isNepomukEnabled()

Check if Nepomuk is enabled.

bool isStrigiEnabled()

Check if Strigi is enabled.

void quit()

Quit the Nepomuk server and all services. Caution: this method is only intended for debugging purposes.

void reconfigure()

Re-read the configuration. Normally there is no need to call this method.