def query(q, options = {}, &block)
      query = Query::Results.new(q, options)
      query.process(self, &block)
    end
def query(q, options = {}, &block)
      query = Query::Results.new(q, options)
      query.process(self, &block)
    end
Query the model RDF graph using a query language

 @param [String] q the text of the query
 @param [Hash<Symbol => [String, URI]>] options options for the query
 @option options [String] :language language of the query, one of:
   - "sparql10" SPARQL 1.0 W3C RDF Query Language (default)
   - "sparql" SPARQL 1.1 (DRAFT) Query and Update Languages
   - "sparql11-query" SPARQL 1.1 (DRAFT) Query Language
   - "sparql11-update" SPARQL 1.1 (DRAFT) Update Language
   - "laqrs" LAQRS adds to Querying RDF in SPARQL
   - "rdql" RDF Data Query Language (RDQL)
 @option options [String] :language_uri URI of the query language, if applicable
 @option options [String] :base_uri base URI of the query, if applicable
 @return [void]
 @note
   The returned value is determined by the type of the query:
   - [Boolean] for SPARQL ASK queries (ignores block, if given)
   - [Redlander::Model] for SPARQL CONSTRUCT queries
     if given a block, yields the constructed statements to it instead
   - [Array<Hash>] for SPARQL SELECT queries
     where hash values are Redlander::Node instances;
     if given a block, yields each binding hash to it
   - nil, if query fails
 @raise [RedlandError] if fails to create a query