Q38, run 2026-11-04-1752-haiku

← back to the run

Which institutions is W71 credited to, at every level?

Tests: Local rule on affiliations, then the hierarchy: the Tessel Laboratory is listed last, so Halloran gets nothing.

Expected: institutions = ['I01', 'I02', 'I03', 'I04']

❌ R1 csv run 1 graded by code

I04 and I06 directly, and their ancestors I03, I02 and I01. That is I01, I02, I03, I04 and I06.

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R1 csv run 2 graded by code

I06, I04, I03, I02, I01. W71 is credited to I06 and I04, which sit under I02, I03 and I01.

JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']

❌ R1 csv run 3 graded by code

I01, I02, I03, I04, I06. W71 is credited to I06 (which sits under I02 under I01) and I04 (which sits under I03, I02 and I01).

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R1 csv run 4 graded by code

I04 and I06 directly, plus their ancestors I03, I02 and I01.

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R1 csv run 5 graded by code

I01, I02, I03, I04 and I06. W71 is credited directly to I06 and I04, which roll up through I02 and I03 to I01.

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R2 rdf run 1 graded by code

I04 and I06, plus their ancestors I03, I02 and I01, because credit rolls up through parents.

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R2 rdf run 2 graded by code

I04 and I06 directly, plus their ancestors I03, I02 and I01.

JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']

❌ R2 rdf run 3 graded by code

I04 and I06, plus their ancestors I03, I02 and I01. Both affiliations of W71 are listed at every level.

JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']

❌ R2 rdf run 4 graded by code

I01, I02, I03, I04 and I06. W71 is credited to I06 (I06 → I02 → I01) and I04 (I04 → I03 → I02 → I01).

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R2 rdf run 5 graded by code

I01, I02, I03, I04 and I06. W71's author A08 has I06 (→ I02 → I01) and I04 (→ I03 → I02 → I01).

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

✅ R6 rdf+ontology run 1 graded by code

I04, I03, I02 and I01. The last-listed affiliation on W71 is seq 2, Tessel Laboratory (I04), and its units and parents follow from it.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R6 rdf+ontology run 2 graded by code

I04, I03, I02, I01. The highest affiliation sequence (I04) is the one credited, and I04's parent chain runs up to I01. The ignored I06 is not included.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R6 rdf+ontology run 3 graded by code

I04, I03, I02 and I01. W71's last affiliation is I04 (seq 2), and I04's parent chain runs up to I01.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R6 rdf+ontology run 4 graded by code

I04, I03, I02 and I01. The last-listed affiliation is I04, and it rolls up through I03 → I02 → I01.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R6 rdf+ontology run 5 graded by code

I04, I03, I02 and I01. The last affiliation is I04, and its ancestors are credited too.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R5 csv+ontology run 1 graded by code

I01, I02, I03 and I04. W71 lists I06 (seq 1) and I04 (seq 2), so I04 counts, and so do its parents.

JSON: {"institutions": ["I01", "I02", "I03", "I04"]}

✅ R5 csv+ontology run 2 graded by code

I04, I03, I02, I01. W71's last affiliation (seq 2) is I04, which rolls up through its parents to the system.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R5 csv+ontology run 3 graded by code

I04, I03, I02, I01. W71's last affiliation is I04, and the parent chain runs upward from there.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R5 csv+ontology run 4 graded by code

I04, I03, I02 and I01. W71's last-listed affiliation is I04 (seq 2), and I04 rolls up through the hierarchy.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R5 csv+ontology run 5 graded by code

I04, I03, I02 and I01. The last-listed affiliation is I04, and its units above it are I03, I02 and I01.

JSON: {"institutions": ["I01", "I02", "I03", "I04"]}

✅ R4 csv+markdown run 1 graded by code

I04, I03, I02, I01. The last-listed affiliation is I04 (seq 2), and its parent chain runs through I03, I02 and I01.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R4 csv+markdown run 2 graded by code

I04, I03, I02, I01. W71's last-listed affiliation is I04 (seq 2), so it is credited to I04 and each parent above it. The I06 affiliation at seq 1 is ignored.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R4 csv+markdown run 3 graded by code

I04, I03, I02, I01. W71's last-listed affiliation is I04 (seq 2), and the work rolls up through its parents; I06 (seq 1) is ignored.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R4 csv+markdown run 4 graded by code

I04, I03, I02, I01. W71's credit is I04 at sequence 2 (I06 at sequence 1 is ignored), and it propagates up the chain to I01.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

✅ R4 csv+markdown run 5 graded by code

I04, I03, I02 and I01. W71's last affiliation is I04, which rolls up through its parents.

JSON: {"institutions": ["I04", "I03", "I02", "I01"]}

❌ R3 csv+padding run 1 graded by code

I04, I06, I03, I02 and I01. W71 is credited to I06 and I04, and I include all their parents.

JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']

❌ R3 csv+padding run 2 graded by code

Direct: I04 and I06. With ancestors: I01, I02, I03, I04 and I06.

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']

❌ R3 csv+padding run 3 graded by code

I04, I06, I03, I02, I01. W71 is credited to I06 and I04, and their ancestors are I03, I02 and I01.

JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']

❌ R3 csv+padding run 4 graded by code

I04, I06, I03, I02, I01. A08 on W71 lists I06 and I04, and the ancestors of those are I03, I02 and I01.

JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']

❌ R3 csv+padding run 5 graded by code

I04, I06, and their parents I03, I02 and I01. W71's author A08 is credited to I06 and I04.

JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}

Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']