A goal-driven crime scripting framework