当前位置: 首页>>代码示例>>Java>>正文


Java Join.getLeftArg方法代码示例

本文整理汇总了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);
    }

}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:24,代码来源:PushJoinDownVisitor.java

示例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));
    }

}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:22,代码来源:SeparateFilterJoinsVisitor.java

示例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());
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:21,代码来源:SparqlToPipelineTransformVisitorTest.java

示例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);
          }

      }
 
开发者ID:apache,项目名称:incubator-rya,代码行数:17,代码来源:GeneralizedExternalProcessor.java

示例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();
    }
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:27,代码来源:EntityOptimizer.java

示例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;
}
 
开发者ID:goerlitz,项目名称:rdffederator,代码行数:23,代码来源:BasicGraphPatternExtractor.java

示例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);
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:14,代码来源:SparqlFluoQueryBuilder.java

示例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);
    }
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:11,代码来源:FilterFunctionOptimizer.java

示例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);
    }
}
 
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:15,代码来源:SPARQLRenderer.java

示例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;
}
 
开发者ID:JervenBolleman,项目名称:sparql-bed,代码行数:14,代码来源:OneLineAwareEvaluationStrategy.java

示例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);
}
 
开发者ID:JervenBolleman,项目名称:sparql-bed,代码行数:10,代码来源:BEDFileBindingReader.java

示例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());
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:66,代码来源:SomeValuesFromVisitorTest.java


注:本文中的org.openrdf.query.algebra.Join.getLeftArg方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。