The SAM Algorithm for Analogy-Based Story Generation