A demonstration-based approach for domain-specific modeling language creation