JX logo

The JX Expression Language is an extension of the JSON data description language. It combines familiar expression operators, function calls, external data, and ordinary JSON contents to yield a powerful data querying and manipulation language. JX is used throughout the CCTools to manage and query unstructured data.

For example, JX expressions can be used to describe jobs in a workflow:

{
    "command" : "collect.exe"
    "inputs" :  [ "input."+i+".txt" ]
    "outputs" : [ "output."+i+".txt" ]
} for i in range(1,100)

Or to write LINQ-style queries on remote data:

fetch(url).select(type=="wq_master").select(tasks_submitted>100).project([name,tasks_running+tasks_waiting])

Related Publications

  1. Flexible Partitioning of Scientific Workflows Using the JX Workflow Language
    Tim Shaffer, Nathaniel Kremer-Herman, and Douglas Thain
    In Practice and Experience in Advanced Research Computing (PEARC), 2019
    doi: 10.1145/3332186.3338100
  2. Poster: A First Look at the JX Workflow Language
    Tim Shaffer, Kyle M.D. Sweeney, Nathaniel Kremer-Herman, and Douglas Thain
    In IEEE International Conference on e-Science, 2018
    doi: 10.1109/eScience.2018.00094