2007/2/20, Jos van den Oever <<a href="mailto:jvdoever@gmail.com">jvdoever@gmail.com</a>>:<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;">
2007/2/19, Mikkel Kamstrup Erlandsen <<a href="mailto:mikkel.kamstrup@gmail.com">mikkel.kamstrup@gmail.com</a>>:<br>> Let's get the ball rolling on the metadata spec. This first period will just<br>> be *brainstorming*, so let's try and avoid the nitty gritty details for now.
<br>><br>> ** What we need:<br>><br>> Fields) Metadata field names and descriptions for *desktop* objects<br>><br>> Types) A type grouping of metadata fields to be used in user search<br>> language. Example types could be "Email", "Image", "Audio", etc.
<br>><br>> API) A dbus api to get/set metadata<br>><br>> ?Tag/Emblem) Tagging/Keywords/Emblems<br>><br>> ** Starting points/References:<br>> - Adobe XMP:<br>> <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><br>><br>> - Shared Metadata Spec:<br>> <a href="http://freedesktop.org/wiki/Standards_2fshared_2dfilemetadata_2dspec">http://freedesktop.org/wiki/Standards_2fshared_2dfilemetadata_2dspec
</a><br>> - Tracker metadata api:<br>> <a href="http://svn.gnome.org/viewcvs/tracker/trunk/data/tracker-introspect.xml?view=markup">http://svn.gnome.org/viewcvs/tracker/trunk/data/tracker-introspect.xml?view=markup
</a><br>><br>> - Spotlight Metadata Spec:<br>> <a href="http://developer.apple.com/documentation/Carbon/Reference/MetadataAttributesRef/Reference/CommonAttrs.html">http://developer.apple.com/documentation/Carbon/Reference/MetadataAttributesRef/Reference/CommonAttrs.html
</a><br>><br>> - Shared Emblem Spec:<br>> <a href="http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec">http://freedesktop.org/wiki/Standards_2fdesktop_2demblem_2dspec</a><br>> - Others ideas? Nepomuk-specs? Beagle-specs?
<br>><br>> ** My thoughts:<br>> Regarding Fields): To prevent death-by-1000-page-spec I suggest we keep the<br>> field names to a core set of commonly used attributes. Ie not like Apples<br>> spotlight spec (see above) which defines every known property in the
<br>> universe. When things move on, teams with expert knowledge can refine<br>> extensions to this spec. Fx a Wasabi Photography Metadata spec could be<br>> hashed out by people in the know (which could just be EXIF, but I'm not the
<br>> photography expert).<br>><br>> Regarding Types): There are some suggestions in the top of the Tracker api<br>> link above. Regarding these I think we should leave the VFS* types out, and<br>> only use single-word type names (Ie no spaces).
<br>><br>> On the API): Obviously we getters and setters. They probably need to operate<br>> on uris. There probably needs to be some search functionality in here too<br>> since we probably shouldn't assume that the indexer and metadata server are
<br>> the same.<br>><br>> Tagging/Emblems: If you ask me they should be "just another type of<br>> metadata". When the metadata spec matures a bit we can evaluate if it needs<br>> it's own api to make things easier (and allow for dedicated tagging
<br>> services).<br><br>Hi All,<br><br>First I'd like to point to the original mail I sent on this subject.<br>It already contained a relatively simple spec framework. That is, not<br>attribute names, but a way to define them, type them and check them.
<br>There was also some code attached to do allow testsets to check the<br>correctness of metadata extraction from files. Hence the title of the<br>mail: 'mimetype standardization by testsets'. I still stand by this
<br>idea.</blockquote><div><br>Sorry Jos, how could I miss this out. For reference - here's the original thread:<br><a href="http://lists.freedesktop.org/archives/xdg/2006-October/008682.html">http://lists.freedesktop.org/archives/xdg/2006-October/008682.html
</a><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;">Here is an idea for a simple proposal.<br><br>- Each metadata type is identified by a URI.
E.g.<br><a href="http://www.freedesktop.org/metadata/xhtml1/title">http://www.freedesktop.org/metadata/xhtml1/title</a>.<br>- For each URI there will be human readable descriptions in every<br>language and keywords in every language. I will use the keyword in the
<br>further description mixed with the URI.</blockquote><div><br>I like this idea as such. I can't readily see how it intermixes with known widespread standards such as DC though..?<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;">
- It also has a simple type: integer, string, float, binary. Or the<br>more elaborate list of the tracker spec or the xml schema simple<br>types. Personally, I prefer the xml schema spec [1]. We'd need to<br>support only a subset.
<br>- Each type has a maximal cardinality. This means how often a field<br>may occur per file/object. For example the metadata 'size' should<br>occur only once, but the metadata 'tag' may occur multiple times.
<br>- Each may have one parent type. Cardinality and type of the parent is<br>inherited, but may be restricted. Having multiple parents is a bad<br>idea I think.<br>- Each type is embedded, not embedded, or unspecified.<br>
- Each type is derived or not derived. E.g. 'size' is derived, but<br>'title' is not. This means that 'title' is potentially writeable.<br><br>Whether a metadata field is writeable depends on the implementation.
<br>Using 'embedded' and 'derived' instead of 'writeable' is clearer,<br>because 'writeable' depends on a number of factors: can the software<br>write the property, is the file writeable, can the database handle
<br>external metdata.<br><br>Groups are defined separately from the types. They are simple lists of<br>metadata type uris. All children of these URI's also fall into this<br>group. Groups are also identified by a URI and they have translations
<br>in different languages for the user interfaces. They may also have a<br>short keyword form. The metadata types in a group do not need to have<br>the same cardinality or data type.<br><br>What do you think?</blockquote>
<div><br><br>This was somewhat close to the things I have been thinking about. I have to give this a bit more though when I get home... <br></div><br>Cheers,<br>Mikkel<br></div>