From 6e645c9fe0228ed1f2b5b6891c2246118dbb8705 Mon Sep 17 00:00:00 2001 From: tucotuco Date: Fri, 15 Sep 2023 18:18:46 -0300 Subject: [PATCH] Major overhaul to address all issues associated with Material Sample Public Review 2023. --- build/build.py | 31 +- build/buildxml.py | 676 ------------------ build/extended_mof.tmpl | 13 - build/extended_mof_list.csv | 14 - build/occurrence_iri.tmpl | 13 - build/occurrence_iri_list.csv | 44 -- build/qrg-list.csv | 4 +- build/terms.tmpl | 2 + build/{ => xml}/build_extension.py | 25 +- build/{ => xml}/event_core.tmpl | 4 +- build/{ => xml}/event_core_list.csv | 13 +- build/xml/humboldt_eco.tmpl | 14 + build/xml/humboldt_eco_list.csv | 55 ++ build/{ => xml}/identification_history.tmpl | 4 +- .../{ => xml}/identification_history_list.csv | 7 +- build/{ => xml}/measurements_or_facts.tmpl | 4 +- .../{ => xml}/measurements_or_facts_list.csv | 5 +- build/{ => xml}/occurrence_core.tmpl | 4 +- build/{ => xml}/occurrence_core_list.csv | 26 +- build/{ => xml}/resource_relationship.tmpl | 4 +- .../{ => xml}/resource_relationship_list.csv | 2 +- build/{ => xml}/taxon_core.tmpl | 7 +- build/{ => xml}/taxon_core_list.csv | 19 +- dist/simple_dwc_horizontal.csv | 2 +- dist/simple_dwc_vertical.csv | 4 +- docs/examples/template.md | 3 + docs/examples/verbatimLabel.md | 11 +- docs/namespace/index.md | 19 +- docs/simple/index.md | 29 +- docs/terms/index.md | 61 +- docs/text/example_text_simpledwc_complete.xml | 243 ++++--- docs/text/index.md | 17 +- docs/text/tdwg_dwc_text.xsd | 2 +- docs/xml/index.md | 21 +- docs/xml/tdwg_dwc_class_terms.xsd | 13 +- docs/xml/tdwg_dwc_simple.xsd | 15 +- docs/xml/tdwg_dwcterms.xsd | 36 +- vocabulary/term_versions.csv | 6 +- 38 files changed, 427 insertions(+), 1045 deletions(-) delete mode 100644 build/buildxml.py delete mode 100644 build/extended_mof.tmpl delete mode 100644 build/extended_mof_list.csv delete mode 100644 build/occurrence_iri.tmpl delete mode 100644 build/occurrence_iri_list.csv rename build/{ => xml}/build_extension.py (95%) rename build/{ => xml}/event_core.tmpl (78%) rename build/{ => xml}/event_core_list.csv (98%) create mode 100644 build/xml/humboldt_eco.tmpl create mode 100644 build/xml/humboldt_eco_list.csv rename build/{ => xml}/identification_history.tmpl (67%) rename build/{ => xml}/identification_history_list.csv (85%) rename build/{ => xml}/measurements_or_facts.tmpl (79%) rename build/{ => xml}/measurements_or_facts_list.csv (89%) rename build/{ => xml}/occurrence_core.tmpl (73%) rename build/{ => xml}/occurrence_core_list.csv (90%) rename build/{ => xml}/resource_relationship.tmpl (63%) rename build/{ => xml}/resource_relationship_list.csv (98%) rename build/{ => xml}/taxon_core.tmpl (64%) rename build/{ => xml}/taxon_core_list.csv (72%) diff --git a/build/build.py b/build/build.py index 377822c..1b05021 100644 --- a/build/build.py +++ b/build/build.py @@ -4,7 +4,7 @@ # # Build script for tdwg dwc handling # -__version__ = '2021-07-30T-03:00' +__version__ = '2023-09-14T-03:00' import io import os import re @@ -281,7 +281,19 @@ class DwcDigester(object): properties.append(term_data["label"]) return properties - def create_dwc_list(self, file_output="../dist/simple_dwc_vertical.csv"): + def all_dwc_terms(self): + """Extract all property terms that are defined as `simple` or 'extension' + in the flags column of the config file of terms + """ + properties = [] + for term in self.versions(): + term_data = self.get_term_definition(term['term_iri']) + if (term_data["rdf_type"] == "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property" and + term["flags"] in ("simple","extension")): + properties.append(term_data["label"]) + return properties + + def create_simple_dwc_list(self, file_output="../dist/simple_dwc_vertical.csv"): """Build a list of simple dwc terms and write it to file Parameters @@ -293,6 +305,18 @@ class DwcDigester(object): for term in self.simple_dwc_terms(): dwc_list_file.write(term + "\n") + def create_all_dwc_list(self, file_output="../dist/all_dwc_vertical.csv"): + """Build a list of all dwc terms and write it to file + + Parameters + ----------- + file_output : str + relative path and filename to write the resulting list + """ + with codecs.open(file_output, 'w', 'utf-8') as dwc_list_file: + for term in self.all_dwc_terms(): + dwc_list_file.write(term + "\n") + def create_dwc_header(self, file_output="../dist/simple_dwc_horizontal.csv"): """Build a header of simple dwc terms and write it to file @@ -316,7 +340,8 @@ def main(): print("Building Quick Reference Guide") my_dwc.create_html() print("Building simple DwC CSV files") - my_dwc.create_dwc_list() + my_dwc.create_simple_dwc_list() + my_dwc.create_all_dwc_list() my_dwc.create_dwc_header() print("Done!") diff --git a/build/buildxml.py b/build/buildxml.py deleted file mode 100644 index ad8976d..0000000 --- a/build/buildxml.py +++ /dev/null @@ -1,676 +0,0 @@ -# -# Author: John Wieczorek -# -# Build script for XML-based extension files for use with the Integrated Publishing -# Toolkit (IPT). XML files produced from this script need to go into the appropriate -# directories in https://github.com/gbif/rs.gbif.org/tree/master/core or -# https://github.com/gbif/rs.gbif.org/tree/master/extension/dwc with file names reflecting -# version dates (e.g., dwc_taxon_2023-07-07.xml). -# Extensions are defined first in the CSVtoXMLConverter class' __init__ member function -# by populating the dictionary extensions_configuration. -# One extension can be generated per run of the script, with the extension's name and -# destination file as parameters (see main() for syntax). -# -__version__ = '2023-07-09T20:21-03:00' - -import csv -import sys -import argparse -from xml.sax.saxutils import escape - -class CSVtoXMLConverter: - ''' - Class to manage the configurations for Darwin Core extension definitions and build - XML output from the term history document (../vocabulary/term_versions.csv). - ''' - def __init__(self, csv_file_path): - self.csv_file_path = csv_file_path - self.root_element = None - self.row_element = None - self.extensions_configuration = { - "Occurrence": { - "title":"Darwin Core Occurrence", - "namespace":"http://rs.tdwg.org/dwc/terms/", - "rowType":"http://rs.tdwg.org/dwc/terms/Occurrence", - "dc:issued":"2023-07-07", - "dc:relation":"http://rs.tdwg.org/dwc/terms/index.htm#Occurrence", - "dc:description":"An existence of a dwc:Organism at a particular place at a particular time.", - "included_terms":[ - "type", - "modified", - "language", - "license", - "rightsHolder", - "accessRights", - "bibliographicCitation", - "references", - "institutionID", - "collectionID", - "datasetID", - "institutionCode", - "collectionCode", - "datasetName", - "ownerInstitutionCode", - "basisOfRecord", - "informationWithheld", - "dataGeneralizations", - "dynamicProperties", - "occurrenceID", - "catalogNumber", - "recordNumber", - "recordedBy", - "recordedByID", - "individualCount", - "organismQuantity", - "organismQuantityType", - "sex", - "lifeStage", - "reproductiveCondition", - "caste", - "behavior", - "vitality", - "establishmentMeans", - "degreeOfEstablishment", - "pathway", - "georeferenceVerificationStatus", - "occurrenceStatus", - "preparations", - "disposition", - "associatedMedia", - "associatedOccurrences", - "associatedReferences", - "associatedSequences", - "associatedTaxa", - "otherCatalogNumbers", - "occurrenceRemarks", - "organismID", - "organismName", - "organismScope", - "associatedOrganisms", - "previousIdentifications", - "organismRemarks", - "materialSampleID", - "verbatimLabel", - "eventID", - "parentEventID", - "eventType", - "fieldNumber", - "eventDate", - "eventTime", - "startDayOfYear", - "endDayOfYear", - "year", - "month", - "day", - "verbatimEventDate", - "habitat", - "samplingProtocol", - "sampleSizeValue", - "sampleSizeUnit", - "samplingEffort", - "fieldNotes", - "eventRemarks", - "locationID", - "higherGeographyID", - "higherGeography", - "continent", - "waterBody", - "islandGroup", - "island", - "country", - "countryCode", - "stateProvince", - "county", - "municipality", - "locality", - "verbatimLocality", - "minimumElevationInMeters", - "maximumElevationInMeters", - "verbatimElevation", - "verticalDatum", - "minimumDepthInMeters", - "maximumDepthInMeters", - "verbatimDepth", - "minimumDistanceAboveSurfaceInMeters", - "maximumDistanceAboveSurfaceInMeters", - "locationAccordingTo", - "locationRemarks", - "decimalLatitude", - "decimalLongitude", - "geodeticDatum", - "coordinateUncertaintyInMeters", - "coordinatePrecision", - "pointRadiusSpatialFit", - "verbatimCoordinates", - "verbatimLatitude", - "verbatimLongitude", - "verbatimCoordinateSystem", - "verbatimSRS", - "footprintWKT", - "footprintSRS", - "footprintSpatialFit", - "georeferencedBy", - "georeferencedDate", - "georeferenceProtocol", - "georeferenceSources", - "georeferenceRemarks", - "geologicalContextID", - "earliestEonOrLowestEonothem", - "latestEonOrHighestEonothem", - "earliestEraOrLowestErathem", - "latestEraOrHighestErathem", - "earliestPeriodOrLowestSystem", - "latestPeriodOrHighestSystem", - "earliestEpochOrLowestSeries", - "latestEpochOrHighestSeries", - "earliestAgeOrLowestStage", - "latestAgeOrHighestStage", - "lowestBiostratigraphicZone", - "highestBiostratigraphicZone", - "lithostratigraphicTerms", - "group", - "formation", - "member", - "bed", - "identificationID", - "verbatimIdentification", - "identificationQualifier", - "typeStatus", - "identifiedBy", - "identifiedByID", - "dateIdentified", - "identificationReferences", - "identificationVerificationStatus", - "identificationRemarks", - "taxonID", - "scientificNameID", - "acceptedNameUsageID", - "parentNameUsageID", - "originalNameUsageID", - "nameAccordingToID", - "namePublishedInID", - "taxonConceptID", - "scientificName", - "acceptedNameUsage", - "parentNameUsage", - "originalNameUsage", - "nameAccordingTo", - "namePublishedIn", - "namePublishedInYear", - "higherClassification", - "kingdom", - "phylum", - "class", - "order", - "superfamily", - "family", - "subfamily", - "tribe", - "subtribe", - "genus", - "genericName", - "subgenus", - "infragenericEpithet", - "specificEpithet", - "infraspecificEpithet", - "cultivarEpithet", - "taxonRank", - "verbatimTaxonRank", - "scientificNameAuthorship", - "vernacularName", - "nomenclaturalCode", - "taxonomicStatus", - "nomenclaturalStatus", - "taxonRemarks" - ], - "required":["basisOfRecord"], - "thesauri":{ - "type":"http://rs.gbif.org/vocabulary/dcterms/type.xml", - "basisOfRecord":"http://rs.gbif.org/vocabulary/dwc/basis_of_record_2022-02-02.xml", - "organismQuantityType":"http://rs.gbif.org/vocabulary/gbif/quantity_type_2015-07-10.xml", - "establishmentMeans":"http://rs.gbif.org/vocabulary/dwc/establishment_means_2022-02-02.xml", - "degreeOfEstablishment":"http://rs.gbif.org/vocabulary/dwc/degree_of_establishment_2022-02-02.xml", - "pathway":"http://rs.gbif.org/vocabulary/dwc/pathway_2022-02-02.xml", - "occurrenceStatus":"http://rs.gbif.org/vocabulary/gbif/occurrence_status_2020-07-15.xml", - "sampleSizeUnit":"http://rs.gbif.org/vocabulary/gbif/unit_of_measurement_2015-07-10.xml", - "taxonRank":"http://rs.gbif.org/vocabulary/gbif/rank_2015-04-24.xml", - "nomenclaturalCode":"http://rs.gbif.org/vocabulary/gbif/nomenclatural_code.xml" - }, - "gbif_additions":[ -# "" - ] - }, - "Event": { - "title":"Darwin Core Event", - "namespace":"http://rs.tdwg.org/dwc/terms/", - "rowType":"http://rs.tdwg.org/dwc/terms/Event", - "dc:issued":"2023-07-07", - "dc:relation":"http://rs.tdwg.org/dwc/terms/index.htm#Event", - "dc:description":"An action that occurs at some location during some time.", - "included_terms":[ - "type", - "modified", - "language", - "license", - "rightsHolder", - "accessRights", - "bibliographicCitation", - "references", - "institutionID", - "datasetID", - "institutionCode", - "datasetName", - "ownerInstitutionCode", - "informationWithheld", - "dataGeneralizations", - "dynamicProperties", - "eventID", - "parentEventID", - "eventType", - "fieldNumber", - "eventDate", - "eventTime", - "startDayOfYear", - "endDayOfYear", - "year", - "month", - "day", - "verbatimEventDate", - "habitat", - "samplingProtocol", - "sampleSizeValue", - "sampleSizeUnit", - "samplingEffort", - "fieldNotes", - "eventRemarks", - "locationID", - "higherGeographyID", - "higherGeography", - "continent", - "waterBody", - "islandGroup", - "island", - "country", - "countryCode", - "stateProvince", - "county", - "municipality", - "locality", - "verbatimLocality", - "minimumElevationInMeters", - "maximumElevationInMeters", - "verbatimElevation", - "verticalDatum", - "minimumDepthInMeters", - "maximumDepthInMeters", - "verbatimDepth", - "minimumDistanceAboveSurfaceInMeters", - "maximumDistanceAboveSurfaceInMeters", - "locationAccordingTo", - "locationRemarks", - "decimalLatitude", - "decimalLongitude", - "geodeticDatum", - "coordinateUncertaintyInMeters", - "coordinatePrecision", - "pointRadiusSpatialFit", - "verbatimCoordinates", - "verbatimLatitude", - "verbatimLongitude", - "verbatimCoordinateSystem", - "verbatimSRS", - "footprintWKT", - "footprintSRS", - "footprintSpatialFit", - "georeferencedBy", - "georeferencedDate", - "georeferenceProtocol", - "georeferenceSources", - "georeferenceRemarks", - "geologicalContextID", - "earliestEonOrLowestEonothem", - "latestEonOrHighestEonothem", - "earliestEraOrLowestErathem", - "latestEraOrHighestErathem", - "earliestPeriodOrLowestSystem", - "latestPeriodOrHighestSystem", - "earliestEpochOrLowestSeries", - "latestEpochOrHighestSeries", - "earliestAgeOrLowestStage", - "latestAgeOrHighestStage", - "lowestBiostratigraphicZone", - "highestBiostratigraphicZone", - "lithostratigraphicTerms", - "group", - "formation", - "member", - "bed" - ], - "required":[], - "thesauri":{ - "type":"http://rs.gbif.org/vocabulary/dcterms/type.xml", - "sampleSizeUnit":"http://rs.gbif.org/vocabulary/gbif/unit_of_measurement_2015-07-10.xml" - }, - "gbif_additions":[ -# "" - ] - }, - "Taxon": { - "title":"Darwin Core Taxon", - "namespace":"http://rs.tdwg.org/dwc/terms/", - "rowType":"http://rs.tdwg.org/dwc/terms/Taxon", - "dc:issued":"2023-07-07", - "dc:relation":"http://rs.tdwg.org/dwc/terms/index.htm#Taxon", - "dc:description":"A group of organisms (sensu http://purl.obolibrary.org/obo/OBI_0100026) considered by taxonomists to form a homogeneous unit.", - "included_terms":[ - "taxonID", - "scientificNameID", - "acceptedNameUsageID", - "parentNameUsageID", - "originalNameUsageID", - "nameAccordingToID", - "namePublishedInID", - "taxonConceptID", - "scientificName", - "acceptedNameUsage", - "parentNameUsage", - "originalNameUsage", - "nameAccordingTo", - "namePublishedIn", - "namePublishedInYear", - "higherClassification", - "kingdom", - "phylum", - "class", - "order", - "superfamily", - "family", - "subfamily", - "tribe", - "subtribe", - "genus", - "genericName", - "subgenus", - "infragenericEpithet", - "specificEpithet", - "infraspecificEpithet", - "cultivarEpithet", - "taxonRank", - "verbatimTaxonRank", - "scientificNameAuthorship", - "vernacularName", - "nomenclaturalCode", - "taxonomicStatus", - "nomenclaturalStatus", - "taxonRemarks", - "modified", - "language", - "license", - "rightsHolder", - "accessRights", - "bibliographicCitation", - "references", - "institutionCode", - "institutionID", - "datasetID", - "datasetName", - "informationWithheld" - ], - "required":[], - "thesauri":{ - "taxonRank":"http://rs.gbif.org/vocabulary/gbif/rank_2015-04-24.xml", - "nomenclaturalCode":"http://rs.gbif.org/vocabulary/gbif/nomenclatural_code.xml" - }, - "gbif_additions":[ -# "" - ] - }, - "Identification": { - "title":"Darwin Core Identification History", - "namespace":"http://rs.tdwg.org/dwc/terms/", - "rowType":"http://rs.tdwg.org/dwc/terms/Identification", - "dc:issued":"2023-07-07", - "dc:subject":"dwc:Occurrence", - "dc:relation":"http://rs.tdwg.org/dwc/terms/index.htm#Identification", - "dc:description":"Support for multiple identifications (determinations) of dwc:Occurrences. All identifications including the most current one should be listed, while the current one should also be repeated in the Occurrence Core.", - "included_terms":[ - "identificationID", - "verbatimIdentification", - "identificationQualifier", - "typeStatus", - "identifiedBy", - "identifiedByID", - "dateIdentified", - "identificationReferences", - "identificationVerificationStatus", - "identificationRemarks", - "taxonID", - "scientificNameID", - "acceptedNameUsageID", - "parentNameUsageID", - "originalNameUsageID", - "nameAccordingToID", - "namePublishedInID", - "taxonConceptID", - "scientificName", - "acceptedNameUsage", - "parentNameUsage", - "originalNameUsage", - "nameAccordingTo", - "namePublishedIn", - "namePublishedInYear", - "higherClassification", - "kingdom", - "phylum", - "class", - "order", - "superfamily", - "family", - "subfamily", - "tribe", - "subtribe", - "genus", - "genericName", - "subgenus", - "infragenericEpithet", - "specificEpithet", - "infraspecificEpithet", - "cultivarEpithet", - "taxonRank", - "verbatimTaxonRank", - "scientificNameAuthorship", - "vernacularName", - "nomenclaturalCode", - "taxonomicStatus", - "nomenclaturalStatus", - "taxonRemarks" - ], - "required":[], - "thesauri":{ - "taxonRank":"http://rs.gbif.org/vocabulary/gbif/rank_2015-04-24.xml", - "nomenclaturalCode":"http://rs.gbif.org/vocabulary/gbif/nomenclatural_code.xml" - }, - "gbif_additions":[ -# "" - ] - }, - "MeasurementOrFacts": { - "title":"Darwin Core Measurement or Facts", - "namespace":"http://rs.tdwg.org/dwc/terms/", - "rowType":"http://rs.tdwg.org/dwc/terms/MeasurementOrFact", - "dc:issued":"2023-07-07", - "dc:subject":"dwc:Occurrence dwc:Event dwc:Taxon", - "dc:relation":"http://rs.tdwg.org/dwc/terms/index.htm#MeasurementOrFact", - "dc:description":"Support for multiple Darwin Core MeasurementOrFacts per core record. Allows links to any core.", - "included_terms":[ - "measurementID", - "parentMeasurementID", - "measurementType", - "measurementValue", - "measurementAccuracy", - "measurementUnit", - "measurementDeterminedBy", - "measurementDeterminedDate", - "measurementMethod", - "measurementRemarks" - ], - "required":["measurementType"], - "thesauri":{ - }, - "gbif_additions":[ -# "" - ] - }, - "ResourceRelationships": { - "title":"Darwin Core Resource Relationships", - "namespace":"http://rs.tdwg.org/dwc/terms/", - "rowType":"http://rs.tdwg.org/dwc/terms/ResourceRelationship", - "dc:issued":"2023-07-07", - "dc:subject":"dwc:Occurrence dwc:Event dwc:Taxon", - "dc:relation":"http://rs.tdwg.org/dwc/terms/index.htm#ResourceRelationship", - "dc:description":"Support for multiple Darwin Core ResourceRelationships between records in the Core, in an extension, or resources external to the data set. The identifiers for subject (resourceID) and object (relatedResourceID) may exist in the dataset or be accessible via an externally resolvable identifier.", - "included_terms":[ - "resourceRelationshipID", - "resourceID", - "relationshipOfResourceID", - "relatedResourceID", - "relationshipOfResource", - "relationshipAccordingTo", - "relationshipEstablishedDate", - "relationshipRemarks" - ], - "required":[ - "resourceID", - "relatedResourceID", - "relationshipOfResource" - ], - "thesauri":{ - }, - "gbif_additions":[ -# "" - ] - } - } - - def get_xml(self, extension_name): - ''' - Use extension_name to read the XML configuration and build the XML. - ''' - extension = self.extensions_configuration.get(extension_name) - if extension is None: - print(f'Extension {extension_name} not found in extensions configuration.') - return - xml = '\n' - xml += '\n' - xml += '\n' - xml += '\n' - with open(self.csv_file_path, 'r') as csv_file: - reader = csv.reader(csv_file) - header = next(reader) - for row in reader: - row_dict = dict(zip(header, row)) - if row_dict["status"] != "recommended": - break - if row_dict['rdf_type'] == "http://www.w3.org/2000/01/rdf-schema#Class": - continue - if row_dict["term_localName"] not in extension.get("included_terms"): - continue - term_xml = "0: - description += f' {row_dict["comments"]}' - description = escape(description, {'"':'"'}) - term_xml += f'dc:description="{description}" ' - examples = row_dict.get("examples") or "" - examples = escape(examples, {'"':'"'}) - term_xml += f'examples="{examples}" ' - if row_dict["term_localName"] in extension.get("required"): - term_xml += f'required="true"/>' - else: - term_xml += f'required="false"/>' - xml += f' {term_xml}\n' - for addition in extension.get("gbif_additions"): - addition = escape(addition,{'"':'"'}) - xml += f' {addition}' - xml += "" - return xml - - def write_xml(self, extension_name, filename): - ''' - Use extension_name to read the XML configuration, build the XML, and write the - result to the output file. - ''' - with open(filename, 'w') as xml_file: - xml_file.write(self.get_xml(extension_name)) - -def _getoptions(): - ''' Parse command line options and return them.''' - parser = argparse.ArgumentParser() - - help = 'extension name (required)' - parser.add_argument("-e", "--extension_name", required=True, help=help) - - help = 'output file name with full path (required)' - parser.add_argument("-o", "--outputfile", required=True, help=help) - - return parser.parse_args() - -def main(): - ''' Get the commend-line options for extension to build and output file for it.''' - options = _getoptions() - - '''If the required parameters are not given provide a script syntax message and exit.''' - if options.extension_name is None or len(options.extension_name)==0 \ - or options.outputfile is None or len(options.outputfile)==0: - s = 'syntax:\n' - s += 'python buildxml.py' - s += ' -e Taxon' - s += ' -o dwc_taxon_2023-07-07.xml' - print(f'{s}') - exit(1) - - '''Build the selected extension XML file from the normative term history document.''' - term_versions_file = "../vocabulary/term_versions.csv" - print(f"Building the {options.extension_name} extension XML file:") - - '''Create the class that reads the term versions file and constructs the XML output.''' - converter = CSVtoXMLConverter(term_versions_file) - - ''' - Build the XML extension file based on the choice of extension and write the result - to the output file. - ''' - converter.write_xml(options.extension_name, options.outputfile) - print(f"Extension {options.extension_name} written to {options.outputfile}.") - -if __name__ == "__main__": - sys.exit(main()) \ No newline at end of file diff --git a/build/extended_mof.tmpl b/build/extended_mof.tmpl deleted file mode 100644 index ce53250..0000000 --- a/build/extended_mof.tmpl +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/build/extended_mof_list.csv b/build/extended_mof_list.csv deleted file mode 100644 index 091a1a5..0000000 --- a/build/extended_mof_list.csv +++ /dev/null @@ -1,14 +0,0 @@ -group,iri,type,thesaurus,description,comments,examples,required -Occurrence,http://rs.tdwg.org/dwc/terms/occurrenceID,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementID,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementType,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/iri/measurementType,uri,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementValue,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/iri/measurementValue,uri,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementAccuracy,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementUnit,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/iri/measurementUnit,uri,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementDeterminedDate,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementDeterminedBy,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementMethod,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementRemarks,,,,,, \ No newline at end of file diff --git a/build/occurrence_iri.tmpl b/build/occurrence_iri.tmpl deleted file mode 100644 index 1375782..0000000 --- a/build/occurrence_iri.tmpl +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/build/occurrence_iri_list.csv b/build/occurrence_iri_list.csv deleted file mode 100644 index 2deae53..0000000 --- a/build/occurrence_iri_list.csv +++ /dev/null @@ -1,44 +0,0 @@ -group,iri,type,thesaurus,description,comments,examples,required -Record-level,http://purl.org/dc/terms/language,,,,,, -Record-level,http://rs.tdwg.org/dwc/iri/inCollection,,,,,, -Record-level,http://rs.tdwg.org/dwc/iri/inDataset,,,,,, -Record-level,http://rs.tdwg.org/dwc/iri/informationWithheld,,,,,, -Record-level,http://rs.tdwg.org/dwc/iri/dataGeneralizations,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/recordNumber,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/recordedBy,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/organismQuantityType,,http://rs.gbif.org/vocabulary/gbif/quantity_type_2015-07-10.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/sex,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/lifeStage,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/reproductiveCondition,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/behavior,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/establishmentMeans,,http://rs.gbif.org/vocabulary/gbif/establishmentmeans_2020-10-13.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/degreeOfEstablishment,,http://rs.gbif.org/vocabulary/gbif/degreeofestablishment_2020-10-13.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/pathway,,http://rs.gbif.org/vocabulary/gbif/pathway_2020-10-13.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/georeferenceVerificationStatus,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/occurrenceStatus,,http://rs.gbif.org/vocabulary/gbif/occurrence_status_2020-07-15.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/preparations,,,,,, -Occurrence,http://rs.tdwg.org/dwc/iri/disposition,,,,,, -Event,http://rs.tdwg.org/dwc/iri/fieldNumber,,,,,, -Event,http://rs.tdwg.org/dwc/iri/habitat,,,,,, -Event,http://rs.tdwg.org/dwc/iri/samplingProtocol,,,,,, -Event,http://rs.tdwg.org/dwc/iri/sampleSizeUnit,,http://rs.gbif.org/vocabulary/gbif/unit_of_measurement_2015-07-10.xml,,,, -Event,http://rs.tdwg.org/dwc/iri/fieldNotes,,,,,, -Location,http://rs.tdwg.org/dwc/iri/inDescribedPlace,,,,,, -Location,http://rs.tdwg.org/dwc/terms/verticalDatum,,,,,, -Location,http://rs.tdwg.org/dwc/iri/geodeticDatum,,,,,, -Location,http://rs.tdwg.org/dwc/iri/locationAccordingTo,,,,,, -Location,http://rs.tdwg.org/dwc/iri/verbatimCoordinateSystem,,,,,, -Location,http://rs.tdwg.org/dwc/iri/verbatimSRS,,,,,, -Location,http://rs.tdwg.org/dwc/iri/footprintWKT,,,,,, -Location,http://rs.tdwg.org/dwc/iri/footprintSRS,,,,,, -Location,http://rs.tdwg.org/dwc/iri/georeferencedBy,,,,,, -Location,http://rs.tdwg.org/dwc/iri/georeferenceProtocol,,,,,, -Location,http://rs.tdwg.org/dwc/iri/georeferenceSources,,,,,, -GeologicalContext,http://rs.tdwg.org/dwc/iri/earliestGeochronologicalEra,,,,,, -GeologicalContext,http://rs.tdwg.org/dwc/iri/latestGeochronologicalEra,,,,,, -GeologicalContext,http://rs.tdwg.org/dwc/iri/fromLithostratigraphicUnit,,,,,, -Identification,http://rs.tdwg.org/dwc/iri/identificationQualifier,,,,,, -Identification,http://rs.tdwg.org/dwc/iri/typeStatus,,,,,, -Identification,http://rs.tdwg.org/dwc/iri/identifiedBy,,,,,, -Identification,http://rs.tdwg.org/dwc/iri/identificationVerificationStatus,,,,,, -Taxon,http://rs.tdwg.org/dwc/iri/toTaxon,,,,,, \ No newline at end of file diff --git a/build/qrg-list.csv b/build/qrg-list.csv index 278ad71..1d7f400 100644 --- a/build/qrg-list.csv +++ b/build/qrg-list.csv @@ -55,15 +55,15 @@ http://rs.tdwg.org/dwc/terms/MaterialEntity http://rs.tdwg.org/dwc/terms/materialEntityID http://rs.tdwg.org/dwc/terms/preparations http://rs.tdwg.org/dwc/terms/disposition +http://rs.tdwg.org/dwc/terms/verbatimLabel http://rs.tdwg.org/dwc/terms/associatedSequences http://rs.tdwg.org/dwc/terms/materialEntityRemarks http://rs.tdwg.org/dwc/terms/MaterialSample http://rs.tdwg.org/dwc/terms/materialSampleID -http://rs.tdwg.org/dwc/terms/verbatimLabel http://rs.tdwg.org/dwc/terms/Event -http://rs.tdwg.org/dwc/terms/eventType http://rs.tdwg.org/dwc/terms/eventID http://rs.tdwg.org/dwc/terms/parentEventID +http://rs.tdwg.org/dwc/terms/eventType http://rs.tdwg.org/dwc/terms/fieldNumber http://rs.tdwg.org/dwc/terms/eventDate http://rs.tdwg.org/dwc/terms/eventTime diff --git a/build/terms.tmpl b/build/terms.tmpl index f19f01c..30b583c 100644 --- a/build/terms.tmpl +++ b/build/terms.tmpl @@ -10,6 +10,8 @@ This document is intended to be an easy-to-read reference of the currently (as o **Need help?** Read more about how to use Darwin Core in the [Darwin Core Questions & Answers site](https://github.com/tdwg/dwc-qa/blob/master/README.md). Still have questions? Submit a new issue (question/problem) to the [dwc-qa issues page in GitHub](https://github.com/tdwg/dwc-qa/issues), or use the [form](https://tinyurl.com/darwin-qa). See the bottom of this document for [how to cite Darwin Core](https://dwc.tdwg.org/terms/#cite-darwin-core)." +**Want to contribute?** For information about how to contribute to the Darwin Core Standard, including how to propose changes, see the [Guidelines for contributing](https://github.com/tdwg/dwc/blob/master/.github/CONTRIBUTING.md). + This page is not part of the standard, but combines the normative term names and definitions with the non-normative comments and examples that are meant to help people to use the terms consistently. Definitions, comments, and examples may include namespace abbreviations (e.g., "dwc:"). These are included to show that the meaning for the word it is attached to very specifically means the term as defined in that namespace. Thus, dwc:Event means Event as defined by Darwin Core at https://dwc.tdwg.org/terms/#event. Capitalized terms that follow a namespace abbreviation, such as dwc:Occurrence, are Darwin Core class terms, which are a special category of terms used to group sets of property terms (terms that being with lower case names that follow the namespace abbreviation, e.g., dwc:eventID) for convenience. Comprehensive metadata for current and obsolete terms in human readable form are found in the document [List of Darwin Core terms](../list/). Additional [files with just the current term names](https://github.com/tdwg/dwc/tree/master/dist) and a [file with the full term history](https://github.com/tdwg/dwc/blob/master/vocabulary/term_versions.csv) can be found in the [Darwin Core repository](https://github.com/tdwg/dwc). diff --git a/build/build_extension.py b/build/xml/build_extension.py similarity index 95% rename from build/build_extension.py rename to build/xml/build_extension.py index dbc2516..163df9f 100644 --- a/build/build_extension.py +++ b/build/xml/build_extension.py @@ -14,9 +14,9 @@ # limitations under the License. __author__ = "John Wieczorek" -__copyright__ = "Copyright 2021 Rauthiflor LLC" +__copyright__ = "Copyright 2023 Rauthiflor LLC" __filename__ = 'build_extension.py' -__version__ = f'{__filename__} 2021-08-17T20:40-03:00' +__version__ = f'{__filename__} 2023-09-15T16:52-03:00' import io import os @@ -32,6 +32,7 @@ NAMESPACES = { 'http://rs.tdwg.org/dwc/iri/' : 'dwciri', 'http://rs.tdwg.org/dwc/terms/' : 'dwc', 'http://rs.tdwg.org/chrono/terms/' : 'chrono', + 'http://rs.tdwg.org/eco/terms/' : 'eco', 'http://purl.org/dc/elements/1.1/' : 'dc', 'http://purl.org/dc/terms/' : 'dcterms', 'http://rs.tdwg.org/dwc/terms/attributes/' : 'tdwgutility'} @@ -139,7 +140,7 @@ class DwcDigester(object): valid key of the NAMESPACES variable """ if namespace not in NAMESPACES.keys(): - raise DwcNamespaceError("The namespace url is currently not supported in NAMESPACES") + raise DwcNamespaceError(f"The namespace url {namespace} is currently not supported in NAMESPACES") return NAMESPACES[namespace] def get_term_definition(self, term_iri): @@ -153,7 +154,6 @@ class DwcDigester(object): method (room for improvement) """ vs_term = self._select_versions_term(term_iri) - term_data = {} term_data["label"] = vs_term['term_localName'] # See https://github.com/tdwg/dwc/issues/253#issuecomment-670098202 term_data["iri"] = term_iri @@ -167,6 +167,7 @@ class DwcDigester(object): term_data["rdf_type"] = vs_term['rdf_type'] namespace_url, _ = self.split_iri(term_iri) term_data["namespace"] = self.resolve_namespace_abbrev(namespace_url) +# print(f'get_term_definition({term_iri})\n {term_data}') return term_data @staticmethod @@ -232,6 +233,7 @@ class DwcDigester(object): for term in self.versions(): # sequence of the terms file used as order term_data = self.get_term_definition(term['term_iri']) test = term['term_iri'] +# print(f'{term_data}') # print(f'{test=}') if term_data["rdf_type"] == "http://www.w3.org/2000/01/rdf-schema#Class": # new class encountered @@ -258,6 +260,7 @@ class DwcDigester(object): class_group['terms'].append(term_data) # save the last class to template_data template_data.append(class_group) +# print(f'{class_group}') return template_data def create_html(self, html_template="terms.tmpl", @@ -412,6 +415,9 @@ class DwcDigester(object): elif namespace=='http://purl.org/chrono/terms/': # Example: https://tdwg.github.io/chrono/terms/#chrono:materialDated dc_relation = f'https://tdwg.github.io/chrono/terms/#chrono:{name}' + elif namespace=='http://rs.tdwg.org/eco/terms/': + # Example: https://tdwg.github.io/eco/terms/#eco:samplingPerformedBy + dc_relation = f'https://eco.tdwg.org/terms/#eco:{name}' # Get the term definition (dc:description) from the description field of # the Extension term list file. Later we'll check if this is blank, and @@ -422,6 +428,7 @@ class DwcDigester(object): # term list file. Later we'll check if this is blank, and if so, fill it # from the standard. comments = term['comments'] +# print(f'comments: {comments}') # Get the term examples from the description field of the Extension term # list file. Later we'll check if this is blank, and if so, fill it from @@ -439,8 +446,10 @@ class DwcDigester(object): # Try to find the term from the standard term_data = None try: +# print(f"{term['iri']}") term_data = self.get_term_definition(term['iri']) except: + print(f"{term['iri']} not found in get_term_definitions({term['iri']})") pass # Fill in dc:description, comments, or examples from the standard if it is @@ -452,7 +461,7 @@ class DwcDigester(object): comments = term_data['comments'] if examples is None or examples.strip()=='': examples = term_data['examples'] - +# print(f'comments: {comments}') # Transform description, comment, and examples for HMTL encodings dc_description = html.escape(dc_description) comments = html.escape(comments) @@ -501,7 +510,7 @@ def _getoptions(): return parser.parse_args() def main(): - """Build XML Darwin Core Extension files""" + """Build Darwin Core Extension XML files""" options = _getoptions() optdict = {} @@ -514,11 +523,11 @@ def main(): s += ' -x ./occurrence_core.tmpl' s += ' -i ./occurrence_core_list.csv' s += ' -o ../ext/dwc_occurrence_2021-08-16.xml' - s += ' -t ../vocabulary/term_versions.csv' + s += ' -t ../../vocabulary/term_versions.csv' print(s) return - term_versions_file = "../vocabulary/term_versions.csv" + term_versions_file = "../../vocabulary/term_versions.csv" if options.termversionsfile is not None and len(options.termversionsfile)!=0: term_versions_file = options.termversionsfile diff --git a/build/event_core.tmpl b/build/xml/event_core.tmpl similarity index 78% rename from build/event_core.tmpl rename to build/xml/event_core.tmpl index 890ab8a..cda5af0 100644 --- a/build/event_core.tmpl +++ b/build/xml/event_core.tmpl @@ -7,7 +7,7 @@ dc:title='Darwin Core Event' name='Event' namespace='http://rs.tdwg.org/dwc/terms/' rowType='http://rs.tdwg.org/dwc/terms/Event' - dc:issued='2021-07-15' + dc:issued='2023-09-14' dc:subject='' dc:relation='http://rs.tdwg.org/dwc/terms/Event' - dc:description='The category of information pertaining to an action that occurs at some location during some time.'> + dc:description='Support for Darwin Core Event-based records.'> diff --git a/build/event_core_list.csv b/build/xml/event_core_list.csv similarity index 98% rename from build/event_core_list.csv rename to build/xml/event_core_list.csv index 8b3589a..03f8166 100644 --- a/build/event_core_list.csv +++ b/build/xml/event_core_list.csv @@ -17,10 +17,8 @@ Record-level,http://rs.tdwg.org/dwc/terms/dataGeneralizations,,,,,, Record-level,http://rs.tdwg.org/dwc/terms/dynamicProperties,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventID,,,,,, Event,http://rs.tdwg.org/dwc/terms/parentEventID,,,,,, -Event,http://rs.tdwg.org/dwc/terms/samplingProtocol,,,,,, -Event,http://rs.tdwg.org/dwc/terms/sampleSizeValue,,,,,, -Event,http://rs.tdwg.org/dwc/terms/sampleSizeUnit,,http://rs.gbif.org/vocabulary/gbif/unit_of_measurement_2015-07-10.xml,,,, -Event,http://rs.tdwg.org/dwc/terms/samplingEffort,,,,,, +Event,http://rs.tdwg.org/dwc/terms/eventType,,,,,, +Event,http://rs.tdwg.org/dwc/terms/fieldNumber,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventDate,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventTime,,,,,, Event,http://rs.tdwg.org/dwc/terms/startDayOfYear,integer,,,,, @@ -30,7 +28,10 @@ Event,http://rs.tdwg.org/dwc/terms/month,integer,,,,, Event,http://rs.tdwg.org/dwc/terms/day,integer,,,,, Event,http://rs.tdwg.org/dwc/terms/verbatimEventDate,,,,,, Event,http://rs.tdwg.org/dwc/terms/habitat,,,,,, -Event,http://rs.tdwg.org/dwc/terms/fieldNumber,,,,,, +Event,http://rs.tdwg.org/dwc/terms/samplingProtocol,,,,,, +Event,http://rs.tdwg.org/dwc/terms/sampleSizeValue,,,,,, +Event,http://rs.tdwg.org/dwc/terms/sampleSizeUnit,,http://rs.gbif.org/vocabulary/gbif/unit_of_measurement_2015-07-10.xml,,,, +Event,http://rs.tdwg.org/dwc/terms/samplingEffort,,,,,, Event,http://rs.tdwg.org/dwc/terms/fieldNotes,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventRemarks,,,,,, Location,http://rs.tdwg.org/dwc/terms/locationID,,,,,, @@ -94,4 +95,4 @@ GeologicalContext,http://rs.tdwg.org/dwc/terms/lithostratigraphicTerms,,,,,, GeologicalContext,http://rs.tdwg.org/dwc/terms/group,,,,,, GeologicalContext,http://rs.tdwg.org/dwc/terms/formation,,,,,, GeologicalContext,http://rs.tdwg.org/dwc/terms/member,,,,,, -GeologicalContext,http://rs.tdwg.org/dwc/terms/bed,,,,,, \ No newline at end of file +GeologicalContext,http://rs.tdwg.org/dwc/terms/bed,,,,,, diff --git a/build/xml/humboldt_eco.tmpl b/build/xml/humboldt_eco.tmpl new file mode 100644 index 0000000..917ecc7 --- /dev/null +++ b/build/xml/humboldt_eco.tmpl @@ -0,0 +1,14 @@ + + + diff --git a/build/xml/humboldt_eco_list.csv b/build/xml/humboldt_eco_list.csv new file mode 100644 index 0000000..564328c --- /dev/null +++ b/build/xml/humboldt_eco_list.csv @@ -0,0 +1,55 @@ +group,iri,type,thesaurus,description,comments,examples,required,,,,,, +Site,http://rs.tdwg.org/eco/terms/siteCount,,,,,, +Site,http://rs.tdwg.org/eco/terms/siteNestingDescription,,,,,, +Site,http://rs.tdwg.org/eco/terms/verbatimSiteDescriptions,,,,,, +Site,http://rs.tdwg.org/eco/terms/verbatimSiteNames,,,,,, +Site,http://rs.tdwg.org/eco/terms/geospatialScopeAreaInSquareKilometers,,,,,, +Site,http://rs.tdwg.org/eco/terms/totalAreaSampledInSquareKilometers,,,,,, +Site,http://rs.tdwg.org/eco/terms/reportedWeather,,,,,, +Site,http://rs.tdwg.org/eco/terms/reportedExtremeConditions,,,,,, +Habitat Scope,http://rs.tdwg.org/eco/terms/targetHabitatScope,,,,,, +Habitat Scope,http://rs.tdwg.org/eco/terms/excludedHabitatScope,,,,,, +Temporal Scope,http://rs.tdwg.org/eco/terms/eventDuration,,,,,, +Temporal Scope,http://rs.tdwg.org/eco/terms/eventDurationUnit,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/targetTaxonomicScope,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/excludedTaxonomicScope,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/taxonCompletenessReported,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/taxonCompletenessProtocols,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/isTaxonomicScopeFullyReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/isAbsenceReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/absentTaxa,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/hasNonTargetTaxa,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/nonTargetTaxa,,,,,, +Taxonomic Scope,http://rs.tdwg.org/eco/terms/areNonTargetTaxaFullyReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/targetLifeStageScope,,,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/excludedLifeStageScope,,,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/isLifeStageScopeFullyReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/targetDegreeOfEstablishmentScope,,,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/excludedDegreeOfEstablishmentScope,,,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/isDegreeOfEstablishmentScopeFullyReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/targetGrowthFormScope,,,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/excludedGrowthFormScope,,,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/isGrowthFormScopeFullyReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Organismal Scope,http://rs.tdwg.org/eco/terms/hasNonTargetOrganisms,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Identification,http://rs.tdwg.org/eco/terms/identifiedBy,,,,,, +Identification,http://rs.tdwg.org/eco/terms/identificationReferences,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/compilationType,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/compilationSourceTypes,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/inventoryTypes,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/protocolNames,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/protocolDescription,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/protocolReferences,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/isAbundanceReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/isAbundanceCapReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/abundanceCap,,,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/isVegetationCoverReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Methodology Description,http://rs.tdwg.org/eco/terms/isLeastSpecificTargetCategoryQuantityInclusive,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Material Collected,http://rs.tdwg.org/eco/terms/hasVouchers,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Material Collected,http://rs.tdwg.org/eco/terms/voucherInstitutions,,,,,, +Material Collected,http://rs.tdwg.org/eco/terms/hasMaterialSamples,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Material Collected,http://rs.tdwg.org/eco/terms/materialSampleTypes,,,,,, +Sampling Effort,http://rs.tdwg.org/eco/terms/samplingPerformedBy,,,,,, +Sampling Effort,http://rs.tdwg.org/eco/terms/isSamplingEffortReported,,https://rs.gbif.org/vocabulary/basic/boolean.xml,,,, +Sampling Effort,http://rs.tdwg.org/eco/terms/samplingEffortProtocol,,,,,, +Sampling Effort,http://rs.tdwg.org/eco/terms/samplingEffortValue,,,,,, +Sampling Effort,http://rs.tdwg.org/eco/terms/samplingEffortUnit,,,,,, diff --git a/build/identification_history.tmpl b/build/xml/identification_history.tmpl similarity index 67% rename from build/identification_history.tmpl rename to build/xml/identification_history.tmpl index be4ae71..2da9712 100644 --- a/build/identification_history.tmpl +++ b/build/xml/identification_history.tmpl @@ -7,7 +7,7 @@ dc:title='Darwin Core Identification History' name='Identification' namespace='http://rs.tdwg.org/dwc/terms/' rowType='http://rs.tdwg.org/dwc/terms/Identification' - dc:issued='2021-07-15' + dc:issued='2023-09-14' dc:subject='dwc:Occurrence' dc:relation='http://rs.tdwg.org/dwc/terms/Identification' - dc:description='Support for multiple identifications (determinations) of species Occurrences. All identifications including the most current one should be listed, while the current one should also be repeated in the Occurrence Core.'> + dc:description='Extended support for multiple identifications (determinations) of species Darwin Core Occurrences. All identifications including the most current one should be listed, while the current one should also be repeated in the Darwin Core Occurrence Core.'> diff --git a/build/identification_history_list.csv b/build/xml/identification_history_list.csv similarity index 85% rename from build/identification_history_list.csv rename to build/xml/identification_history_list.csv index b8c8880..836692f 100644 --- a/build/identification_history_list.csv +++ b/build/xml/identification_history_list.csv @@ -29,8 +29,11 @@ Taxon,http://rs.tdwg.org/dwc/terms/kingdom,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/phylum,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/class,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/order,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/superfamily,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/family,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/subfamily,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/tribe,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/subtribe,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/genus,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/genericName,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/subgenus,,,,,, @@ -42,7 +45,7 @@ Taxon,http://rs.tdwg.org/dwc/terms/taxonRank,,http://rs.gbif.org/vocabulary/gbif Taxon,http://rs.tdwg.org/dwc/terms/verbatimTaxonRank,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/scientificNameAuthorship,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/vernacularName,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalCode,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalCode,,http://rs.gbif.org/vocabulary/gbif/nomenclatural_code.xml,,,, Taxon,http://rs.tdwg.org/dwc/terms/taxonomicStatus,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalStatus,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalStatus,,http://rs.gbif.org/vocabulary/gbif/nomenclatural_status_2019-02-08.xml,,,, Taxon,http://rs.tdwg.org/dwc/terms/taxonRemarks,,,,,, \ No newline at end of file diff --git a/build/measurements_or_facts.tmpl b/build/xml/measurements_or_facts.tmpl similarity index 79% rename from build/measurements_or_facts.tmpl rename to build/xml/measurements_or_facts.tmpl index ffacda0..d830747 100644 --- a/build/measurements_or_facts.tmpl +++ b/build/xml/measurements_or_facts.tmpl @@ -7,7 +7,7 @@ dc:title='Darwin Core Measurement or Facts' name='MeasurementOrFacts' namespace='http://rs.tdwg.org/dwc/terms/' rowType='http://rs.tdwg.org/dwc/terms/MeasurementOrFact' - dc:issued='2021-07-15' + dc:issued='2023-09-14' dc:subject='dwc:Occurrence dwc:Event dwc:Taxon' dc:relation='http://rs.tdwg.org/dwc/terms/MeasurementOrFact' - dc:description='Support for measurements or facts, allowing links to any type of Core.'> + dc:description='Extended support for multiple measurements or facts associated with a Darwin Core Occurrence, Event, or Taxon Core.'> diff --git a/build/measurements_or_facts_list.csv b/build/xml/measurements_or_facts_list.csv similarity index 89% rename from build/measurements_or_facts_list.csv rename to build/xml/measurements_or_facts_list.csv index 7ac91e1..abb8b89 100644 --- a/build/measurements_or_facts_list.csv +++ b/build/xml/measurements_or_facts_list.csv @@ -1,10 +1,11 @@ group,iri,type,thesaurus,description,comments,examples,required MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementID,,,,,, +MeasurementOrFact,http://rs.tdwg.org/dwc/terms/parentMeasurementID,,,,,, MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementType,,,,,,true MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementValue,,,,,, MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementAccuracy,,,,,, MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementUnit,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementDeterminedDate,,,,,, MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementDeterminedBy,,,,,, +MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementDeterminedDate,,,,,, MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementMethod,,,,,, -MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementRemarks,,,,,, \ No newline at end of file +MeasurementOrFact,http://rs.tdwg.org/dwc/terms/measurementRemarks,,,,,, diff --git a/build/occurrence_core.tmpl b/build/xml/occurrence_core.tmpl similarity index 73% rename from build/occurrence_core.tmpl rename to build/xml/occurrence_core.tmpl index 1884460..6a00a53 100644 --- a/build/occurrence_core.tmpl +++ b/build/xml/occurrence_core.tmpl @@ -7,7 +7,7 @@ dc:title='Darwin Core Occurrence' name='Occurrence' namespace='http://rs.tdwg.org/dwc/terms/' rowType='http://rs.tdwg.org/dwc/terms/Occurrence' - dc:issued='2021-07-15' + dc:issued='2023-09-14' dc:subject='dwc:Event dwc:Taxon' dc:relation='http://rs.tdwg.org/dwc/terms/Occurrence' - dc:description='The category of information pertaining to the existence of an Organism (sensu http://rs.tdwg.org/dwc/terms/Organism) at a particular place at a particular time.'> + dc:description='Support for Darwin Core Occurrence-based records.'> diff --git a/build/occurrence_core_list.csv b/build/xml/occurrence_core_list.csv similarity index 90% rename from build/occurrence_core_list.csv rename to build/xml/occurrence_core_list.csv index fd63d65..ce3f7e6 100644 --- a/build/occurrence_core_list.csv +++ b/build/xml/occurrence_core_list.csv @@ -14,7 +14,7 @@ Record-level,http://rs.tdwg.org/dwc/terms/institutionCode,,,,,, Record-level,http://rs.tdwg.org/dwc/terms/collectionCode,,,,,, Record-level,http://rs.tdwg.org/dwc/terms/datasetName,,,,,, Record-level,http://rs.tdwg.org/dwc/terms/ownerInstitutionCode,,,,,, -Record-level,http://rs.tdwg.org/dwc/terms/basisOfRecord,,http://rs.gbif.org/vocabulary/dwc/basis_of_record.xml,,,,true +Record-level,http://rs.tdwg.org/dwc/terms/basisOfRecord,,http://rs.gbif.org/vocabulary/dwc/basis_of_record_2023-09-14.xml,,,,true Record-level,http://rs.tdwg.org/dwc/terms/informationWithheld,,,,,, Record-level,http://rs.tdwg.org/dwc/terms/dataGeneralizations,,,,,, Record-level,http://rs.tdwg.org/dwc/terms/dynamicProperties,,,,,, @@ -29,18 +29,16 @@ Occurrence,http://rs.tdwg.org/dwc/terms/organismQuantityType,,http://rs.gbif.org Occurrence,http://rs.tdwg.org/dwc/terms/sex,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/lifeStage,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/reproductiveCondition,,,,,, +Occurrence,http://rs.tdwg.org/dwc/terms/caste,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/behavior,,,,,, -Occurrence,http://rs.tdwg.org/dwc/terms/establishmentMeans,,http://rs.gbif.org/vocabulary/gbif/establishmentmeans_2020-10-13.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/terms/degreeOfEstablishment,,http://rs.gbif.org/vocabulary/gbif/degreeofestablishment_2020-10-13.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/terms/pathway,,http://rs.gbif.org/vocabulary/gbif/pathway_2020-10-13.xml,,,, +Occurrence,http://rs.tdwg.org/dwc/terms/establishmentMeans,,http://rs.gbif.org/vocabulary/dwc/establishment_means_2022-02-02.xml,,,, +Occurrence,http://rs.tdwg.org/dwc/terms/degreeOfEstablishment,,http://rs.gbif.org/vocabulary/dwc/degree_of_establishment_2022-02-02.xml,,,, +Occurrence,http://rs.tdwg.org/dwc/terms/pathway,,http://rs.gbif.org/vocabulary/dwc/pathway_2022-02-02.xml,,,, Occurrence,http://rs.tdwg.org/dwc/terms/georeferenceVerificationStatus,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/occurrenceStatus,,http://rs.gbif.org/vocabulary/gbif/occurrence_status_2020-07-15.xml,,,, -Occurrence,http://rs.tdwg.org/dwc/terms/preparations,,,,,, -Occurrence,http://rs.tdwg.org/dwc/terms/disposition,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/associatedMedia,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/associatedOccurrences,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/associatedReferences,,,,,, -Occurrence,http://rs.tdwg.org/dwc/terms/associatedSequences,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/associatedTaxa,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/otherCatalogNumbers,,,,,, Occurrence,http://rs.tdwg.org/dwc/terms/occurrenceRemarks,,,,,, @@ -50,9 +48,16 @@ Organism,http://rs.tdwg.org/dwc/terms/organismScope,,,,,, Organism,http://rs.tdwg.org/dwc/terms/associatedOrganisms,,,,,, Organism,http://rs.tdwg.org/dwc/terms/previousIdentifications,,,,,, Organism,http://rs.tdwg.org/dwc/terms/organismRemarks,,,,,, +MaterialEntity,http://rs.tdwg.org/dwc/terms/materialEntityID,,,,,, +MaterialEntity,http://rs.tdwg.org/dwc/terms/preparations,,,,,, +MaterialEntity,http://rs.tdwg.org/dwc/terms/disposition,,,,,, +MaterialEntity,http://rs.tdwg.org/dwc/terms/verbatimLabel,,,,,, +MaterialEntity,http://rs.tdwg.org/dwc/terms/associatedSequences,,,,,, +MaterialEntity,http://rs.tdwg.org/dwc/terms/materialEntityRemarks,,,,,, MaterialSample,http://rs.tdwg.org/dwc/terms/materialSampleID,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventID,,,,,, Event,http://rs.tdwg.org/dwc/terms/parentEventID,,,,,, +Event,http://rs.tdwg.org/dwc/terms/eventType,,,,,, Event,http://rs.tdwg.org/dwc/terms/fieldNumber,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventDate,,,,,, Event,http://rs.tdwg.org/dwc/terms/eventTime,,,,,, @@ -161,8 +166,11 @@ Taxon,http://rs.tdwg.org/dwc/terms/kingdom,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/phylum,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/class,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/order,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/superfamily,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/family,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/subfamily,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/tribe,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/subtribe,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/genus,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/genericName,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/subgenus,,,,,, @@ -174,7 +182,7 @@ Taxon,http://rs.tdwg.org/dwc/terms/taxonRank,,http://rs.gbif.org/vocabulary/gbif Taxon,http://rs.tdwg.org/dwc/terms/verbatimTaxonRank,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/scientificNameAuthorship,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/vernacularName,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalCode,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalCode,,http://rs.gbif.org/vocabulary/gbif/nomenclatural_code.xml,,,, Taxon,http://rs.tdwg.org/dwc/terms/taxonomicStatus,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalStatus,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalStatus,,http://rs.gbif.org/vocabulary/gbif/nomenclatural_status_2019-02-08.xml,,,, Taxon,http://rs.tdwg.org/dwc/terms/taxonRemarks,,,,,, \ No newline at end of file diff --git a/build/resource_relationship.tmpl b/build/xml/resource_relationship.tmpl similarity index 63% rename from build/resource_relationship.tmpl rename to build/xml/resource_relationship.tmpl index bf5ccc0..9cbe752 100644 --- a/build/resource_relationship.tmpl +++ b/build/xml/resource_relationship.tmpl @@ -7,7 +7,7 @@ dc:title='Darwin Core Resource Relationship' name='ResourceRelationship' namespace='http://rs.tdwg.org/dwc/terms/' rowType='http://rs.tdwg.org/dwc/terms/ResourceRelationship' - dc:issued='2021-07-15' + dc:issued='2023-09-14' dc:subject='dwc:Occurrence dwc:Event dwc:Taxon' dc:relation='http://rs.tdwg.org/dwc/terms/ResourceRelationship' - dc:description='Support for relationships between resources in the Core, in an extension, or external to the data set. The identifiers for subject (resourceID) and object (relatedResourceID) may exist in the dataset or be accessible via an externally resolvable identifier'> + dc:description='Extended support for relationships between resources in a Darwin Core Occurrence, Event, or Taxon Core to resources in an extension or external to the data set. The identifiers for subject (resourceID) and object (relatedResourceID) may exist in the dataset or be accessible via an externally resolvable identifiers.'> diff --git a/build/resource_relationship_list.csv b/build/xml/resource_relationship_list.csv similarity index 98% rename from build/resource_relationship_list.csv rename to build/xml/resource_relationship_list.csv index 832db59..a8e9ba0 100644 --- a/build/resource_relationship_list.csv +++ b/build/xml/resource_relationship_list.csv @@ -6,4 +6,4 @@ ResourceRelationship,http://rs.tdwg.org/dwc/terms/relatedResourceID,,,,,,true ResourceRelationship,http://rs.tdwg.org/dwc/terms/relationshipOfResource,,,,,, ResourceRelationship,http://rs.tdwg.org/dwc/terms/relationshipAccordingTo,,,,,, ResourceRelationship,http://rs.tdwg.org/dwc/terms/relationshipEstablishedDate,,,,,, -ResourceRelationship,http://rs.tdwg.org/dwc/terms/relationshipRemarks,,,,,, \ No newline at end of file +ResourceRelationship,http://rs.tdwg.org/dwc/terms/relationshipRemarks,,,,,, diff --git a/build/taxon_core.tmpl b/build/xml/taxon_core.tmpl similarity index 64% rename from build/taxon_core.tmpl rename to build/xml/taxon_core.tmpl index ba0188c..b1d2727 100644 --- a/build/taxon_core.tmpl +++ b/build/xml/taxon_core.tmpl @@ -7,6 +7,7 @@ dc:title='Darwin Core Taxon' name='Taxon' namespace='http://rs.tdwg.org/dwc/terms/' rowType='http://rs.tdwg.org/dwc/terms/Taxon' - dc:issued='2021-07-15' - dc:relation='https://dwc.tdwg.org/terms/#taxon' - dc:description='The category of information pertaining to a group of organisms (sensu http://purl.obolibrary.org/obo/OBI_0100026) considered by taxonomists to form a homogeneous unit.'> + dc:issued='2023-09-14' + dc:subject='' + dc:relation='http://rs.tdwg.org/dwc/terms/Taxon' + dc:description='Support for Darwin Core Taxon-based records.'> diff --git a/build/taxon_core_list.csv b/build/xml/taxon_core_list.csv similarity index 72% rename from build/taxon_core_list.csv rename to build/xml/taxon_core_list.csv index 727766d..c0e8348 100644 --- a/build/taxon_core_list.csv +++ b/build/xml/taxon_core_list.csv @@ -19,8 +19,11 @@ Taxon,http://rs.tdwg.org/dwc/terms/kingdom,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/phylum,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/class,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/order,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/superfamily,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/family,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/subfamily,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/tribe,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/subtribe,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/genus,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/genericName,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/subgenus,,,,,, @@ -32,17 +35,7 @@ Taxon,http://rs.tdwg.org/dwc/terms/taxonRank,,http://rs.gbif.org/vocabulary/gbif Taxon,http://rs.tdwg.org/dwc/terms/verbatimTaxonRank,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/scientificNameAuthorship,,,,,, Taxon,http://rs.tdwg.org/dwc/terms/vernacularName,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalCode,,,,,, +Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalCode,,http://rs.gbif.org/vocabulary/gbif/nomenclatural_code.xml,,,, Taxon,http://rs.tdwg.org/dwc/terms/taxonomicStatus,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalStatus,,,,,, -Taxon,http://rs.tdwg.org/dwc/terms/taxonRemarks,,,,,, -Record-level,http://purl.org/dc/terms/modified,date,,,,, -Record-level,http://purl.org/dc/elements/1.1/language,,,,,, -Record-level,http://purl.org/dc/terms/license,,,,,, -Record-level,http://purl.org/dc/terms/rightsHolder,,,,,, -Record-level,http://purl.org/dc/terms/accessRights,,,,,, -Record-level,http://purl.org/dc/terms/bibliographicCitation,,,,,, -Record-level,http://purl.org/dc/terms/references,uri,,,,, -Record-level,http://rs.tdwg.org/dwc/terms/datasetID,,,,,, -Record-level,http://rs.tdwg.org/dwc/terms/datasetName,,,,,, -Record-level,http://rs.tdwg.org/dwc/terms/informationWithheld,,,,,, \ No newline at end of file +Taxon,http://rs.tdwg.org/dwc/terms/nomenclaturalStatus,,http://rs.gbif.org/vocabulary/gbif/nomenclatural_status_2019-02-08.xml,,,, +Taxon,http://rs.tdwg.org/dwc/terms/taxonRemarks,,,,,, \ No newline at end of file diff --git a/dist/simple_dwc_horizontal.csv b/dist/simple_dwc_horizontal.csv index 6d1f6d4..26443b0 100644 --- a/dist/simple_dwc_horizontal.csv +++ b/dist/simple_dwc_horizontal.csv @@ -1 +1 @@ -type,modified,language,license,rightsHolder,accessRights,bibliographicCitation,references,institutionID,collectionID,datasetID,institutionCode,collectionCode,datasetName,ownerInstitutionCode,basisOfRecord,informationWithheld,dataGeneralizations,dynamicProperties,occurrenceID,catalogNumber,recordNumber,recordedBy,recordedByID,individualCount,organismQuantity,organismQuantityType,sex,lifeStage,reproductiveCondition,caste,behavior,vitality,establishmentMeans,degreeOfEstablishment,pathway,georeferenceVerificationStatus,occurrenceStatus,associatedMedia,associatedOccurrences,associatedReferences,associatedTaxa,otherCatalogNumbers,occurrenceRemarks,organismID,organismName,organismScope,associatedOrganisms,previousIdentifications,organismRemarks,materialEntityID,preparations,disposition,associatedSequences,materialEntityRemarks,materialSampleID,verbatimLabel,eventType,eventID,parentEventID,fieldNumber,eventDate,eventTime,startDayOfYear,endDayOfYear,year,month,day,verbatimEventDate,habitat,samplingProtocol,sampleSizeValue,sampleSizeUnit,samplingEffort,fieldNotes,eventRemarks,locationID,higherGeographyID,higherGeography,continent,waterBody,islandGroup,island,country,countryCode,stateProvince,county,municipality,locality,verbatimLocality,minimumElevationInMeters,maximumElevationInMeters,verbatimElevation,verticalDatum,minimumDepthInMeters,maximumDepthInMeters,verbatimDepth,minimumDistanceAboveSurfaceInMeters,maximumDistanceAboveSurfaceInMeters,locationAccordingTo,locationRemarks,decimalLatitude,decimalLongitude,geodeticDatum,coordinateUncertaintyInMeters,coordinatePrecision,pointRadiusSpatialFit,verbatimCoordinates,verbatimLatitude,verbatimLongitude,verbatimCoordinateSystem,verbatimSRS,footprintWKT,footprintSRS,footprintSpatialFit,georeferencedBy,georeferencedDate,georeferenceProtocol,georeferenceSources,georeferenceRemarks,geologicalContextID,earliestEonOrLowestEonothem,latestEonOrHighestEonothem,earliestEraOrLowestErathem,latestEraOrHighestErathem,earliestPeriodOrLowestSystem,latestPeriodOrHighestSystem,earliestEpochOrLowestSeries,latestEpochOrHighestSeries,earliestAgeOrLowestStage,latestAgeOrHighestStage,lowestBiostratigraphicZone,highestBiostratigraphicZone,lithostratigraphicTerms,group,formation,member,bed,identificationID,verbatimIdentification,identificationQualifier,typeStatus,identifiedBy,identifiedByID,dateIdentified,identificationReferences,identificationVerificationStatus,identificationRemarks,taxonID,scientificNameID,acceptedNameUsageID,parentNameUsageID,originalNameUsageID,nameAccordingToID,namePublishedInID,taxonConceptID,scientificName,acceptedNameUsage,parentNameUsage,originalNameUsage,nameAccordingTo,namePublishedIn,namePublishedInYear,higherClassification,kingdom,phylum,class,order,superfamily,family,subfamily,tribe,subtribe,genus,genericName,subgenus,infragenericEpithet,specificEpithet,infraspecificEpithet,cultivarEpithet,taxonRank,verbatimTaxonRank,scientificNameAuthorship,vernacularName,nomenclaturalCode,taxonomicStatus,nomenclaturalStatus,taxonRemarks +type,modified,language,license,rightsHolder,accessRights,bibliographicCitation,references,institutionID,collectionID,datasetID,institutionCode,collectionCode,datasetName,ownerInstitutionCode,basisOfRecord,informationWithheld,dataGeneralizations,dynamicProperties,occurrenceID,catalogNumber,recordNumber,recordedBy,recordedByID,individualCount,organismQuantity,organismQuantityType,sex,lifeStage,reproductiveCondition,caste,behavior,vitality,establishmentMeans,degreeOfEstablishment,pathway,georeferenceVerificationStatus,occurrenceStatus,associatedMedia,associatedOccurrences,associatedReferences,associatedTaxa,otherCatalogNumbers,occurrenceRemarks,organismID,organismName,organismScope,associatedOrganisms,previousIdentifications,organismRemarks,materialEntityID,preparations,disposition,verbatimLabel,associatedSequences,materialEntityRemarks,materialSampleID,eventID,parentEventID,eventType,fieldNumber,eventDate,eventTime,startDayOfYear,endDayOfYear,year,month,day,verbatimEventDate,habitat,samplingProtocol,sampleSizeValue,sampleSizeUnit,samplingEffort,fieldNotes,eventRemarks,locationID,higherGeographyID,higherGeography,continent,waterBody,islandGroup,island,country,countryCode,stateProvince,county,municipality,locality,verbatimLocality,minimumElevationInMeters,maximumElevationInMeters,verbatimElevation,verticalDatum,minimumDepthInMeters,maximumDepthInMeters,verbatimDepth,minimumDistanceAboveSurfaceInMeters,maximumDistanceAboveSurfaceInMeters,locationAccordingTo,locationRemarks,decimalLatitude,decimalLongitude,geodeticDatum,coordinateUncertaintyInMeters,coordinatePrecision,pointRadiusSpatialFit,verbatimCoordinates,verbatimLatitude,verbatimLongitude,verbatimCoordinateSystem,verbatimSRS,footprintWKT,footprintSRS,footprintSpatialFit,georeferencedBy,georeferencedDate,georeferenceProtocol,georeferenceSources,georeferenceRemarks,geologicalContextID,earliestEonOrLowestEonothem,latestEonOrHighestEonothem,earliestEraOrLowestErathem,latestEraOrHighestErathem,earliestPeriodOrLowestSystem,latestPeriodOrHighestSystem,earliestEpochOrLowestSeries,latestEpochOrHighestSeries,earliestAgeOrLowestStage,latestAgeOrHighestStage,lowestBiostratigraphicZone,highestBiostratigraphicZone,lithostratigraphicTerms,group,formation,member,bed,identificationID,verbatimIdentification,identificationQualifier,typeStatus,identifiedBy,identifiedByID,dateIdentified,identificationReferences,identificationVerificationStatus,identificationRemarks,taxonID,scientificNameID,acceptedNameUsageID,parentNameUsageID,originalNameUsageID,nameAccordingToID,namePublishedInID,taxonConceptID,scientificName,acceptedNameUsage,parentNameUsage,originalNameUsage,nameAccordingTo,namePublishedIn,namePublishedInYear,higherClassification,kingdom,phylum,class,order,superfamily,family,subfamily,tribe,subtribe,genus,genericName,subgenus,infragenericEpithet,specificEpithet,infraspecificEpithet,cultivarEpithet,taxonRank,verbatimTaxonRank,scientificNameAuthorship,vernacularName,nomenclaturalCode,taxonomicStatus,nomenclaturalStatus,taxonRemarks diff --git a/dist/simple_dwc_vertical.csv b/dist/simple_dwc_vertical.csv index 98ab0f3..216538f 100644 --- a/dist/simple_dwc_vertical.csv +++ b/dist/simple_dwc_vertical.csv @@ -51,13 +51,13 @@ organismRemarks materialEntityID preparations disposition +verbatimLabel associatedSequences materialEntityRemarks materialSampleID -verbatimLabel -eventType eventID parentEventID +eventType fieldNumber eventDate eventTime diff --git a/docs/examples/template.md b/docs/examples/template.md index 09d3237..53e696b 100644 --- a/docs/examples/template.md +++ b/docs/examples/template.md @@ -11,6 +11,9 @@ Title Date modified : 20XX-XX-XX +Date created +: 20XX-XX-XX + Part of TDWG Standard : Not formally part of any standard. diff --git a/docs/examples/verbatimLabel.md b/docs/examples/verbatimLabel.md index 4bf5606..2a9c8bd 100644 --- a/docs/examples/verbatimLabel.md +++ b/docs/examples/verbatimLabel.md @@ -4,6 +4,9 @@ Title : verbatimLabel Examples Date modified +: 2023-09-14 + +Date created : 2023-06-14 Part of TDWG Standard @@ -25,7 +28,7 @@ The following provides examples and guidance for the use of Darwin Core verbatim ## Example 1 -For a label affixed to a pinned insect specimen, the verbatimLabel would contain: +For a label affixed to a pinned insect specimen, the dwc:verbatimLabel would contain: > ILL: Union Co. > Wolf Lake by Powder Plant @@ -40,11 +43,11 @@ For a label affixed to a pinned insect specimen, the verbatimLabel would contain > Insect Collection > 456782 -With comment `verbatimLabel derived from human transcription` added in occurrenceRemarks. +With comment `verbatimLabel derived from human transcription` added in dwc:occurrenceRemarks. ## Example 2 -When using Optical Character Recognition (OCR) techniques against an herbarium sheet, the verbatimLabel would contain: +When using Optical Character Recognition (OCR) techniques against an herbarium sheet, the dwc:verbatimLabel would contain: > 0 1 2 3 4 5 6 7 8 9 10 > cm copyright reserved @@ -71,4 +74,4 @@ When using Optical Character Recognition (OCR) techniques against an herbarium s > NEW YORK BOTANICAL GARDEN > 00499439 -With comment `verbatimLabel derived from unadulterated OCR output` added in occurrenceRemarks. \ No newline at end of file +With comment `verbatimLabel derived from unadulterated OCR output` added in dwc:occurrenceRemarks. \ No newline at end of file diff --git a/docs/namespace/index.md b/docs/namespace/index.md index f287c58..413e452 100644 --- a/docs/namespace/index.md +++ b/docs/namespace/index.md @@ -3,8 +3,8 @@ Title : Darwin Core namespace policy -Date version issued -: 2018-08-26 +Date modified +: 2023-09-14 Date created : 2009-02-12 @@ -12,15 +12,6 @@ Date created Part of TDWG Standard : -This version -: - -Latest version -: - -Previous version -: - Abstract : All terms in the Darwin Core must be assigned a unique Uniform Resource Identifier (URI). For convenience, the term URIs that are assigned and managed by the Darwin Core Task Group are grouped into collections known as Darwin Core namespaces. This document describes how term URIs are allocated by the Darwin Core Maintenance Group and the policies associated with Darwin Core namespaces. @@ -59,6 +50,12 @@ The Darwin Core namespace URI for the collection Darwin Core properties expected http://rs.tdwg.org/dwc/iri/ ``` +The Darwin Core namespace URI for the collection of ChronometricAge properties, classes, and encoding schemes is: + +``` +http://rs.tdwg.org/chrono/terms/ +``` + The term identifier for the current (recommended) version of a term is a URI based on the namespace and the term name without version information. Some example Darwin Core term identifiers follow: ``` diff --git a/docs/simple/index.md b/docs/simple/index.md index 3fbef5a..69c94bc 100644 --- a/docs/simple/index.md +++ b/docs/simple/index.md @@ -4,7 +4,7 @@ Title : Simple Darwin Core Date version issued -: 2021-07-15 +: 2023-09-14 Date created : 2009-04-21 @@ -12,15 +12,6 @@ Date created Part of TDWG Standard : -This version -: - -Latest Version -: - -Previous version -: - Abstract : This document is a reference for the Simple Darwin Core standard. @@ -55,7 +46,7 @@ Simple Darwin Core is simple in that it assumes (and allows) no structure beyond ## 4 What makes it flexible? -Simple Darwin Core has minimal restrictions on which fields are manditory (none). You might argue that there should be more manditory fields, that there isn't anything useful you can do without them. That is partially true. A record with no fields in it wouldn't be very interesting, but there is a difference between requiring that there be a field in a record and requiring that a particular field be in all records. By having no manditory field restriction, Simple Darwin Core can be used to share any meaningful combination of fields - for example, to share "just names", or "just places", or observations of individuals detected in the wild at a given place and time following a method (an occurrence). This flexibility promotes the reuse of the terms and sharing mechanisms for a wide variety of services. +Simple Darwin Core has minimal restrictions on which fields are manditory (none). You might argue that there should be more manditory fields, that there isn't anything useful you can do without them. That is partially true. A record with no fields in it wouldn't be very interesting, but there is a difference between requiring that there be a field in a record and requiring that a particular field be in all records. By having no manditory field restriction, Simple Darwin Core can be used to share any meaningful combination of fields - for example, to share "just names", or "just places", or observations of individuals detected in the wild at a given place and time following a method (a dwc:Occurrence). This flexibility promotes the reuse of the terms and sharing mechanisms for a wide variety of services. ## 5 Are there any rules? (Normative) @@ -66,13 +57,13 @@ There are just a few general guiding principles on how to make the best use of S 3. Class names (e.g., `Occurrence`, `Organism`) MUST NOT be used as field names. 4. Data SHOULD be provided in as many fields as possible. 5. The [`dc:type`](http://purl.org/dc/elements/1.1/type) field SHOULD be populated with the name of the most appropriate Dublin Core type class (`PhysicalObject`, `StillImage`, `MovingImage`, `Sound`, `Text`) the record represents. -6. The [`basisOfRecord`](http://rs.tdwg.org/dwc/terms/basisOfRecord) SHOULD be populated with the name of the most specific Darwin Core class ([`LivingSpecimen`](http://rs.tdwg.org/dwc/terms/LivingSpecimen), [`PreservedSpecimen`](http://rs.tdwg.org/dwc/terms/PreservedSpecimen), [`FossilSpecimen`](http://rs.tdwg.org/dwc/terms/FossilSpecimen), [`MaterialSample`](http://rs.tdwg.org/dwc/terms/MaterialSample), [`HumanObservation`](http://rs.tdwg.org/dwc/terms/HumanObservation), [`MachineObservation`](http://rs.tdwg.org/dwc/terms/MachineObservation), [`MaterialCitation`](http://rs.tdwg.org/dwc/terms/MaterialCitation), [`Event`](http://rs.tdwg.org/dwc/terms/Event), [`Occurrence`](http://rs.tdwg.org/dwc/terms/Occurrence), [`Taxon`](http://rs.tdwg.org/dwc/terms/Taxon), [`Organism`](http://rs.tdwg.org/dwc/terms/Organism), [`Location`](http://purl.org/dc/terms/Location), [`GeologicalContext`](http://rs.tdwg.org/dwc/terms/GeologicalContext)) the record represents. +6. The [`basisOfRecord`](http://rs.tdwg.org/dwc/terms/basisOfRecord) SHOULD be populated with the name of the most specific Darwin Core class ([`LivingSpecimen`](http://rs.tdwg.org/dwc/terms/LivingSpecimen), [`PreservedSpecimen`](http://rs.tdwg.org/dwc/terms/PreservedSpecimen), [`FossilSpecimen`](http://rs.tdwg.org/dwc/terms/FossilSpecimen), [`MaterialEntity`](http://rs.tdwg.org/dwc/terms/MaterialEntity), [`MaterialSample`](http://rs.tdwg.org/dwc/terms/MaterialSample), [`HumanObservation`](http://rs.tdwg.org/dwc/terms/HumanObservation), [`MachineObservation`](http://rs.tdwg.org/dwc/terms/MachineObservation), [`MaterialCitation`](http://rs.tdwg.org/dwc/terms/MaterialCitation), [`Event`](http://rs.tdwg.org/dwc/terms/Event), [`Occurrence`](http://rs.tdwg.org/dwc/terms/Occurrence), [`Taxon`](http://rs.tdwg.org/dwc/terms/Taxon), [`Organism`](http://rs.tdwg.org/dwc/terms/Organism), [`Location`](http://purl.org/dc/terms/Location), [`GeologicalContext`](http://rs.tdwg.org/dwc/terms/GeologicalContext)) the record represents. 7. Fields SHOULD be populated with data that match the definition of the field. 8. Values from a recommended controlled vocabulary SHOULD be used for the values of a field that recommend it. -9. If data are withheld, the field [`informationWithheld`](http://rs.tdwg.org/dwc/terms/informationWithheld) SHOULD be populated to say so. -10. If data are shared in lower quality than the original, the field [`dataGeneralizations`](http://rs.tdwg.org/dwc/terms/dataGeneralizations) SHOULD be populated to say so. +9. If data are withheld, the field [`dwc:informationWithheld`](http://rs.tdwg.org/dwc/terms/informationWithheld) SHOULD be populated to say so. +10. If data are shared in lower quality than the original, the field [`dwc:dataGeneralizations`](http://rs.tdwg.org/dwc/terms/dataGeneralizations) SHOULD be populated to say so. -Every field in Simple Darwin Core MAY appear either once or not at all in a single record - otherwise how could you distinguish one [`scientificName`](http://rs.tdwg.org/dwc/terms/scientificName) field from another one? Think of a database table. It will not allow you to have the same name for two different fields. Because of this design restriction (lack of flexibility for the sake of simplicity), the auxiliary fields from the [`MeasurementOrFact`](http://rs.tdwg.org/dwc/terms/MeasurementOrFact) and [`ResourceRelationship`](http://rs.tdwg.org/dwc/terms/ResourceRelationship) classes are of somewhat limited utility here - you could only share one `MeasurementOrFact` and one `ResourceRelationship` per record. You might argue then that there is no way to share information that requires related structures, such as a history of identifications of a specimen. That is mostly true. The only recourse within Simple Darwin Core is to force the data into one of the catch all "list" terms such as [`recordedBy`](http://rs.tdwg.org/dwc/terms/recordedBy), [`preparations`](http://rs.tdwg.org/dwc/terms/preparations), [`otherCatalogNumbers`](http://rs.tdwg.org/dwc/terms/otherCatalogNumbers), [`associatedMedia`](http://rs.tdwg.org/dwc/terms/associatedMedia), [`associatedReferences`](http://rs.tdwg.org/dwc/terms/associatedReferences), [`associatedSequences`](http://rs.tdwg.org/dwc/terms/associatedSequences), [`associatedTaxa`](http://rs.tdwg.org/dwc/terms/associatedTaxa), [`associatedOccurrences`](http://rs.tdwg.org/dwc/terms/associatedOccurrences), [`associatedOrganisms`](http://rs.tdwg.org/dwc/terms/associatedOrganisms), [`previousIdentifications`](http://rs.tdwg.org/dwc/terms/previousIdentifications), [`higherGeography`](http://rs.tdwg.org/dwc/terms/higherGeography), [`georeferencedBy`](http://rs.tdwg.org/dwc/terms/georeferencedBy), [`georeferenceSources`](http://rs.tdwg.org/dwc/terms/georeferenceSources), [`identifiedBy`](http://rs.tdwg.org/dwc/terms/identifiedBy), [`identificationReferences`](http://rs.tdwg.org/dwc/terms/identificationReferences), and [`higherClassification`](http://rs.tdwg.org/dwc/terms/higherClassification). +Every field in Simple Darwin Core MAY appear either once or not at all in a single record - otherwise how could you distinguish one [`dwc:scientificName`](http://rs.tdwg.org/dwc/terms/scientificName) field from another one? Think of a database table. It will not allow you to have the same name for two different fields. Because of this design restriction (lack of flexibility for the sake of simplicity), the auxiliary fields from the [`dwc:MeasurementOrFact`](http://rs.tdwg.org/dwc/terms/MeasurementOrFact) and [`dwc:ResourceRelationship`](http://rs.tdwg.org/dwc/terms/ResourceRelationship) classes are of somewhat limited utility here - you could only share one `dwc:MeasurementOrFact` and one `dwc:ResourceRelationship` per record. You might argue then that there is no way to share information that requires related structures, such as a history of identifications of a specimen. That is mostly true. The only recourse within Simple Darwin Core is to force the data into one of the catch all "list" terms such as [`dwc:recordedBy`](http://rs.tdwg.org/dwc/terms/recordedBy), [`dwc:preparations`](http://rs.tdwg.org/dwc/terms/preparations), [`dwc:otherCatalogNumbers`](http://rs.tdwg.org/dwc/terms/otherCatalogNumbers), [`dwc:associatedMedia`](http://rs.tdwg.org/dwc/terms/associatedMedia), [`dwc:associatedReferences`](http://rs.tdwg.org/dwc/terms/associatedReferences), [`dwc:associatedSequences`](http://rs.tdwg.org/dwc/terms/associatedSequences), [`dwc:associatedTaxa`](http://rs.tdwg.org/dwc/terms/associatedTaxa), [`dwc:associatedOccurrences`](http://rs.tdwg.org/dwc/terms/associatedOccurrences), [`dwc:associatedOrganisms`](http://rs.tdwg.org/dwc/terms/associatedOrganisms), [`dwc:previousIdentifications`](http://rs.tdwg.org/dwc/terms/previousIdentifications), [`dwc:higherGeography`](http://rs.tdwg.org/dwc/terms/higherGeography), [`dwc:georeferencedBy`](http://rs.tdwg.org/dwc/terms/georeferencedBy), [`dwc:georeferenceSources`](http://rs.tdwg.org/dwc/terms/georeferenceSources), [`dwc:identifiedBy`](http://rs.tdwg.org/dwc/terms/identifiedBy), [`dwc:identificationReferences`](http://rs.tdwg.org/dwc/terms/identificationReferences), and [`dwc:higherClassification`](http://rs.tdwg.org/dwc/terms/higherClassification). There is a difference between having data in a field and requiring that field to have a value from among a legal set of values. Darwin Core is simple in that it has minimal restrictions on the contents of fields. The term comments give recommendations about the use of controlled vocabularies and how to structure content wherever appropriate. Data contributors are encouraged to follow these recommendations as well as possible. You might argue that having no restrictions will promote "dirty" data (data of low quality or dubious value). Consider the simple axiom "It's not what you have, but what you do with it that matters." If data restrictions were in place at the fundamental level, then a record having any non-compliant data in any of its fields could not be shared via the standard. Not only would there be a dearth of shared data in that case (or an unused standard), but also there would be no way to use the standard to build shared data cleaning tools to actually improve the situation, nor to use data services to look up alternative representations (language translations, for example) to serve a broader audience. The rest is up to how the records will be used - in other words, it is up to applications to enforce further restrictions if appropriate, and it is up to the stakeholders of those applications to decide what the restrictions will be for the purpose the application is trying to serve. @@ -88,11 +79,11 @@ The [Text guide](../text/) describes how to construct and format a text file usi ### 6.2 Simple Darwin Core as XML -The [XML guide](../xml/) describes how to construct XML schemas to share data based on Darwin Core terms. Looking at the [Simple Darwin Core XML Schema](../xml/tdwg_dwc_simple.xsd) using the XML guide as a reference you will be able to see that the schema supports the notion of a `SimpleDarwinRecord`, which is just a grouping of up to one of each of the Darwin Core terms that are `Properties` (not `Classes`). +The [XML guide](../xml/) describes how to construct XML schemas to share data based on Darwin Core terms. Looking at the [Simple Darwin Core XML Schema](../xml/tdwg_dwc_simple.xsd) using the XML guide as a reference you will be able to see that the schema supports the notion of a `SimpleDarwinRecord`, which is just a grouping of up to one of each of the Darwin Core terms that are `properties` (not `classes`). #### 6.2.1 Example of Simple Darwin Core as XML -The following example shows a `SimpleDarwinRecordSet` containing one `SimpleDarwinRecord` for a `Taxon`: +The following example shows a `SimpleDarwinRecordSet` containing one `SimpleDarwinRecord` for a `dwc:Taxon`: ```xml @@ -135,7 +126,7 @@ The following example shows a `SimpleDarwinRecordSet` containing one `SimpleDarw ``` -The `SimpleDarwinRecord` acts as a `Class` in implementation, because all of the terms are properties of it. The Simple Darwin Core schema has just one other level of structure, the `SimpleDarwinRecordSet`, which is a grouping of one or more `SimpleDarwinRecords`. The `SimpleDarwinRecordSet` acts as a `Class` to define a data set during implementation. +The `SimpleDarwinRecord` acts as a `class` in implementation, because all of the terms are properties of it. The Simple Darwin Core schema has just one other level of structure, the `SimpleDarwinRecordSet`, which is a grouping of one or more `SimpleDarwinRecords`. The `SimpleDarwinRecordSet` acts as a `class` to define a data set during implementation. ## 7 Doing more with Simple Darwin Core @@ -145,7 +136,7 @@ One way would be to try to "overload" existing terms by using them to hold infor ### 7.1 Structured content using dynamicProperties -Another way to get more out of Darwin Core without adding a term is to "payload" the [`dynamicProperties`](http://rs.tdwg.org/dwc/terms/dynamicProperties) term with structured content, as shown in the example below, using Javascript Open Notation (JSON). This is perfectly legal, since it doesn't compromise the meaning of the term. One of the weaknesses of payloading data in this way is that it is subject to a lack of stable or well-defined semantics. Also, it is strongly suggested to flatten the content into a single string with no non-printing characters (such as line feeds) to facilitate use in the widest variety of data sharing contexts. Still, this might be a reasonable way to at least allow you to share all of your data, even if there might be problems with people using it reliably. +Another way to get more out of Darwin Core without adding a term is to "payload" the [`dwc:dynamicProperties`](http://rs.tdwg.org/dwc/terms/dynamicProperties) term with structured content, as shown in the example below, using Javascript Open Notation (JSON). This is perfectly legal, since it doesn't compromise the meaning of the term. One of the weaknesses of payloading data in this way is that it is subject to a lack of stable or well-defined semantics. Also, it is strongly suggested to flatten the content into a single string with no non-printing characters (such as line feeds) to facilitate use in the widest variety of data sharing contexts. Still, this might be a reasonable way to at least allow you to share all of your data, even if there might be problems with people using it reliably. #### 7.1.1 Example of structured JSON content within XML diff --git a/docs/terms/index.md b/docs/terms/index.md index 198ffa3..4e540f0 100644 --- a/docs/terms/index.md +++ b/docs/terms/index.md @@ -1,11 +1,12 @@ # Darwin Core Quick Reference Guide -This document is intended to be an easy-to-read reference of the currently (as of 2023-08-21) recommended terms maintained as part of the [Darwin Core standard](https://www.tdwg.org/standards/dwc/) and is maintained by the [Darwin Core Maintenance Group](https://www.tdwg.org/community/dwc/). - +This document is intended to be an easy-to-read reference of the currently (as of 2023-06-28) recommended terms maintained as part of the [Darwin Core standard](https://www.tdwg.org/standards/dwc/) and is maintained by the [Darwin Core Maintenance Group](https://www.tdwg.org/community/dwc/). **Need help?** Read more about how to use Darwin Core in the [Darwin Core Questions & Answers site](https://github.com/tdwg/dwc-qa/blob/master/README.md). Still have questions? Submit a new issue (question/problem) to the [dwc-qa issues page in GitHub](https://github.com/tdwg/dwc-qa/issues), or use the [form](https://tinyurl.com/darwin-qa). See the bottom of this document for [how to cite Darwin Core](https://dwc.tdwg.org/terms/#cite-darwin-core)." +**Want to contribute?** For information about how to contribute to the Darwin Core Standard, including how to propose changes, see the [Guidelines for contributing](https://github.com/tdwg/dwc/blob/master/.github/CONTRIBUTING.md). + This page is not part of the standard, but combines the normative term names and definitions with the non-normative comments and examples that are meant to help people to use the terms consistently. Definitions, comments, and examples may include namespace abbreviations (e.g., "dwc:"). These are included to show that the meaning for the word it is attached to very specifically means the term as defined in that namespace. Thus, dwc:Event means Event as defined by Darwin Core at https://dwc.tdwg.org/terms/#event. Capitalized terms that follow a namespace abbreviation, such as dwc:Occurrence, are Darwin Core class terms, which are a special category of terms used to group sets of property terms (terms that being with lower case names that follow the namespace abbreviation, e.g., dwc:eventID) for convenience. Comprehensive metadata for current and obsolete terms in human readable form are found in the document [List of Darwin Core terms](../list/). Additional [files with just the current term names](https://github.com/tdwg/dwc/tree/master/dist) and a [file with the full term history](https://github.com/tdwg/dwc/blob/master/vocabulary/term_versions.csv) can be found in the [Darwin Core repository](https://github.com/tdwg/dwc). @@ -760,6 +761,7 @@ This category contains terms that are generic in that they might apply to any ty materialEntityID preparations disposition + verbatimLabel associatedSequences materialEntityRemarks @@ -813,6 +815,19 @@ This category contains terms that are generic in that they might apply to any ty Examples
  • in collection
  • missing
  • on loan
  • used up
  • destroyed
  • deaccessioned
