How ucla-cdl/prior-weaver works
PriorWeaver is a web application for eliciting Bayesian priors by turning domain assumptions into an editable representative dataset, fitted prior distributions, and prior-predictive visual checks. The principal workflow moves through model setup, variable and relationship specification, and reviewing or adjusting results; the README also describes flexible iteration across these stages. The frontend components and context relationships are supported by excerpts and the SOURCE INDEX. Backend internals beyond the Bambi parser were not sampled, so backend capability links are limited to explicit API calls or README-described behavior.
Main entry points: Workspace.jsx Elicitation workspace · App.js App router · VariableContext.jsx Variables and parameters · EntityContext.jsx Representative entities
Components 21
App entry and navigation
- App router
src/App.js - Route definitions
src/shared/routes.js - Home overview
src/containers/Home.jsx - Admin view
src/containers/Admin.jsx - Documentation view
src/containers/Doc.jsx
Prior elicitation workspace
- Elicitation workspace
src/containers/Workspace.jsx - Workspace navigation
src/components/NavBar.jsx - Model setup
src/components/IntroPage.jsx - Model panel
src/components/ModelPanel.jsx - Univariate plot
src/components/VariablePlot.jsx - Bivariate plot
src/components/BiVariablePlot.jsx - Multivariate plot
src/components/ParallelSankeyPlot.jsx - Parameter plot
src/components/ParameterPlot.jsx - Prior results
src/components/ResultsPanel.jsx
Shared elicitation state
- Workspace settings
src/contexts/WorkspaceContext.jsx - Variables and parameters
src/contexts/VariableContext.jsx - Representative entities
src/contexts/EntityContext.jsx - Selection and filtering
src/contexts/SelectionContext.jsx
Model and service backend
- PriorWeaver API
main.py - Bambi model parser
bambi_parser.py
Other components
- Domain analyst
Connections 44
- Domain analyst → Home overview: opens application
README.md - App router → Route definitions: uses paths
src/App.js - App router → Elicitation workspace: routes to
src/App.js - App router → Home overview: routes to
src/App.js - App router → Admin view: routes to
src/App.js - App router → Documentation view: routes to
src/App.js - App router → Workspace settings: provides state
src/App.js - App router → Variables and parameters: provides state
src/App.js - App router → Representative entities: provides state
src/App.js - App router → Selection and filtering: provides state
src/App.js - Elicitation workspace → Model setup: renders setup
src/containers/Workspace.jsx - Elicitation workspace → Workspace navigation: renders navigation
src/containers/Workspace.jsx - Elicitation workspace → Model panel: renders panel
src/containers/Workspace.jsx - Elicitation workspace → Univariate plot: renders plot
src/containers/Workspace.jsx - Elicitation workspace → Bivariate plot: renders plot
src/containers/Workspace.jsx - Elicitation workspace → Multivariate plot: renders plot
src/containers/Workspace.jsx - Elicitation workspace → Parameter plot: renders plots
src/containers/Workspace.jsx - Elicitation workspace → Prior results: renders results
src/containers/Workspace.jsx - Model setup → PriorWeaver API: parses model
- Variables and parameters → PriorWeaver API: requests parsing
src/contexts/VariableContext.jsx - Workspace settings → PriorWeaver API: fetches settings
src/contexts/WorkspaceContext.jsx - Workspace settings → PriorWeaver API: loads records
src/contexts/WorkspaceContext.jsx - Representative entities → PriorWeaver API: saves record
src/contexts/EntityContext.jsx - PriorWeaver API → Bambi model parser: parses Bambi code
main.py - Variables and parameters → Workspace settings: uses model settings
src/contexts/VariableContext.jsx - Representative entities → Workspace settings: reads user mode
src/contexts/EntityContext.jsx - Representative entities → Variables and parameters: uses variables
src/contexts/EntityContext.jsx - Selection and filtering → Variables and parameters: filters by variables
src/contexts/SelectionContext.jsx - Univariate plot → Variables and parameters: reads variables
src/components/VariablePlot.jsx - Univariate plot → Representative entities: reads entities
src/components/VariablePlot.jsx - Univariate plot → Selection and filtering: uses selection
src/components/VariablePlot.jsx - Bivariate plot → Variables and parameters: reads variables
src/components/BiVariablePlot.jsx - Bivariate plot → Representative entities: reads entities
src/components/BiVariablePlot.jsx - Bivariate plot → Selection and filtering: uses selection
src/components/BiVariablePlot.jsx - Multivariate plot → Variables and parameters: reads variables
src/components/ParallelSankeyPlot.jsx - Multivariate plot → Representative entities: reads entities
src/components/ParallelSankeyPlot.jsx - Multivariate plot → Selection and filtering: updates selection
src/components/ParallelSankeyPlot.jsx - Parameter plot → Variables and parameters: reads parameters
src/components/ParameterPlot.jsx - Parameter plot → Representative entities: reads entities
src/components/ParameterPlot.jsx - Prior results → Variables and parameters: reads parameters
src/components/ResultsPanel.jsx - Prior results → Representative entities: reads entities
src/components/ResultsPanel.jsx - Prior results → PriorWeaver API: updates distribution
src/components/ResultsPanel.jsx - Domain analyst → Elicitation workspace: specifies assumptions
README.md - Domain analyst → Prior results: reviews prior checks
README.md