From: <mrp...@us...> - 2010-09-20 19:43:55
|
Revision: 3598 http://bigdata.svn.sourceforge.net/bigdata/?rev=3598&view=rev Author: mrpersonick Date: 2010-09-20 19:43:44 +0000 (Mon, 20 Sep 2010) Log Message: ----------- adding Sesame to BOp conversion Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/Predicate.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/Rule2BOpUtility.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicPredicate.java branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOPredicate.java branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl.java branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBOps.java Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/Predicate.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/Predicate.java 2010-09-20 19:40:52 UTC (rev 3597) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/Predicate.java 2010-09-20 19:43:44 UTC (rev 3598) @@ -41,6 +41,7 @@ import com.bigdata.bop.IVariableOrConstant; import com.bigdata.bop.NV; import com.bigdata.btree.IRangeQuery; +import com.bigdata.journal.ITx; import com.bigdata.relation.IRelation; import com.bigdata.relation.accesspath.IElementFilter; import com.bigdata.relation.rule.ISolutionExpander; @@ -93,7 +94,7 @@ final String relationName) { this(values, relationName, -1/* partitionId */, false/* optional */, - null/* constraint */, null/* expander */); + null/* constraint */, null/* expander */, ITx.READ_COMMITTED); } @@ -116,7 +117,7 @@ public Predicate(final IVariableOrConstant<?>[] values, final String relationName, final int partitionId, final boolean optional, final IElementFilter<E> constraint, - final ISolutionExpander<E> expander) { + final ISolutionExpander<E> expander, final long timestamp) { this(values, NV.asMap(new NV[] {// new NV(Annotations.RELATION_NAME,new String[]{relationName}),// @@ -124,6 +125,7 @@ new NV(Annotations.OPTIONAL,optional),// new NV(Annotations.CONSTRAINT,constraint),// new NV(Annotations.EXPANDER,expander),// + new NV(Annotations.TIMESTAMP, timestamp) })); if (relationName == null) Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/Rule2BOpUtility.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/Rule2BOpUtility.java 2010-09-20 19:40:52 UTC (rev 3597) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/Rule2BOpUtility.java 2010-09-20 19:43:44 UTC (rev 3598) @@ -73,10 +73,10 @@ * * @return */ - public static BindingSetPipelineOp convert(final IStep step) { + public static BindingSetPipelineOp convert(final IStep step, final int startId) { if (step instanceof Rule) - return convert((Rule) step); + return convert((Rule) step, startId); else if (step instanceof Program) return convert((Program) step); @@ -91,9 +91,9 @@ * * @return */ - public static BindingSetPipelineOp convert(final Rule rule) { + public static BindingSetPipelineOp convert(final Rule rule, final int startId) { - int bopId = 1; + int bopId = startId; final BindingSetPipelineOp startOp = new StartOp(new BOp[] {}, NV.asMap(new NV[] {// Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicPredicate.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicPredicate.java 2010-09-20 19:40:52 UTC (rev 3597) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicPredicate.java 2010-09-20 19:43:44 UTC (rev 3598) @@ -30,6 +30,7 @@ import com.bigdata.bop.BOp; import com.bigdata.bop.IVariableOrConstant; import com.bigdata.bop.ap.Predicate; +import com.bigdata.journal.ITx; import com.bigdata.rdf.internal.IV; import com.bigdata.relation.accesspath.IElementFilter; import com.bigdata.relation.rule.ISolutionExpander; @@ -120,7 +121,7 @@ IVariableOrConstant<IV>... terms// ) { - super(terms, relationName[0], partitionId, false, constraint, expander); + super(terms, relationName[0], partitionId, false, constraint, expander, ITx.READ_COMMITTED); } Modified: branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOPredicate.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOPredicate.java 2010-09-20 19:40:52 UTC (rev 3597) +++ branches/QUADS_QUERY_BRANCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOPredicate.java 2010-09-20 19:43:44 UTC (rev 3598) @@ -32,6 +32,7 @@ import com.bigdata.bop.IVariable; import com.bigdata.bop.IVariableOrConstant; import com.bigdata.bop.ap.Predicate; +import com.bigdata.journal.ITx; import com.bigdata.rdf.internal.IV; import com.bigdata.relation.accesspath.IElementFilter; import com.bigdata.relation.rule.ISolutionExpander; @@ -51,19 +52,19 @@ */ private static final long serialVersionUID = 1L; - /** - * The arity is 3 unless the context position was given (as either a - * variable or bound to a constant) in which case it is 4. - * - * @todo rather than having a conditional arity, modify the SPOPredicate - * constructor to pass on either args[3] or args[3] depending on - * whether we are using triples or quads. - */ - public final int arity() { - - return get(3/*c*/) == null ? 3 : 4; - - } +// /** +// * The arity is 3 unless the context position was given (as either a +// * variable or bound to a constant) in which case it is 4. +// * +// * @todo rather than having a conditional arity, modify the SPOPredicate +// * constructor to pass on either args[3] or args[3] depending on +// * whether we are using triples or quads. +// */ +// public final int arity() { +// +// return get(3/*c*/) == null ? 3 : 4; +// +// } /** * Required shallow copy constructor. @@ -230,12 +231,12 @@ ) { super( -// (c == null ? new IVariableOrConstant[] { s, p, o } -// : new IVariableOrConstant[] { s, p, o, c }), + (c == null ? new IVariableOrConstant[] { s, p, o } + : new IVariableOrConstant[] { s, p, o, c }), - new IVariableOrConstant[] { s, p, o, c }, +// new IVariableOrConstant[] { s, p, o, c }, - relationName[0], partitionId, optional, constraint, expander); + relationName[0], partitionId, optional, constraint, expander, ITx.READ_COMMITTED); // if (relationName == null) // throw new IllegalArgumentException(); Modified: branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl.java 2010-09-20 19:40:52 UTC (rev 3597) +++ branches/QUADS_QUERY_BRANCH/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl.java 2010-09-20 19:43:44 UTC (rev 3598) @@ -49,6 +49,7 @@ import org.openrdf.query.algebra.evaluation.iterator.FilterIterator; import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; import com.bigdata.BigdataStatics; +import com.bigdata.bop.BOpContext; import com.bigdata.bop.BindingSetPipelineOp; import com.bigdata.bop.Constant; import com.bigdata.bop.HashBindingSet; @@ -64,7 +65,9 @@ import com.bigdata.bop.constraint.NE; import com.bigdata.bop.constraint.NEConstant; import com.bigdata.bop.constraint.OR; +import com.bigdata.bop.engine.BOpStats; import com.bigdata.bop.engine.LocalChunkMessage; +import com.bigdata.bop.engine.MockRunningQuery; import com.bigdata.bop.engine.QueryEngine; import com.bigdata.bop.engine.Rule2BOpUtility; import com.bigdata.bop.engine.RunningQuery; @@ -94,6 +97,7 @@ import com.bigdata.rdf.store.IRawTripleStore; import com.bigdata.relation.accesspath.IAccessPath; import com.bigdata.relation.accesspath.IAsynchronousIterator; +import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.IBuffer; import com.bigdata.relation.accesspath.IElementFilter; import com.bigdata.relation.accesspath.ThickAsynchronousIterator; @@ -1640,14 +1644,13 @@ final IStep step) throws Exception { - final BindingSetPipelineOp query = Rule2BOpUtility.convert(step); + final int startId = 1; + final BindingSetPipelineOp query = Rule2BOpUtility.convert(step, startId); if (log.isInfoEnabled()) { log.info(query); } - final int startId = query.getProperty(Predicate.Annotations.BOP_ID); - final QueryEngine queryEngine = tripleSource.getSail().getQueryEngine(); final UUID queryId = UUID.randomUUID(); @@ -1655,7 +1658,7 @@ new LocalChunkMessage<IBindingSet>(queryEngine, queryId, startId, -1/* partitionId */, newBindingSetIterator(new HashBindingSet()))); - + final IAsynchronousIterator<IBindingSet[]> it1 = runningQuery.iterator(); Modified: branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBOps.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBOps.java 2010-09-20 19:40:52 UTC (rev 3597) +++ branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBOps.java 2010-09-20 19:43:44 UTC (rev 3598) @@ -136,24 +136,28 @@ "select * " + "WHERE { " + " ?s rdf:type ns:Person . " + - " ?s ns:likes ?likes . " + - " ?s rdfs:label ?label . " + + " ?s ns:likes ns:RDF . " + +// " ?s rdfs:label ?label . " + "}"; final TupleQuery tupleQuery = cxn.prepareTupleQuery(QueryLanguage.SPARQL, query); TupleQueryResult result = tupleQuery.evaluate(); + + while (result.hasNext()) { + System.err.println(result.next()); + } Collection<BindingSet> solution = new LinkedList<BindingSet>(); solution.add(createBindingSet(new Binding[] { new BindingImpl("s", mike), - new BindingImpl("likes", rdf), - new BindingImpl("label", l1) +// new BindingImpl("likes", rdf), +// new BindingImpl("label", l1) })); solution.add(createBindingSet(new Binding[] { new BindingImpl("s", bryan), - new BindingImpl("likes", rdf), - new BindingImpl("label", l2) +// new BindingImpl("likes", rdf), +// new BindingImpl("label", l2) })); compare(result, solution); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |