/** Turns an RDF model, with properties and classses from the * result set vocabulary, into a SPARQL result set which is rewindable * (has a .reset()operation). * The result set formed is a copy in memory. * * @param model * @return ResultSetRewindable */ static public ResultSetRewindable makeRewindable(Model model) { return new RDFInput(model) ; }
/** Process a result set encoded in RDF according to * <code>@link{http://www.w3.org/2001/sw/DataAccess/tests/result-set}#</code> * * @param model */ public RDFInput(Model model) { buildFromDumpFormat(model); }
private void buildOneResource(Resource root) { buildVariables(root) ; int count = buildPreprocess(root) ; if ( root.getModel().contains(null, ResultSetGraphVocab.index, (RDFNode)null) ) buildRowsOrdered(root, count) ; else buildRows(root) ; }
private void buildFromDumpFormat(Model resultsModel) { varNames = new ArrayList<String>() ; StmtIterator sIter = resultsModel.listStatements(null, RDF.type, ResultSetGraphVocab.ResultSet) ; for ( ; sIter.hasNext() ;) { // For each root Statement s = sIter.nextStatement() ; Resource root = s.getSubject() ; buildOneResource(root) ; } sIter.close() ; reset() ; }
private void buildRowsOrdered(Resource root, int count) { Model m = root.getModel() ; // Assume one result set per file. for ( int index = 1 ; ; index++ ) { Literal ind = m.createTypedLiteral(index) ; StmtIterator sIter = m.listStatements(null, ResultSetGraphVocab.index, ind) ; if ( ! sIter.hasNext() ) break ; Statement s = sIter.nextStatement() ; if ( sIter.hasNext() ) Log.warn(this, "More than one solution: index = "+index) ; Resource soln = s.getSubject() ; Binding rb = buildBinding(soln) ; rows.add(rb) ; sIter.close() ; } if ( rows.size() != count ) Log.warn(this, "Found "+rows.size()+": expected "+count) ; }
private void buildFromDumpFormat(Model resultsModel) { varNames = new ArrayList<String>() ; StmtIterator sIter = resultsModel.listStatements(null, RDF.type, ResultSetGraphVocab.ResultSet) ; for ( ; sIter.hasNext() ;) { // For each root Statement s = sIter.nextStatement() ; Resource root = s.getSubject() ; buildOneResource(root) ; } sIter.close() ; reset() ; }
private void buildRowsOrdered(Resource root, int count) { Model m = root.getModel() ; // Assume one result set per file. for ( int index = 1 ; ; index++ ) { Literal ind = m.createTypedLiteral(index) ; StmtIterator sIter = m.listStatements(null, ResultSetGraphVocab.index, ind) ; if ( ! sIter.hasNext() ) break ; Statement s = sIter.nextStatement() ; if ( sIter.hasNext() ) Log.warn(this, "More than one solution: index = "+index) ; Resource soln = s.getSubject() ; Binding rb = buildBinding(soln) ; rows.add(rb) ; sIter.close() ; } if ( rows.size() != count ) Log.warn(this, "Found "+rows.size()+": expected "+count) ; }
private void buildOneResource(Resource root) { buildVariables(root) ; int count = buildPreprocess(root) ; if ( root.getModel().contains(null, ResultSetGraphVocab.index, (RDFNode)null) ) buildRowsOrdered(root, count) ; else buildRows(root) ; }
/** Turns an RDF model, with properties and classses from the * result set vocabulary, into a SPARQL result set. * The result set formed is a copy in memory. * * @param model * @return ResultSet */ public static ResultSet fromRDF(Model model) { return new RDFInput(model) ; }
private void buildRows(Resource root) { // Now the results themselves int count = 0 ; StmtIterator solnIter = root.listProperties(ResultSetGraphVocab.solution) ; for ( ; solnIter.hasNext() ; ) { Resource soln = solnIter.nextStatement().getResource() ; count++ ; Binding rb = buildBinding(soln) ; rows.add(rb) ; } solnIter.close() ; if ( root.hasProperty(ResultSetGraphVocab.size)) { try { int size = root.getRequiredProperty(ResultSetGraphVocab.size).getInt() ; if ( size != count ) Log.warn(this, "Warning: Declared size = "+size+" : Count = "+count) ; } catch (JenaException rdfEx) {} } }
/** Process a result set encoded in RDF according to * <code>@link{http://www.w3.org/2001/sw/DataAccess/tests/result-set}#</code> * * @param model */ public RDFInput(Model model) { buildFromDumpFormat(model); }
/** Turns an RDF model, with properties and classses from the * result set vocabulary, into a SPARQL result set. * The result set formed is a copy in memory. * * @param model * @return ResultSet */ static public ResultSet makeResults(Model model) { return new RDFInput(model) ; }
private void buildRows(Resource root) { // Now the results themselves int count = 0 ; StmtIterator solnIter = root.listProperties(ResultSetGraphVocab.solution) ; for ( ; solnIter.hasNext() ; ) { Resource soln = solnIter.nextStatement().getResource() ; count++ ; Binding rb = buildBinding(soln) ; rows.add(rb) ; } solnIter.close() ; if ( root.hasProperty(ResultSetGraphVocab.size)) { try { int size = root.getRequiredProperty(ResultSetGraphVocab.size).getInt() ; if ( size != count ) Log.warn(this, "Warning: Declared size = "+size+" : Count = "+count) ; } catch (JenaException rdfEx) {} } }
/** * Turns an RDF model, with properties and classses from the result set * vocabulary, into a SPARQL result set which is rewindable (has a * .reset()operation). The result set formed is a copy in memory. * * @param model * @return ResultSetRewindable */ static public ResultSetRewindable makeRewindable(Model model) { return new RDFInput(model); }
/** * Turns an RDF model, with properties and classses from the result set * vocabulary, into a SPARQL result set. The result set formed is a copy in * memory. * * @param model * @return ResultSet */ public static ResultSet fromRDF(Model model) { return new RDFInput(model); }
/** * Turns an RDF model, with properties and classses from the result set * vocabulary, into a SPARQL result set. The result set formed is a copy in * memory. * * @param model * @return ResultSet */ static public ResultSet makeResults(Model model) { return new RDFInput(model); }