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:
99: return [[query_results.get_boolean?]] if query.ask?
100:
101: $activerdflog.debug "RedlandAdapter: found #{query_results.size} query results"
102:
103:
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:
115:
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