On 22/01/12 20:35, Benson Margulies wrote:
On Sun, Jan 22, 2012 at 3:13 PM, Andy Seaborne<[email protected]> wrote:
What do statics ARQ.VERSION and ARQ.BUILD_DATE contain? They are strings
with the version burnt into the binary.
The stacktrace is an old version of ARQ but I can't tell which. (The
website says they have tested from Jena 2.5.5 but at 2.6 Jena went from Java
1.4 to Java 1.5 and generics.)
So, you're going to love this. I'm running
com.hp.hpl.jena:arq:jar:basis-temp-2.8.8:compile -- 2.8.8 plus a bug
fix I integrated locally. I've been too cowardly to upgrade to the
latest version of Jena until there was a corresponding TDB. Should I
just go ahead with that?
Fingers cross, TDB release soon after some final testing.
It's a significant change - you might like to test it before release ...
One way or the other, well ahead of their last test.
Instead, ARQ is just normalizing a+ to (a)+. Is the Jena<->store model
predicated on the program writing SPARQL compatible with the target
store's SPARQL?
(a)+ is legal SPARQL syntax.
Of course.
It looks like internally they convert the query object back to a string to
pass to Virtuoso. That's why you don't get a warning nor does the engine
backoff to a strategy that works on for any storage. The whole execution is
taken by Virtuoso.
So, you've answered my question. They could call the Path API in this
case. It might be worth my trouble to fork their code and fix it.
It's going to be tricky for them to do that. Their engine is not using
the ARQ execution objects except to deliver the final results. They are
taking over the whole execution, not slotting into ARQ. By calling out,
they would then depend on Jena fro the engine, which want to avoid.
And their code isn't Java.
IIRC they don't support any path syntax.
Trickery:
Create an ARQ dataset and put the Virtuoso default graph. ARQ will access
Virtuoso programmatically via the graph API. If OpenLink have implemented a
StageGenerator, then basic patterns should be sent to the database so get
some optimization. Otherwise, if there is no helper route, ARQ slugs it out
by brute force and ignorance. No idea of performance - it will depend on
the query as to how the work is divided.
Methinks I need to read some of their code.
Andy