Skip to content
Language:DeutschEnglish Last updated: 2026-08-19

Static publication and round trip

Anton knows two self-contained export packages that pack an entire (sub-)fonds including media into one ZIP file — without a running Anton instance being needed for display or restoration:

  • A+ static bundle — the CIDOC CRM/RiC-O graph plus media derivatives, safe for public use and hostable offline. Intended as a publication.
  • Native round trip — Anton's own format plus master media, lossless and re-importable. Intended as backup / migration.

Guiding idea: Anton is the editor, the package is the delivery. Small archives can maintain their holdings with it and publish the result free of charge as a static website (GitHub Pages, for example) — without a server, without a database, without running costs.

In brief: which package for what?

  • Show publicly / deliver to portalsA+ static bundle (private material is filtered out, standards-compliant).
  • Back up / migrate to another Anton instancenative round trip (lossless, but contains private data → do not host publicly).

A+ static bundle (CIDOC CRM + RiC-O)

A ZIP with the serialised A+ graph as data.jsonld at the root, the copied media derivatives (thumb/web) under media/{id}/… and a manifest.json with a transparency overview. The media references in the graph are bundle-relative paths (media/123/web.jpg), so that the package renders anywhere — from a hard disk, from GitHub Pages, from a subdirectory.

bundle.zip
├── data.jsonld          ← CIDOC/RiC-O graph (JSON-LD)
├── manifest.json        ← format, media count, transparency summary
└── media/{id}/…         ← thumb/web derivatives

Producing it:

# CLI — writes <identifier>-bundle.zip to storage/rdf/
php artisan anton:export-rdf --env=<slug> --root=<id> --profile=a-plus-bundle

Or in the UI under Data export → RDF, column «A+ bundle (static)». The finished ZIP appears in the file list for download.

Safe for public use: the same data protection filter applies as with the RDF export — private objects, private_media and private note types (internal_note, archivists_notes, comment) are left out. The manifest.json transparently counts how much was filtered and which conversions were missing, so that the package can be checked before publication.

Unless the filter is switched off

With --include-protected the blocked records come along; with --include-originals the master files as well. Both are intended for migration, not for publication — a package produced that way does not belong on GitHub Pages. See migration export. The UI does not pass the switches through; via the interface, the publicly safe variant is always produced.

For details on the A+ graph itself, see RDF export.


Native round trip (anton-import-format)

A ZIP with the holdings as an anton-import-format document (metadata.json) plus the master media files. It is the lossless counterpart to the (deliberately lossy) CIDOC package: what Anton exports here, Anton can read back in.

package.zip
├── metadata.json        ← anton-import-format v0.4 (JSON)
└── media/{id}/…         ← master files (originals)

Producing and restoring:

# export a subtree
php artisan anton:export-native --env=<slug> --root=<id> --out=/path/package.zip

# read it back in (into the same or a different Anton instance)
php artisan anton:import-native /path/package.zip --env=<targetslug>

# overwrite existing records instead of skipping them
php artisan anton:import-native /path/package.zip --env=<targetslug> --update

What it carries losslessly: objects (including uuid, formset_id, all language variants of title/label), hierarchy (via the parent uuid), events, descriptors, notes of all records (including private ones, biographies), termselect values and the media identity. It applies no data protection filter — it is a backup, not a publication.

Identity via uuid (portable). Objects and authority data (Actor/Place/Keyword) carry a stable, instance-independent uuid. On re-import they are re-anchored via it:

  • unknown uuid → new record,
  • known uuid → skipped (updated with --update),
  • the same uuid in two holdings → one record (no duplicates).

This makes the round trip work between different Anton instances as well: a fonds from instance A ends up in instance B under its original uuids; a later repeat import updates the same records instead of duplicating them.

Contains private data

The native export is a backup and deliberately carries private objects, private media and internal notes as well. It is not intended for public hosting — the A+ static bundle exists for that.

The underlying format is maintained as a separate, versioned package: kraenzle-ritter/anton-import-format. The Excel import and the agate SIP pipeline consume the same format.


Concrete comparison: anton format ↔ CIDOC

Both packages describe the same holdings and pack the same media — but with opposite purposes. One is standards interop (broadly consumable, semantically rich, lossy), the other is Anton-native fidelity (lossless, re-importable, simple).

anton format (native round trip) CIDOC A+ bundle
Purpose Backup · restore · migration between Anton instances Publication · interop · static display
Basis anton-import-format v0.4 (JSON) CIDOC CRM 7.1 + RiC-O 1.1 (JSON-LD)
Standardised No (Anton's own schema) Yes (international ontologies)
Lossless Yesuuid, formset_id, all locales, all notes, termselect, raw values No — discovery view; no formset_id, no raw values
Re-importable Yes (anton:import-native, uuid-anchored) No
Privacy Contains private material (it is a backup!) → do not host publicly Private material filtered → intended for public hosting; no longer so with --include-protected
Structure Flat and close to Anton: entries[] with title/identifier/events/notes/files Graph of CRM/RiC nodes and properties
Rendering in a JS viewer Simple (directly readable/mappable) More laborious (ontology traversal needed)
Media Master files (originals) thumb/web derivatives; with --include-originals the masters as well
Portability uuid identity, also cross-tenant bundle-relative locators, offline
Target group Anton operators Aggregators (Europeana, Memobase) · a custom static viewer
Command anton:export-native / anton:import-native anton:export-rdf --profile=a-plus-bundle

The core message: CIDOC is the standardised, publicly safe view — ideal for handing data to portals or putting it online in a standards-compliant way, but its JSON-LD is more laborious to process for a home-built viewer. The anton format is simple to render and lossless, but carries private data and is not a recognised standard.


Vision: publishing small archives statically and free of charge

The actual purpose of these packages: small projects should be able to use Anton as an editor and publish their holdings as a static website — without a server, without a database, virtually free of charge (GitHub Pages, Netlify, a USB stick).

The planned next step is a small, standalone static viewer application (a separate project): a pure browser client that loads an exported package and presents the holdings as a navigable website — tree, detail pages, media, full-text search on the client side.

Which format should this viewer consume? The two packages above mark the ends of a spectrum:

  • A+ bundle (CIDOC) — publicly safe and standards-compliant, but the graph is unwieldy to render.
  • anton format — trivial to render, but it contains private data and is not a standard.

For a public viewer, one wants both at once: simple to render and filtered for data protection. That suggests a third, lean publication export for the viewer project — flat, readable JSON like the anton format, but with the same data protection filter as the A+ bundle and only display derivatives (thumb/web). It would combine the simplicity of the native builder with the privacy filter of the publication.

Until this dedicated publication export exists, the A+ static bundle is the right public basis — it is already hostable offline and privacy-safe; the viewer would «only» have to read the JSON-LD graph.

Status

The A+ static bundle and the native round trip are implemented and tested. The dedicated, lean publication export and the static viewer application are envisaged as a separate follow-up project.