[Nepomuk] Re: same nepomuk db for several users
phreedom.stdin at gmail.com
Sat Dec 4 02:46:06 CET 2010
On Friday 03 December 2010 13:56:18 you wrote:
> ----- Original Message ----
> > From: Evgeny Egorochkin <phreedom.stdin at gmail.com>
> > To: nepomuk at kde.org
> > Cc: Bruce Adams <tortoise_74 at yahoo.co.uk>; Sebastian Trüg
> > <trueg at kde.org> Sent: Fri, December 3, 2010 12:19:20 AM
> > Subject: Re: [Nepomuk] Re: same nepomuk db for several users
> > On Thursday 02 December 2010 12:39:59 Bruce Adams wrote:
> > > Hi,
> > >
> > > Sorry for jumping in.
> > >
> > > Perhaps I missed the point of a semantic desktop. Surely its critical
> > > and basic to be able to share
> > > information between users. Imagine if we used different file names for
> > > the files? It would be chaos.
> > >
> > > I am concerned that not considering a shared user model up front might
> > > mean a fundamental redesign
> > > would be required to support it. Can you offer any re-assurance?
> > Current APIs won't stop working if some other source of metadata
> > appears, like
> > another user. As to the implementation, it's been considered but there's
> > only
> > so much time devs have and this isn't the only area which needs work.
> One effect would on the ontology side. If two users both have the
> same set of relations describing say the rating for a file you need to add
> extra relations
> to indicate the user.
Nepomuk uses quads exactly for this purpose: to associate extra metadata with
a triple. Currently it's mostly used to store last modification, data source
and such techical information and naturally can be extended to store sharing
preferences, user etc.
> The more serious issue is security. With a single user model there is no
> need for
> any kind of security. Adding security or making a system multi-user as an
> after thought
> is non trivial if thought hasn't been given up front.
You are confusing 2 different issues: (1) sharing of metadata between
different nepomuk instances and (2) keeping data of several users in 1 nepomuk
(1) has no security issues, and requires a sharing policy/preferences. Until
we try,we don't know how users will prefer to specify the policy: per-triple
settings, templates, blacklists, whitelists or most likely all these and then
some more. However, since the sharing policy is orthogonal to the data itself,
we can experiment as much as we want to.
(2) also requires enforcing the sharing policy during sparql queries which is
basically a pipe dream, because no known(to me) sql/sparql backend has per-
triple security/visibility support, and if they ever gain it, there's no
guarantee it will be flexible enough to support all the policies that will be
needed by users.
When it comes to metadata sharing (1) is the generic case we absolutely must
implement no matter what.
(2) is just a shortcut solution which is unimplementable and which looks good
on the paper(supposedly faster than several instances, maybe slightly less
space usage), but these advantages are mostly illusory:
* to make queries fast, you need each user to have a personal set of indexes
of their own "view" of the data set(referencing only the triples they have
access to) and this means that the storage overhead of separate stores vs
common store is not that great, space requirements are the same order of
* query performance depends only on the amount of data in the users "view", so
it's the same in both cases. The only apparent speed up is in syncing metadata
changes between users, which seems to be faster when users use the same db...
Until you consider that each user's indexes have to be updated on data change,
so you might save some context switches and that's it.
It may be possible that in the future there will be multi-user nepomuk
instances but for other reason, and storing only public data, similar to what
last.fm used to be: since all data is public, all users have the same "view"
of data and this is where you can gain some speed/storage advantage.
More information about the Nepomuk