+ + + + + + + + + +
verbatimLabel
Identifierhttp://rs.tdwg.org/dwc/terms/verbatimLabel
DefinitionThe content of this term should include no embellishments, prefixes, headers or other additions made to the text. Abbreviations must not be expanded and supposed misspellings must not be corrected. Lines or breakpoints between blocks of text that could be verified by seeing the original labels or images of them may be used. Examples of material entities include preserved specimens, fossil specimens, and material samples. Best practice is to use UTF-8 for all characters. Best practice is to add comment “verbatimLabel derived from human transcription” in dwc:occurrenceRemarks.
CommentsExamples can be found at https://dwc.tdwg.org/examples/verbatimLabel.
Examples
@@ -871,27 +885,14 @@ This category contains terms that are generic in that they might apply to any ty
Examples06809dc5-f143-459a-be1a-6f03e63fc083
- - - - - - - - - -
verbatimLabel
Identifierhttp://rs.tdwg.org/dwc/terms/verbatimLabel
DefinitionThe content of this term should include no embellishments, prefixes, headers or other additions made to the text. Abbreviations must not be expanded and supposed misspellings must not be corrected. Lines or breakpoints between blocks of text that could be verified by seeing the original labels or images of them may be used. Examples of material entities include preserved specimens, fossil specimens, and material samples. Best practice is to use UTF-8 for all characters. Best practice is to add comment “verbatimLabel derived from human transcription” in dwc:occurrenceRemarks.
CommentsExamples can be found at https://dwc.tdwg.org/examples/verbatimLabel.
Examples
## Event
- eventType eventID parentEventID + eventType fieldNumber eventDate eventTime @@ -920,19 +921,6 @@ This category contains terms that are generic in that they might apply to any ty - - - - - - - - - -
eventType
Identifierhttp://rs.tdwg.org/dwc/terms/eventType
DefinitionThe nature of the dwc:Event.
CommentsRecommended best practice is to use a controlled vocabulary. Regardless of the dwc:eventType, the interval of the dwc:Event can be captured in dwc:eventDate. This term has an equivalent in the dwciri: namespace that allows only an IRI as a value, whereas this term allows for any string literal value.
Examples
  • Sample
  • Observation
  • Site Visit
  • Biotic Interaction
  • Bioblitz
  • Expedition
  • Survey
  • Project
+ + + + + + + + +
eventType
Identifierhttp://rs.tdwg.org/dwc/terms/eventType
DefinitionThe nature of the dwc:Event.
CommentsRecommended best practice is to use a controlled vocabulary. Regardless of the dwc:eventType, the interval of the dwc:Event can be captured in dwc:eventDate. This term has an equivalent in the dwciri: namespace that allows only an IRI as a value, whereas this term allows for any string literal value.
Examples
  • Sample
  • Observation
  • Site Visit
  • Biotic Interaction
  • Bioblitz
  • Expedition
  • Survey
  • Project