A persistent snapshot is taken and maintained in accordance with a novel
method and system for extended periods of time using only a portion of a
computer readable medium of which the snapshot is taken. Multiple
snapshots can be taken in succession at periodic intervals and maintained
practically indefinitely. The snapshots are maintained even after
powering down and rebooting of the computer system. The state of the
object of the snapshot for each snapshot preferably is accessible via a
folder on volume of the snapshot. A restore of a file or folder may be
accomplished by merely copy that file or folder from the snapshot folder
to a current directory of the volume. Alternatively, the entire computer
system may be restored to a previous snapshot state thereof. Snapshots
that occurred after the state to which the computer is restored are not
lost in the restore operation. Different rule sets and scenarios can be
applied to each snapshot. Furthermore, each snapshot can be written to
within the context of the snapshot and later restored to its pristine
condition. Software for implementing the systems and methods of snapshots
in accordance with the present invention may comprise firmware of a hard
disk drive controller or a disk controller board or within the HDD casing
itself. The present invention further comprises novel systems and methods
in which the systems and methods of taking and maintaining snapshots are
utilized in creating and managing temporal data stores, including
temporal database management systems. The implications for data mining
and exploration, data analysis, intelligence gathering, and artificial
intelligence (just to name a few areas) are profound.