[Nepomuk] Brainstorming: Metadata Sharing

Daniele E. Domenichelli daniele.domenichelli at gmail.com
Tue Jun 29 15:31:16 CEST 2010


On 06/29/2010 12:57 PM, Artem Serebriyskiy wrote:
> Can you please describe your idea in more detail?
> What information is stored localy ?
> And how to perform queries ? For example:
> "Select all resources that have a label <string literal> "
> and
> " Select all [music]files that has a <NCO:Contact | where this nco:contact
> is stored localy> as author".


Well, I have 3 different scenarios in my mind:


1: during synchronization both resources and relations are copied:

* resources on remote nepomuk server can be stored locally, but, in
  order to avoid conflicts between uri, the name can be replaced, for
  example:
    from:  nepomuk:/<resource>
    to:    telepathy:/contact/<name>/nepomuk/<resource>
           (or nepomuk:/telepathy/contact/<name>/<resource>)

* relations can be copied modifying the name of the subject and of the
  object using the new name, for example
    from:  nepomuk:/<resource1>
           <relation>
           nepomuk:/<resource2>
    to:    telepathy:/contact/<name>/nepomuk/<resource1>
           <relation>
           telepathy:/contact/<name>/nepomuk/<resource2>

In this way:
* queries can be done locally even if the contact is offline
* the uri for a resource will always be unequivocal (but it might
require some relation to represent, for example that a resource
representing a file on my pc corresponds to a resource that represents
the same file on my contact's pc
* When the contact is online you could use dbustubes to execute (and to
listen for changes to) a specific query


2: Same as 1, but only resources are copied

In this way:
* queries executed when the contact is online can return results using
both local and remote nepomuk server (using dbustubes to execute queries
on the remote server), but queries executed when the contact is offline
can return results using local server only.
* The local database will contain less informations, so it will probably
be smaller and faster, but the times for remote queries will be probably
longer due to network latency


3: No synchronization at all

In this way queries on remote server can be executed only if the contact
is online.



In all cases queries will just be a normal query that returns some
resources of type "nepomuk:/" and some resources of type
"telepathy:/contact/<name>/nepomuk/", but they might need to be executed
both on local and on remote servers using dbustubes (and resource from
remote servers must be modified to represent the name of the contact
that created it)



Cheers,
 Daniele


More information about the Nepomuk mailing list