An architecture for context-aware reactive systems based on run-time semantic models