Project

General

Profile

Actions

feature request #6581

closed

Make all microreferenced references OriginalSources

Added by Andreas Müller almost 7 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Highest
Category:
cdm
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Severity:
normal

Description

Currently we have OriginalSource usually used for collections of sources while single references such as nomenclaturalReference or references for relations (or even secundum reference) use 2 fields for defining the reference, the references and the microreference fields. This is generally problematic e.g. when formatting the nomenclatural citation. Also it reduces the possibility to add further information that is available in OriginalSource such as name used in source (could be used for original spelling), source information (currently "name in source"), or further features such as URL(s) that do link to an online version of the source together with a comment (see #6588).

We may want to handle all these references as OriginalSources. Also this eases the usage of the Reference class as it is not linked from so many places anymore (but therefore OriginalSource is linked more). Also we can easier implement common formatters for sources.
Also this could improve the handling for protologues and similar "proves" for nomenclatural acts or references in general.

Possible candidates are

  • nomenclatural reference
  • RelationshipBase reference (TaxonRelationship, NameRelationship, HybridRelationship)
  • TypeDesignation (rename to designationSource => #9332)
  • Classification => needs further discussion as classification is SourcedEntityBase #9211
  • Secundum reference => #9327
  • TaxonNode
  • NomenclaturalStatus

Note: We already have the class ReferencedEntityBase which inherits from AnnotatableEntity and is the base class for RelationshipBase and TypeDesignation. This can be kept and the 3 parameters citation, microCitation and originalNameString can be replaced by according OriginalSource fields.

Open issues:

  • do we want to keep the direct methods, e.g. getNomenclaturalReference() in the main classes => for now we keep it, may be removed later
  • how to delete a source if it became completely empty
    • how to decide if a source is completely empty (is an attached annotation or import source enough to make it not empty, or is it required that a "citation" exist. What about external links as only information => isEmpty has been implemented and works on completely empty sources
    • where to delete it (in model or only during persistence) => #9069
  • should we support one common interface which makes it easier to program against but methods are difficult to name, getSource() or getOriginalSource() might not be an expected label for getNomenclaturalSource() in TaxonName or TypeDesignationBase. Maybe we use 2 interfaces, one for nomenclatural sources. => we do have a common interface where appropriate now
  • What OriginalSourceType to use: NomenclaturalReference could be a very strict source type for names and type designations, OriginalSource might be a more general one, maybe NomenclaturalReference might become a subtype; how is the relationship to PrimaryTaxonomicSource => partly handled in #9330
  • IMPORTANT: should we store this source together with other sources if available. This is the case for TaxonName.nomenclaturalReference and TaxonBase.secundum where the main classes are identifiable and already have sources. There might be performance issues and lazy loading issues if the specific source is stored together with the set of OrginalSources. => we decided not to do so
  • Should we have a strict type checking for the OriginalSourceType? => we do not handle source type for these sources in TaxEditor yet, maybe this becomes more interesting if we have something like SecondaryTaxonomicSource
  • Should we allow to always return a placeholder empty source in case no source exists, this reduces NPEs but the semantic must be strictly followed that this placeholder may not be attached to the parent and therefore changes will have no effect; we may have a singleton for this to improve performance and to throw exceptions when any changes are done on this placeholder => we do not use such an placeholder but we offer a get method with parameter createIfNotExists
  • Rename DescriptionElementSource to NamedSource as the only reason for distinguishing it from IdentifiableSource is now the additional attribute; the back link to the sourced entity does not exist anymore => #9331

Related issues

Related to EDIT - feature request #6588: Add URL and URL comment to OriginalSource / ExternalLinkClosedAndreas Müller

Actions
Related to EDIT - task #6591: Use name used in source for original spellingClosedAndreas Müller

Actions
Related to EDIT - bug #6623: formatter for bibliografic citations with citationDetailClosedAndreas Müller

Actions
Related to EDIT - feature request #6916: Link IntextReference to OriginalSource, not ReferenceIn ProgressAndreas Müller

Actions
Related to EDIT - bug #7781: original spelling is missing for accepted taxon in taxon pageIn ProgressKatja Luther

Actions
Related to EDIT - feature request #8017: TypeDesignations need sources additional to lectotypifcation sourcesClosedAndreas Müller

Actions
Related to EDIT - feature request #9004: Make TaxonNode.referenceForParentChildRelation an OriginalSource and rename it to (placement)sourceClosedAndreas Müller

Actions
Related to EDIT - feature request #9116: Adapt Editor to switch to originalSource for TaxonNode and improve layout of TaxonNode dialogueClosedKatja Luther

Actions
Related to EDIT - feature request #9194: Make RelationshipBase and NomenclaturalStatus reference OriginalSourceClosedAndreas Müller

Actions
Related to EDIT - bug #9199: Adapt TaxEditor to switch to originalSource for remaining single sourced objectsClosedKatja Luther

Actions
Related to EDIT - task #9222: Adapt dataportal to switch to originalSource for remaining single sourced classesClosedAndreas Kohlbecker

Actions
Related to EDIT - bug #9223: make changes of nomenclatural references detectable again in TaxonGraphBeforeTransactionCompleteProcessResolvedAndreas Müller

Actions
Related to EDIT - feature request #9225: Make TaxonName.nomenclaturalSource a new DescriptionElementSource subclassClosedAndreas Müller

Actions
Related to EDIT - feature request #9229: TaxonNameEditor: use NomenclaturalStatusDTO to avoid data loading probems within setters in TaxonNameClosedAndreas Kohlbecker

Actions
Related to EDIT - task #9266: Remove protologue section from TaxEditorClosedKatja Luther

Actions
Related to EDIT - bug #9289: LazyInitializationException (LIE) in NameTypeDesignationEditorClosedAndreas Kohlbecker

Actions
Related to EDIT - bug #9313: LazyInitializationException (LIE) in TaxonNamePopupEditorClosedAndreas Kohlbecker

Actions
Related to EDIT - task #9315: Remove old single source citation and microCitation columnsClosedAndreas Müller

Actions
Related to EDIT - bug #9312: NullPointerException (NPE) in TaxonNamePopupEditorClosedAndreas Müller

Actions
Related to EDIT - bug #9318: TaxonNameEditor: nomenclatural reference no longer selectableClosedAndreas Kohlbecker

Actions
Related to EDIT - task #9536: Remove old single source citation and microCitation columns for secundum and DescriptionElementBase_OriginalSourceBase and TaxonName_NomenclaturalStatusClosedAndreas Müller

Actions
Related to EDIT - task #9330: Remove "NomenclaturalSource" from OriginalSourceTypeClosedAndreas Müller

Actions
Related to EDIT - feature request #9332: Rename TypeDesignationBase.source to .designationSourceClosedAndreas Müller

Actions
Blocks EDIT - feature request #6589: Handle protologue as original source with URI linkClosedAndreas Müller

Actions
Copied from EDIT - bug #9069: Remove orphan single sourcesNewAndreas Müller

Actions
Copied to EDIT - feature request #9211: Handle source(s) for ClassificationClosedAndreas Müller

Actions
Copied to EDIT - feature request #9327: Make taxon secundum reference an original sourceClosedAndreas Müller

Actions
Copied to EDIT - feature request #9331: Distinguish DescriptionElementSource and NamedSourceClosedAndreas Müller

Actions
Actions

Also available in: Atom PDF