  Declarative machine learning (ML) aims at the high-level specification of ML
tasks or algorithms, and automatic generation of optimized execution plans from
these specifications. The fundamental goal is to simplify the usage and/or
development of ML algorithms, which is especially important in the context of
large-scale computations. However, ML systems at different abstraction levels
have emerged over time and accordingly there has been a controversy about the
meaning of this general definition of declarative ML. Specification
alternatives range from ML algorithms expressed in domain-specific languages
(DSLs) with optimization for performance, to ML task (learning problem)
specifications with optimization for performance and accuracy. We argue that
these different types of declarative ML complement each other as they address
different users (data scientists and end users). This paper makes an attempt to
create a taxonomy for declarative ML, including a definition of essential basic
properties and types of declarative ML. Along the way, we provide insights into
implications of these properties. We also use this taxonomy to classify
existing systems. Finally, we draw conclusions on defining appropriate
benchmarks and specification languages for declarative ML.
