Authoring Reusable Crowds using Semantics