Saul is a modeling language implemented as a domain specific language (DSL) in Scala. The main goal of Saul is to facilitate designing machine learning models with arbitrary configurations for the application programmer, including:
The flexibility in designing above components helps rapid development of intelligent AI systems with one or more learned functions that interact with each other. Saul offers a convenient, declarative syntax for classifier and constraint definition directly in terms of the objects in the programmer's application. With Saul, the details of feature extraction, learning, model evaluation, and inference are all abstracted away from the programmer, leaving him to reason more directly about his application.
The project contains three modules. See the readme files for each module:
The project's official chat group is at Slack
Tutorial
Visit each link for its content
The api docs are included here.
This project has been started by Parisa Kordjamshidi and the development has been done in collaboration with Hao Wu, Sameer Singh, Daniel Khashabi, Christos Christodoulopoulos and Bhargav Mangipudi.
If you use this tool, please cite the following paper:
[1] Parisa Kordjamshidi, Dan Roth, and Hao Wu. "Saul: Towards declarative learning based programming." Proceedings of the International Joint Conferences on Artificial Intelligence (IJCAI), 2015.
[2] Parisa Kordjamshidi, Daniel Khashabi, Christos Christodoulopoulos, Bhargav Mangipudi, Sameer Singh and Dan Roth. "Better call Saul: Flexible Programming for Learning and Inference in NLP." International Conference on Computational Linguistics (COLING), 2016.
Author: CogComp
Source Code: https://github.com/CogComp/saul
License: View license