package exp.org.aksw.sparqlify.core;
import org.apache.jena.query.Query;
import org.apache.jena.query.QueryFactory;
import org.apache.jena.query.Syntax;
import org.apache.jena.sparql.algebra.Algebra;
import org.apache.jena.sparql.algebra.Op;
import org.junit.Test;
public class AlgebraExperiments {
@Test
public void nestedOptionals() {
Query query = new Query();
QueryFactory.parse(query, "Prefix ex:<http://ex.org/> Select * { ?s a ?t . Optional { ?s ex:addr ?a . Optional { ?s ex:city ?c . Filter(?c = ?t)}}}", "http://ex.org/", Syntax.syntaxSPARQL_11);
Op op = Algebra.compile(query);
op = Algebra.toQuadForm(op);
op = Algebra.optimize(op);
System.out.println(op);
//OpConditional
}
@Test
public void parallelOptionals() {
Query query = new Query();
QueryFactory.parse(query, "Prefix ex:<http://ex.org/> Select * { ?s a ?t . Optional { ?s ex:addr ?a } . Optional { ?s ex:city ?c . Filter(?c = ?t)}}", "http://ex.org/", Syntax.syntaxSPARQL_11);
Op op = Algebra.compile(query);
op = Algebra.toQuadForm(op);
System.out.println(op);
//Algebra.optimize(op)
}
}