本文整理汇总了Java中org.openrdf.query.algebra.Join.getLeftArg方法的典型用法代码示例。如果您正苦于以下问题:Java Join.getLeftArg方法的具体用法?Java Join.getLeftArg怎么用?Java Join.getLeftArg使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.openrdf.query.algebra.Join
的用法示例。
在下文中一共展示了Join.getLeftArg方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(final Join node) throws Exception {
super.meet(node);
final TupleExpr leftArg = node.getLeftArg();
final TupleExpr rightArg = node.getRightArg();
/**
* if join(join(1, 2), join(3,4))
* should be:
* join(join(join(1,2), 3), 4)
*/
if (leftArg instanceof Join && rightArg instanceof Join) {
final Join leftJoin = (Join) leftArg;
final Join rightJoin = (Join) rightArg;
final TupleExpr right_LeftArg = rightJoin.getLeftArg();
final TupleExpr right_rightArg = rightJoin.getRightArg();
final Join inner = new Join(leftJoin, right_LeftArg);
final Join outer = new Join(inner, right_rightArg);
node.replaceWith(outer);
}
}
示例2: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(final Filter node) throws Exception {
super.meet(node);
final ValueExpr condition = node.getCondition();
final TupleExpr arg = node.getArg();
if (!(arg instanceof Join)) {
return;
}
final Join join = (Join) arg;
final TupleExpr leftArg = join.getLeftArg();
final TupleExpr rightArg = join.getRightArg();
if (leftArg instanceof StatementPattern && rightArg instanceof StatementPattern) {
final Filter left = new Filter(leftArg, condition);
final Filter right = new Filter(rightArg, condition);
node.replaceWith(new Join(left, right));
}
}
示例3: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(final Join node) {
node.getLeftArg().visit(this);
final double leftArgCost = cardinality;
// System.out.println("Left cardinality is " + cardinality);
node.getRightArg().visit(this);
if (node.getLeftArg() instanceof FixedStatementPattern && node.getRightArg() instanceof DoNotExpandSP) {
return;
}
try {
final double selectivity = selectEvalStatsDAO.getJoinSelect(config, node.getLeftArg(), node.getRightArg());
// System.out.println("CardCalc: left cost of " + node.getLeftArg() + " is " + leftArgCost + " right cost of "
// + node.getRightArg() + " is " + cardinality);
// System.out.println("Right cardinality is " + cardinality);
cardinality += leftArgCost + leftArgCost * cardinality * selectivity;
// System.out.println("CardCalc: Cardinality is " + cardinality);
// System.out.println("CardCalc: Selectivity is " + selectivity);
// System.out.println("Join cardinality is " + cardinality);
} catch (final Exception e) {
e.printStackTrace();
}
}
开发者ID:apache,项目名称:incubator-rya,代码行数:27,代码来源:RdfCloudTripleStoreSelectivityEvaluationStatistics.java
示例4: testComplexJoin
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Test
public void testComplexJoin() throws Exception {
StatementPattern isUndergrad = new StatementPattern(new Var("x"), constant(RDF.TYPE), constant(UNDERGRAD));
StatementPattern isProfessor = new StatementPattern(new Var("y"), constant(RDF.TYPE), constant(PROFESSOR));
StatementPattern takesCourse = new StatementPattern(new Var("x"), constant(TAKES), new Var("c"));
StatementPattern teachesCourse = new StatementPattern(new Var("y"), constant(TEACHES), new Var("c"));
QueryRoot queryTree = new QueryRoot(new Join(
new Join(isUndergrad, takesCourse),
new Join(isProfessor, teachesCourse)));
SparqlToPipelineTransformVisitor visitor = new SparqlToPipelineTransformVisitor(collection);
queryTree.visit(visitor);
Assert.assertTrue(queryTree.getArg() instanceof Join);
Join topJoin = (Join) queryTree.getArg();
Assert.assertTrue(topJoin.getLeftArg() instanceof AggregationPipelineQueryNode);
Assert.assertTrue(topJoin.getRightArg() instanceof AggregationPipelineQueryNode);
AggregationPipelineQueryNode leftPipeline = (AggregationPipelineQueryNode) topJoin.getLeftArg();
AggregationPipelineQueryNode rightPipeline = (AggregationPipelineQueryNode) topJoin.getRightArg();
Assert.assertEquals(Sets.newHashSet("x", "c"), leftPipeline.getAssuredBindingNames());
Assert.assertEquals(Sets.newHashSet("y", "c"), rightPipeline.getAssuredBindingNames());
}
示例5: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(Join node) {
if (compSet.contains(node.getRightArg())) {
this.toBeReplaced = node.getRightArg();
node.replaceChildNode(node.getRightArg(), replacement);
return;
} else if (compSet.contains(node.getLeftArg())) {
this.toBeReplaced = node.getLeftArg();
node.replaceChildNode(node.getLeftArg(), replacement);
return;
} else {
super.meet(node);
}
}
示例6: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(Join node) {
try {
if (node.getLeftArg() instanceof FixedStatementPattern && node.getRightArg() instanceof DoNotExpandSP) {
return;
}
List<TupleExpr> joinArgs = getJoinArgs(node, new ArrayList<TupleExpr>());
HashMultimap<String, StatementPattern> varMap = getVarBins(joinArgs);
while (!varMap.keySet().isEmpty()) {
String s = getHighestPriorityKey(varMap);
constructTuple(varMap, joinArgs, s);
}
List<TupleExpr> filterChain = getFilterChain(joinArgs);
for (TupleExpr te : joinArgs) {
if (!(te instanceof StatementPattern) || !(te instanceof EntityTupleSet)) {
te.visit(this);
}
}
// Replace old join hierarchy
node.replaceWith(getNewJoin(joinArgs, filterChain));
} catch (Exception e) {
e.printStackTrace();
}
}
示例7: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(Join join) throws RuntimeException {
boolean valid = true;
// visit join arguments and check that all are valid BGPS
for (TupleExpr expr : new TupleExpr[] { join.getLeftArg(), join.getRightArg() }) {
expr.visit(this);
if (lastBGPNode == null) {
// child is not a BGP -> join is not a BGP
valid = false;
} else {
if (!valid) {
// last child is a BGP but another child was not
this.bgpList.add(lastBGPNode);
lastBGPNode = null;
}
}
}
if (valid)
lastBGPNode = join;
}
示例8: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(final Join node) {
// Extract the metadata that will be stored from the node.
final String joinNodeId = nodeIds.getOrMakeId(node);
final QueryModelNode left = node.getLeftArg();
final QueryModelNode right = node.getRightArg();
// Update the metadata for the JoinMetadata.Builder.
makeJoinMetadata(joinNodeId, JoinType.NATURAL_JOIN, left, right);
// Walk to the next node.
super.meet(node);
}
示例9: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(final Join node) {
final QueryModelNode lNode = node.getLeftArg();
if (lNode instanceof StatementPattern) {
exchangeVar.replaceWith(lNode);
node.setLeftArg(exchangeVar);
} else {
super.meet(node);
}
}
示例10: meet
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Override
public void meet(final Join n) {
final List<StatementPattern> bgp = getBGP(n);
if (bgp != null) {
emit(bgp);
} else {
final TupleExpr l = n.getLeftArg();
final TupleExpr r = n.getRightArg();
final boolean norpar = r instanceof Join || r instanceof StatementPattern
|| r instanceof SingletonSet || r instanceof Service || r instanceof Union
|| r instanceof BindingSetAssignment || r instanceof ArbitraryLengthPath;
emit(l).newline().emit(r, !norpar);
}
}
示例11: oneLine
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
private boolean oneLine(Join join) throws QueryEvaluationException {
TupleExpr la = join.getLeftArg();
TupleExpr ra = join.getRightArg();
if (la instanceof StatementPattern && ra instanceof StatementPattern) {
StatementPattern lp = (StatementPattern) la;
StatementPattern rp = (StatementPattern) ra;
if (lp.getSubjectVar().equals(rp.getSubjectVar())
&& allowAblePredicate(lp.getPredicateVar())
&& allowAblePredicate(rp.getPredicateVar()))
return true;
}
return false;
}
示例12: BEDFileBindingReader
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
public BEDFileBindingReader(File file, BindingSet bindings, Join join,
ValueFactory valueFactory) {
StatementPattern left = (StatementPattern) join.getLeftArg();
StatementPattern right = (StatementPattern) join.getRightArg();
queue = new ArrayBlockingQueue<BindingSet>(1000);
runner = new BindingReaderRunner(file, queue, left, right,
valueFactory, bindings);
exec.submit(runner);
}
示例13: testSomeValuesFrom
import org.openrdf.query.algebra.Join; //导入方法依赖的package包/类
@Test
public void testSomeValuesFrom() throws Exception {
// Configure a mock instance engine with an ontology:
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
Map<Resource, Set<URI>> personSVF = new HashMap<>();
personSVF.put(gradCourse, Sets.newHashSet(takesCourse));
personSVF.put(course, Sets.newHashSet(takesCourse));
personSVF.put(department, Sets.newHashSet(headOf));
personSVF.put(organization, Sets.newHashSet(worksFor, headOf));
when(inferenceEngine.getSomeValuesFromByRestrictionType(person)).thenReturn(personSVF);
// Query for a specific type and rewrite using the visitor:
StatementPattern originalSP = new StatementPattern(new Var("s"), new Var("p", RDF.TYPE), new Var("o", person));
final Projection query = new Projection(originalSP, new ProjectionElemList(new ProjectionElem("s", "subject")));
query.visit(new SomeValuesFromVisitor(conf, inferenceEngine));
// Expected structure: a union of two elements: one is equal to the original statement
// pattern, and the other one joins a list of predicate/value type combinations
// with another join querying for any nodes who are the subject of a triple with that
// predicate and with an object of that type.
//
// Union(
// SP(?node a :impliedType),
// Join(
// FSP(<?property someValuesFrom ?valueType> {
// takesCourse/Course;
// takesCourse/GraduateCourse;
// headOf/Department;
// headOf/Organization;
// worksFor/Organization;
// }),
// Join(
// SP(_:object a ?valueType),
// SP(?node ?property _:object)
// )
// )
Assert.assertTrue(query.getArg() instanceof Union);
TupleExpr left = ((Union) query.getArg()).getLeftArg();
TupleExpr right = ((Union) query.getArg()).getRightArg();
Assert.assertEquals(originalSP, left);
Assert.assertTrue(right instanceof Join);
final Join join = (Join) right;
Assert.assertTrue(join.getLeftArg() instanceof FixedStatementPattern);
Assert.assertTrue(join.getRightArg() instanceof Join);
FixedStatementPattern fsp = (FixedStatementPattern) join.getLeftArg();
left = ((Join) join.getRightArg()).getLeftArg();
right = ((Join) join.getRightArg()).getRightArg();
Assert.assertTrue(left instanceof StatementPattern);
Assert.assertTrue(right instanceof StatementPattern);
// Verify expected predicate/type pairs
Assert.assertTrue(fsp.statements.contains(new NullableStatementImpl(takesCourse, OWL.SOMEVALUESFROM, course)));
Assert.assertTrue(fsp.statements.contains(new NullableStatementImpl(takesCourse, OWL.SOMEVALUESFROM, gradCourse)));
Assert.assertTrue(fsp.statements.contains(new NullableStatementImpl(headOf, OWL.SOMEVALUESFROM, department)));
Assert.assertTrue(fsp.statements.contains(new NullableStatementImpl(headOf, OWL.SOMEVALUESFROM, organization)));
Assert.assertTrue(fsp.statements.contains(new NullableStatementImpl(worksFor, OWL.SOMEVALUESFROM, organization)));
Assert.assertEquals(5, fsp.statements.size());
// Verify pattern for matching instances of each pair: a Join of <_:x rdf:type ?t> and
// <?s ?p _:x> where p and t are the predicate/type pair and s is the original subject
// variable.
StatementPattern leftSP = (StatementPattern) left;
StatementPattern rightSP = (StatementPattern) right;
Assert.assertEquals(rightSP.getObjectVar(), leftSP.getSubjectVar());
Assert.assertEquals(RDF.TYPE, leftSP.getPredicateVar().getValue());
Assert.assertEquals(fsp.getObjectVar(), leftSP.getObjectVar());
Assert.assertEquals(originalSP.getSubjectVar(), rightSP.getSubjectVar());
Assert.assertEquals(fsp.getSubjectVar(), rightSP.getPredicateVar());
}