2007/3/7, Sebastian Trüg &lt;<a href="mailto:strueg@mandriva.com">strueg@mandriva.com</a>&gt;:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi guys,<br><br>let me finally comment on this.</blockquote><div><br>Great to hear from you :-) I was looking forward to some Neopmuk feedback. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
In the Nepomuk project we are defining metadata ontologies. This means that<br>each resource (a file is also a resource but Nepomuk does not only handle<br>files but all kinds of information entities on the desktop such as persons,
<br>i.e. contacts, emails, tasks, projects, or even paragraphs in a text file) is<br>of a certain class which has a bunch of properties. The whole concept is of<br>course inspired by the semantic web, which means that ontology definition and
<br>data storage is handled using RDF/S. Thus, classes as well as properties can<br>be derived from other classes or properties.<br>So far we defined a basic annotation NAO ontology which defines the following<br>entities:
<br><br>* nao:hasAnnotation (the basic annotation relation just stating that two<br>&nbsp;&nbsp;&nbsp;&nbsp;resources are related in some way)<br>&nbsp;&nbsp;Domain: rdfs:Resource<br>&nbsp;&nbsp;Range: rdfs:Resource<br><br>* nao:hasTag (tagging of resources for simple grouping, however, not
<br>&nbsp;&nbsp;&nbsp;&nbsp;restricted to plain text keywords)<br>&nbsp;&nbsp;Domain: rdfs:Resource<br>&nbsp;&nbsp;Range: rdfs:Resource<br><br>* nao:symbol (assign an arbitrary symbol, ie. icon to a resource, for now<br>&nbsp;&nbsp;&nbsp;&nbsp;mainly useful to assign an icon to a tag)
<br>&nbsp;&nbsp;Domain: rdfs:Resource<br>&nbsp;&nbsp;Range: nie:Icon (NIE is the Nepomuk Information Entity Ontology which aims<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to define basic desktop resources such as a file, an email, a text<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document, an image and so on)
<br><br>* nao:hasRating (assign a rating to any resource)<br>&nbsp;&nbsp;Domain: rdfs:Resource<br>&nbsp;&nbsp;Range: xsd:unsignedInt<br><br>* nao:Tag (the most simple variant of a tag)<br>&nbsp;&nbsp;&nbsp;&nbsp;rdfs:label is used to assing a string keyword to the tag, hasSymbol can be
<br>&nbsp;&nbsp;&nbsp;&nbsp;used to assign an icon.<br><br>These are the basic properties of NAO but not all. I just listed them to give<br>you an idea of how we think it could be done.<br><br>The idea is to use XML schema types for literals, 
i.e. values that are not<br>resources. Localization support is already provided by RDF/S itself, thus the<br>ontologies can contain localized names and comments (ie. descriptions which<br>can be used in the GUI) for all classes and properties and also the metadata
<br>values themselves can be localized.<br><br>As already mentioned there also is the NIE ontology which defines all the<br>basic desktop resources. I will talk about that later.<br><br>The nice thing is that additional metadata types and properties can be
<br>introduced by anyone. I propose a standardized method of storing these<br>ontologies. For example some xdg folder which contains the ontologies or each<br>ontology has a desktop file defining its contents. Then the metadata types
<br>are well defined and can be used by any application or framework.<br><br>Just to get our ideas in the mix,<br>please comment.</blockquote><div><br><br>Will do.<br><br>From a technical standpoint I think rdf and ontologies are great, but from an application developers viewpoint they seem overly complex for most tasks I could think of. Most things can be done if you just know a list of metadata fields to query.
<br><br>Another concern is that a full sematic framework raise the bar for implementations. It should be possible to have real simple implementations of the specs - or atleast provide a good portion of the functionality via a simple implementation (fx. a daemonless service spawned by dbus activation on each call).
<br><br>Also, embedded devices should be able to implement the Wasabi specs (or again - the essential parts atleast). I must admit I have no idea on the feasibility of this - it might not be a problem at all.<br><br>The ideal solution would be to allow a full fledged semantic framework underneath it all, but expose apis that does not require developers to know about rdf and ontologies. There could be a &quot;semantic api&quot; or some optional extensions to the current apis to allow usage of the full semantic sweetness.
<br><br><br>Another thing - how does the Wasabi query language (<a href="http://wiki.freedesktop.org/wiki/WasabiQueryLanguage">http://wiki.freedesktop.org/wiki/WasabiQueryLanguage</a>) fit in a Neopmuk context? Does it allow you to do the things you want to do, or do you plan on using an existing standard?
<br><br><br>Cheers,<br>Mikkel<br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br>On Monday 19 February 2007 23:35:07 Mikkel Kamstrup Erlandsen wrote:
<br>&gt; Let&#39;s get the ball rolling on the metadata spec. This first period will<br>&gt; just be *brainstorming*, so let&#39;s try and avoid the nitty gritty details<br>&gt; for now.<br>&gt;<br>&gt;&nbsp;&nbsp;** What we need:<br>
&gt;<br>&gt;&nbsp;&nbsp; Fields)&nbsp;&nbsp;Metadata field names and descriptions for *desktop* objects<br>&gt;<br>&gt;&nbsp;&nbsp; Types) A type grouping of metadata fields to be used in user search<br>&gt; language. Example types could be &quot;Email&quot;, &quot;Image&quot;, &quot;Audio&quot;, etc.
<br>&gt;<br>&gt;&nbsp;&nbsp; API) A dbus api to get/set metadata<br>&gt;<br>&gt;&nbsp;&nbsp; ?Tag/Emblem) Tagging/Keywords/Emblems<br>&gt;<br>&gt;&nbsp;&nbsp;** Starting points/References:<br>&gt;&nbsp;&nbsp;- Adobe XMP:<br>&gt; <a href="http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf">
http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf</a>&lt;<br>&gt;<a href="http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec">http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec
</a>&gt; - Shared<br>&gt; Metadata Spec:<br>&gt; <a href="http://freedesktop.org/wiki/Standards_2fshared_2dfilemetadata_2dspec">http://freedesktop.org/wiki/Standards_2fshared_2dfilemetadata_2dspec</a><br>&gt;&nbsp;&nbsp;- Tracker metadata api:
<br>&gt; <a href="http://svn.gnome.org/viewcvs/tracker/trunk/data/tracker-introspect.xml?view">http://svn.gnome.org/viewcvs/tracker/trunk/data/tracker-introspect.xml?view</a><br>&gt;=markup - Spotlight Metadata Spec:<br>&gt; 
<a href="http://developer.apple.com/documentation/Carbon/Reference/MetadataAttribute">http://developer.apple.com/documentation/Carbon/Reference/MetadataAttribute</a><br>&gt;sRef/Reference/CommonAttrs.html<br>&gt;<br>&gt;&nbsp;&nbsp;- Shared Emblem Spec:
<br>&gt; <a href="http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec">http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec</a><br>&gt;&nbsp;&nbsp;- Others ideas? Nepomuk-specs? Beagle-specs?<br>&gt;<br>&gt;&nbsp;&nbsp;** My thoughts:
<br>&gt; Regarding Fields): To prevent death-by-1000-page-spec I suggest we keep the<br>&gt; field names to a core set of commonly used attributes. Ie not like Apples<br>&gt; spotlight spec (see above) which defines every known property in the
<br>&gt; universe. When things move on, teams with expert knowledge can refine<br>&gt; extensions to this spec. Fx a Wasabi Photography Metadata spec could be<br>&gt; hashed out by people in the know (which could just be EXIF, but I&#39;m not the
<br>&gt; photography expert).<br>&gt;<br>&gt; Regarding Types): There are some suggestions in the top of the Tracker api<br>&gt; link above. Regarding these I think we should leave the VFS* types out, and<br>&gt; only use single-word type names (Ie no spaces).
<br>&gt;<br>&gt; On the API): Obviously we getters and setters. They probably need to<br>&gt; operate on uris. There probably needs to be some search functionality in<br>&gt; here too since we probably shouldn&#39;t assume that the indexer and metadata
<br>&gt; server are the same.<br>&gt;<br>&gt; Tagging/Emblems: If you ask me they should be &quot;just another type of<br>&gt; metadata&quot;. When the metadata spec matures a bit we can evaluate if it needs<br>&gt; it&#39;s own api to make things easier (and allow for dedicated tagging
<br>&gt; services).<br>&gt;<br>&gt; Cheers,<br>&gt; Mikkel<br>_______________________________________________<br>xdg mailing list<br><a href="mailto:xdg@lists.freedesktop.org">xdg@lists.freedesktop.org</a><br><a href="http://lists.freedesktop.org/mailman/listinfo/xdg">
http://lists.freedesktop.org/mailman/listinfo/xdg</a><br></blockquote></div><br>