[Wasabi] Kicking of the Metadata spec - brainstorm

Sebastian Trüg strueg at mandriva.com
Wed Mar 7 03:41:59 PST 2007

Hi guys,

let me finally comment on this.
In the Nepomuk project we are defining metadata ontologies. This means that 
each resource (a file is also a resource but Nepomuk does not only handle 
files but all kinds of information entities on the desktop such as persons, 
i.e. contacts, emails, tasks, projects, or even paragraphs in a text file) is 
of a certain class which has a bunch of properties. The whole concept is of 
course inspired by the semantic web, which means that ontology definition and 
data storage is handled using RDF/S. Thus, classes as well as properties can 
be derived from other classes or properties.
So far we defined a basic annotation NAO ontology which defines the following 

* nao:hasAnnotation (the basic annotation relation just stating that two 
    resources are related in some way)
  Domain: rdfs:Resource
  Range: rdfs:Resource

* nao:hasTag (tagging of resources for simple grouping, however, not 
    restricted to plain text keywords)
  Domain: rdfs:Resource
  Range: rdfs:Resource

* nao:symbol (assign an arbitrary symbol, ie. icon to a resource, for now 
    mainly useful to assign an icon to a tag)
  Domain: rdfs:Resource
  Range: nie:Icon (NIE is the Nepomuk Information Entity Ontology which aims 
         to define basic desktop resources such as a file, an email, a text 
         document, an image and so on)

* nao:hasRating (assign a rating to any resource)
  Domain: rdfs:Resource
  Range: xsd:unsignedInt

* nao:Tag (the most simple variant of a tag)
    rdfs:label is used to assing a string keyword to the tag, hasSymbol can be
    used to assign an icon.

These are the basic properties of NAO but not all. I just listed them to give 
you an idea of how we think it could be done.

The idea is to use XML schema types for literals, i.e. values that are not 
resources. Localization support is already provided by RDF/S itself, thus the 
ontologies can contain localized names and comments (ie. descriptions which 
can be used in the GUI) for all classes and properties and also the metadata 
values themselves can be localized.

As already mentioned there also is the NIE ontology which defines all the 
basic desktop resources. I will talk about that later.

The nice thing is that additional metadata types and properties can be 
introduced by anyone. I propose a standardized method of storing these 
ontologies. For example some xdg folder which contains the ontologies or each 
ontology has a desktop file defining its contents. Then the metadata types 
are well defined and can be used by any application or framework.

Just to get our ideas in the mix,
please comment.


On Monday 19 February 2007 23:35:07 Mikkel Kamstrup Erlandsen wrote:
> Let's get the ball rolling on the metadata spec. This first period will
> just be *brainstorming*, so let's try and avoid the nitty gritty details
> for now.
>  ** What we need:
>   Fields)  Metadata field names and descriptions for *desktop* objects
>   Types) A type grouping of metadata fields to be used in user search
> language. Example types could be "Email", "Image", "Audio", etc.
>   API) A dbus api to get/set metadata
>   ?Tag/Emblem) Tagging/Keywords/Emblems
>  ** Starting points/References:
>  - Adobe XMP:
> http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf<
>http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec> - Shared
> Metadata Spec:
> http://freedesktop.org/wiki/Standards_2fshared_2dfilemetadata_2dspec
>  - Tracker metadata api:
> http://svn.gnome.org/viewcvs/tracker/trunk/data/tracker-introspect.xml?view
>=markup - Spotlight Metadata Spec:
> http://developer.apple.com/documentation/Carbon/Reference/MetadataAttribute
>  - Shared Emblem Spec:
> http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec
>  - Others ideas? Nepomuk-specs? Beagle-specs?
>  ** My thoughts:
> Regarding Fields): To prevent death-by-1000-page-spec I suggest we keep the
> field names to a core set of commonly used attributes. Ie not like Apples
> spotlight spec (see above) which defines every known property in the
> universe. When things move on, teams with expert knowledge can refine
> extensions to this spec. Fx a Wasabi Photography Metadata spec could be
> hashed out by people in the know (which could just be EXIF, but I'm not the
> photography expert).
> Regarding Types): There are some suggestions in the top of the Tracker api
> link above. Regarding these I think we should leave the VFS* types out, and
> only use single-word type names (Ie no spaces).
> On the API): Obviously we getters and setters. They probably need to
> operate on uris. There probably needs to be some search functionality in
> here too since we probably shouldn't assume that the indexer and metadata
> server are the same.
> Tagging/Emblems: If you ask me they should be "just another type of
> metadata". When the metadata spec matures a bit we can evaluate if it needs
> it's own api to make things easier (and allow for dedicated tagging
> services).
> Cheers,
> Mikkel

More information about the xdg mailing list