A Comprehensive Study of Declarative Modelling Languages