Skip to main page content
Access keys NCBI Homepage MyNCBI Homepage Main Content Main Navigation
. 2015 Jul;2015:1844-1851.

Saul: Towards Declarative Learning Based Programming

Affiliations
Free PMC article

Saul: Towards Declarative Learning Based Programming

Parisa Kordjamshidi et al. IJCAI (U S). .
Free PMC article

Abstract

We present Saul, a new probabilistic programming language designed to address some of the shortcomings of programming languages that aim at advancing and simplifying the development of AI systems. Such languages need to interact with messy, naturally occurring data, to allow a programmer to specify what needs to be done at an appropriate level of abstraction rather than at the data level, to be developed on a solid theory that supports moving to and reasoning at this level of abstraction and, finally, to support flexible integration of these learning and inference models within an application program. Saul is an object-functional programming language written in Scala that facilitates these by (1) allowing a programmer to learn, name and manipulate named abstractions over relational data; (2) supporting seamless incorporation of trainable (probabilistic or discriminative) components into the program, and (3) providing a level of inference over trainable models to support composition and make decisions that respect domain and application constraints. Saul is developed over a declaratively defined relational data model, can use piecewise learned factor graphs with declaratively specified learning and inference objectives, and it supports inference over probabilistic models augmented with declarative knowledge-based constraints. We describe the key constructs of Saul and exemplify its use in developing applications that require relational feature engineering and structured output prediction.

Figures

Figure 1
Figure 1
A part of the data graph; this is a propositionalized graph containing the complete instances as observed by Saul; rectangles show entities, diamonds show relationships and ovals show properties.
Figure 2
Figure 2
A part of the model graph of the Entity-mention-Relation task. We show the entities and relationships with double line indicating the classes of instances in contrast to the data model representation. The arrows show the degree of relationships in each direction.
Figure 3
Figure 3
a) the FG of a pipeline model, b) the FG of a joint model in which the labels are related with constraint factors.

Similar articles

See all similar articles

LinkOut - more resources

Feedback