============================
Batches: Loading and Purging
============================
---------------
Batch Structure
---------------
A batch is a directory conforming to the `NDNP (National Digital Newspaper Program) `_ specification.
The top-level directory name follows the pattern ``batch_{awardee}_{name}_ver{NNN}``, for example ``batch_txa_aggie_ver009``.
Inside the batch root is a single ``data/`` directory containing a ``batch.xml`` manifest and one subdirectory per
newspaper title (named by LCCN)::
batch_txa_aggie_ver009/
└── data/
├── batch.xml
└── sn84009780/
└── print/
├── 1990010101/
│ ├── 1990010101.xml
│ ├── 0001.jp2
│ ├── 0001.pdf
│ ├── 0001.xml
│ ├── 0002.jp2
│ ├── 0002.pdf
│ ├── 0002.xml
│ └── ...
├── 1990030101/
│ └── ...
└── ...
``batch.xml``
=============
The ``batch.xml`` file is an NDNP manifest that enumerates every issue in the batch. Each ```` element records the newspaper's LCCN, the issue date, the edition order, and the relative path to that issue's METS/MODS file:
.. code-block:: xml
sn84009780/print/1990010101/1990010101.xml
...
Issue directories
=================
Each issue lives in a directory named ``YYYYMMDDEE``, where ``YYYYMMDD`` is the publication date and ``EE`` is the zero-padded edition order (e.g., ``1990010101`` = January 1, 1990, edition 1).
The directory contains one METS/MODS XML file (named to match the directory) plus three files per page, numbered sequentially from ``0001``:
.. list-table::
:header-rows: 1
:widths: 20 80
* - File
- Description
* - ``YYYYMMDDEE.xml``
- Issue-level METS/MODS file containing bibliographic metadata (title, volume, issue number, date) and a file inventory for every page in the issue.
* - ``NNNN.jp2``
- JPEG 2000 image of the page.
* - ``NNNN.pdf``
- PDF of the page.
* - ``NNNN.xml``
- ALTO (Analyzed Layout and Text Object) OCR XML with word-level text and positional coordinates used by open-oni for full-text search.
---------------
Loading a Batch
---------------
Connect to Open Oni's web pod. Run ``kubectl get pods -n newspaper``:
NAME READY STATUS RESTARTS AGE
rais-6795576f66-vrt9t 1/1 Running 0 3d16h
solr-8c7cdddc7-gt9w7 1/1 Running 0 3d16h
web-6ffcbdbf5-m95q9 1/1 Running 0 3d16h
Assuming you've already copied your files to the pod, just connect: ``kubectl exec -it web-6ffcbdbf5-m95q9 -n newspaper -- bash``
Now, activate your virtual environment so you can use python: ``source ENV/bin/activate``
Now load batch like: ``./manage.py load_batch /opt/openoni/data/batches/batch_txa_aggie_ver009/
chmod -R 777 /var/tmp/django_cache``