Catalogue audit: Sample catalogue
Sample. This is a real report from Bakau's audit, run over a small catalogue we assembled from public-domain photographs on Wikimedia Commons. The copies, crops and metadata were made by us to show what an audit finds; every name in the metadata is fictional. The photographers are credited under 'Where these images come from'.
Archive audits · This report as CSV · As JSON, with proofs · Try it on your own images
Generated 2026-10-06T00:49:48+00:00 · report format 1 · 18 images. Evidence from the files themselves, not a finding about who owns them, and not legal advice.
Summary
Attribution coverage
Of 18 readable images:
- 12 name a creator in their metadata (66.7%);
- 11 carry a copyright or rights statement (61.1%);
- 14 carry any attribution, rights or credit field at all.
Fields read: EXIF Artist and Copyright; IPTC By-line, Credit, Source and Copyright Notice; XMP dc:creator, dc:rights, photoshop:Credit and Source, xmpRights:UsageTerms and WebStatement, and the PLUS image creator, copyright owner and licensor names. Credit and Source say who supplied a picture, not who made it, so they are reported but never counted as a creator.
Flags
| Flag | Images | Groups |
|---|---|---|
| Could not be read as an image | 0 | 0 |
| Too little detail to compare for variants (exact copies only) | 0 | 0 |
| No creator named in the metadata | 6 | 1 |
| No copyright or rights statement in the metadata | 7 | 1 |
| Different creators named | 0 | 1 |
| Different rights holders stated | 0 | 1 |
| Attribution present on some copies, missing on others | – | 2 |
Groups of the same picture
| Group | Files | Creators named | Rights holders stated | Flags |
|---|---|---|---|---|
| G0001 |
How they were matched
|
Sample Photographer A | (c) 2024 Sample Agency | Attribution present on some copies, missing on others |
| G0002 |
How they were matched
|
Sample Photographer B | (c) 2024 Sample Agency | |
| G0003 |
How they were matched
|
Sample Photographer A; Sample Photographer C | (c) 2024 Sample Agency | Different creators named |
| G0004 |
How they were matched
|
Sample Photographer B | (c) 2024 Sample Agency; (c) 2021 Another Sample Archive | Different rights holders stated |
| G0005 |
How they were matched
|
none | none | No creator named in the metadata No copyright or rights statement in the metadata |
| G0006 |
How they were matched
|
Sample Photographer C | (c) 2024 Sample Agency | Attribution present on some copies, missing on others |
| G0007 |
How they were matched
|
Sample Photographer A | (c) 2024 Sample Agency | |
| G0008 |
How they were matched
|
Sample Photographer C | (c) 2024 Sample Agency |
Flagged images
Every image with a flag other than "too little detail". The full list, flagged or not, is in report.csv.
| File | Group | Creators named | Rights stated | Flags |
|---|---|---|---|---|
| web/photo-01-banner.jpg | G0001 | No creator named in the metadata No copyright or rights statement in the metadata |
||
| social/photo-03-flipped.jpg | G0003 | Sample Photographer C | No copyright or rights statement in the metadata | |
| press/photo-04-caption.jpg | G0004 | (c) 2021 Another Sample Archive | No creator named in the metadata | |
| masters/photo-05.jpg | G0005 | No creator named in the metadata No copyright or rights statement in the metadata |
||
| web/photo-05-detail.jpg | G0005 | No creator named in the metadata No copyright or rights statement in the metadata |
||
| masters/photo-06.jpg | No creator named in the metadata No copyright or rights statement in the metadata |
|||
| web/thumbs/photo-07-thumb.jpg | G0006 | No creator named in the metadata No copyright or rights statement in the metadata |
||
| press/photo-08-border.jpg | G0007 | Sample Photographer A | No copyright or rights statement in the metadata |
Provenance record
Every image's record in report.json is a leaf of a Merkle tree. Its root commits to all of them at once: change any record, add one or remove one, and the root no longer matches.
Merkle root (SHA-256, tree version 2, 18 leaves):
b706e7f77cff74aed324b11b24175ea9eadf8b0261bd963980865dd748d4da85
Filed through opentimestamps: out\anchors\b706e7f77cff74ae.ots-pending.json (filing saved as anchor.json).
Each asset in report.json carries its leaf hash and an inclusion proof against this root. A leaf is SHA-256 of 0x00 + the asset record as canonical JSON (sorted keys, no spaces, UTF-8), without leaf_sha256, proof, group and relation.
Where these images come from
| Original | Source | Author | Licence |
|---|---|---|---|
| masters/photo-01.jpg | "Hand-made art and design” sign (Unsplash).jpg | Peter Miranda petermiranda | CC0 1.0 |
| masters/photo-02.jpg | "Hello beautiful” sign on building (Unsplash).jpg | Ian Schneider goian | CC0 1.0 |
| masters/photo-03.jpg | "Make art not war” mural (Unsplash pJu2NCjopwQ).jpg | Randy Tarampi randytarampi | CC0 1.0 |
| masters/photo-04.jpg | "My Life Through A Lens" 2016-07-06 (Unsplash).jpg | "My Life Through A Lens" bamagal | CC0 1.0 |
| masters/photo-05.jpg | "Together, we create!” on brick wall (Unsplash).jpg | "My Life Through A Lens" bamagal | CC0 1.0 |
| masters/photo-06.jpg | "wink” (Unsplash).jpg | marc liu notmarcliu | CC0 1.0 |
| masters/photo-07.jpg | 'Friendship alleys' in Yazd, Iran. (Unsplash).jpg | Sander van Dijk sandervd | CC0 1.0 |
| masters/photo-08.jpg | (NOT A) Drone view of golden gate bridge (Unsplash).jpg | Chris Leipelt cleipelt | CC0 1.0 |
| masters/photo-09.jpg | 042217 (Unsplash).jpg | Omair Khan omairk | CC0 1.0 |
| masters/photo-10.jpg | 06 (Unsplash).jpg | Alvin Mahmudov alvinmahmudov | CC0 1.0 |
Method and its limits
Your images stayed where they were. Each file was read, turned into digital fingerprints in memory, and let go. No image, thumbnail or copy was written, and nothing was sent anywhere except the 32-byte Merkle root, to the timestamping service.
Exact duplicates are files with equal ISCC codes, which include a hash of every byte: the same file, perhaps under another name.
Variants are the same picture in a different file: resized, re-encoded, cropped, rotated, mirrored, given a border or a caption, or re-saved with other metadata. Two methods find them. A perceptual hash of the whole image (or its centre square) within 2 of 64 bits, with a private grid of per-region hashes not contradicting it, catches resized and re-encoded copies. For the rest, a learned copy-detection descriptor (SSCD) proposes pairs that look like copies, and each pair is then checked geometrically: distinctive points are matched between the two images, a single scale-rotation-shift is fitted to them, and once one image is laid over the other, most of the area they share must agree. "How they were matched" under each group gives that evidence. Groups chain: if A matches B and B matches C, all three are one group.
This finds copies, not look-alikes. Two photographs of the same scene are different pictures and are usually not grouped, though two frames of a still scene taken moments apart can be, since they barely differ. Very small crops (under about a sixth of the picture), heavy retouching, perspective changes and collages can be missed. Images with too little detail (a plain backdrop, a blank scan) are matched as exact duplicates only.
Metadata can be wrong. It is copied with files, left over from templates and edited by anyone; this report quotes it as found and checks none of it. "Different creators named" means the names differ once case, punctuation and containment are set aside: two spellings of one name are flagged, and a person should look.
Evidence, not ownership. Nothing here says who owns an image or whether it may be licensed. Missing metadata does not mean an image is free to use, and present metadata does not prove a right. This is not legal advice.