Description:
Design and implement a structured database to store and query information about laser systems, electron beams, experiments, and facilities.
The goal is to clearly separate generic (idealized) definitions from deployed (real-world) systems and to provide a consistent data model accessible from Julia.
Planned Structure:
- Generic Definitions: canonical laser and beam templates (e.g. Ti:Sapphire, GaussianElectronBeam).
- Deployed Systems: real-world systems at specific facilities (e.g. RELAX @ HiBEF).
- Experiments: combinations of deployed systems with collision partners.
- Facilities: top-level containers grouping systems and experiments.
Core Deliverables:
- Define corresponding Julia structs (
GenericLaser, DeployedLaser, ColliderExperiment, Facility).
- Implement JSON-based storage for all entities (e.g.
generic_lasers.json, facilities.json, ...).
- Provide a
Database module for loading and querying entries.
- Add example data and usage patterns.
- Include unit tests for parsing, linking, and querying the database.
Open Questions:
- Should links between entries (e.g. facility ↔ experiment) be represented as strings, symbols, or singleton types?
- Is there a Julia package suitable for storing bibliographic references (BibTeX-like) independent of citation format?
Example Queries:
- reading all entries of a kind
Database.all_lasers()
Database.all_electrons()
Database.all_experiments()
Database.all_facilities()
- contributing certain entry
Database.contribute!(::AbstractLaserBeam)
Database.contribute!(::AbstractElectronBeam)
Database.contribute!(::AbstractExperiment)
Database.contribute!(::AbstractFacility)
Next Steps:
Description:
Design and implement a structured database to store and query information about laser systems, electron beams, experiments, and facilities.
The goal is to clearly separate generic (idealized) definitions from deployed (real-world) systems and to provide a consistent data model accessible from Julia.
Planned Structure:
Core Deliverables:
GenericLaser,DeployedLaser,ColliderExperiment,Facility).generic_lasers.json,facilities.json, ...).Databasemodule for loading and querying entries.Open Questions:
Example Queries:
Database.DATAPATHNext Steps:
Databasequery interface