# File lib/activerdf_redland/redland.rb, line 90
 90:         def query(query)
 91:                 qs = Query2SPARQL.translate(query)
 92:     $activerdflog.debug "RedlandAdapter: executing SPARQL query #{qs}"
 93:                 
 94:                 clauses = query.select_clauses.size
 95:                 redland_query = Redland::Query.new(qs, 'sparql')
 96:                 query_results = @model.query_execute(redland_query)
 97: 
 98:                 # return Redland's answer without parsing if ASK query
 99:                 return [[query_results.get_boolean?]] if query.ask?
100:                 
101:                 $activerdflog.debug "RedlandAdapter: found #{query_results.size} query results"
102: 
103:                 # verify if the query has failed
104:                 if query_results.nil?
105:                   $activerdflog.debug "RedlandAdapter: query has failed with nil result"
106:                   return false
107:                 end
108:                 if not query_results.is_bindings?
109:                   $activerdflog.debug "RedlandAdapter: query has failed without bindings"
110:                   return false
111:                 end
112: 
113: 
114:                 # convert the result to array
115:                 #TODO: if block is given we should not parse all results into array first
116:                 results = query_result_to_array(query_results) 
117:                 
118:                 if block_given?
119:                         results.each do |clauses|
120:                                 yield(*clauses)
121:                         end
122:                 else
123:                         results
124:                 end
125:         end