1. A method of data analysis, comprising: determining with a processor dynamic patterns over time of user characteristics; determining with a processor dynamic patterns over time of information of interest to users; and generating with a processor predictions or recommendations based on users' dynamic pattern variations and documents' dynamic patterns.