def find(s=nil,p=nil,o=nil,context=nil)
statement = Statement.new(s,p,o,self)
if context
context = Node.ensure(context)
raise RedlandError.new("Cannot make a Node from an object of #{context.class}") if not context
my_stream = Redland.librdf_model_find_statements_in_context(self.model,statement.statement,context)
else
my_stream = Redland.librdf_model_find_statements(self.model,statement.statement)
end
return nil if not my_stream
stream = Stream.new(my_stream,self)
if block_given?
while not stream.end?
my_statement = stream.current
yield my_statement.subject,my_statement.predicate,my_statement.object
stream.next
end
else
return get_statement_array(stream)
end
end