[Nepomuk] Re: nepomuk & gnome & firefox
Bruce Adams
tortoise_74 at yahoo.co.uk
Sat Nov 20 03:06:51 CET 2010
Hi,
If I may ask what is the other project? As it will obvious have bearings on
where
you want to focus your efforts.
Brainstorming sounds like a good plan. Perhaps starting with a wide scope
before narrowing down to what is in and out of scope
and ultimately keeping it simple and acheivable.
I'm new so apologies that this probably isn't.
I'd like to start with resource discovery.
Given a URI we need to know.
what services provide meta data for it
what kind of meta data each service provides (reference to an ontology?)
Given a mounted disk semantic information could be provided by one or more of
at least the following:
a (e.g. nepomuk) server using a user specific database
a local server using a shared database
a remove server using a shared database
a filesystem that permits embedded semantic information.
Ideally I'd like to be able to do the same for a web-page which is why I said
URI
rather than file. Including web-pages would most likely imply using W3 standard
methods for passing semantic information around.
I'm not clear if or how nepomuk handles security issues relating to users
sharing
a database and controlling access and visibility of it.
For each resource we need to know what priviledges we have.
Most importantly is it read only.
I'm primarily interested in tagging folksonomies.
I'm sufficiently new that I don't know how (in)compatible the ontologies
used by nepomuk are with those used elsewhere (OSCAF and Gnome).
The paper http://tagont.googlecode.com/files/TagOntPaper.pdf
suggests a common ontology.
It includes the following suggested queries which look a lot like some of my
tagging use cases.
• get all taggers
• get all tags used by a tagger X
• get all resources which have been tagged more
than once
• get all tags for a resource A
• get tags from users X,Y,Z for resource A
Myself I would very much like an API that just provides this without having to
writes SPARQL
queries as that lowers the entry requirements for using it.
Some more vague ramblings in the direction of a (C++) API before I head off to
sleep.
I had something like this in mind for a libtagger.so which it what started me
searching for information
and led me to nepomuk.
Entity -> File or URL
Service - description of a meta data provider
Tag - includes a simple string name
std::set<Service> Entity::listServiceProviders()
std::set< Tag> Entity::listTags()
std::set< Tag> Entity::listTags(<semantic info provider or list there>)
std::set< Tag> Entity::listTags(<some kind of filter>)
<some kind of status, or just exceptions when it goes wrong>
Entity::addTag(tag)
methods to convert a tag to and from a string simply
Tag::Tag(std::string) -
std::string Tag::toString()
perhaps this is only sensible in the context of a given service provider?
Service::listDefinedTags();
Entity::addTag(service, tag, bool createTag)
I have to say some of this bears a resemblance to the existing nepomuk API
but simplified with not an ontology in sight (though its there under the hood).
Meta-data aware file ops.
CopyFile - copy file & meta-data
MoveFile - move file & meta-data
The following would apply to URLs as well:
CopyMetaData( file1, file2) - overwrite the meta data for file2 with that for
file1
CopyMetaData( file, provider1, provider2) - copy the meta data one provide has
for a file to another provider
ExportMetaData(file); - to file or a (opaque?) meta data object
ImportMetaData(file);
These would need to be clever enough to decide what to do based on the resource
providers for the start and end points.
I was thinking about cobbling this kind of API together for my next project.
I also wonder about having a backup file-system based metadata database along
the lines of
<dir>
<file to tag>
,metadata/
tags/
<file to tag> <- contains tags as RDF, XML or a list of strings
one per line.
Regards,
Bruce.
----- Original Message ----
> From: Sebastian Trüg <trueg at kde.org>
> To: Bruce Adams <tortoise_74 at yahoo.co.uk>
> Cc: nepomuk at kde.org
> Sent: Wed, November 17, 2010 2:18:30 PM
> Subject: Re: [Nepomuk] Re: nepomuk & gnome & firefox
>
> Actually I have planned to start on that API mid of next week since I
> need it for another project. Maybe a good idea to start would be to
> brainstorm on the necessary method the API would require, ie. come up
> with a bunch of use cases.
>
> We could put that on techbase.kde.org...
>
> Cheers,
> Sebastian
>
> On 11/17/2010 02:24 PM, Bruce Adams wrote:
> >
> > That's pretty much exactly what I'm looking for.
> > So I'm happy to collaborate on any efforts to get something like that
going.
> >
> >
> > Regards,
> >
> > Bruce.
> >
> >
> > ----- Original Message ----
> >> From: Sebastian Trüg <trueg at kde.org>
> >> To: nepomuk at kde.org
> >> Sent: Wed, November 17, 2010 1:04:19 PM
> >> Subject: [Nepomuk] Re: nepomuk & gnome & firefox
> >>
> >> This is what I mean: a DBUs API that provides what the Nepomuk-KDE API
> >> provides at the moment.
> >>
> >> Cheers,
> >> Sebastian
> >>
> >> On 11/17/2010 09:58 AM, Bruce Adams wrote:
> >>> ----- Original Message ----
> >>>
> >>>> From: Richard Dale <richard.j.dale at gmail.com>
> >>>> To: nepomuk at kde.org
> >>>> Sent: Tue, November 16, 2010 5:40:17 PM
> >>>> Subject: [Nepomuk] Re: nepomuk & gnome & firefox
> >>>>
> >>>> On Wed, Nov 10, 2010 at 7:11 AM, Sebastian Trüg <trueg at kde.org>
wrote:
> >>>>> The solution is simply what I said: we support the tracker API and
> >>>>> that's it. The other way around is not possible anyway.
> >>>> OK, how would you like to support the tracker API? I'm still not
clear
> >>>> on what you are saying.
> >>>>
> >>>> One way would be to write a Tracker backend for Soprano 2.x which
> >>>> would support a subset of the Virtuoso backend's functionality.
> >>>>
> >>>> Another way would be to write a QSparql based backend for Soprano 2.x
> >>>> which would interface with Tracker, and also support SPARQL endpoints
> >>>> and Virtuoso as a side effect, although you would be perfectly
welcome
> >>>> not to use that extra functionality as the drivers are only plugins. I
> >>>> happen to be an expert on the Tracker apis (both the DBus one and the
> >>>> newer 'direct api'), and the Tracker team are cooperating to improve
> >>>> their api WRT its use in QSparql. I am also an active KDE developer
> >>>> who has developed language bindings for Soprano and Nepomuk, and I am
> >>>> quite happy to work on KDE things in my spare time. So if anyone can
> >>>> do this particular task I feel I should be about the person person to
> >>>> try.
> >>>>
> >>>> I don't know what your plans for Soprano 3.x are as I haven't studied
> >>>> the code yet.
> >>>>
> >>>> -- Richard
> >>>
> >>>
> >>> From my angle as a noob a lot of this is missing the point.
> >>> I want to read and write tag clouds in a platform independent way.
> >>> A rich ontology is all very well (and vitally important for more advanced
>
> >> uses).
> >>> But at the start of the day I want to be able to do something like:
> >>>
> >>> Nepomuk::File file( "some/path");
> >>> file.addTag("foo");
> >>>
> >>> Just like in the examples here:
> >>>
> >>> http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/examples.html
> >>>
> >>> and see the tag "foo" appear in the "quickview" in dolphin and
> >>> the equivalent Gnome apps (and firefox).
> >>>
> >>> Surprisingly this is 'bleeding edge' stuff (kde 4.6) rather than the bare
>
> >>> essentials
> >>> and doesn't work on my up to date ubuntu 10.10 installation which is
>still
>
> >> on
> >>
> >>> kde 4.5.1.
> >>> (actually this is beyond the bleeding edge as the tag needs to be
>declared
>
> >>> first, but you get the idea)
> >>>
> >>> Regards,
> >>>
> >>> Bruce.
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Nepomuk mailing list
> >>> Nepomuk at kde.org
> >>> https://mail.kde.org/mailman/listinfo/nepomuk
> >>>
> >> _______________________________________________
> >> Nepomuk mailing list
> >> Nepomuk at kde.org
> >> https://mail.kde.org/mailman/listinfo/nepomuk
> >>
> >
> >
> >
> >
>
More information about the Nepomuk
mailing list