I've now designed a unit test for the code above, and it works mostly as
intended. I still don't see how to get Count queries work as a
transformation. The documentation is clear that this should be supported,
as is the EBNF of the Sparql 1.1 specification.
The next step was to make sure that I was telling qparse to treat my query
as sparql11:
~/tools/apache-jena/bin/qparse --query countquery --syntax=sparql11
--print=op
Finding the values of Syntax were not that easy, because the --help doesn't
provide the valid values of the syntax. Jshell did crack it eventually:
Syntax.querySyntaxNames.keys()
Sigh - I'd rather be programming Python, but that's OK.
On Fri, Mar 22, 2019 at 5:55 PM Dan Davis <[email protected]> wrote:
>
> Hi guys, I'm writing my first Transform, and I'm having trouble with a
> count query.
> arq.qparse doesn't parse and print my count query, so I cannot get much
> feedback whether I'm doing the right thing or not.
>
> A limit query seems simple enough, however:
>
>
> package gov.nih.nlm.lode.service;
>
> import com.hp.hpl.jena.sparql.algebra.Op;
> import com.hp.hpl.jena.sparql.algebra.TransformBase;
> import com.hp.hpl.jena.sparql.algebra.op.OpProject;
> import com.hp.hpl.jena.sparql.algebra.op.OpSlice;
>
> public class LimitTransform extends TransformBase {
> private long offset;
> private long limit;
>
> public LimitTransform(long limit, long offset) {
> this.limit = limit;
> this.offset = offset;
> }
> public LimitTransform(long limit) {
> this(limit, 0);
> }
>
> @Override
> public Op transform(OpProject opProject, Op subOp) {
> return new OpSlice(opProject, offset, limit);
> }
> }
>
>
>
>
>