Providing the capability to both store and subsequently retrieve unordered information of many different types and formats has been a largely neglected aspect of computer software development, although there have been brief flashes of partial brilliance in the past.