Skip to content

Spec 001: the authors' names, looked into - #93

Closed
adamjohnwright wants to merge 2 commits into
mainfrom
t020/authors
Closed

adamjohnwright wants to merge 2 commits into
mainfrom
t020/authors

Conversation

@adamjohnwright

Copy link
Copy Markdown
Contributor

Belongs to spec 001 (specs/001-biopax-from-graph/): the one difference T016 and T020 recorded without looking into it, the form of an author's name. Documentation only; no code changes.

What was measured

All 15 species, from a private copy of release 98's graph, against release 98's published files. Each PublicationXref was matched to its graph publication (by PubMed id, else ISBN, else title), and its authors compared in order, Person by Person. Names were read only to classify them, and none is recorded.

  • One kind, all 872 values: the published value is surname, firstname and the graph's is surname, initial, for the same Person, whose own firstname and initial hold each form. There are no other kinds (accents, order, a missing initial, a different person).
  • 62 people, 10 publications, repeated across the species' files: 60 values in P. falciparum, 67 in human, and the rest per species, adding up to 872.
  • Why: the graph importer copies _displayName unchanged (ReactomeBatchImporter), and the release's converter wrote _displayName too. So the field changed between the two readings.
  • Which form is right: every other Person in the graph has surname, initial, but the curator tool's generatePersonName puts the first name first. Neither the exporter nor the importer is wrong. The question goes to the data's owners under T022 (a draft, not opened).

Also

  • P. falciparum's "23 of 5,750 PublicationXrefs" is corrected to the 4 that ci/compare.py reports now (each with its own db, id, year, title and source). Its 60 author values at the root are unchanged.

Checks

  • mvn verify passes.
  • Prettier passes on the changed file.
  • The file was searched for every surname and first name involved: none found.

🤖 Generated with Claude Code

The 872 author values that differ from release 98's published files are of
one kind: the published value is a Person's surname and first name, the
graph's display name its surname and initials, both of the same Person. They
are 62 people, of 10 publications, repeated across the species' files.

The exporter writes the graph's display name, and the graph importer copies
the relational _displayName as it is, so neither is wrong: the field changed
between the two readings. Which form Reactome means is the data's question
(T022): every other Person has the initials, while the curator tool's own
rule puts the first name first.

The 23 PublicationXrefs recorded for P. falciparum are corrected to the 4
ci/compare.py reports now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adamjohnwright

Copy link
Copy Markdown
Contributor Author

On where the 23 came from: it was recorded by T016 (commit c13e669, PR #69), measured on P. falciparum with ci/compare.py as the exporter stood then, before T017 (sets) and T018 (the writer's trimming and trailing spaces). I can't reproduce that state's report now. My inference is that, at the time, a PublicationXref counted as differing at the root if any of its properties differed, not only its authors, and T018's fixes since made 19 of them agree. The 4 that ci/compare.py reports today is the number to keep.

🤖 Generated with Claude Code

@adamjohnwright

Copy link
Copy Markdown
Contributor Author

Review (not ready to merge yet). The counts check out, but the cause is the importer's code, not a change in the data.

Blocking: the cause. In graph-importer's main, ReactomeBatchImporter.java (about lines 389–404) does not copy a Person's _displayName. It rebuilds it as surname + ", " + initial, using the first name only when there is no initial, under the comment "TO fix Different Styles in Person display Name". Every other class gets getDisplayName() copied. The curator tool's generatePersonName does the opposite, putting the first name first. So:

  • "Why they differ": the importer normalises Person names on purpose, while the release's converter wrote the relational _displayName, which for Persons named by the curator tool holds surname, firstname. Drop "builds nothing", "at different states" and "had changed between them".
  • "Which form is meant": the question becomes whether the importer's normalisation or the curator tool's rule is the intended form. Say which graph-importer commit release 98 used, or that main is assumed.
  • Line 108 ("Each writes the name its own database holds; the data, not the code, differs"), the PR body's "Why" bullet, and ticket draft 2 need the same correction. The ticket probably belongs on graph-importer, or with both teams, after all.
  • Why the graph looks uniform: "every Person but one has surname, initial" in the graph is the importer's doing, not evidence about the data.

Medium:

  • tasks.md T016 (about line 285) still says "23 of 5,750 PublicationXrefs" and "the form … the release's database held". Update it with the PR, and note T022's drafted question under T022.

Low:

  • The July–August creation detail narrows the group more than it needs to. Consider "most were created in release 98's curation", or drop it once the importer explains the cause.

Arithmetic: consistent (872 = 60 + 67 + 20 + 53 + 7×60 + 4×63).

CI: green so far, but the branch is behind main.

🤖 Generated with Claude Code

@adamjohnwright

Copy link
Copy Markdown
Contributor Author

Replaced by #94, which takes this review: the graph importer rebuilds a Person's display name (ReactomeBatchImporter), so the cause is the two tools' rules, not a change in the data.

adamjohnwright added a commit that referenced this pull request Oct 29, 2026
Spec 001: the authors' names, looked into (replacing #93)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant