• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java QuerySolutionMap类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.jena.query.QuerySolutionMap的典型用法代码示例。如果您正苦于以下问题:Java QuerySolutionMap类的具体用法?Java QuerySolutionMap怎么用?Java QuerySolutionMap使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



QuerySolutionMap类属于org.apache.jena.query包,在下文中一共展示了QuerySolutionMap类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: addDefaultMessages

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
private void addDefaultMessages(ValidationEngine engine, Resource messageHolder, Resource fallback, Resource result, 
			QuerySolution bindings, QuerySolution solution) {
	boolean found = false;
	for(Statement s : messageHolder.listProperties(SH.message).toList()) {
		if(s.getObject().isLiteral()) {
			QuerySolutionMap map = new QuerySolutionMap();
			map.addAll(bindings);
			map.addAll(solution);
			engine.addResultMessage(result, s.getLiteral(), map);
			found = true;
		}
	}
	if(!found && fallback != null) {
		addDefaultMessages(engine, fallback, null, result, bindings, solution);
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:17,代码来源:AbstractSPARQLExecutor.java


示例2: getValueNodes

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
   protected List<RDFNode> getValueNodes(ValidationEngine validationEngine, Constraint constraint, QuerySolutionMap bindings, RDFNode focusNode) {
	SHConstraintComponent component = constraint.getComponent();
	Resource context = constraint.getContext();
	Resource validatorResource = component.getValidator(SH.JSValidator, context);
	if(SH.PropertyShape.equals(context)) {
		if(component.hasProperty(SH.propertyValidator, validatorResource)) {
			bindings.add("path", constraint.getShapeResource().getRequiredProperty(SH.path).getObject());
			List<RDFNode> valueNodes = new ArrayList<>();
			valueNodes.add(null);
			return valueNodes;
		}
		else {
			return validationEngine.getValueNodes(constraint, focusNode);
		}
	}
	else {
		bindings.add("value", focusNode);
		return Collections.singletonList(focusNode);
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:22,代码来源:JSComponentExecutor.java


示例3: addValueNodes

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
public static void addValueNodes(RDFNode focusNode, Resource path, Collection<RDFNode> results) {
	if(path.isURIResource()) {
		if(focusNode instanceof Resource) {
			StmtIterator it = focusNode.getModel().listStatements((Resource)focusNode, JenaUtil.asProperty(path), (RDFNode)null);
			while(it.hasNext()) {
				results.add(it.next().getObject());
			}
		}
	}
	else {
		String pathString = SHACLPaths.getPathString(path);
		String queryString = "SELECT DISTINCT ?value { $this " + pathString + " ?value }";
		Query query = ARQFactory.get().createQuery(path.getModel(), queryString);
		try(QueryExecution qexec = ARQFactory.get().createQueryExecution(query, focusNode.getModel())) {
			QuerySolutionMap qs = new QuerySolutionMap();
			qs.add("this", focusNode);
			qexec.setInitialBinding(qs);
			ResultSet rs = qexec.execSelect();
			while(rs.hasNext()) {
				results.add(rs.next().get("value"));
			}
		}
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:25,代码来源:SHACLPaths.java


示例4: execute

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
public void execute(RuleEngine ruleEngine, List<RDFNode> focusNodes, Shape shape) {
	ProgressMonitor monitor = ruleEngine.getProgressMonitor();
	for(RDFNode focusNode : focusNodes) {
		
		if(monitor != null && monitor.isCanceled()) {
			return;
		}

		QuerySolutionMap bindings = new QuerySolutionMap();
		bindings.add(SH.thisVar.getVarName(), focusNode);
		try(QueryExecution qexec = ARQFactory.get().createQueryExecution(query, ruleEngine.getDataset(), bindings)) {
			Model constructed = qexec.execConstruct();
			for(Statement s : constructed.listStatements().toList()) {
				ruleEngine.infer(s.asTriple(), this, shape);
			}
		}
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:20,代码来源:SPARQLRule.java


示例5: getQuerySolutionMap

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
public QuerySolutionMap getQuerySolutionMap()
{
    QuerySolutionMap qsm = new QuerySolutionMap();
    
    org.spinrdf.model.TemplateCall spinTemplateCall = SPINFactory.asTemplateCall(getTemplate().getQuery());
    if (spinTemplateCall != null)
    {
        qsm = spinTemplateCall.getInitialBinding();
        
        List<org.spinrdf.model.Argument> spinArgs = spinTemplateCall.getTemplate().getArguments(false);
        // add SPIN Arguments that match LDT Arguments (by predicate)
        for (org.spinrdf.model.Argument spinArg : spinArgs)
            if (getTemplate().getParameters().containsKey(spinArg.getPredicate()) && hasArgument(spinArg.getPredicate()))
            {
                Parameter param = getTemplate().getParameters().get(spinArg.getPredicate());
                qsm.add(param.getVarName(), getArgumentProperty(param.getPredicate()).getObject());
            }
    }
            
    return qsm;
}
 
开发者ID:AtomGraph,项目名称:Processor,代码行数:22,代码来源:TemplateCall.java


示例6: creatingAgentsFor

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
private static List<RDFNode> creatingAgentsFor(Resource r) {
	logger.fine("Finding creator of " + r);
	String queryStr = sparqlPrefixes + "SELECT ?agent WHERE { \n" + " { \n"
			+ "  ?r dct:creator [ \n" + "	    rdfs:member ?agent \n"
			+ "  ] \n" + " } UNION { \n" + "   ?r dct:creator ?agent .\n "
			+ "   FILTER NOT EXISTS { ?agent rdfs:member ?member } \n"
			+ " } \n" + "} \n";
	logger.finer(QueryFactory.create(queryStr).toString());
	QueryExecution qexec = QueryExecutionFactory.create(queryStr,
			r.getModel());
	QuerySolutionMap binding = new QuerySolutionMap();
	binding.add("r", r);
	qexec.setInitialBinding(binding);
	ResultSet select = qexec.execSelect();
	List<RDFNode> agents = new ArrayList<>();

	while (select.hasNext()) {
		RDFNode agent = select.next().get("agent");
		logger.fine("Found: " + agent);
		agents.add(agent);
	}
	return agents;
}
 
开发者ID:apache,项目名称:incubator-taverna-language,代码行数:24,代码来源:CombineManifest.java


示例7: mboxForAgent

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
private static Resource mboxForAgent(Resource agentResource) {
	logger.fine("Finding mbox of " + agentResource);
	String queryStr = sparqlPrefixes + "SELECT ?mbox WHERE { \n"
			+ "		{ ?agent foaf:mbox ?mbox } \n" + "	UNION  \n"
			+ "		{ ?agent vcard:hasEmail ?mbox } \n" + "	UNION  \n"
			+ "		{ ?agent vcard:email ?email .  \n"
			+ "       BIND(IRI(CONCAT(\"mbox:\", ?email)) AS ?mbox) \n" // legacy
			+ "	    } \n" + "} \n";
	logger.finer(QueryFactory.create(queryStr).toString());
	QueryExecution qexec = QueryExecutionFactory.create(queryStr,
			agentResource.getModel());
	QuerySolutionMap binding = new QuerySolutionMap();
	binding.add("agent", agentResource);
	qexec.setInitialBinding(binding);
	ResultSet select = qexec.execSelect();
	if (select.hasNext()) {
		Resource mbox = select.next().getResource("mbox");
		logger.fine("Found mbox: " + mbox);
		return mbox;
	}
	logger.fine("mbox not found");
	return null;
}
 
开发者ID:apache,项目名称:incubator-taverna-language,代码行数:24,代码来源:CombineManifest.java


示例8: exec

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public final Model exec() {
    Dataset inputDataset = DatasetFactory.create();
    QuerySolution initialBindings = new QuerySolutionMap();
    Model initialModel = ModelFactory.createDefaultModel();
    StreamRDF outputStream = new StreamRDFModel(initialModel);
    exec(inputDataset, initialBindings, outputStream);
    return initialModel;
}
 
开发者ID:thesmartenergy,项目名称:sparql-generate,代码行数:13,代码来源:RootPlanImpl.java


示例9: asQuerySolutionMap

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
/**
 * Turns a Binding into a QuerySolutionMap.
 * @param binding  the Binding to convert
 * @return a QuerySolutionMap
 */
public static QuerySolutionMap asQuerySolutionMap(Binding binding) {
	QuerySolutionMap map = new QuerySolutionMap();
	Iterator<Var> vars = binding.vars();
	while(vars.hasNext()) {
		Var var = vars.next();
		Node node = binding.get(var);
		if(node != null) {
			map.add(var.getName(), dummyModel.asRDFNode(node));
		}
	}
	return map;
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:18,代码来源:JenaUtil.java


示例10: invokeFunction2

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
/**
 * Calls a given SPARQL function with two arguments.
 *
 * @param function  the URI resource of the function to call
 * @param argument1 the first argument
 * @param argument2 the second argument
 * @param dataset   the Dataset to operate on or null for default
 * @return the result of the function call
 */
public static Node invokeFunction2(Resource function, RDFNode argument1, RDFNode argument2, Dataset dataset) {
    final String expression = "<" + function + ">(?arg1, ?arg2)";
    QuerySolutionMap initialBinding = new QuerySolutionMap();
    if(argument1 != null) {
    	initialBinding.add("arg1", argument1);
    }
    if(argument2 != null) {
    	initialBinding.add("arg2", argument2);
    }
    return invokeExpression(expression, initialBinding, dataset);
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:21,代码来源:JenaUtil.java


示例11: invokeFunction3

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
public static Node invokeFunction3(Resource function, RDFNode argument1, RDFNode argument2, RDFNode argument3, Dataset dataset) {
	
    final String expression = "<" + function + ">(?arg1, ?arg2, ?arg3)";
    QuerySolutionMap initialBinding = new QuerySolutionMap();
    initialBinding.add("arg1", argument1);
    if(argument2 != null) {
    	initialBinding.add("arg2", argument2);
    }
	if(argument3 != null) {
		initialBinding.add("arg3", argument3);
	}
    return invokeExpression(expression, initialBinding, dataset);
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:14,代码来源:JenaUtil.java


示例12: addBindings

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
public void addBindings(QuerySolutionMap bindings) {
	for(SHParameter arg : getParameterizable().getParameters()) {
		Statement s = getProperty(arg.getPredicate());
		if(s != null) {
			bindings.add(arg.getVarName(), s.getObject());
		}
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:10,代码来源:SHParameterizableInstanceImpl.java


示例13: executeSPARQL

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
private void executeSPARQL(RuleEngine ruleEngine, List<RDFNode> focusNodes, Shape shape) {
	String queryString = getSPARQL();
	Query query = ARQFactory.get().createQuery(ruleEngine.getDataset().getDefaultModel(), queryString);
	QuerySolutionMap binding = new QuerySolutionMap();
	for(RDFNode focusNode : focusNodes) {
		binding.add(SH.thisVar.getVarName(), focusNode);
		Model c;
		try ( QueryExecution qexec = ARQFactory.get().createQueryExecution(query, ruleEngine.getDataset(), binding) ) {
		    c = qexec.execConstruct();
		}
		for(Triple triple : c.getGraph().find(Node.ANY, Node.ANY, Node.ANY).toList()) {
		    ruleEngine.infer(triple, this, shape);
		}
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:16,代码来源:TripleRule.java


示例14: getLocalPropertyLabel

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
/**
 * Gets any locally-defined label for a given property.
 * The labels are expected to be attached to shapes associated with a given
 * context resource (instance).
 * That context resource may for example be the subject of the current UI form.
 * @param property  the property to get the label of
 * @param context  the context instance
 * @return the local label or null if it should fall back to a global label
 */
public static String getLocalPropertyLabel(Resource property, Resource context) {
	QuerySolutionMap binding = new QuerySolutionMap();
	binding.add("arg1", property);
	binding.add("arg2", context);
	try(QueryExecution qexec = ARQFactory.get().createQueryExecution(propertyLabelQuery, property.getModel(), binding)) {
	    ResultSet rs = qexec.execSelect();
	    if(rs.hasNext()) {
	        return rs.next().get("label").asLiteral().getLexicalForm();
	    }
	}
	return null;
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:22,代码来源:SHACLUtil.java


示例15: testSelectQuery_withbinding

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Test
public void testSelectQuery_withbinding() {

	markLogicDatasetGraph.clear();
	String file = datasource + "property-paths.ttl";
	RDFDataMgr.read(markLogicDatasetGraph, file);
	markLogicDatasetGraph.sync();
	dataSet = DatasetFactory.create(markLogicDatasetGraph);

	StringBuilder queryBuilder = new StringBuilder(128);
	queryBuilder.append(" prefix : <http://learningsparql.com/ns/papers#> ");
	queryBuilder.append(" prefix c: <http://learningsparql.com/ns/citations#>");
	queryBuilder.append(" SELECT ?s");
	queryBuilder.append(" WHERE {  ");
	queryBuilder.append(" ?s ^c:cites :paperK2 . ");
	queryBuilder.append(" FILTER (?s != :paperK2)");
	queryBuilder.append(" } ");
	queryBuilder.append(" ORDER BY ?s ");

	String query = queryBuilder.toString();
	QuerySolutionMap binding = new QuerySolutionMap();
	binding.add("whatcode", ResourceFactory.createPlainLiteral("33333"));
	QueryExecution queryExec = QueryExecutionFactory.create(query, dataSet, binding);

	ResultSet results = queryExec.execSelect();
	assertNotNull(results);
	assertTrue(results.hasNext());
	while (results.hasNext()) {
		QuerySolution qs = results.next();
		System.out.println(qs.toString());
		assertTrue(qs.contains("s"));
		String obtained = qs.get("s").asNode().getURI();
		System.out.println(obtained);
		assertTrue("Expecting subject node to be::http://learningsparql.com/ns/papers#paperJ ",
				qs.get("s").asNode().getURI().equals("http://learningsparql.com/ns/papers#paperJ"));
	}
}
 
开发者ID:marklogic,项目名称:marklogic-jena,代码行数:38,代码来源:JenaSPARQLUpdateTests.java


示例16: exec

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void exec(
        final Dataset inputDataset,
        final StreamRDF outputStream,
        final List<Var> variables,
        final List<BindingHashMapOverwrite> values,
        final BNodeMap bNodeMap) {
    values.forEach((binding) -> {
        BNodeMap bNodeMap2 = new BNodeMap(bNodeMap, binding);
        templateElementPlans.forEach((el) -> {
            if (el instanceof GenerateTriplesPlanImpl) {
                GenerateTriplesPlanImpl subPlanTriples
                        = (GenerateTriplesPlanImpl) el;
                subPlanTriples.exec(
                        inputDataset, outputStream,
                        binding, bNodeMap2);
            } else if (el instanceof RootPlanImpl) {
                RootPlanImpl rootPlan = (RootPlanImpl) el;
                QuerySolutionMap b = new QuerySolutionMap();
                binding.varsList().forEach((v) -> {
                    Node n = binding.get(v);
                    if (!(n == null)) {
                        if (bNodeMap.contains(n)) {
                            b.add(v.getVarName(), inputDataset
                                    .getDefaultModel()
                                    .asRDFNode(bNodeMap.get(n)));
                        } else {
                            b.add(v.getVarName(), inputDataset
                                    .getDefaultModel()
                                    .asRDFNode(n));
                        }
                    }
                });
                LOG.trace("Entering sub SPARQL-Generate with \n\t" + b);
                rootPlan.exec(inputDataset, b, outputStream, bNodeMap2);
            } else {
                throw new SPARQLGenerateException("should not reach this"
                        + " point");
            }
        });
    });
}
 
开发者ID:thesmartenergy,项目名称:sparql-generate,代码行数:46,代码来源:GenerateTemplatePlanImpl.java


示例17: executeConstraint

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
public void executeConstraint(Constraint constraint, ValidationEngine engine, List<RDFNode> focusNodes) {
	
	QuerySolutionMap bindings = new QuerySolutionMap();
	addBindings(constraint, bindings);
	bindings.add(SH.currentShapeVar.getVarName(), constraint.getShapeResource());
	bindings.add(SH.shapesGraphVar.getVarName(), ResourceFactory.createResource(engine.getShapesGraphURI().toString()));
	
	Resource path = constraint.getShapeResource().getPath();
	if(path != null) {
		if(path.isAnon()) {
			String pathString = SHACLPaths.getPathString(JenaUtil.getResourceProperty(constraint.getShapeResource(), SH.path));
			query = SPARQLSubstitutions.substitutePaths(query, pathString, constraint.getShapeResource().getModel());
		}
		else {
			bindings.add(SH.PATHVar.getName(), path);
		}
	}
	
	URI oldShapesGraphURI = HasShapeFunction.getShapesGraph();
	HasShapeFunction.setShapesGraph(engine.getShapesGraphURI());
	
	Model oldNestedResults = HasShapeFunction.getResultsModel();
	Model nestedResults = JenaUtil.createMemoryModel();
	HasShapeFunction.setResultsModel(nestedResults);
	
	try {
		long startTime = System.currentTimeMillis();
		for(RDFNode focusNode : focusNodes) {
			bindings.add(SH.thisVar.getVarName(), focusNode); // Overwrite any previous binding
			QueryExecution qexec = SPARQLSubstitutions.createQueryExecution(query, engine.getDataset(), bindings);
			executeSelectQuery(engine, constraint, nestedResults, focusNode, qexec, bindings);
		}			
		if(ExecStatisticsManager.get().isRecording()) {
			long endTime = System.currentTimeMillis();
			long duration = endTime - startTime;
			String label = getLabel(constraint);
			Iterator<String> varNames = bindings.varNames();
			if(varNames.hasNext()) {
				queryString += "\nBindings:";
				while(varNames.hasNext()) {
					String varName = varNames.next();
					queryString += "\n- ?" + varName + ": " + bindings.get(varName);
				}
			}
			ExecStatistics stats = new ExecStatistics(label, queryString, duration, startTime, constraint.getComponent().asNode());
			ExecStatisticsManager.get().add(Collections.singletonList(stats));
		}
	}
	finally {
		HasShapeFunction.setShapesGraph(oldShapesGraphURI);
		HasShapeFunction.setResultsModel(oldNestedResults);
	}
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:55,代码来源:AbstractSPARQLExecutor.java


示例18: addBindings

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
protected void addBindings(Constraint constraint, QuerySolutionMap bindings) {
	constraint.addBindings(bindings);
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:5,代码来源:SPARQLComponentExecutor.java


示例19: addBindings

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
protected void addBindings(Constraint constraint, QuerySolutionMap bindings) {
	// Do nothing
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:5,代码来源:SPARQLConstraintExecutor.java


示例20: executeTarget

import org.apache.jena.query.QuerySolutionMap; //导入依赖的package包/类
@Override
public Iterable<RDFNode> executeTarget(Dataset dataset, Resource target,
		SHParameterizableTarget parameterizableTarget) {
	
	boolean nested = SHACLScriptEngineManager.begin();
	JSScriptEngine engine = SHACLScriptEngineManager.getCurrentEngine();

	SHJSExecutable as;
	if(parameterizableTarget != null) {
		as = parameterizableTarget.getParameterizable().as(SHJSExecutable.class);
	}
	else {
		as = target.as(SHJSExecutable.class);
	}
	Model model = dataset.getDefaultModel();
	JSGraph dataJSGraph = new JSGraph(model.getGraph(), engine);
	try {
		engine.executeLibraries(as);
		engine.put(SH.JS_DATA_VAR, dataJSGraph);
		
		QuerySolutionMap bindings = new QuerySolutionMap();
		if(parameterizableTarget != null) {
			parameterizableTarget.addBindings(bindings);
		}

		Object result = engine.invokeFunction(as.getFunctionName(), bindings);
		if(NashornUtil.isArray(result)) {
			List<RDFNode> results = new LinkedList<RDFNode>();
			for(Object obj : NashornUtil.asArray(result)) {
				Node node = JSFactory.getNode(obj);
				results.add(model.asRDFNode(node));
			}
			return results;
		}
	}
	catch(Exception ex) {
		ExceptionUtil.throwUnchecked(ex);
	}
	finally {
		dataJSGraph.close();
		SHACLScriptEngineManager.end(nested);
	}
	return Collections.emptyList();
}
 
开发者ID:TopQuadrant,项目名称:shacl,代码行数:45,代码来源:JSTargetPlugin.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java AisPacket类代码示例发布时间:2022-05-23
下一篇:
Java UserProvider类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap