Source: https://www.cs.umd.edu/~ben/ShneidermanCACM6-2007.pdf