[Xesam] Details of tag handling
Sebastian Trüg
strueg at mandriva.com
Wed Jul 2 01:14:19 PDT 2008
While this is easy to query it is not very clean semantically speaking since
you link tag objects and tagged resources via string literals. In Nepomuk we
use tag objects and relate tagged resources to the URI of this object.
- Querying objects on their tags is also simple: just get all resources that
are related to the tag via the tagging property.
- Getting a list of all tags is as easy as before: list all resources of type
xesam:Tag (or nao:Tag in Nepomuk)
- Querying all files without a tag is also simple (in sparql we use a filter)
- listing all files with their associated tag's names is also not a big deal
(a sparql query can easily be extended or one fetches tags and their
labels for each file separately)
- renaming of tags is much simpler than your method: only change one!
property: the tag's label (in your version all tagged files have to be
updated.
- deleting a tag is as simple as deleting the tag resource and all triples
referencing it.
- having tags without files is trivial: tag resources can live on their own
anyway.
Hope this helps a bit. Keep in mind that with tag resources we leave the world
of two-dimensional metadata which can be handled by databases like lucene.
Cheers,
Sebastian
On Tuesday 24 June 2008 00:32:09 Mikkel Kamstrup Erlandsen wrote:
> Hi all,
>
> I am starting this thread because I believe we need clarification on
> how tags are employed and handling in Xesam.
>
> Currently we have a field xesam:userKeywords on xesam:Source being a
> list of strings. We also have a child of the content category
> xesam:Annotation called xesam:Tag. The latter is to allow us handle
> tags as first class objects.
>
> The question is: "What do I store in xesam:userKeyword? the tag name
> or a uri to the Tag object?". Here's what I propose:
>
> * Store the tag names in userKeyword, each tag name must be unique
> and in fact constitutes an identifier
>
> * The Tag objects keep this tag name in their xesam:id field
>
> Why this is good:
> - We can easily query objects on their tags
> - We can easily get a list of all tags (query all Tag content with id!="")
> - It handles all use cases found in
> http://lists.freedesktop.org/archives/xesam/2007-December/000002.html
>
> Cheers,
> Mikkel
> _______________________________________________
> Xesam mailing list
> Xesam at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xesam
More information about the Xesam
mailing list