Re: Proposing Tracker for inclusion into GNOME 2.18
- From: Jamie McCracken <jamiemcc blueyonder co uk>
- To: Ross Burton <ross burtonini com>
- Cc: desktop-devel-list gnome org
- Subject: Re: Proposing Tracker for inclusion into GNOME 2.18
- Date: Thu, 26 Oct 2006 10:24:56 +0100
Ross Burton wrote:
On Wed, 2006-10-25 at 23:10 +0100, Jamie McCracken wrote:
The RDF way would be (triples):
hasPersonalEmail --- rdfs:subPropertyOf ---> hasEmail
hasWorkEmail --- rdfs:subPropertyOf ---> hasEmail
RossBurton --- hasWorkEmail ---> ross openedhand com
RossBurton --- hasPersonalEmail ---> ross burtonini com
RossBurton --- hasPersonalEmail ---> ross burton gmail com
You would then be able to query on "hasEmail" and get all three addresses.
okay that looks nice.
I will add some kind of triple store (ie use three tables instead of the
current two tracker uses for metadata).
I dont have plans to turn tracker into a full semantic web thing but I
do want to take advantage of this in the simplest way possible.
There is very little difference between a database with three columns,
and a true triplestore ("full semantic web thing") apart from the fact
that the former has lots of RDF:s magic inherently available to it.
Which, incidently, is already coded up in librdf.
yes I will borrow some code from it.
As I said before, librdf contains database-backed triplestores, RDF
query parses, and more. All one needs to do is glue it together with an
indexer.
thats problematic because we dont just use sqlite for metadata but lots
of other performance critical stuff (namely storing results of live
queries, merging results from rdf query with fulltext searches etc)
the librdf creates a standalone database so cant be properly integrated
"as is" with out existing sqlite stuff (can modify librdf though to do so)
For the query stuff, I would need the generated sql to join against our
full text index results and librdf does not provide for that. (it would
be too slow and consume too much memory to merge two potentially big
result sets entirely in memory). Full text results in tracker are
currently stored in a temp table for joining against the rdf query's
generated sql in a fast and efficient manner.
so to integrate I would need to either extract code from or modify librdf.
All I need (as we already have a functional and extensible rdf query
support already in tracker which is optimised for rdbms use rather than
hashtables as librdf is) is just the triple table structure and the
rdfs:SubProperty stuff coded in librdf for the metadata relationships.
By not using librdf as is, we can better optimise stuff as JamesH
suggested with a flattened table for metadata relationships as well as
the fact we already use integer based joins on our tables as opposed to
the slower string ones librdf appears to be using (librdf also mentions
its not optimised for RDBMS use - http://librdf.org/docs/storage.html)
Let me know if you think I need any other stuff...
--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]