Situate: An Agent-Based System for Situation Recognition