Semantic-based Planning of User Interface Mashups