[object Object]

← back to CelebritySignatures

auto-save: 2026-08-03T20:57:17 (5 files) — output/collage-declaration-of-independence-named.png output/collage-declaration-of-independence.png output/collage-politics-named.png output/collage-politics.png scripts/fetch-artists.mjs

b3945999d06a15610f1c7e66f6f6b6bfc55896b6 · 2026-08-03 20:57:25 -0700 · Steve Abrams

Files touched

Diff

commit b3945999d06a15610f1c7e66f6f6b6bfc55896b6
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon Aug 3 20:57:25 2026 -0700

    auto-save: 2026-08-03T20:57:17 (5 files) — output/collage-declaration-of-independence-named.png output/collage-declaration-of-independence.png output/collage-politics-named.png output/collage-politics.png scripts/fetch-artists.mjs
---
 .../collage-declaration-of-independence-named.png  | Bin 673944 -> 222226 bytes
 output/collage-declaration-of-independence.png     | Bin 615467 -> 186382 bytes
 output/collage-politics-named.png                  | Bin 484229 -> 224252 bytes
 output/collage-politics.png                        | Bin 436870 -> 182557 bytes
 scripts/fetch-artists.mjs                          |  34 +++++++++++++++++++--
 5 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/output/collage-declaration-of-independence-named.png b/output/collage-declaration-of-independence-named.png
index 9fe7a04..9aa3c51 100644
Binary files a/output/collage-declaration-of-independence-named.png and b/output/collage-declaration-of-independence-named.png differ
diff --git a/output/collage-declaration-of-independence.png b/output/collage-declaration-of-independence.png
index 0cb1865..3888a9a 100644
Binary files a/output/collage-declaration-of-independence.png and b/output/collage-declaration-of-independence.png differ
diff --git a/output/collage-politics-named.png b/output/collage-politics-named.png
index 70e604b..5483934 100644
Binary files a/output/collage-politics-named.png and b/output/collage-politics-named.png differ
diff --git a/output/collage-politics.png b/output/collage-politics.png
index d3d4693..324ac22 100644
Binary files a/output/collage-politics.png and b/output/collage-politics.png differ
diff --git a/scripts/fetch-artists.mjs b/scripts/fetch-artists.mjs
index 5dca7bf..8cd1c44 100644
--- a/scripts/fetch-artists.mjs
+++ b/scripts/fetch-artists.mjs
@@ -100,17 +100,47 @@ async function sparql(q, tries = 5) {
   }
 }
 
+// Second harvest path: P6379 "has works in the collection" is a DIRECT
+// person→museum link, far denser than artwork→P195 (which is sparsely itemized,
+// esp. for European museums like the Rijksmuseum). This is what actually pulls
+// the Amsterdam/Dutch masters in. Same output columns; unioned with P195.
+function queryFor6379(museumQids) {
+  const vals = museumQids.map(q => `wd:${q}`).join(' ');
+  return `
+SELECT ?person ?personLabel ?sig ?dod ?links
+       (GROUP_CONCAT(DISTINCT ?museumLabel; separator="|") AS ?museums)
+       (GROUP_CONCAT(DISTINCT ?occLabel; separator="|") AS ?occs)
+WHERE {
+  VALUES ?museum { ${vals} }
+  ?person wdt:P6379 ?museum ; wdt:P109 ?sig ; wdt:P570 ?dod ; wikibase:sitelinks ?links .
+  FILTER(YEAR(?dod) < 1974)
+  OPTIONAL { ?person wdt:P106 ?occ . ?occ rdfs:label ?occLabel . FILTER(LANG(?occLabel)="en") }
+  ?museum rdfs:label ?museumLabel . FILTER(LANG(?museumLabel)="en")
+  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
+}
+GROUP BY ?person ?personLabel ?sig ?dod ?links
+ORDER BY DESC(?links)`;
+}
+
 const ALL_QIDS = Object.keys(MUSEUMS);
 const rows = [];
 for (let i = 0; i < ALL_QIDS.length; i += 3) {
   const batch = ALL_QIDS.slice(i, i + 3);
-  process.stdout.write(`[museums ${i + 1}-${i + batch.length}/${ALL_QIDS.length}] ${batch.map(q => MUSEUMS[q]).join(', ')} … `);
+  process.stdout.write(`[P195 ${i + 1}-${i + batch.length}/${ALL_QIDS.length}] ${batch.map(q => MUSEUMS[q]).join(', ')} … `);
   const r = await sparql(queryFor(batch));
   rows.push(...r);
   console.log(`${r.length} rows (total ${rows.length})`);
   await sleep(1500);
 }
-console.log(`raw rows: ${rows.length}`);
+for (let i = 0; i < ALL_QIDS.length; i += 3) {
+  const batch = ALL_QIDS.slice(i, i + 3);
+  process.stdout.write(`[P6379 ${i + 1}-${i + batch.length}/${ALL_QIDS.length}] ${batch.map(q => MUSEUMS[q]).join(', ')} … `);
+  const r = await sparql(queryFor6379(batch));
+  rows.push(...r);
+  console.log(`${r.length} rows (total ${rows.length})`);
+  await sleep(1500);
+}
+console.log(`raw rows (P195 + P6379): ${rows.length}`);
 
 // One record per person; Special:FilePath URL is directly usable as an <img> src.
 const seen = new Set();

← 4e31653 Amsterdam haul via P6379: +110 net Artists (1262→1372), site  ·  back to CelebritySignatures  ·  Cody-gate fix (verified, proportionate): server art-occupati 681aafe →