Class AnnotationsWebService.AnnotationRelationValueObject

java.lang.Object
ubic.gemma.rest.AnnotationsWebService.AnnotationRelationValueObject
Enclosing class:
AnnotationsWebService

public static final class AnnotationsWebService.AnnotationRelationValueObject extends Object
A relation on the wire.

basis is not metadata a client may skip: it is what separates somebody having stated the fact from our having noticed a co-occurrence. numberOfExperiments is zero for asserted bases because there is nothing to count, not because there is no evidence, so sorting on it without reading the basis buries the strongest rows.

Author:
tesarst
  • Method Details

    • getSubject

      public String getSubject()
    • getSubjectUri

      @Nullable public String getSubjectUri()
    • getSubjectCategory

      @Nullable public String getSubjectCategory()
    • getSubjectCategoryUri

      @Nullable public String getSubjectCategoryUri()
    • getPredicate

      @Nullable public String getPredicate()
    • getPredicateUri

      @Nullable public String getPredicateUri()
    • getObject

      public String getObject()
    • getObjectUri

      @Nullable public String getObjectUri()
    • getObjectCategory

      @Nullable public String getObjectCategory()
    • getObjectCategoryUri

      @Nullable public String getObjectCategoryUri()
    • getTaxonId

      @Nullable public Long getTaxonId()
    • getTaxonName

      @Nullable public String getTaxonName()
    • getBasis

      public String getBasis()
    • getSource

      @Nullable public String getSource()
    • getSourceVersion

      @Nullable public String getSourceVersion()
    • getNumberOfExperiments

      public long getNumberOfExperiments()
    • getNumberOfExperimentsAtFactorValue

      public long getNumberOfExperimentsAtFactorValue()
    • getNumberOfExperimentsAtTag

      public long getNumberOfExperimentsAtTag()
    • getNumberOfExperimentsAtBioMaterial

      public long getNumberOfExperimentsAtBioMaterial()
    • getNumberOfExperimentsWithSubject

      public long getNumberOfExperimentsWithSubject()
    • getObjectBreadth

      public long getObjectBreadth()
      How many distinct subjects this object relates to. High means the object identifies nothing -- it is not a quality judgement, since a dose is a perfectly good statement and a very broad object.
    • getSubjectBreadth

      public long getSubjectBreadth()
      How many distinct objects this SUBJECT relates to UNDER THE SAME PREDICATE -- the mirror of objectBreadth. High means the term is enumerating a list rather than saying something about itself: an induced pluripotent stem cell line cell naming seventeen cell lines it was derived into is a heading, not a fact about the term on the card.

      🛑 The count was unscoped until 2026-08-27 and read a different number then; filter on it with maxSubjectBreadth.

    • getSpecificity

      public double getSpecificity()
    • getExampleDatasetId

      @Nullable public Long getExampleDatasetId()
    • isCorroborated

      public boolean isCorroborated()
      Whether this row stands on its own. False only for a CORPUS row, whose co-occurrence establishes association and nothing more -- and whose supply of evidence stops growing the moment curators stop writing the redundant tag it is derived from.
    • getTopicality

      public String getTopicality()
      TERM_LEVEL when the relation says what the subject term is or where it came from; EXPERIMENT_LEVEL when it records how one experiment was run (a dose, a duration, a sample's sex). Both are real curation; only the first belongs on a term card.
    • getInferenceDirection

      public String getInferenceDirection()
      SUBJECT_IMPLIES_OBJECT, OBJECT_IMPLIES_SUBJECT or NEITHER. A relation is readable from both ends and inferable from only one: the store holds Alzheimer disease --has_genotype--> APP/PS1, and APP/PS1 implies an Alzheimer model while Alzheimer implies nothing about APP/PS1 — not every Alzheimer model is APP/PS1.
    • getImpliedSubject

      @Nullable public String getImpliedSubject()
      The claim the relation licenses, phrased as its own triple rather than left as the stored row for a client to invert. Null when nothing is implied.

      Alzheimer disease --has_genotype--> APP/PS1 is stored; what follows from it is APP/PS1 --has role in modeling--> Alzheimer disease. Taxon picks the verb — a human subject gets has disease, because a human line carrying a variant is not modelling the disease, it has it.

    • getImpliedSubjectUri

      @Nullable public String getImpliedSubjectUri()
    • getImpliedPredicate

      @Nullable public String getImpliedPredicate()
    • getImpliedPredicateUri

      @Nullable public String getImpliedPredicateUri()
    • getImpliedObject

      @Nullable public String getImpliedObject()
    • getImpliedObjectUri

      @Nullable public String getImpliedObjectUri()
    • getImpliedTripleKey

      @Nullable public String getImpliedTripleKey()
      Identity of the CLAIM, for deduplicating a card. Two different stored relations can derive one claim -- BRCA1 --has disease--> breast cancer and breast cancer --has_genotype--> BRCA1 both yield BRCA1 has disease breast cancer -- and tripleKey, which identifies the row as stored, cannot group them. Null when the row licenses no claim.
    • getStatus

      public String getStatus()
      ASSERTED or REFUTED — whether the source states this relation holds, or states that it does not.

      Effectively always ASSERTED unless the caller asked for refutations, which are excluded by default and never license an inference. Present on every row so a client that does ask cannot mistake one for support.

    • getEvidence

      @Nullable public String getEvidence()
      The one-line basis the source gives, meant to be shown as-is -- PMID:11242117 where MGI cites a paper. Null for rows that legitimately have none: an ontology axiom cites nothing, and a corpus co-occurrence is evidence rather than having any.
    • getTripleKey

      public String getTripleKey()
      Identifies the subject/predicate/object triple irrespective of basis, so a client can group the side-by-side rows that one relation legitimately produces. Grouping on the rendered labels instead would merge relations that only look alike.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object