This paper describes a middleware framework for IoT smart spaces, SemIoTic, that provides application developers and end-users with the semantic domain-relevant view of the smart space, hiding the complexity of having to deal with/understand lower-level information generated by sensors and actuators. SemIoTic uses a meta-model, based on the popular SOSA/SSN ontology with some extensions, to represent relationships between the low-level IoT devices’ world (i.e., devices, observations) and semantic concepts (i.e., users and spaces and their observable attributes). It supports a language using which users can express their action requirements (i.e., requests for sensor data, commands for actuators, and privacy preferences) in terms of user-friendly high-level concepts. We present an ontology-based algorithmic approach to translate user-defined actions into sensor/actuators commands. Finally, our end-to-end approach includes a cross-layer solution to provide interoperability with diverse IoT devices and their data exchange protocols.