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 copying 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.