Facilitating constructivist e-learning by software agents by Weidong Pan