A foundational framework for situated computing