It might be more clear to use `RDF::Graph`'s arguments here and just delete the options that shouldn't pass through to RDF::Graph, rather than conditionally popping arguments based on the first argument's type.  e.g.:

    def initialize(context = nil, options = {}, &block)
      resource_uri = opts.delete(:ressource_uri)
      ...
    end