Sun & Rain Works Engineer Portfolio · Est. 2005
Open cultural data · knowledge-graph narration

Artwork of the Day

Turns Wikidata into a daily, cited art-history experience.

Every day it features a painting by an artist born on today's date, then builds a rich, deterministic, fully-cited article about it, and the people, places, movements and institutions around it, live from open knowledge graphs. There is no language model in the loop: every sentence is a real Wikidata fact or attributed Wikipedia text, so nothing can be invented. The same facts are republished as interoperable Linked Art and IIIF, making the output open data rather than a silo.

Live in production
Python Flask Wikidata · SPARQL Wikibase REST IIIF Linked Art Docker GitHub Actions
The idea

Grounded beats generated

Wikidata holds millions of artworks, artists, places and movements as a structured graph, but it isn't something you'd actually read. The goal was to turn that graph into a polished, trustworthy daily art-history experience, and to do it without a language model so nothing can be invented.

Every sentence is assembled deterministically from a real Wikidata statement or attributed Wikipedia text, an earlier optional LLM layer was removed entirely. That single constraint forced the interesting engineering: a schema-agnostic narrator, multi-hop notability-ranked graph traversal, and a measured two-API hybrid. Factual trust becomes a product feature rather than a disclaimer.

0
LLMs, API keys or per-token cost
7
Linked Art record types
69
deterministic tests in CI
~2–3s
to assemble a deep article
Architecture

A daily pipeline from birthday to cited article

A vanilla-JS browser shell talks to a Flask core that fans out across open knowledge graphs, narrates the result deterministically, and republishes it as standards-based open data, no database, no secrets.

Selection

Tied to the date

Each day a SPARQL query finds paintings by artists born on today's month and day, stable per day. From there the chosen artwork seeds the rest of the pipeline, the day's experience is computed, not curated by hand.

Data layer

A measured two-API hybrid

SPARQL on the Wikidata Query Service handles everything graph-shaped: search, traversal, notability ranking, while the Wikibase REST API handles entity-by-id reads where it genuinely wins (qualifier spans, references), taking load off the rate-limited SPARQL endpoint.

Narration

Schema-agnostic engine

A generic narrator turns any Wikidata entity's statements into prose from a property→template registry, adding a new fact type is one line. A parallel orchestrator runs ~16 independent SPARQL/REST/Wikipedia calls concurrently, with graceful degradation so a throttled query drops one section, never the page.

Publication

Interoperable open data

The same facts are republished as schema-valid Linked Art (CIDOC-CRM JSON-LD, 7 dereferenceable record types with VIAF/Getty/ISNI authority links) and IIIF Presentation 3.0 manifests, so the output is reusable open data and a deep-zoom-ready image surface, not a closed silo.

Core features

A real product surface, not a demo

The daily article is only the start, the explorer, sharing, and viewing surfaces make it something people actually use and link to.

Deep, deterministic articles

The work's facts, the depicted subjects, the artist's life, genre & tradition, academic lineage & peers, where the work is held, its dated history, and full data provenance.

Explore the graph

Click any related work, artist or movement to load it, a knowledge-graph rabbit hole. Plus a date picker for any day, a "🎲 Surprise me" button, and a Back stack.

Gallery mode

A museum-wall dark mode that presents paintings on a wall, persisted across visits.

Social link previews

Every painting has a share URL with server-rendered Open Graph tags and a branded 1200×630 card generated on the fly, so a shared link previews the actual artwork.

Deep-zoom viewer

A full-resolution IIIF + OpenSeadragon lightbox; every artwork also serves an IIIF Presentation 3.0 manifest.

Linked Art API

Every entity is a dereferenceable Linked Art / CIDOC-CRM JSON-LD record with authority links, provenance events, content negotiation, HAL and CORS.

Engineering

Trustworthy by construction

Outcome

Live, deployed, and interoperable

Artwork of the Day runs in production at daily.metahistorybook.com. It is a live product that doubles as a reusable knowledge-graph narration engine, green CI, accessibility, SEO, Docker deployment, an IIIF deep-zoom viewer, and records validated against the official Linked Art JSON Schemas. The thesis in one line: cited, deterministic and standards-compliant beats generated.