Skip to content

Commit

Permalink
allow for recordedById to be optional for DarkTaxon sample event reco…
Browse files Browse the repository at this point in the history
  • Loading branch information
Jorrit Poelen committed Sep 9, 2024
1 parent 26a7896 commit c46025e
Showing 1 changed file with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public class DarkTaxonUtil {
public static final String EVENT = "event";
public static final String PHYSICAL_OBJECT = "physicalobject";
public static final String PHOTO = "image%2Binner%3Aimage-photo";
public static final String GBIF_RECORDED_BY_ID = "http://rs.gbif.org/terms/1.0/recordedByID";

static void appendAlternateIdentifiers(ObjectNode linkRecords, String imageContentId) {
ZenodoMetaUtil.appendIdentifier(linkRecords, ZenodoMetaUtil.IS_ALTERNATE_IDENTIFIER, imageContentId);
Expand Down Expand Up @@ -151,10 +152,8 @@ static ObjectNode toEventDeposit(String jsonString, PublicationDateFactory publi
addValueAsCustomFieldIfAvailable(zenodoMetadata, ZenodoMetaUtil.FIELD_CUSTOM_DWC_VERBATIM_EVENT_DATE, eventDate);
addValueAsCustomFieldIfAvailable(zenodoMetadata, ZenodoMetaUtil.FIELD_CUSTOM_DWC_LOCALITY, locality);
addValueAsCustomFieldIfAvailable(zenodoMetadata, ZenodoMetaUtil.FIELD_CUSTOM_DWC_RECORDED_BY, getValueOrThrow(multimedia, "http://rs.tdwg.org/dwc/terms/recordedBy"));
if (multimedia.has(DWC_TERMS_RECORDED_BY_ID) && StringUtils.isNotBlank(multimedia.get(DWC_TERMS_RECORDED_BY_ID).asText())) {
addValueAsCustomFieldIfAvailable(zenodoMetadata, ZenodoMetaUtil.FIELD_CUSTOM_DWC_RECORDED_BY_ID, getValueOrThrow(multimedia, DWC_TERMS_RECORDED_BY_ID));
}
addValueAsCustomFieldIfAvailable(zenodoMetadata, ZenodoMetaUtil.FIELD_CUSTOM_GBIF_DWC_RECORDED_BY_ID, getValueOrThrow(multimedia, "http://rs.tdwg.org/dwc/terms/recordedByID"));
addRecordedByIfAvailable(multimedia, zenodoMetadata, DWC_TERMS_RECORDED_BY_ID);
addRecordedByIfAvailable(multimedia, zenodoMetadata, GBIF_RECORDED_BY_ID);
ZenodoMetaUtil.setFilename(zenodoMetadata, "event.json");
ZenodoMetaUtil.appendIdentifier(zenodoMetadata, ZenodoMetaUtil.IS_ALTERNATE_IDENTIFIER, eventId);
ZenodoMetaUtil.appendIdentifier(zenodoMetadata, ZenodoMetaUtil.IS_VERSION_OF, ZenodoUtils.getSearchPageForExistingRecords(ctx, Arrays.asList(eventId), EVENT).getIRIString());
Expand All @@ -171,6 +170,12 @@ static ObjectNode toEventDeposit(String jsonString, PublicationDateFactory publi
return ZenodoMetaUtil.wrap(zenodoMetadata);
}

private static void addRecordedByIfAvailable(JsonNode multimedia, ObjectNode zenodoMetadata, String fieldName) throws MissingMetadataFieldException {
if (multimedia.has(fieldName) && StringUtils.isNotBlank(multimedia.get(fieldName).asText())) {
addValueAsCustomFieldIfAvailable(zenodoMetadata, ZenodoMetaUtil.FIELD_CUSTOM_DWC_RECORDED_BY_ID, getValueOrThrow(multimedia, fieldName));
}
}

private static void addReferences(ObjectNode zenodoMetadata) {
ZenodoMetaUtil.append(zenodoMetadata, ZenodoMetaUtil.REFERENCES, "Hartop E, Srivathsan A, Ronquist F, Meier R (2022) Towards Large-Scale Integrative Taxonomy (LIT): resolving the data conundrum for dark taxa. Syst Biol 71:1404–1422. https://doi.org/10.1093/sysbio/syac033");
ZenodoMetaUtil.append(zenodoMetadata, ZenodoMetaUtil.REFERENCES, "Srivathsan, A., Meier, R. (2024). Scalable, Cost-Effective, and Decentralized DNA Barcoding with Oxford Nanopore Sequencing. In: DeSalle, R. (eds) DNA Barcoding. Methods in Molecular Biology, vol 2744. Humana, New York, NY. https://doi.org/10.1007/978-1-0716-3581-0_14");
Expand Down Expand Up @@ -222,7 +227,7 @@ public static ObjectNode toPhysicalObjectDeposit(String jsonString, PublicationD

if (StringUtils.isBlank(contentId)) {
contentId = Hasher.calcHashIRI(jsonString, HashType.md5).getIRIString();
filename = "event.json";
filename = "occurrence.json";
}

ZenodoMetaUtil.setFilename(zenodoMetadata, filename);
Expand Down

0 comments on commit c46025e

Please sign in to comment.