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

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

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

Query.cloneQuery介绍

[英]Makes a copy of this query. Copies by parsing a query from the serialized form of this query
[中]复制此查询。通过分析此查询的序列化形式中的查询进行复制

代码示例

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

  1. /**
  2. * Make a query from another one by deep copy (a clone).
  3. * The returned query will be .equals to the original.
  4. * The returned query can be mutated without changing the
  5. * original (at which point it will stop being .equals)
  6. *
  7. * @param originalQuery The query to clone.
  8. *
  9. */
  10. static public Query create(Query originalQuery)
  11. {
  12. return originalQuery.cloneQuery() ;
  13. }

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

  1. @Override
  2. public Object clone() { return cloneQuery() ; }

代码示例来源:origin: SmartDataAnalytics/DL-Learner

  1. /**
  2. * Returns a pruned copy of the given query.
  3. * @param query the query
  4. * @return a pruned copy of the given query
  5. */
  6. public Query pruneQuery(Query query) {
  7. Query copy = query.cloneQuery();
  8. copy.getQueryPattern().visit(this);
  9. return copy;
  10. }

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

  1. @Override
  2. public QueryExecution createQueryExecution(Query query) {
  3. query = query.cloneQuery();
  4. PaginationQueryIterator queryIterator = new PaginationQueryIterator(query, pageSize);
  5. return new QueryExecutionIterated(query, decoratee, queryIterator);
  6. }

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

  1. @Override
  2. public Query apply(Query query) {
  3. Query result = doClone ? query.cloneQuery() : query;
  4. result.getPrefixMapping().setNsPrefixes(prefixMapping);
  5. return result;
  6. }
  7. }

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

  1. @Override
  2. public QueryExecution createQueryExecution(Query query) {
  3. Query clone = query.cloneQuery();
  4. QueryUtils.applyDatasetDescription(clone, datasetDescription);
  5. QueryExecution result = super.createQueryExecution(clone);
  6. return result;
  7. }

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

  1. @Override
  2. public Model fetch(String graphName) {
  3. Query tmp = QUERY_CONSTRUCT_SPO.cloneQuery();
  4. tmp.addGraphURI(graphName);
  5. Model result = queryConn.queryConstruct(tmp);
  6. return result;
  7. }

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

  1. public static Query transform(Query query, Map<Node, BinaryRelation> virtualPredicates, boolean cloneOnChange) {
  2. Element oldQueryPattern = query.getQueryPattern();
  3. Element newQueryPattern = transform(oldQueryPattern, virtualPredicates);
  4. Query result;
  5. if(oldQueryPattern == newQueryPattern) {
  6. result = query;
  7. } else {
  8. result = cloneOnChange ? query.cloneQuery() : query;
  9. result.setQueryPattern(newQueryPattern);
  10. }
  11. return result;
  12. }

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

  1. @Override
  2. public QueryExecution createQueryExecution(Query query) {
  3. Query q = doClone ? query.cloneQuery() : query;
  4. q.getPrefixMapping().setNsPrefixes(prefixMapping);
  5. QueryExecution result = super.createQueryExecution(q);
  6. return result;
  7. }

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

  1. public static Query fixVarNames(Query query) {
  2. Query result = query.cloneQuery();
  3. Element element = query.getQueryPattern();
  4. Element repl = ElementUtils.fixVarNames(element);
  5. result.setQueryPattern(repl);
  6. return result;
  7. }

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

  1. public QueryExecution createQueryExecution(Query query) {
  2. if(limit != null) {
  3. if(query.getLimit() == Query.NOLIMIT) {
  4. if(doCloneQuery) {
  5. query = query.cloneQuery();
  6. }
  7. query.setLimit(limit);
  8. } else {
  9. long adjustedLimit = Math.min(limit, query.getLimit());
  10. if(adjustedLimit != query.getLimit()) {
  11. if(doCloneQuery) {
  12. query = query.cloneQuery();
  13. }
  14. query.setLimit(adjustedLimit);
  15. }
  16. }
  17. }
  18. return super.createQueryExecution(query);
  19. }

