A constructive theory of automated ideation