org.apache.jena.query.Query.getResultVars()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(235)

本文整理了Java中org.apache.jena.query.Query.getResultVars方法的一些代码示例,展示了Query.getResultVars的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.getResultVars方法的具体详情如下:
包路径:org.apache.jena.query.Query
类名称:Query
方法名:getResultVars

Query.getResultVars介绍

[英]Return a list of the variables requested (SELECT)
[中]返回所请求变量的列表(选择)

代码示例

代码示例来源:origin: apache/tinkerpop

  1. final List<String> vars = query.getResultVars();
  2. if (!query.isQueryResultStar() && !query.hasGroupBy()) {
  3. final String[] all = new String[vars.size()];

代码示例来源:origin: apache/jena

  1. @Override
  2. public void visitDescribeResultForm(Query query)
  3. {
  4. x ^= query.getResultVars().hashCode() ;
  5. x ^= query.getResultURIs().hashCode() ;
  6. }

代码示例来源:origin: org.aksw.rdfunit/rdfunit-model

  1. private Optional<ResultAnnotation> getFocusNodeAnnotation() {
  2. if (query.getResultVars().contains("focusNode")) {
  3. return Optional.of(
  4. createVariableAnnotation(SHACL.focusNode, "focusNode"));
  5. } else {
  6. return Optional.of(
  7. createVariableAnnotation(SHACL.focusNode, "this"));
  8. }
  9. }

代码示例来源:origin: AKSW/RDFUnit

  1. private Optional<ResultAnnotation> getFocusNodeAnnotation() {
  2. if (query.getResultVars().contains("focusNode")) {
  3. return Optional.of(
  4. createVariableAnnotation(SHACL.focusNode, "focusNode"));
  5. } else {
  6. return Optional.of(
  7. createVariableAnnotation(SHACL.focusNode, "this"));
  8. }
  9. }

代码示例来源:origin: org.aksw.rdfunit/rdfunit-model

  1. private Optional<ResultAnnotation> getMessageAnnotation() {
  2. if (query.getResultVars().contains("message")) {
  3. return Optional.of(
  4. createVariableAnnotation(SHACL.resultMessage, "message"));
  5. } else {
  6. return ImmutableList.of(shape.getMessage(),validator.getDefaultMessage()).stream()
  7. .filter(Optional::isPresent)
  8. .map(Optional::get)
  9. .findFirst()
  10. .map(message -> createValueAnnotation(SHACL.resultMessage, message));
  11. }
  12. }

代码示例来源:origin: AKSW/RDFUnit

  1. private Optional<ResultAnnotation> getMessageAnnotation() {
  2. if (query.getResultVars().contains("message")) {
  3. return Optional.of(
  4. createVariableAnnotation(SHACL.resultMessage, "message"));
  5. } else {
  6. return ImmutableList.of(shape.getMessage(),validator.getDefaultMessage()).stream()
  7. .filter(Optional::isPresent)
  8. .map(Optional::get)
  9. .findFirst()
  10. .map(message -> createValueAnnotation(SHACL.resultMessage, message));
  11. }
  12. }

代码示例来源:origin: apache/jena

  1. /**
  2. * Execute a query, expecting the result to be one row, one column. Return
  3. * that one RDFNode
  4. */
  5. public static RDFNode getExactlyOne(String qs, Dataset ds) {
  6. Query q = QueryFactory.create(qs) ;
  7. if ( q.getResultVars().size() != 1 )
  8. throw new ARQException("getExactlyOne: Must have exactly one result columns") ;
  9. String varname = q.getResultVars().get(0) ;
  10. try ( QueryExecution qExec = QueryExecutionFactory.create(q, ds) ) {
  11. return getExactlyOne(qExec, varname) ;
  12. }
  13. }

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

  1. @Bean
  2. @StepScope
  3. @Autowired
  4. public LineAggregator<Binding> lineAggregator(Query query) {
  5. List<String> varNames = query.getResultVars();
  6. LineAggregator<Binding> result = new LineAggregatorBindingToXml(varNames);
  7. return result;
  8. // return new LineAggregator<Binding>() {
  9. // @Override
  10. // public String aggregate(Binding item) {
  11. // return item.toString();
  12. // }
  13. // };
  14. }

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

  1. public static Node extractDescribeNode(Query query) {
  2. if (!query.isDescribeType()) {
  3. throw new RuntimeException("DESCRIBE query expected. Got: ["
  4. + query.toString() + "]");
  5. }
  6. // TODO Right now we only support describe with a single constant.
  7. //Element queryPattern = query.getQueryPattern();
  8. if(query.getQueryPattern() != null || !query.getResultVars().isEmpty() || query.getResultURIs().size() > 1) {
  9. throw new RuntimeException("Sorry, DESCRIBE is only implemented for a single resource argument");
  10. }
  11. Node result = query.getResultURIs().get(0);
  12. return result;
  13. }

代码示例来源:origin: apache/jena

  1. @Override
  2. public void visitDescribeResultForm(Query query1)
  3. {
  4. check("Not both DESCRIBE queries", query2.isDescribeType()) ;
  5. check("Result variables",
  6. query1.getResultVars(), query2.getResultVars() ) ;
  7. check("Result URIs",
  8. query1.getResultURIs(), query2.getResultURIs() ) ;
  9. }

代码示例来源:origin: apache/jena

  1. private ResultSet asResultSet(QueryIterator qIter) {
  2. Model model = null ;
  3. if ( dataset != null )
  4. model = dataset.getDefaultModel() ;
  5. else
  6. model = ModelFactory.createDefaultModel() ;
  7. ResultSetStream rStream = new ResultSetStream(query.getResultVars(), model, qIter) ;
  8. return rStream ;
  9. }

代码示例来源:origin: org.aksw.rdfunit/rdfunit-model

  1. private Optional<ResultAnnotation> getPathAnnotation() {
  2. if (query.getResultVars().contains("path")) {
  3. List<Var> vars = query.getProjectVars();
  4. VarExprList vel = query.getProject();
  5. return Optional.of(
  6. createVariableAnnotation(SHACL.resultPath, "path"));
  7. } else {
  8. if (shape.getPath().isPresent()) {
  9. return Optional.of(
  10. createValueAnnotation(SHACL.resultPath, shape.getPath().get().getPathAsRdf()));
  11. }
  12. }
  13. return Optional.empty();
  14. }

代码示例来源:origin: AKSW/RDFUnit

  1. private Optional<ResultAnnotation> getPathAnnotation() {
  2. if (query.getResultVars().contains("path")) {
  3. List<Var> vars = query.getProjectVars();
  4. VarExprList vel = query.getProject();
  5. return Optional.of(
  6. createVariableAnnotation(SHACL.resultPath, "path"));
  7. } else {
  8. if (shape.getPath().isPresent()) {
  9. return Optional.of(
  10. createValueAnnotation(SHACL.resultPath, shape.getPath().get().getPathAsRdf()));
  11. }
  12. }
  13. return Optional.empty();
  14. }

代码示例来源:origin: apache/jena

  1. @Override
  2. public void visitDescribeResultForm(Query query)
  3. {
  4. out.print("DESCRIBE ") ;
  5. if ( query.isQueryResultStar() )
  6. out.print("*") ;
  7. else
  8. {
  9. appendVarList(query, out, query.getResultVars()) ;
  10. if ( query.getResultVars().size() > 0 &&
  11. query.getResultURIs().size() > 0 )
  12. out.print(" ") ;
  13. appendURIList(query, out, query.getResultURIs()) ;
  14. }
  15. out.newline() ;
  16. }

代码示例来源:origin: apache/jena

  1. @Test
  2. public void testDoubleCount() {
  3. Query[] result = test_roundTripQuery("select (count(?s) as ?sc) (count(?p) as ?pc) { ?s ?p ?o }") ;
  4. assertEquals(2, result[1].getResultVars().size());
  5. assertTrue(result[1].getResultVars().contains("sc"));
  6. assertTrue(result[1].getResultVars().contains("pc"));
  7. }

代码示例来源:origin: apache/jena

  1. @Test
  2. public void testProject2() {
  3. Query[] result = test_roundTripQuery("SELECT (?x + 1 AS ?c) ?d {}");
  4. assertEquals(2, result[1].getResultVars().size());
  5. assertTrue(result[1].getResultVars().contains("c"));
  6. assertTrue(result[1].getResultVars().contains("d"));
  7. }

代码示例来源:origin: apache/jena

  1. /** Find the variables needed out of this query.
  2. * If we don't do sorting in-DB, then we need the ORDER BY variables as well.
  3. * @param query
  4. */
  5. public static List<Var> queryOutVars(Query query)
  6. {
  7. // If part query, need all variables.
  8. // Project variables
  9. List<Var> vars = toList(map(query.getResultVars().iterator(), Var::alloc)) ;
  10. // Add the ORDER BY variables
  11. List<SortCondition> orderConditions = query.getOrderBy() ;
  12. if ( orderConditions != null )
  13. {
  14. for ( SortCondition sc : orderConditions )
  15. {
  16. Set<Var> x = sc.getExpression().getVarsMentioned() ;
  17. for ( Var v : x )
  18. {
  19. if ( ! vars.contains(v) )
  20. vars.add(v) ;
  21. }
  22. }
  23. }
  24. return vars ;
  25. }

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

  1. /**
  2. *
  3. *
  4. * @param pattern
  5. * a pattern of a where-clause
  6. * @param resultVar
  7. * an optional result variable (used for describe queries)
  8. * @return
  9. */
  10. public static Query elementToQuery(Element pattern, String resultVar) {
  11. if (pattern == null)
  12. return null;
  13. Query query = new Query();
  14. query.setQueryPattern(pattern);
  15. query.setQuerySelectType();
  16. if (resultVar == null) {
  17. query.setQueryResultStar(true);
  18. }
  19. query.setResultVars();
  20. if (resultVar != null) {
  21. query.getResultVars().add(resultVar);
  22. }
  23. return query;
  24. }

代码示例来源:origin: apache/jena

  1. @Override
  2. public Iterator<JsonObject> execJsonItems()
  3. {
  4. checkNotClosed() ;
  5. if ( ! query.isJsonType() )
  6. throw new QueryExecException("Attempt to get a JSON result from a " + labelForQuery(query)+" query") ;
  7. startQueryIterator() ;
  8. return new JsonIterator(queryIterator, query.getResultVars()) ;
  9. }

代码示例来源:origin: apache/jena

  1. @Override
  2. public JsonArray execJson()
  3. {
  4. checkNotClosed() ;
  5. if ( ! query.isJsonType() )
  6. throw new QueryExecException("Attempt to get a JSON result from a " + labelForQuery(query)+" query") ;
  7. startQueryIterator() ;
  8. JsonArray jsonArray = new JsonArray() ;
  9. List<String> resultVars = query.getResultVars() ;
  10. while (queryIterator.hasNext())
  11. {
  12. Binding binding = queryIterator.next() ;
  13. JsonObject jsonObject = new JsonObject() ;
  14. for (String resultVar : resultVars) {
  15. Node n = binding.get(Var.alloc(resultVar)) ;
  16. JsonValue value = RDFTerm2Json.fromNode(n) ;
  17. jsonObject.put(resultVar, value) ;
  18. }
  19. jsonArray.add(jsonObject) ;
  20. }
  21. return jsonArray ;
  22. }

相关文章