Assisted Mashup Development: On the Discovery and Recommendation of Mashup Composition Knowledge