Re: Proposing Tracker for inclusion into GNOME 2.18
- From: Jamie McCracken <jamiemcc blueyonder co uk>
- To: James Henstridge <james jamesh id au>
- Cc: Ross Burton <ross burtonini com>, desktop-devel-list <desktop-devel-list gnome org>
- Subject: Re: Proposing Tracker for inclusion into GNOME 2.18
- Date: Tue, 24 Oct 2006 18:47:54 +0100
James Henstridge wrote:
On 24/10/06, Jamie McCracken <jamiemcc blueyonder co uk> wrote:
Ross Burton wrote:
> On Tue, 2006-10-24 at 23:26 +0800, James Henstridge wrote:
>> I think that the idea Ross is trying to get across here is that rather
>> than having a flat namespace of metadata types, you want to have
>> relationships between the metadata types (metadata about metadata).
>
> [snip]
>
> Yes, thanks James for explaining clearly what I was trying to say. :)
I have been thinking of allowimg all metadata to be registered with an
optional hardcoded dublin core type(1) so we could use maybe
"dc.creator" that would search all metadata registered against that type.
You would not be able to get/set the value of any of the dc types
obviously as they would potentially point to more than one metadata.
Would that satisfy you Ross?
(1) http://dublincore.org/documents/1999/07/02/dces/
If it was specific to dublin core, and only had one level of
specialisation, then it would only be of limited use.
it would be limited - but is that a bad thing?
Im planning to add extensible metadata support to tracker-search-tool
but I need it to be easy for users to add new metadata. Having a simple
window which allows you to define the name, type (indexable string,
string, numeric or date) and class (a dropdown combo of the 13 or so DC
types) should give us a good balance.
I would be worried about anything more complicated. That said for the
application api I could be more open.
If we ignore the implicit inverse relationship issue, you really want
a table that contains "property type foo is a subclass of the property
type bar". For the case of two properties being equivalent, we can
represent that with two relationships:
* foo is a subclass of bar
* bar is a subclass of foo
yes thats easy to do
Of course, using a table like this is not going to be fast when doing
SQL queries. So you probably want to have a flattened version that
can be used to map from a property to all its subclasses (usually
including itself, to make the SQL easier). Such a flattened table is
pretty easy to maintain with database triggers or in the application
code that updates the metadata type relation table.
We shouldn't need a flattened table as the two metadatatype tables would
be properly indexed so joins would be fast (especially with sqlite)
Technically there's no problem here for me to implement this, my only
concern is keeping it KISS and simple for users/apps to use without too
much complication
It would be nice to see some examples of said relationships and how they
would differ from one limited to dublin core roots.
--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]