Saul is a modeling language implemented as a domain specific language (DSL) in Scala that facilitate designing machine learning models with arbitrary configurations for the application programmer, including, interacting with raw data and setting it in a flexible graph structure (i.e. data model) using the original available data structures, relational feature extraction by flexible querying from the data model graph and designing flexible learning models including various configurations in which learners interact.