func-adl is an implementation of a functional analysis description language that is declarative. The project is exploring several different aspects of this:
- The separation between a query language and a complete analysis
- Can a query be reduced to a single abstract syntax tree or DAG computational graph
- Can multiple user-interface languages use the same backend?
- Given that physics is usually to be evaluated in a per event basis, can the user analysis be written in such a way that the user thinks only about single event quantities even though the manipulation is done in a columnar way?
- Can a common query language be used to run on different data formats (binary experimental format, flat ROOT TTree’s, and awkward array columnar analysis)
Repositories connected with this work:
- - The original exploration for this work was done here
- - A client (to be included in the user’s analysis) and a backend that runs the queries.
This work is based on the original work done with LINQ in the C# programming language (prior to the start or IRIS-HEP):
- Developing a Declarative Analysis Language: LINQToROOT - Given CHEP 2018
- Experiments Toward a Modern Analysis Environment: Using TMVA and other tools in a functional world with continuous integration for analysis - Given CHEP 2017
- Gordon Watts
- Emma Torro
- Mason Proffitt