Skip to content

[DwC export]: Create and maintain schema terms JSON files #7714

Description

@grantfitzsimmons

Goal

Create and maintain a static schema_terms.json file that serves as the single source of truth for all supported Darwin Core and extension terms.

Example:

{
    "dwc": {
        "desc": "Darwin Core",
        "abbreviation": "dwc",
        "vocabularyURI": "http://rs.tdwg.org/dwc/terms/",
        "lastUpdated": "2023-09-18",
        "terms": [
            {"http://rs.tdwg.org/dwc/terms/eventDate": {"name": "Event Date", "mappingPath": "table:collectionObject → field:startDateOrEndDate", "description": "The date-time or interval during which a dwc:Event occurred. For occurrences, this is the date-time when the dwc:Event was recorded. Not suitable for a time in a geological context.", "termName": "eventDate"}},
            {"http://rs.tdwg.org/dwc/terms/basisOfRecord": {"name": "Basis Of Record", "mappingPath": "table:collectionObject → field:basisOfRecord", "description": "The specific nature of the data record.", "termName": "basisOfRecord"}},
            {"http://rs.tdwg.org/dwc/terms/scientificName": {"name": "Scientific Name", "mappingPath": "table:collectionObject → field:fullName", "description": "The full scientific name, with authorship and date information if known. When forming part of a dwc:Identification, this should be the name in lowest level taxonomic rank that can be determined. This term should not contain identification qualifications, which should instead be supplied in the dwc:identificationQualifier term.", "termName": "scientificName"}},
            {"http://rs.tdwg.org/dwc/terms/occurrenceID": {"name": "Occurrence ID", "mappingPath": "table:collectionObject → field:guid", "description": "An identifier for the dwc:Occurrence (as opposed to a particular digital record of the dwc:Occurrence). In the absence of a persistent global unique identifier, construct one from a combination of identifiers in the record that will most closely make the dwc:occurrenceID globally unique.", "termName": "occurrenceId"}}
        ]
    }
}

See my working example, including dwc (Darwin Core) and ac (Audiovisual Core):
specify_dwc.json

Background

All term lists in the UI are driven by this file. System-provided terms must be read-only. The file must include all currently accepted Darwin Core terms mapped to Specify fields per the DwC Terms to Specify spreadsheet.

Acceptance Criteria

  • JSON file created following the documented structure (IRI key → name, mappingPath, description, termName).
  • File includes all current accepted Darwin Core terms with mappingPath entries from the DwC Terms to Specify spreadsheet.
  • Extension vocabularies (Audiovisual Core, etc.) are included as separate top-level keys.
  • System terms are read-only and cannot be modified via the UI.
  • Adding new terms to the JSON in a software update does not break existing schemamapping records (stored term IRIs remain valid).
  • A working example file (specify_dwc.json) is provided as reference.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions