openlibhums / openlibhums/janeway

More flexibility for entry and display of person names

Open
#4,846 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

janeway 2.0 new feature
Dominant language
Python
Stars
238
Forks
97
Avg merge
9d 1h
Merged PRs (30d)
8

Description

Problem

We have three fields for first, middle, and last name, one for salutation, and one for name_suffix (and one for name_prefix on the FrozenAuthor model). The first and last name are required (blank=False).

Separate fields are needed to produce citations, alphabetize consistently, and meet downstream metadata requirements from ORCID, Crossref, JATS.

However, there are well-documented problems with separate name fields, especially when they are required and making them required fields. See this W3C article about different conventions, and this list of falsehoods programmers believe about names.

Proposed solution

It is worth considering how to make name fields more flexible, by considering these questions:

  • Can we make the last name field optional, while still meeting metadata and citation requirements? Or the first name?
  • Can we provide users with a single field where they can control the display of their name?
  • Can we provide users with a single field where they can decide how they want to be addressed?

Context

See @gamboz's research on this topic:

Things to consider:

  • people without a last_name
  • contributors that are not people:
    • collaborations (e.g. https://doi.org/10.22323/2.08020305)
    • organizations (as hinted by crossref schema)
    • Janeway already has support for these in the form of corporate authors (submission.models.FrozenAuthor.is_corporate)
  • percolations
    • for ORCID it is the "first name" that is the required field
    • same for OJS3 (mandatory "first name", optional family name)
    • crossref schema has mandatory <surname> (e.g. schema 4.8.1)
    • same for JATS (mandatory <surname>; e.g. JATS green 1.3)
    • givenName and familyName both are 0-1 occurrences in dataCite so it should be fine as is, but we should also add examples with a single name
    • citation generation: ideally, the given name field (only mandatory field) should be used, for citations to render the entire name.
    • when sharing data with other 3rd party services other than Crossref (e.g Google Scholar, DOAJ...) each upstream will probably make their own assumptions about how to handle a name without a last name/family name
    • It will require changing how we generate certain name abbreviations (email signatures and citations) as well as migrating names where the last_name is present but the first_name is not

https://github.com/openlibhums/janeway/pull/3612#issuecomment-1611361436

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the author fields on the FrozenAuthor model and the linked research and discussion in pull request 3612. Trace how names are used for citations, email signatures, metadata exports, and migrations, then document the required behavior for personal and corporate authors. Done requires an agreed design and a complete plan for validation and data migration.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.