art-provenance-check
Provenance due diligence for the art trade.
Abstract
Fast first-pass screening of provenance texts for the art trade: hundreds of lots in seconds, run locally. A triage tool, not a replacement for provenance research. Results are research hints, not legal advice.

1Motivation
German law requires dealers and auction houses to exercise due diligence before placing cultural property on the market (Kulturgutschutzgesetz, KGSG, §§ 42–45).
- § 42: check the provenance, search the relevant databases and review the documents.
- § 44: for works that may have been taken through Nazi persecution between 30 January 1933 and 8 May 1945, the usual value and effort thresholds do not apply. Every such work must be checked.
- § 45: keep records of the checks for 30 years.
Large houses employ provenance researchers; small houses and dealers usually do not, and still have to check every lot. The tool sorts a catalogue so that the few lots that need research come first, and keeps a record of what was checked.
2Method
- Split the provenance text into stations (owners, dealers, auctions, events) with dates.
- Map the years 1933–1945 as documented, inferred or open.
- Flag ownership changes, confiscation and restitution keywords, anonymous and uncertain stations.
- Match names against a reference list built from Wikidata.
- Assign a review level (high, medium, low) and write the record.
The analysis is rule-based and transparent: every finding states its reason.
3Usage
3.1 Provenance review
Reads one provenance in German or English and writes a PDF or Markdown audit record with checksums, all findings and the checklist of § 42 (1) KGSG.
python3 provenance.py --file provenance.txt --year 1912 --object "Lot 123" --pdf record.pdf

3.2 Catalogue review
Runs a whole auction catalogue from a CSV and ranks the lots by review level, with an overview PDF and CSV and one PDF record per lot.
python3 provenance.py --catalogue catalogue.csv --out review/

3.3 Print-process check
Tells offset reproductions from inkjet prints and stone lithographs using the Fourier spectrum of a macro photo taken at 10–30× magnification.
python3 printcheck.py photo.jpg --um-per-px 8 --diagnose spectrum.png

3.4 Local interface
A browser interface with three tabs and an EN/DE switch. The server listens on 127.0.0.1 only; no data leaves the machine.
python3 app.py
4Installation
git clone https://github.com/Thesimpleex/art-provenance-check.git
cd art-provenance-check
pip install -r requirements.txtRequires Python 3.9 or later. Dependencies are NumPy, SciPy and Pillow. No account, no API key, no cloud service.
5Specification
- Runs
- Locally, no account
- Built with
- Python 3.9+, NumPy, SciPy
- License
- MIT
- Version
- 0.2.0
Source code, issues and releases: github.com/Thesimpleex/art-provenance-check. License: MIT.