Authoring Reusable Crowds Using Semantics