Skip to content
Doug Lindholm edited this page Jun 3, 2015 · 3 revisions

LaTiS is first and foremost a data model. It is the simplicity of the data model that allows LaTiS to enable data integration and provide a unified interface to access data via a web service or directly by any programming language in the Java ecosystem. The unifying data model also enables data manipulation.

The Scala implementation of the LaTiS data model is evolving towards being a domain specific language (DSL) for data analysis. The initial emphasis is on scientific datasets which tend to be stored using a multi-dimensional array data model. However, a more appropriate abstraction often is to represent the dataset as a sequence of samples of measured or computed dependent variables as a function of independent variables. It's the ability of the LaTiS data model to represent these functional relationships that distinguishes it from most data models. The implementation using Functional Programming principles in Scala has enabled some very interesting things.

The LaTiS data model was largely inspired by the VisAD data model. The model is designed to represent arbitrarily complex variables/parameters/datasets in terms of only three basic constructs:

  • Scalar: A single Variable
  • Tuple: A collection of Variables
  • Function: A mapping from an independent Variable to a dependent Variable

Because a Variable can be any one of those types, they can be composed in any way to represent/model any dataset.

Clone this wiki locally