A framework for context-awareness in artificial systems