Anything about Tenor? & creating a content system -> RDF

Scott Wheeler wheeler at kde.org
Thu Aug 11 22:41:52 CEST 2005


On Wednesday 10 August 2005 10:44, you wrote:
> There are C implementations of RDF apis - most of them on SF. redland,
> raptor, threestore, ....

For all of the talk of duplicated effort, I've spent the last several hours 
looking around at the various RDF based tools that you've mentioned, the ones 
on Freshmeat and the ones mentioned in my RDF book and so far none of them 
meet our needs.  There's a wealth of things in Java or scripting languages, 
but very little in C / C++.  (Nothing in C++ that I've seen, actually.)

So, there are three that I've seen so far (all C):

*) rdfDB -- BDB based, which isn't suitable for our work since we need a 
"real" database for various reasons already covered on this list this week.

*) 3store -- seems to be the little brother of Redland in some ways with a 
focus on knowledge management.  Only has a MySQL backend, which we can't use 
for licensing reasons (we'll need to be able to link to the client libraries 
from kdelibs, which requires them to be LGPL or less restrictive).  The API 
is also completely undocumented.

*) Redland was the one that I stumbled across from the mention in my RDF book 
(Practical RDF, from O'Reilly).  Raptor seems to just be a part of Redland.  
The API documentation is certainly lacking, but does exist.  The API looks 
generally sane though, but there are parts of it that I don't understand 
immediately.  Offers several storage backends, none of which are suitable for 
us.

Really we need a Postgres backend.  There are other databases that could 
suffice, but they're more obscure.

===============================================================================
But moving on...
===============================================================================

I'd like to try to at least explain a little about how we think and some 
things that will be helpful in our dialog here:

*) Most of us aren't academics; papers are ok, but don't substitute for plain 
explanations.

*) RDF seems complicated to us.  That won't change.  People inside the 
community may view it as simple, but everyone that I've talked to about RDF 
that's an outsider to the semantic web community thinks that RDF is overly 
convoluted.  That means that it's working uphill.

*) Which implies that it needs to have some very tangible benefits for us to 
consider it.  Those don't for example include w3c buy-in, academic acceptance 
or cool-toys-that-someone-wrote-using-it.  We need very concrete cases where 
it will be of benefit to a KDE subsystem.  So far those haven't been 
forthcoming.

===============================================================================
But I think there may be room for compromise...
===============================================================================

What I'd like to suggest is something of a compromise from our perspective.  
You're obviously very convinced about RDF.  That's fine.  We aren't.  So how 
do we move on?

Looking at the RDF APIs available Redland seems to be the best (well, only 
really) candidate.  If we were to come up with an API that we need an 
implementation for (the one that I've been doing using Postgres and the Qt 
SQL API) in the next couple of weeks I think it would be very helpful if 
there were a Redland-based implementation of that backend to compare with.  
But most likely we're not going to write that.

But I believe at the moment Frank is working for you as a slave laborer, err, 
student intern.  If we were to give you an API to implement using Redland 
would you consider putting him (or anyone else, but he'd be a natural 
candidate) on that for a few days to do the backend?  Then we'd be able to 
compare side-by-side with a native Postgres backend in terms of performance 
and complexity.  (Note this would be nothing huge -- maybe 500-ish lines of 
code.)

I should note, just to prevent conflict later on, that there's a very 
significant chance (i.e. most likely, honestly) that we wouldn't end up using 
that later on, but it would at least give us a chance to give RDF a fair 
shot.

For us to consider using that for the real API we'd also need a Postgres 
backend, which all things being ideal would also be provided by you guys, but 
just for testing that's probably not necessary.

I'll be on the road starting tomorrow for about 10 days, but I think a few 
days after that I could get such an API ready for you guys if you're up for 
such.

===============================================================================
An implementation note...
===============================================================================

You know since we've discussed this before that part of Tenor's design and one 
of the main points at which it differs from most ontology based systems is 
that properties -- i.e. predicates -- are to be able to be created in an ad 
hoc fashion.  Relationships are largely contextual and semantics are domain 
specific.

Explicit semantics may be desired by certain uses of the framework, but that 
would be done either by domain specific conventions (i.e. KMail developers 
and KOrganizer developers agree on the semantics for a certain type of 
information in the graph), but those would not be required by the framework.

It may even get to the point that code generation based on a schema format, 
similar to what we do with configuration files in some cases using our 
KConfigXT framework.  (Essentially a schema can be provided and code 
generated based on it, but the KConfig framework doesn't know or care about 
that.)  These would *not* be RDF schemas because they're way too ugly to 
force on KDE application developers, but I don't know enough about RDF 
schemas to say that transformation to that format would be impossible.

But those schemas are a point for later consideration -- not something that's 
going to happen in the next few weeks.

So, long mail -- but hopefully with a few things to chew on...

Cheers,

-Scott

P.S. Could you consider configuring your email client to prefix quoted text 
with "> " -- your mails are really hard to read for us since it's hard to 
tell at a glance what's quoted and what's not.

-- 
There are 10 types of people in the world: Those who understand binary, and 
those who don't.


More information about the Klink mailing list