Logo ProcessCore

Querying

Process list is an emerging graph:

Object model

flowchart TD
    Process1 --input--> Sample1
    Process1 --"output"--> Sample2
    Process2 --input--> Sample2
    Process2 --"output"--> Sample3

Graph

graph LR
    Sample1 --Process1--> Sample2 
    Sample2 --Process2--> Sample3

Types and operations

In addition to the core entities defined in the core specification and their properties, the implementation exposes an additional type: Path

This type contains a collection of processes connected through their shared nodes (input and output entities). Query operations live on the owning model types in src/ProcessCore/Graph.fs: node-centered traversal on IONode/Material/Data, and dataset-scoped convenience queries on Dataset.

I.e. if we ask for a path of a specific sample, we want to get all paths (i.e. distinct sequences of processes) that lead through this sample (including it being the start or end of the path).

Query use cases

Technical considerations

Performance is key

Queries should be flexible and composable:

Type something to start searching.