Re: [Tracker] tracker RDF data



Eyal Oren wrote:
On 07/19/06/07/06 15:54 +0100, Jamie McCracken wrote:
Eyal Oren wrote:
tracker is not designed for use as a web service but as a desktop service (hence dbus is used).
I know, that's good. RDF is definitely not only for the web.

Its also not an RDF style application it merely uses RDFQ (xml based version) as a means to query stuff. We dont implement all of RDFQ but a subset with extensions. We also only uses the <rdfq:Condition> parts in the query so its not a full blown RDF thingy. (you can see rdf query examples in the tarball in the rdf-query-examples folder)
ok. but your datamodel is exactly like RDF: desktop-object has-property with-value, e.g. (file-abc creation-date 2006/01/01), or (contact hasName 'jamie') seems exactly the same as the RDF model (subject has-predicate with-value), which is not so strange, because RDF was designed to be a simple and generic datamodel and directed graphs are then a natural solution.


Yes I know all that. There are things about RDF (like hierarchical types) which I find inelegant and convoluted so i have basically taken a cleaner simpler approach.

The datamodel is generic enough for RDF use as well as LDAP and other object databases - they all have a similiar tree like table structure.


I don't mean to say that you should internally use RDF, since e.g. MySQL is certainly more developed than current RDF databases. But what would be useful is to align terminology, as you do in the 'shared file metadata spec'. As you state there, the only requirement is that metadata names are unique and not overloaded: If I say 'file-abc is-owned-by EyalOren' and you say 'file-abc has-owner EyalOren' then we have a problem merging and combining those two pieces of metadata, and that's why you want to standardise the naming of these metadata indicators (called properties in RDF).

The thing is that in RDF a lot of work has been done into standardising exactly such vocubalaries. Such schemas could possibly contain indications on domain/range of those properties, e.g. has-creator usually relates files to persons. See for example schemaweb [1] for some existing schemas (the PIMO schema [2] used by gnowsis is very relevant, but the document is very long and winded.

If you are interested, I would certainly be interested to figure out how we can better align the existing schemas in the RDF world with your 'shared file metadata specification'.

Im not sure - I did look at it before and found it too complex for my use.


Of course, if you're not interested in that, I can easily do the tracker-terminology-to-rdf-schema-vocabulary translation myself, in the adapter (as we did for evolution data: we mapped it to FOAF [3] and some other RDF schemas).

okay



The dbus stuff will need Ruby bindings (if they exist?). Queries are returned via dbus as a native dict/Hashtable with the URI as the key and an array/list of values as the contents. I expect if you were going to make use of it you could serialise this into ntriples yourself.
Yes, the triples are no problem, but the ruby dbus bindings are very old and seem to be deserted. I don't really know how to get that working, I don't know anything about dbus myself, so I don't see myself writing those bindings.

All I have seen is http://rubyforge.org/projects/dbus-ruby


Im not sure if the above helps or not but it sounds like it would need some mods on your part to make use of it.
Yes definitely. If I can get the dbus stuff to work somehow, I can easily do the rest. What kind of queries can I send to org.freedesktop.Tracker.Search.Query? Which subset of RDFQ do you support exactly?

I will document this in due course. In the meantime please look at the examples here:

http://cvs.gnome.org/viewcvs/tracker/rdf-query-examples/

Note only the stuff between the <rdfq:Condition> tags is parsed and used in the next version.





--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]