Majores Ventures

← All projects

art-provenance-check

Provenance due diligence for the art trade.

Python toolkit · Python 3.9+, NumPy, SciPy · MIT · v0.2.0 · github.com/Thesimpleex/art-provenance-check

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.

art-provenance-check reviewing a provenance: four stations, the years 1938 and 1939 documented, three findings and review priority high
Figure 1. art-provenance-check reviewing a provenance: four stations, the years 1938 and 1939 documented, three findings and review priority high.

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

  1. Split the provenance text into stations (owners, dealers, auctions, events) with dates.
  2. Map the years 1933–1945 as documented, inferred or open.
  3. Flag ownership changes, confiscation and restitution keywords, anonymous and uncertain stations.
  4. Match names against a reference list built from Wikidata.
  5. 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
Provenance review in the local interface: review level high, stations, period 1933 to 1945 and findings
Figure 2. Provenance review in the local interface: review level high, stations, period 1933 to 1945 and findings.

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/
Catalogue review: eight invented lots ranked by review level with the key finding for each
Figure 3. Catalogue review: eight invented lots ranked by review level with the key finding for each.

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
Print-process check: halftone screen detected, sharpest tile and Fourier spectrum with the screen peaks marked
Figure 4. Print-process check: halftone screen detected, sharpest tile and Fourier spectrum with the screen peaks marked.

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.txt

Requires 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.