[Mulgara-general] Mulgara Lite

Life is hard, and then you die ronald at innovation.ch
Tue Sep 9 09:20:38 UTC 2008


On Mon, Sep 08, 2008 at 08:54:48AM -0500, Paul Gearon wrote:
[snip - discussion on why JRDF is being used in Mulgara]
> 
> However, the most important problem was that we had no control over
> the JRDF interfaces. If we wanted Nodes to all respond to particular
> requests, we couldn't do it. As a result, Mulgara code is littered
> with methods that say things like:
>   if (node instanceof URIReference) {
>     doSomething((URIReference)node);
>   } else if (node instanceof BlankNode) {
>     doSomethingElse((BlankNode)node);
>   } else {
>     doSomethingForLiterals((Literal)node);
>   }
> Not being able to update Node also means that we can't treat the
> various types that can be selected in a query (nodes, variables and
> subqueries) as a single type, and instead we pass this sort of thing
> around as Object.  The list goes on.
> 
> As for repackaging JRDF under org.mulgara.... Yes, I would love to do
> this. However, I am quite wary of it, as the JRDF interfaces form part
> of our public API. I believe that making this change would break a lot
> of the code that talks to Mulgara. If there is some way to make this
> happen without hurting all our users, then I'm all for it, but until
> this is addressed I'll leave it "as is" and hope that no one tries to
> use a JRDF jar in the same process space (a much less likely
> possibility).

Hmm, I guess this shows up mostly in the Answer object?

One way could be to declare org.mulgara... versions as implementing
the original jrdf versions, e.g.

  package org.mulgara....;

  public class Literal implements org.jrdf.graph.Literal, ...
  

However, this would still break for folks using the JRDFSession
interface (is anybody still using that?).


  Cheers,

  Ronald




More information about the Mulgara-general mailing list