Another monday and again the Nepomuk-KDE question

Sebastian Trüg strueg at mandriva.com
Wed Apr 25 16:41:15 BST 2007


On Tuesday 24 April 2007 18:19:14 Dirk Mueller wrote:
> On Monday, 23. April 2007, Sebastian Trüg wrote:
> > again I am asking if we can merge the Nepomuk-KDE core parts into
> > kdelibs/kdebase. All krazy issues have been solved and during the merge I
> > would remove the rcgen run from the build and just add the few basic
> > generated sources to the svn.
>
> I've not being able to find a high level technical description of how the
> stuff is going to work, so any judgement about wether this fits or not fits
> inclusion quality is going to be difficult. From looking at the installed
> header files, there are no obvious major things to fix, and it looks clean
> and nice to me.

sounds like a good start already. ;)

> From the previous discussion, I was under the impression that you have no
> idea if it is going to remain source or binary compatible over the time of
> KDE 4.x. Is that still the case? This question doesn't seem to be answered

To be honest: I don't know if it will stay compatible. We could certainly try 
enforcing it and only improve on the inside and by adding new stuff.

> right now. If you don't know, I would again recommend to not include it in
> the set of API that is guaranteed to stay binary compatible with the
> release of 4.0. That doesn't mean it can not be a dependency for some KDE
> application though.
>
> > * libKMetaData into the kdelibs (metadata creation and query library for
> > usage in applications)
>
> What can it do right now? What does it depend on? Which parts of kdelibs
> will depend on it in the future? It seems to link kdeui and knepomul right
> now.

It is a convenience library for the creation and querying of arbitrary 
metadata related to some resource. In general you create an instance of a 
class that relates to the resource you are handling and then use the set and 
get methods to work with the metadata. Be aware that I am not necessarily 
talking about the metadata that can be extracted from files (i.e. what strigi 
is handling) but about whatever one can come up with. However, all this 
metadata is intended to be structured according to certain ontologies that 
define which classes (or types) can have which properties or relations to 
other classes.

The idea is to let applications create a graph of metadata (as compared to the 
set of property sets that tools like strigi create) that defines non-obvious 
relations between resources.

Back to KMetaData: all this can in theory be done using RDF by each 
application but that is very error-prone and a lot of code in each app. So 
KMetaData takes care of all the type conversion and proper URI naming and so 
on.

I hope this helps a little in understanding.

> > * RDFRepository service into kdebase/runtime (a Nepomuk-KDE core-service
> > which provides the RDF storage for all metadata)
>
> how does the data storage work?

It uses Soprano to provide an RDF API over D-Bus which basically means adding 
of RDF statements (quadruples in this case, standard RDF triples + named 
graph URI which is also called context), removing, listing, and query 
language support. Yet to do are an integration of a lucene index for fast 
full-text search.

> > * libSoprano into kdesupport (RDF QT/C++ wrapper library, currently using
> > a redland backend)
>
> This will be a hard dependency then for knepomuk and therefore for kdelibs,
> right? How much of nepomuk will work without it? Can applications discover
> existance of the nepomuk service at runtime or is it a compile time
> dependency?

Services can be discovered at runtime and in theory you can do it using plain 
D-Bus. But using knepomuk as a compile dependancy allows to use its simple 
API to access and use the services much easier.




More information about the kde-core-devel mailing list