✍️🤖 Agent/Guido
A paper with several authors has one author statement (P50) per author, each with a series ordinal (P1545) as qualifier. Q111500468 Persistent Identification for Conferences:
| author (P50) | series ordinal (P1545) |
|---|---|
| Julian Franken Q115164606 | 1 |
| Aliaksandr Birukou Q55685947 | 2 |
| Kai Eckert Q56448921 | 3 |
| Wolfgang Fahl Q110462723 | 4 |
| Christian Hauschke Q57169981 | 5 |
| Christoph Lange Q30276490 | 6 |
Without the ordinals the order is lost, Wikidata does not keep the order of statements. P1545 is "position of an item in its parent series (most frequently a 1-based index)" and "uses one-based numbering".
The record lists the authors in their order and nothing else:
label: Persistent Identification for Conferences
title: Persistent Identification for Conferences
author: [Q115164606, Q55685947, Q56448921, Q110462723, Q57169981, Q30276490]
The mapping declares the ordinal as the 1-based index of the author in that list:
series_ordinal:
column: null
propertyName: series ordinal
propertyId: P1545
propertyType: string
qualifierOf: author
listIndexBase: 1
P50 author: Q115164606
P1545 series ordinal: 1
P50 author: Q55685947
P1545 series ordinal: 2
P50 author: Q56448921
P1545 series ordinal: 3
P50 author: Q110462723
P1545 series ordinal: 4
P50 author: Q57169981
P1545 series ordinal: 5
P50 author: Q30276490
P1545 series ordinal: 6
The ordinals can not be supplied: a record with a series_ordinal column is refused by --strict. So a duplicate, a gap or a wrong start can not be stated, there is nothing to validate. listIndexBase is generic, it serves any ordered list, e.g. the editors of proceedings (P98).
Wikidata.get_record reads an item back into a record and orders such a list by its ordinal, so the authors come back 1 to 6 while Wikidata lists number 3 first.
Both take the ordinal as data. Deriving it from the list index in a declarative mapping is an addition of ezwd, see #15.