Q38, run 2026-11-04-2010-sonnet
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']
csv run 1
I01, I02, I03, I04, I06. W71 lists I06 and I04, and I04 sits under I03 → I02 → I01.
JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']
csv run 2
I04, I03, I06, I02, I01.
JSON: {"institutions": ["I04", "I03", "I06", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I03', 'I06', 'I02', 'I01']
csv run 3
I04, I03, I06, I02 and I01. They are the two listed units plus their ancestors.
JSON: {"institutions": ["I04", "I03", "I06", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I03', 'I06', 'I02', 'I01']
csv run 4
I06, I04, I03, I02 and I01.
JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']
csv run 5
I04, I03, I02 and I01 via the lab chain, plus I06 (parent I02).
JSON: {"institutions": ["I04", "I03", "I02", "I01", "I06"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I03', 'I02', 'I01', 'I06']
rdf run 1
I04, I06, I03, I02, I01.
JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']
rdf run 2
I01, I02, I03, I04, I06. W71 lists I06 and I04, and their ancestors are I03, I02 and I01.
JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']
rdf run 3
I06, I04, I03, I02, I01.
JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']
rdf run 4
I04 and I06 directly, and I03, I02 and I01 above them.
JSON: {"institutions": ["I04", "I06", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I06', 'I03', 'I02', 'I01']
rdf run 5
I06, I04, I03, I02, I01.
JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']
rdf+ontology run 1
I04, I03, I02, I01. A08's last-listed affiliation on W71 is I04, and credit passes up through its parents.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
rdf+ontology run 2
I04, I03, I02, I01. I04 has the highest seq for W71, and I06 is ignored.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
rdf+ontology run 3
I04, I03, I02, I01. The last-listed affiliation of A08 on W71 is I04, and its parent chain gives the rest.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
rdf+ontology run 4
I04, I03, I02, I01. For W71, A08's last-listed affiliation is I04, which sits under I03, I02 and I01.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
rdf+ontology run 5
I04, I03, I02, I01. W71 is credited to I04 (listed last), and so to the institutions above it.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+ontology run 1
I04, I03, I02 and I01. W71 is credited to I04 (listed last) and so to every institution above it; I06 is ignored.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+ontology run 2
I04, I03, I02 and I01. For W71 the last-listed affiliation is I04, which sits under I03, I02 and I01.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+ontology run 3
I04, I03, I02, I01. For W71, A08's last-listed affiliation is I04, and the credit passes up its parents.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+ontology run 4
I04, I03, I02, I01. W71 is credited to I04 (sequence 2) and to everything above it.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+ontology run 5
I04, I03, I02 and I01. For W71 the credited affiliation is I04 (sequence 2), and the credit passes up through I03 and I02 to I01.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+markdown run 1
I04, I03, I02 and I01. For W71 the last-listed affiliation is I04, and the credit passes up its chain.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+markdown run 2
I04, I03, I02, I01. On W71 the last-listed affiliation is I04, which then rolls up through I03 and I02 to I01.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+markdown run 3
I04, I03, I02, I01. W71 is credited to I04 (sequence 2), and I03, I02 and I01 sit above it.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+markdown run 4
I04, I03, I02, I01. On W71 A08's last-listed affiliation is I04, which rolls up through I03 and I02 to I01.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+markdown run 5
I04, I03, I02, I01. On W71 the last-listed affiliation is I04 (sequence 2), and the units above it are included.
JSON: {"institutions": ["I04", "I03", "I02", "I01"]}
csv+padding run 1
I06, I04, I03, I02, I01. I06 and I04 are listed directly, and I04 rolls up to I03, I02 and I01.
JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']
csv+padding run 2
I04, I03, I02, I01 and I06. A08 is affiliated with I06 and I04 on W71, and I04's ancestors are I03, I02 and I01.
JSON: {"institutions": ["I04", "I03", "I02", "I01", "I06"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I04', 'I03', 'I02', 'I01', 'I06']
csv+padding run 3
I06, I04, I03, I02, I01.
JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']
csv+padding run 4
I01, I02, I03, I04, I06. W71 is credited directly to I06 and I04, and their ancestors are I02, I03 and I01.
JSON: {"institutions": ["I01", "I02", "I03", "I04", "I06"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I01', 'I02', 'I03', 'I04', 'I06']
csv+padding run 5
I06, I04, I03, I02 and I01.
JSON: {"institutions": ["I06", "I04", "I03", "I02", "I01"]}
Why: institutions: expected ['I01', 'I02', 'I03', 'I04'], got ['I06', 'I04', 'I03', 'I02', 'I01']