☰

✍️🤖 Agent/Guido

How Wikidata holds the author order

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".

How ezwd declares it

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.

Prior art

Both take the ordinal as data. Deriving it from the list index in a declarative mapping is an addition of ezwd, see #15.