Getting Started¶
Prerequisites¶
- Python 3.14+ (managed via
uv) xsltproc— required for MARCXML → BIBFRAME conversion via marc2bibframe2- Git with submodule support (the marc2bibframe2 XSLT is a git submodule)
Install system dependencies¶
# Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y xsltproc
# macOS (Homebrew)
brew install libxslt
Clone & setup¶
git clone --recursive https://github.com/mikkovihonen/bffi-conversion-pipeline.git
cd bffi-conversion-pipeline
uv sync --frozen
The --recursive flag initializes the third_party/marc2bibframe2 submodule. If you cloned without it:
Run the pipeline¶
1. Create a run directory¶
The run directory is the atomic output boundary for one pipeline invocation.
2. Stage MARCXML input¶
3. Convert MARCXML → BIBFRAME¶
4. Convert BIBFRAME → BFFI¶
5. Convert BFFI → MARCXML (round-trip)¶
6. Evaluate round-trip¶
bffi-pipeline roundtrip-eval \
--source-dir "$RUN/marc" \
--reconstructed-dir "$RUN/marc-reconstructed" \
--html "$RUN/eval/review.html"
CLI reference¶
All subcommands accept --help for full option listings: