CityPulse is a project that aims to develop a distributed framework for processing large-scale real-time IoT and social data streams to extract knowledge for smart city applications. The framework will semantically integrate heterogeneous data sources, perform large-scale analytics, and adapt processing in real-time based on context. It will be tested through prototype smart city applications to evaluate its ability to support future smart city platforms and products. The key issues addressed are virtualization of data, on-demand federation of sources, large-scale aggregation and analytics, real-time interpretation and processing control, and reliable information extraction.