Enum Class PublicationAssociationSource

java.lang.Object
java.lang.Enum<PublicationAssociationSource>
ubic.gemma.model.common.description.PublicationAssociationSource
All Implemented Interfaces:
Serializable, Comparable<PublicationAssociationSource>, Constable

public enum PublicationAssociationSource extends Enum<PublicationAssociationSource>
Who asserted a PublicationAssociation — the authority behind the claim, as distinct from the evidence they gave for it.

The rank is the point. Precedence between competing claims about the same (experiment, publication) pair is decided by getRank(), not by write order: a source may only displace an assertion whose rank is less than or equal to its own. That is what lets an automated re-fetch coexist with a human ruling instead of silently reverting it — the property a denylist cannot offer, because a denylist is only honoured by the code paths that remember to read it, while a rank comparison is made at the one point every writer passes through (PublicationAssociationService.assertAssociation).

Concretely: GEO's !Series_pubmed_id for GSE227854 names the wrong one of the submitter's two NAR 2024 papers. A curator rejects it at rank 40; the nightly GEO refresh re-proposes it at rank 30 and is refused. No exclusion file involved.

  • Enum Constant Details

    • CURATOR

      public static final PublicationAssociationSource CURATOR
      A human ruling. Outranks everything, including the upstream record — a curator who has read both candidate papers is a better authority on which one produced the data than the submitter's own cross-link.
    • EXTERNAL_IMPORT

      public static final PublicationAssociationSource EXTERNAL_IMPORT
      The upstream record's own link from a non-GEO loader (CELLxGENE collection DOI, ArrayExpress, the simple-metadata loader). Same standing as GEO_SUBMITTER_LINK: it is what the source said, not what we concluded.
    • AGENT

      public static final PublicationAssociationSource AGENT
      A machine assertion from a curation agent (pub_finder and friends). Outranked by both the upstream record and a curator, so a finder can propose freely without being able to overwrite either.
    • LEGACY

      public static final PublicationAssociationSource LEGACY
      Provenance unknown — the row predates this table and was backfilled from the bare INVESTIGATION.PRIMARY_PUBLICATION_FK / RELEVANT_PUBLICATIONS link, which records no authority at all. Lowest rank so anything that later states a reason wins, and so "how many links still have no recorded basis?" is one WHERE clause.
  • Method Details

    • values

      public static PublicationAssociationSource[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static PublicationAssociationSource valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getRank

      public int getRank()
      Returns:
      the authority rank; higher wins. See the class javadoc — ties go to the later write, so two curators in sequence behave the way anyone would expect.
    • outranks

      public boolean outranks(PublicationAssociationSource held)
      Returns:
      whether an assertion from this source may displace one currently held by held.
    • getDbValue

      public String getDbValue()
      Returns:
      the lowercase external form, for use in JSON DTOs / API surfaces.
    • fromDbValue

      public static PublicationAssociationSource fromDbValue(String v)
      Parse the lowercase external form back into the enum. Accepts either case.