Skip to content

Terminology

wacz-validator uses the vocabulary defined by WACZ 1.1.1 §Terminology without paraphrasing it. This page collects the terms that appear throughout these docs, so that a word means one thing here and the same thing in the spec.

Term What it means here
ZIP file The container. The format is ZIP; the archive as a whole is a WACZ, not “a zip”.
WACZ Web Archive Collection Zipped — WARC data plus its metadata packaged as a ZIP file.
WARC The record format inside archive/.
Web Archive The captured material as a whole — not the archive/ directory, which is one part of it.
Page An entry in pages/pages.jsonl. Not any web page in general.
Media Type The value classifying content. Distinct from the HTTP header name Content-Type.
Collection The grouping a WACZ represents.
Package The Frictionless Data Package that datapackage.json describes. Unrelated to an npm package.
Context As used by the spec.

Everything above is defined in WACZ §Terminology. The spec also leans on words it never defines there, and this is the one that carries real weight.

Term What it means here
CDXJ The index format inside indexes/. One line per captured response: a sort-friendly key (SURT), a 14-digit capture timestamp, and a JSON object carrying filename, offset and length — the byte range of the matching record in archive/. §5.2.2 requires index files to contain CDXJ data and cites pywb’s CDXJ format rather than defining it.

SURT (Sort-friendly URI Reordering Transform) is the key form: the host is reversed and comma-separated, so https://upload.wikimedia.org/…/icon.png becomes org,wikimedia,upload)/…/icon.png. Reversing the host puts everything under one domain next to each other in sort order, which is what makes a binary search over the index possible.

The index is why a replay tool does not have to download a whole WACZ: it reads the index, then fetches only the byte ranges it needs. If the index is wrong the archive is intact but unplayable, which is why six of the rules check it.

The vocabulary applies to prose — this site and source comments. Code identifiers (variables, functions, types, rule names) follow the codebase’s own conventions and are out of scope.

Where a word is being used in its ordinary sense rather than as a spec concept, it is just that word: a “spec page” is a page on a website, and an “npm package” is not a Data Package.

The Japanese version of this page carries an additional rule that has no counterpart here: spec terms stay in English inside Japanese prose, rather than being translated. The point is to remove the choice — and therefore the inconsistency — between a translated term and the original.

A Japanese translation of the specification itself is published separately at uraitakahito.github.io/specs.