Re: Proposing Tracker for inclusion into GNOME 2.18



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]