本文整理汇总了Java中org.openrdf.query.algebra.ProjectionElemList类的典型用法代码示例。如果您正苦于以下问题:Java ProjectionElemList类的具体用法?Java ProjectionElemList怎么用?Java ProjectionElemList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ProjectionElemList类属于org.openrdf.query.algebra包,在下文中一共展示了ProjectionElemList类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: testReflexiveProperty
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testReflexiveProperty() throws Exception {
// Define a reflexive property
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
when(inferenceEngine.isReflexiveProperty(HAS_FAMILY)).thenReturn(true);
// Construct a query, then visit it
final StatementPattern sp = new StatementPattern(new Var("s", ALICE), new Var("p", HAS_FAMILY), new Var("o"));
final Projection query = new Projection(sp, new ProjectionElemList(new ProjectionElem("o", "member")));
query.visit(new ReflexivePropertyVisitor(conf, inferenceEngine));
// Expected structure after rewriting SP(:Alice :hasFamilyMember ?member):
//
// Union(
// originalSP(:Alice :hasFamilyMember ?member),
// ZeroLengthPath(:Alice, ?member)
// )
Assert.assertTrue(query.getArg() instanceof Union);
final TupleExpr left = ((Union) query.getArg()).getLeftArg();
final TupleExpr right = ((Union) query.getArg()).getRightArg();
Assert.assertEquals(sp, left);
Assert.assertTrue(right instanceof ZeroLengthPath);
Assert.assertEquals(sp.getSubjectVar(), ((ZeroLengthPath) right).getSubjectVar());
Assert.assertEquals(sp.getObjectVar(), ((ZeroLengthPath) right).getObjectVar());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:24,代码来源:ReflexivePropertyVisitorTest.java
示例2: testReflexivePropertyDisabled
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testReflexivePropertyDisabled() throws Exception {
// Disable inference
final RdfCloudTripleStoreConfiguration disabledConf = conf.clone();
disabledConf.setInferReflexiveProperty(false);
// Define a reflexive property
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
when(inferenceEngine.isReflexiveProperty(HAS_FAMILY)).thenReturn(true);
// Construct a query, then make a copy and visit the copy
final Projection query = new Projection(
new StatementPattern(new Var("s", ALICE), new Var("p", HAS_FAMILY), new Var("o")),
new ProjectionElemList(new ProjectionElem("s", "subject")));
final Projection modifiedQuery = query.clone();
modifiedQuery.visit(new ReflexivePropertyVisitor(disabledConf, inferenceEngine));
// There should be no difference
Assert.assertEquals(query, modifiedQuery);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:18,代码来源:ReflexivePropertyVisitorTest.java
示例3: testSomeValuesFromDisabled
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testSomeValuesFromDisabled() throws Exception {
// Disable someValuesOf inference
final AccumuloRdfConfiguration disabledConf = conf.clone();
disabledConf.setInferSomeValuesFrom(false);
// 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 visit -- should not change
StatementPattern originalSP = new StatementPattern(new Var("s"), new Var("p", RDF.TYPE), new Var("o", person));
final Projection originalQuery = new Projection(originalSP, new ProjectionElemList(new ProjectionElem("s", "subject")));
final Projection modifiedQuery = originalQuery.clone();
modifiedQuery.visit(new SomeValuesFromVisitor(disabledConf, inferenceEngine));
Assert.assertEquals(originalQuery, modifiedQuery);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:21,代码来源:SomeValuesFromVisitorTest.java
示例4: testTypePattern
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testTypePattern() throws Exception {
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
final Set<URI> narcissistProps = new HashSet<>();
narcissistProps.add(love);
when(inferenceEngine.getHasSelfImplyingType(narcissist)).thenReturn(narcissistProps);
final Var subj = new Var("s");
final Var obj = new Var("o", narcissist);
obj.setConstant(true);
final Var pred = new Var("p", RDF.TYPE);
pred.setConstant(true);
final Projection query = new Projection(new StatementPattern(subj, pred, obj),
new ProjectionElemList(new ProjectionElem("s", "subject")));
query.visit(new HasSelfVisitor(conf, inferenceEngine));
Assert.assertTrue(query.getArg() instanceof Union);
final Union union = (Union) query.getArg();
Assert.assertTrue(union.getRightArg() instanceof StatementPattern);
Assert.assertTrue(union.getLeftArg() instanceof StatementPattern);
final StatementPattern expectedLeft = new StatementPattern(subj, pred, obj);
final StatementPattern expectedRight = new StatementPattern(subj, new Var("urn:love", love), subj);
Assert.assertEquals(expectedLeft, union.getLeftArg());
Assert.assertEquals(expectedRight, union.getRightArg());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:26,代码来源:HasSelfVisitorTest.java
示例5: testOneOfDisabled
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testOneOfDisabled() throws Exception {
// Configure a mock instance engine with an ontology:
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
when(inferenceEngine.isEnumeratedType(SUITS)).thenReturn(true);
when(inferenceEngine.getEnumeration(SUITS)).thenReturn(CARD_SUIT_ENUMERATION);
when(inferenceEngine.isEnumeratedType(RANKS)).thenReturn(true);
when(inferenceEngine.getEnumeration(RANKS)).thenReturn(CARD_RANK_ENUMERATION);
// Query for a Suits and rewrite using the visitor:
final Projection query = new Projection(
new StatementPattern(new Var("s"), new Var("p", RDF.TYPE), new Var("o", SUITS)),
new ProjectionElemList(new ProjectionElem("s", "subject")));
final AccumuloRdfConfiguration disabledConf = conf.clone();
disabledConf.setInferOneOf(false);
query.visit(new OneOfVisitor(disabledConf, inferenceEngine));
// Expected structure: the original statement:
assertTrue(query.getArg() instanceof StatementPattern);
final StatementPattern actualCardSuitSp = (StatementPattern) query.getArg();
final StatementPattern expectedCardSuitSp = new StatementPattern(new Var("s"), new Var("p", RDF.TYPE), new Var("o", SUITS));
assertEquals(expectedCardSuitSp, actualCardSuitSp);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:26,代码来源:OneOfVisitorTest.java
示例6: testProjection
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testProjection() throws Exception {
StatementPattern isUndergrad = new StatementPattern(new Var("x"), constant(RDF.TYPE), constant(UNDERGRAD));
StatementPattern isCourse = new StatementPattern(new Var("course"), constant(RDF.TYPE), constant(COURSE));
StatementPattern hasEdge = new StatementPattern(new Var("x"), new Var("p"), new Var("course"));
ProjectionElemList projectionElements = new ProjectionElemList(
new ProjectionElem("p", "relation"),
new ProjectionElem("course"));
QueryRoot queryTree = new QueryRoot(new Projection(
new Join(new Join(isCourse, hasEdge), isUndergrad),
projectionElements));
SparqlToPipelineTransformVisitor visitor = new SparqlToPipelineTransformVisitor(collection);
queryTree.visit(visitor);
Assert.assertTrue(queryTree.getArg() instanceof AggregationPipelineQueryNode);
AggregationPipelineQueryNode pipelineNode = (AggregationPipelineQueryNode) queryTree.getArg();
Assert.assertEquals(Sets.newHashSet("relation", "course"), pipelineNode.getAssuredBindingNames());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:18,代码来源:SparqlToPipelineTransformVisitorTest.java
示例7: testMultiProjection
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testMultiProjection() throws Exception {
StatementPattern isUndergrad = new StatementPattern(new Var("x"), constant(RDF.TYPE), constant(UNDERGRAD));
StatementPattern isCourse = new StatementPattern(new Var("course"), constant(RDF.TYPE), constant(COURSE));
StatementPattern hasEdge = new StatementPattern(new Var("x"), new Var("p"), new Var("course"));
ProjectionElemList courseHasRelation = new ProjectionElemList(
new ProjectionElem("p", "relation"),
new ProjectionElem("course"));
ProjectionElemList studentHasRelation = new ProjectionElemList(
new ProjectionElem("p", "relation"),
new ProjectionElem("x", "student"));
QueryRoot queryTree = new QueryRoot(new MultiProjection(
new Join(new Join(isCourse, hasEdge), isUndergrad),
Arrays.asList(courseHasRelation, studentHasRelation)));
SparqlToPipelineTransformVisitor visitor = new SparqlToPipelineTransformVisitor(collection);
queryTree.visit(visitor);
Assert.assertTrue(queryTree.getArg() instanceof AggregationPipelineQueryNode);
AggregationPipelineQueryNode pipelineNode = (AggregationPipelineQueryNode) queryTree.getArg();
Assert.assertEquals(Sets.newHashSet("relation"), pipelineNode.getAssuredBindingNames());
Assert.assertEquals(Sets.newHashSet("relation", "course", "student"), pipelineNode.getBindingNames());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:22,代码来源:SparqlToPipelineTransformVisitorTest.java
示例8: make
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
/**
* Make a {@link MultiProjectionEvaluator} that processes the logic of a {@link MultiProjection}.
*
* @param multiProjection - Defines the projections that will be processed. (not null)
* @param bNodeIdFactory - Creates the IDs for Blank Nodes. (not null)
* @return A {@link MultiProjectionEvaluator} for the provided {@link MultiProjection}.
*/
public static MultiProjectionEvaluator make(final MultiProjection multiProjection, final BNodeIdFactory bNodeIdFactory) {
requireNonNull(multiProjection);
// Figure out if there are extensions.
final TupleExpr arg = multiProjection.getArg();
final Optional<Extension> extension = (arg instanceof Extension) ? Optional.of((Extension)arg): Optional.empty();
// If there are, iterate through them and find any blank node source names.
final Set<String> blankNodeSourceNames = new HashSet<>();
if(extension.isPresent()) {
for(final ExtensionElem elem : extension.get().getElements()) {
if(elem.getExpr() instanceof BNodeGenerator) {
blankNodeSourceNames.add( elem.getName() );
}
}
}
// Create a ProjectionEvaluator for each projection that is part of the multi.
final Set<ProjectionEvaluator> projections = new HashSet<>();
for(final ProjectionElemList projectionElemList : multiProjection.getProjections()) {
projections.add( new ProjectionEvaluator(projectionElemList, extension) );
}
return new MultiProjectionEvaluator(projections, blankNodeSourceNames, bNodeIdFactory);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:33,代码来源:MultiProjectionEvaluator.java
示例9: getConstructGraphVarOrder
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
private static VariableOrder getConstructGraphVarOrder(final Reduced node) {
//get child node
final QueryModelNode child = node.getArg();
Preconditions.checkArgument(child instanceof Projection || child instanceof MultiProjection);
final UnaryTupleOperator unary = (UnaryTupleOperator) child;
//get ProjectionElemList to build ConstructGraph
final List<ProjectionElemList> projections = new ArrayList<>();
if(unary instanceof Projection) {
projections.add(((Projection) unary).getProjectionElemList());
} else {
projections.addAll(((MultiProjection)unary).getProjections());
}
return getConstructGraphVarOrder(projections);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:18,代码来源:SparqlFluoQueryBuilder.java
示例10: testConcreteSP
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testConcreteSP() {
Extension extension = new Extension(new SingletonSet(),
new ExtensionElem(new ValueConstant(FOAF.PERSON), "x"),
new ExtensionElem(new ValueConstant(RDF.TYPE), "y"),
new ExtensionElem(new ValueConstant(OWL.CLASS), "z"));
Projection projection = new Projection(extension, new ProjectionElemList(
new ProjectionElem("x", "subject"),
new ProjectionElem("y", "predicate"),
new ProjectionElem("z", "object")));
ConstructConsequentVisitor visitor = new ConstructConsequentVisitor();
projection.visit(visitor);
Set<StatementPattern> expected = Sets.newHashSet(
new StatementPattern(s(FOAF.PERSON), p(RDF.TYPE), o(OWL.CLASS)));
Assert.assertEquals(expected, visitor.getConsequents());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:17,代码来源:ConstructConsequentVisitorTest.java
示例11: extractConstructExpression
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
private static TupleExpr extractConstructExpression(
final Map<String, ExtensionElem> extensions,
final Iterable<? extends ProjectionElemList> multiProjections) {
TupleExpr expression = null;
for (final ProjectionElemList projections : multiProjections) {
final Var subj = extractConstructVar(extensions, projections.getElements().get(0));
final Var pred = extractConstructVar(extensions, projections.getElements().get(1));
final Var obj = extractConstructVar(extensions, projections.getElements().get(2));
final Var ctx = projections.getElements().size() < 4 ? null : extractConstructVar(
extensions, projections.getElements().get(3));
final StatementPattern pattern = new StatementPattern(
ctx == null ? Scope.DEFAULT_CONTEXTS : Scope.NAMED_CONTEXTS, subj, pred,
obj, ctx);
expression = expression == null ? pattern : new Join(expression, pattern);
}
return expression;
}
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:18,代码来源:SPARQLRenderer.java
示例12: testPropertyPattern_constantSubj
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testPropertyPattern_constantSubj() throws Exception {
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
final Set<Resource> loveTypes = new HashSet<>();
loveTypes.add(narcissist);
when(inferenceEngine.getHasSelfImplyingProperty(love)).thenReturn(loveTypes);
final Var subj = new Var("s", self);
subj.setConstant(true);
final Var obj = new Var("o");
final Var pred = new Var("p", love);
pred.setConstant(true);
final Projection query = new Projection(new StatementPattern(subj, pred, obj),
new ProjectionElemList(new ProjectionElem("s", "subject")));
query.visit(new HasSelfVisitor(conf, inferenceEngine));
Assert.assertTrue(query.getArg() instanceof Union);
final Union union = (Union) query.getArg();
Assert.assertTrue(union.getRightArg() instanceof StatementPattern);
Assert.assertTrue(union.getLeftArg() instanceof Extension);
final StatementPattern expectedRight = new StatementPattern(subj, pred, obj);
final Extension expectedLeft = new Extension(
new StatementPattern(subj, new Var(RDF.TYPE.stringValue(), RDF.TYPE), new Var("urn:Narcissist", narcissist)),
new ExtensionElem(subj, "o"));
Assert.assertEquals(expectedLeft, union.getLeftArg());
Assert.assertEquals(expectedRight, union.getRightArg());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:28,代码来源:HasSelfVisitorTest.java
示例13: testPropertyPattern_constantObj
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testPropertyPattern_constantObj() throws Exception {
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
final Set<Resource> loveTypes = new HashSet<>();
loveTypes.add(narcissist);
when(inferenceEngine.getHasSelfImplyingProperty(love)).thenReturn(loveTypes);
final Var subj = new Var("s");
final Var obj = new Var("o", self);
obj.setConstant(true);
final Var pred = new Var("p", love);
pred.setConstant(true);
final Projection query = new Projection(new StatementPattern(subj, pred, obj),
new ProjectionElemList(new ProjectionElem("s", "subject")));
query.visit(new HasSelfVisitor(conf, inferenceEngine));
Assert.assertTrue(query.getArg() instanceof Union);
final Union union = (Union) query.getArg();
Assert.assertTrue(union.getRightArg() instanceof StatementPattern);
Assert.assertTrue(union.getLeftArg() instanceof Extension);
final StatementPattern expectedRight = new StatementPattern(subj, pred, obj);
final Extension expectedLeft = new Extension(
new StatementPattern(obj, new Var(RDF.TYPE.stringValue(), RDF.TYPE), new Var("urn:Narcissist", narcissist)),
new ExtensionElem(obj, "s"));
Assert.assertEquals(expectedLeft, union.getLeftArg());
Assert.assertEquals(expectedRight, union.getRightArg());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:28,代码来源:HasSelfVisitorTest.java
示例14: testOneOf
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testOneOf() throws Exception {
// Configure a mock instance engine with an ontology:
final InferenceEngine inferenceEngine = mock(InferenceEngine.class);
when(inferenceEngine.isEnumeratedType(SUITS)).thenReturn(true);
when(inferenceEngine.getEnumeration(SUITS)).thenReturn(CARD_SUIT_ENUMERATION);
when(inferenceEngine.isEnumeratedType(RANKS)).thenReturn(true);
when(inferenceEngine.getEnumeration(RANKS)).thenReturn(CARD_RANK_ENUMERATION);
// Query for a Suits and rewrite using the visitor:
final Projection query = new Projection(
new StatementPattern(new Var("s"), new Var("p", RDF.TYPE), new Var("o", SUITS)),
new ProjectionElemList(new ProjectionElem("s", "subject")));
query.visit(new OneOfVisitor(conf, inferenceEngine));
// Expected structure: BindingSetAssignment containing the enumeration:
// BindingSetAssignment(CLUBS, DIAMONDS, HEARTS, SPADES)
// Collect the arguments to the BindingSetAssignment:
assertTrue(query.getArg() instanceof BindingSetAssignment);
final BindingSetAssignment bsa = (BindingSetAssignment) query.getArg();
final Iterable<BindingSet> iterable = bsa.getBindingSets();
final Iterator<BindingSet> iter = iterable.iterator();
assertBindingSet(iter, CARD_SUIT_ENUMERATION.iterator());
// Query for a Ranks and rewrite using the visitor:
final Projection query2 = new Projection(
new StatementPattern(new Var("s"), new Var("p", RDF.TYPE), new Var("o", RANKS)),
new ProjectionElemList(new ProjectionElem("s", "subject")));
query2.visit(new OneOfVisitor(conf, inferenceEngine));
// Expected structure: BindingSetAssignment containing the enumeration:
// BindingSetAssignment(ACE, 2, 3, 4, 5, 6, 7, 8, 9, 10, JACK, QUEEN, KING)
// Collect the arguments to the BindingSetAssignment:
assertTrue(query2.getArg() instanceof BindingSetAssignment);
final BindingSetAssignment bsa2 = (BindingSetAssignment) query2.getArg();
final Iterable<BindingSet> iterable2 = bsa2.getBindingSets();
final Iterator<BindingSet> iter2 = iterable2.iterator();
assertBindingSet(iter2, CARD_RANK_ENUMERATION.iterator());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:39,代码来源:OneOfVisitorTest.java
示例15: testEmptyProjection
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Test
public void testEmptyProjection() throws Exception {
StatementPattern isClass = new StatementPattern(constant(UNDERGRAD), constant(RDF.TYPE), constant(OWL.CLASS));
QueryRoot queryTree = new QueryRoot(new Projection(isClass, new ProjectionElemList()));
SparqlToPipelineTransformVisitor visitor = new SparqlToPipelineTransformVisitor(collection);
queryTree.visit(visitor);
Assert.assertTrue(queryTree.getArg() instanceof Projection);
Projection projectNode = (Projection) queryTree.getArg();
Assert.assertTrue(projectNode.getArg() instanceof AggregationPipelineQueryNode);
AggregationPipelineQueryNode pipelineNode = (AggregationPipelineQueryNode) projectNode.getArg();
Assert.assertEquals(Sets.newHashSet(), pipelineNode.getAssuredBindingNames());
}
开发者ID:apache,项目名称:incubator-rya,代码行数:13,代码来源:SparqlToPipelineTransformVisitorTest.java
示例16: make
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
/**
* Make a {@link ProjectionEvaluator} that processes the logic of a {@link Projection}.
*
* @param projection - Defines the projection that will be processed. (not null)
* @return A {@link ProjectionEvaluator} for the provided {@link Projection}.
*/
public static ProjectionEvaluator make(final Projection projection) {
requireNonNull(projection);
final ProjectionElemList projectionElems = projection.getProjectionElemList();
final TupleExpr arg = projection.getArg();
final Optional<Extension> extension = arg instanceof Extension ? Optional.of((Extension)arg) : Optional.empty();
return new ProjectionEvaluator(projectionElems, extension);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:17,代码来源:ProjectionEvaluator.java
示例17: validateProjectionElemList
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
private void validateProjectionElemList(final ProjectionElemList list) {
final List<ProjectionElem> elements = list.getElements();
checkArgument(elements.size() == 3);
checkArgument(elements.get(0).getTargetName().equals("subject"));
checkArgument(elements.get(1).getTargetName().equals("predicate"));
checkArgument(elements.get(2).getTargetName().equals("object"));
}
开发者ID:apache,项目名称:incubator-rya,代码行数:8,代码来源:SparqlFluoQueryBuilder.java
示例18: meet
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Override
public void meet(ProjectionElemList node) {
List<ProjectionElem> proj = node.getElements();
for (ProjectionElem s : proj) {
if (varChanges.containsKey(s.getSourceName())) {
String name = s.getSourceName();
s.setSourceName(varChanges.get(name));
s.setTargetName(varChanges.get(name));
}
}
}
开发者ID:apache,项目名称:incubator-rya,代码行数:14,代码来源:QueryVariableNormalizer.java
示例19: meet
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
@Override
public void meet(MultiProjection projection) {
List<ExtensionElem> bindings;
if (projection.getArg() instanceof Extension) {
bindings = ((Extension) projection.getArg()).getElements();
}
else {
bindings = Arrays.asList();
}
for (ProjectionElemList template : projection.getProjections()) {
recordConsequent(template, bindings);
}
}
开发者ID:apache,项目名称:incubator-rya,代码行数:14,代码来源:ConstructConsequentVisitor.java
示例20: recordConsequent
import org.openrdf.query.algebra.ProjectionElemList; //导入依赖的package包/类
private void recordConsequent(ProjectionElemList variables, List<ExtensionElem> extensionElements) {
Map<String, Value> bindings = new ConcurrentHashMap<>();
Map<String, Value> values = new ConcurrentHashMap<>();
Set<String> queryBnodes = new HashSet<>();
Set<String> projectedBnodes = new HashSet<>();
for (ExtensionElem ee : extensionElements) {
if (ee.getExpr() instanceof ValueConstant) {
bindings.put(ee.getName(), ((ValueConstant) ee.getExpr()).getValue());
}
else if (ee.getExpr() instanceof BNodeGenerator) {
queryBnodes.add(ee.getName());
}
}
for (ProjectionElem var : variables.getElements()) {
String sourceName = var.getSourceName();
String targetName = var.getTargetName();
Value constValue = bindings.get(sourceName);
if (constValue != null) {
values.put(targetName, constValue);
}
else if (queryBnodes.contains(sourceName)) {
projectedBnodes.add(targetName);
}
}
Var subjVar = new Var(SUBJECT_VAR_NAME, values.get(SUBJECT_VAR_NAME));
Var predVar = new Var(PREDICATE_VAR_NAME, values.get(PREDICATE_VAR_NAME));
Var objVar = new Var(OBJECT_VAR_NAME, values.get(OBJECT_VAR_NAME));
subjVar.setAnonymous(projectedBnodes.contains(SUBJECT_VAR_NAME));
predVar.setAnonymous(projectedBnodes.contains(PREDICATE_VAR_NAME));
objVar.setAnonymous(projectedBnodes.contains(OBJECT_VAR_NAME));
StatementPattern sp = new StatementPattern(subjVar, predVar, objVar);
consequentStatementPatterns.add(sp);
}
开发者ID:apache,项目名称:incubator-rya,代码行数:34,代码来源:ConstructConsequentVisitor.java
注:本文中的org.openrdf.query.algebra.ProjectionElemList类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论