Situation Identification Techniques in Pervasive Computing: A Review