代码示例来源:origin: org.aksw.jena-sparql-api/jena-sparql-api-cache

  1. @Override
  2. public Flowable<Binding> apply(Range<Long> range) {
  3. Query clone = query.cloneQuery();
  4. QueryUtils.applyRange(clone, range);
  5. Flowable<Binding> result = ReactiveSparqlUtils.execSelect(() -> qef.createQueryExecution(clone));
  6. // QueryExecution qe = qef.createQueryExecution(clone);
  7. // ResultSet rs = qe.execSelect();
  8. //
  9. //
  10. // Iterator<Binding> it = new IteratorResultSetBinding(rs);
  11. // Stream<Binding> result = Streams.stream(it);
  12. // result.onClose(qe::close);
  13. return result;
  14. //
  15. // ClosableIterator<Binding> result = new IteratorClosable<>(it, () -> qe.close());
  16. // return result;
  17. }

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

  1. @Override
  2. public Flowable<Binding> apply(Range<Long> range) {
  3. Query clone = query.cloneQuery();
  4. QueryUtils.applyRange(clone, range);
  5. Flowable<Binding> result = ReactiveSparqlUtils.execSelect(() -> qef.createQueryExecution(clone));
  6. // QueryExecution qe = qef.createQueryExecution(clone);
  7. // ResultSet rs = qe.execSelect();
  8. //
  9. //
  10. // Iterator<Binding> it = new IteratorResultSetBinding(rs);
  11. // Stream<Binding> result = Streams.stream(it);
  12. // result.onClose(qe::close);
  13. return result;
  14. //
  15. // ClosableIterator<Binding> result = new IteratorClosable<>(it, () -> qe.close());
  16. // return result;
  17. }

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

  1. public static Query rewrite(Query query) {
  2. DatasetDescription dd = query.getDatasetDescription();
  3. Query result;
  4. if(dd != null) {
  5. result = query.cloneQuery();
  6. Element before = result.getQueryPattern();
  7. Element after = rewrite(before, dd);
  8. result.setQueryPattern(after);
  9. } else {
  10. result = query;
  11. }
  12. return result;
  13. }

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

  1. private Iterator<Triple> executeConstructStreaming(Query query) {
  2. if (!query.isConstructType()) {
  3. throw new RuntimeException("CONSTRUCT query expected. Got: ["
  4. + query.toString() + "]");
  5. }
  6. Query clone = query.cloneQuery();
  7. clone.setQuerySelectType();
  8. //Query selectQuery = QueryUtils.elementToQuery(query.getQueryPattern());
  9. clone.setQueryResultStar(true);
  10. ResultSetCloseable rs = executeCoreSelect(clone);
  11. System.out.println("Executing query as: " + clone);
  12. // insertPrefixesInto(result) ;
  13. Template template = query.getConstructTemplate();
  14. Iterator<Triple> result = new ConstructIterator(template, rs);
  15. return result;
  16. }

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

  1. @Override
  2. public Flowable<T> apply(Range<Long> range) {
  3. Query clonedQuery = query.cloneQuery();
  4. range = Range.atLeast(0l).intersection(range);
  5. QueryUtils.applyRange(clonedQuery, range);
  6. Flowable<T> result = obtainResultIterator(() -> qef.createQueryExecution(clonedQuery)); // new IteratorResultSetBinding(qe.execSelect());
  7. // Stream<T> result = Streams.stream(it);
  8. // result.onClose(() -> qe.close());
  9. return result;
  10. }

代码示例来源:origin: SmartDataAnalytics/DL-Learner

  1. /**
  2. * Returns a modified SPARQL query such that it is similar but different by choosing one of the triple patterns and use
  3. * the negation of its existence.
  4. * @param query
  5. */
  6. public Query generateSPARQLQuery(Query query){
  7. //choose a random triple for the modification
  8. List<Triple> triplePatterns = new ArrayList<>(triplePatternExtractor.extractTriplePattern(query));
  9. Collections.shuffle(triplePatterns, randomGen);
  10. triple = triplePatterns.get(0);
  11. Query modifiedQuery = query.cloneQuery();
  12. modifiedQuery.getQueryPattern().visit(this);
  13. logger.info("Negative examples query:\n" + modifiedQuery.toString());
  14. return modifiedQuery;
  15. }

代码示例来源:origin: SmartDataAnalytics/DL-Learner

  1. /**
  2. * Returns a modified SPARQL query such that it is similar but different by choosing one of the triple patterns and use
  3. * the negation of its existence.
  4. * @param query the SPARQL query
  5. */
  6. public Query generateSPARQLQuery(Query query){
  7. //choose a random triple for the modification
  8. List<Triple> triplePatterns = new ArrayList<>(triplePatternExtractor.extractTriplePattern(query));
  9. Collections.shuffle(triplePatterns, randomGen);
  10. triple = triplePatterns.get(0);
  11. Query modifiedQuery = query.cloneQuery();
  12. modifiedQuery.getQueryPattern().visit(this);
  13. logger.info("Negative examples query:\n" + modifiedQuery.toString());
  14. return modifiedQuery;
  15. }

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

  1. public PaginationQueryIterator createQueryIterator(Long offset, Long limit) {
  2. long o = offset == null ? 0 : offset;
  3. long l = limit == null ? Long.MAX_VALUE : limit;
  4. long queryOffset = proto.getOffset() == Query.NOLIMIT ? 0 : proto.getOffset();
  5. long itemOffset = queryOffset + o;
  6. long queryLimit = proto.getLimit() == Query.NOLIMIT ? Long.MAX_VALUE : proto.getLimit() - o;
  7. long itemLimit = Math.min(queryLimit, l);
  8. itemLimit = itemLimit == Long.MAX_VALUE ? Query.NOLIMIT : itemLimit;
  9. Query clone = proto.cloneQuery();
  10. clone.setOffset(itemOffset);
  11. clone.setLimit(itemLimit);
  12. PaginationQueryIterator result = new PaginationQueryIterator(clone, pageSize);
  13. return result;
  14. }
  15. }

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

  1. public static Query createQueryCount(Query query, Var outputVar, Long itemLimit, Long rowLimit) {
  2. Query subQuery = query.cloneQuery();
  3. if(rowLimit != null) {
  4. subQuery.setDistinct(false);
  5. subQuery.setLimit(rowLimit);
  6. subQuery = QueryGenerationUtils.wrapAsSubQuery(subQuery);
  7. subQuery.setDistinct(true);
  8. }
  9. if(itemLimit != null) {
  10. subQuery.setLimit(itemLimit);
  11. }
  12. Element esq = new ElementSubQuery(subQuery);
  13. Query result = new Query();
  14. Expr aggCount = result.allocAggregate(new AggCount());
  15. result.setQuerySelectType();
  16. result.getProject().add(outputVar, aggCount);
  17. result.setQueryPattern(esq);
  18. return result;
  19. }

相关文章