Dreams seem very similar to data compression in a computer like a zip-file. We gather a huge pile of data throughout the day and when we rest, we compress this raw data into chunks of similar data (impressions/feelings) to store it in the long term memory more efficiently. It would make sense, because when we dream we often see things that we experienced but mixed up with other stuff and also more symbolically. Has anyone had this theory before or is there any research on this topic? Just the thoughts of a curious software engineer. Cheers.