Project

General

Profile

feature request #6581

Make all microreferenced references OriginalSources

Added by Andreas Müller almost 2 years ago. Updated 23 days ago.

Status:
In Progress
Priority:
Priority13
Category:
cdm
Target version:
Start date:
04/24/2017
Due date:
% Done:

10%

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
  • TypeDesignation (rename to designationSource)
  • Classification
  • Secundum reference (?)

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
  • 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
    • where to delete it (in model or only during persistence)
  • 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.
  • 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
  • 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.
  • Should we have a strict type checking for the OriginalSourceType?
  • 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
  • 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

Related issues

Related to Edit - feature request #6588: Add URL and URL comment to OriginalSource / ExternalLink Closed 04/24/2017
Related to Edit - task #6591: Use name used in source for original spelling New 04/25/2017
Related to Edit - bug #6623: formatter for bibliografic citations with citationDetail New 05/05/2017
Related to Edit - feature request #6916: Link IntextReference to OriginalSource, not Reference In Progress 08/15/2017
Related to Edit - bug #7781: original spelling is missing for accepted taxon in taxon page New 09/21/2018
Related to Edit - feature request #8017: TypeDesignations need sources additional to lectotypifcation sources Resolved 01/24/2019
Blocks Edit - feature request #6589: Handle protologue as original source with URI link New 04/24/2017

Associated revisions

Revision 94d72025 (diff)
Added by Andreas Müller 11 months ago

ref #6581 first incomplete version for making nomenclatural reference an orginal source

Revision 82ceb6d9 (diff)
Added by Andreas Müller 11 months ago

ref #6581 nomRef to OriginalSource allow setNomRef by Interface for compiling

Revision 0e34b7ad (diff)
Added by Andreas Müller 11 months ago

ref #6581 add DescriptionElementSource to TaxonName import

Revision 5d30857a (diff)
Added by Andreas Müller 11 months ago

ref #6581 add uuid to OriginalSourceType.NomenclaturalReference

Revision 19bb1cb2 (diff)
Added by Andreas Müller 11 months ago

ref #6581 add TaxonName.nomenclaturalSource_id and adapt constructor visibility for DescriptionElementSource

Revision 59e36d30 (diff)
Added by Andreas Müller 11 months ago

ref #6581 preliminary revert some changes for making nomenclaturalReference an OriginalSource

History

#1 Updated by Andreas Müller almost 2 years ago

  • Description updated (diff)

#2 Updated by Andreas Müller almost 2 years ago

  • Description updated (diff)

#3 Updated by Andreas Müller almost 2 years ago

#4 Updated by Andreas Müller almost 2 years ago

#5 Updated by Andreas Müller almost 2 years ago

  • Description updated (diff)

#6 Updated by Andreas Müller almost 2 years ago

  • Related to task #6591: Use name used in source for original spelling added

#7 Updated by Andreas Müller almost 2 years ago

AK: > Viel besser sollten wir das im ValidationFramework als Rule definieren.
+1

das Ticket https://dev.e-taxonomy.eu/redmine/issues/6581 freut mich wirklich sehr, denn die Nomenklatorischen Referenzen sind auch in Portal sehr lästig, da man mit citation und citationDetail immer noch einen extra Request an den Server schicken muss um den kompletten Citation String zu bekommen.

#8 Updated by Andreas Müller almost 2 years ago

  • Priority changed from New to Priority14

#9 Updated by Andreas Müller almost 2 years ago

  • Target version changed from CDM UML 4.7 to CDM UML 5.0

#10 Updated by Andreas Müller almost 2 years ago

  • Description updated (diff)
  • Status changed from New to In Progress
  • Priority changed from Priority14 to Highest

#11 Updated by Andreas Müller almost 2 years ago

  • Description updated (diff)
  • % Done changed from 0 to 10

#12 Updated by Andreas Müller almost 2 years ago

  • Description updated (diff)

#13 Updated by Andreas Müller over 1 year ago

  • Related to bug #6623: formatter for bibliografic citations with citationDetail added

#14 Updated by Andreas Müller over 1 year ago

#15 Updated by Andreas Müller 10 months ago

  • Priority changed from Highest to Priority14

#16 Updated by Andreas Müller 10 months ago

  • Target version changed from CDM UML 5.0 to CDM UML 5.5

#18 Updated by Andreas Müller 6 months ago

  • Related to bug #7781: original spelling is missing for accepted taxon in taxon page added

#19 Updated by Andreas Müller 2 months ago

  • Priority changed from Priority14 to Priority13

#20 Updated by Andreas Müller 24 days ago

  • Related to feature request #8017: TypeDesignations need sources additional to lectotypifcation sources added

#21 Updated by Andreas Müller 23 days ago

  • Description updated (diff)

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)