DwCA Data Exporting in Specify 7

How to Export DwCA to an RSS Feed


Technical Darwin Core Archive Publishing Guide for Programmers is available on GitHub

Webinar: Data Exporting in Specify 7 (DwCA Export) [29:29]

Show attachment URLs in queries and when data exporting


Supported Data Aggregators

  • GBIF
  • iDigBio
  • GGBN
  • OBIS
  • BISON

and others that support the DwCA export format.

Example RSS Feed Export:

The data contained in this file is only for educational purposes, not representative of actual KU Ichthyology data.

example-dwca.zip (2.0 MB)

Creating a DwCA Export Feed

Before starting, make sure you have created a query that includes every field from Specify that you wish to share with data aggregators.

Important Notes:

  • The query should not contain duplicate collection object records returned (only one row should be returned in the query per Collection Object record).
  • We recommend using isCurrent = True or Empty so that only the current determination is returned.
  • GUID should be in the query so that there is a globally unique identifier for every Collection Object record shared to data aggregators.

Example Query: BI portal KUIT.json (22.9 KB)

This is the query I will be using as the base for this tutorial.

This can be imported in Specify 7 in the :queries_: Queries dialog.

:warning: Note: Some fields may need to be concatenated by mapping the whole table and using the table formatter to mimic the one-to-many relationship of tables such as collector, preparations, etc. when mapping to Darwin Core terms.

  1. Click on :queries_: Queries in the navigation menu.

  1. Click the :pencil_: to the right of your export query.

In this instance, I am going to create an export based on the BI portal KUIT query.

  1. Click Export query for DwCA definition.

  1. Copy the entire contents of the resulting window’s textbox.

It should look something like this:

<?xml version="1.0" ?>
<query name="BI portal KUIT" contextTableId="1">
	<field stringId="1,9-determinations.determination.isCurrent" oper="13" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23.collection.code" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23.collection.description" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23,26,96,94.institution.copyright" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23,26,96,94.institution.termsOfUse" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1.collectionobject.catalogNumber" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1.collectionobject.guid" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Phylum" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Class" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Order" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Family" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Genus" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Species" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Subspecies" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4.taxon.commonName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations.determination.typeStatusName" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10.collectingevent.stationFieldNumber" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10.collectingevent.startDate" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,30-collectors.collector.collectors" oper="11" value="" isNot="false" isRelFld="true"/>
	<field stringId="1,10,2,3.geography.Continent" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2,3.geography.Country" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2,3.geography.State" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2,3.geography.County" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2.locality.localityName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2.locality.latitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2.locality.longitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,63-preparations.preparation.preparations" oper="11" value="" isNot="false" isRelFld="true"/>
</query>

  1. Click on the :usercircle_: Your Username in the navigation menu to access the User Tools menu.

  1. Click on App Resources.

From this step on, this process must be repeated for multiple collections so that each can be exported as a separate instance.

  1. Click on :plus_: Add Resource under the collection you wish to export.

In this instance, it is the KU Fish Voucher Collection

  1. Select :gear_: App Resource.

  1. Select Other Resource.

  1. Name the new resource something memorable and click Save

I named this app resource DwCA_FishCollection.

  1. Paste the contents of the DwCA XML export that we copied earlier into the app resource editor, then click Save.

  1. If you have a Collection Object GUID field in the XML (any line that contains stringId="1.collectionobject.guid"), remove that line.

Even if you did not have GUID as part of the initial query, you still need to follow the next steps:

Add the following line directly below the <query name="BI portal KUIT" contextTableId="1"> (the query name is based on your query, it is not specific in this case).

<id    term="http://rs.tdwg.org/dwc/terms/occurrenceID" isNot="false" isRelFld="false" oper="11" stringId="1.collectionobject.guid" value=""/>

It should now look like this:

<?xml version="1.0" ?>
<query name="BI portal KUIT" contextTableId="1">
  <id    term="http://rs.tdwg.org/dwc/terms/occurrenceID" isNot="false" isRelFld="false" oper="11" stringId="1.collectionobject.guid" value=""/>
	<field stringId="1,9-determinations.determination.isCurrent" oper="13" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23.collection.code" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23.collection.description" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23,26,96,94.institution.copyright" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,23,26,96,94.institution.termsOfUse" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1.collectionobject.catalogNumber" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Phylum" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Class" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Order" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Family" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Genus" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Species" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4-preferredTaxon.taxon.Subspecies" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations,4.taxon.commonName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,9-determinations.determination.typeStatusName" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10.collectingevent.stationFieldNumber" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10.collectingevent.startDate" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,30-collectors.collector.collectors" oper="11" value="" isNot="false" isRelFld="true"/>
	<field stringId="1,10,2,3.geography.Continent" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2,3.geography.Country" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2,3.geography.State" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2,3.geography.County" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2.locality.localityName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2.locality.latitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,10,2.locality.longitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field stringId="1,63-preparations.preparation.preparations" oper="11" value="" isNot="false" isRelFld="true"/>
</query>
  1. Go to the DWC quick reference guide website and find the recommended Darwin Core terms’ URLs associated with each field.

https://dwc.tdwg.org/terms/

For instance, I want to map the field catalogNumber in Specify to the catalogNumber field in the Darwin Core reference guide.

I need to copy the URL identifier (http://rs.tdwg.org/dwc/terms/catalogNumber) in its entirety.

Once I have done that, I need to return to the app resource viewer and and paste the entire URL inside of a term="" attribute.

The line that includes the stringId for catalogNumber now includes the term="" attribute with the URL to the Darwin Core term inside.

<field term="http://rs.tdwg.org/dwc/terms/catalogNumber" stringId="1.collectionobject.catalogNumber" oper="1" value="" isNot="false" isRelFld="false"/>

I need to repeat this process for all fields in the query that I want to map to Darwin Core terms.

  1. Once you have assigned all fields a term, click Save. It should look something like this:

Here is the XML from that screenshot:

<?xml version="1.0" ?>
<query name="BI portal KUIT" contextTableId="1">
	<id    term="http://rs.tdwg.org/dwc/terms/occurrenceID" isNot="false" isRelFld="false" oper="11" stringId="1.collectionobject.guid" value=""/>
	<field stringId="1,9-determinations.determination.isCurrent" oper="13" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/collectionCode" stringId="1,23.collection.code" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/datasetName" stringId="1,23.collection.description" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://purl.org/dc/terms/license" stringId="1,23,26,96,94.institution.copyright" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://purl.org/dc/terms/accessRights" stringId="1,23,26,96,94.institution.termsOfUse" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/catalogNumber" stringId="1.collectionobject.catalogNumber" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/phylum" stringId="1,9-determinations,4-preferredTaxon.taxon.Phylum" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/class" stringId="1,9-determinations,4-preferredTaxon.taxon.Class" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/order" stringId="1,9-determinations,4-preferredTaxon.taxon.Order" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/family" stringId="1,9-determinations,4-preferredTaxon.taxon.Family" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/genus" stringId="1,9-determinations,4-preferredTaxon.taxon.Genus" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/specificEpithet" stringId="1,9-determinations,4-preferredTaxon.taxon.Species" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/infraspecificEpithet" stringId="1,9-determinations,4-preferredTaxon.taxon.Subspecies" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/vernacularName" stringId="1,9-determinations,4.taxon.commonName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/iri/typeStatus" stringId="1,9-determinations.determination.typeStatusName" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/eventID" stringId="1,10.collectingevent.stationFieldNumber" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/eventDate" stringId="1,10.collectingevent.startDate" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/recordedBy" stringId="1,10,30-collectors.collector.collectors" oper="11" value="" isNot="false" isRelFld="true"/>
	<field term="http://rs.tdwg.org/dwc/terms/continent" stringId="1,10,2,3.geography.Continent" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/country" stringId="1,10,2,3.geography.Country" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/stateProvince" stringId="1,10,2,3.geography.State" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/county" stringId="1,10,2,3.geography.County" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/locality" stringId="1,10,2.locality.localityName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/decimalLatitude" stringId="1,10,2.locality.latitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/decimalLongitude" stringId="1,10,2.locality.longitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/preparations" stringId="1,63-preparations.preparation.preparations" oper="11" value="" isNot="false" isRelFld="true"/>
</query>
  1. Replace the first two lines of the resource file with the following:
<?xml version="1.0" encoding="utf-8"?>
<archive>
<core rowType="http://rs.tdwg.org/dwc/terms/Occurrence">
<queries>
<query name="occurrence.csv" contextTableId="1">

Now replace the last lines with the following:

</query>
</queries>
</core>
</archive>

Now it should look like this:

<?xml version="1.0" encoding="utf-8"?>
<archive>
<core rowType="http://rs.tdwg.org/dwc/terms/Occurrence">
<queries>
<query name="occurrence.csv" contextTableId="1">
	<id    term="http://rs.tdwg.org/dwc/terms/occurrenceID" isNot="false" isRelFld="false" oper="11" stringId="1.collectionobject.guid" value=""/>
	<field stringId="1,9-determinations.determination.isCurrent" oper="13" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/collectionCode" stringId="1,23.collection.code" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/datasetName" stringId="1,23.collection.description" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://purl.org/dc/terms/license" stringId="1,23,26,96,94.institution.copyright" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://purl.org/dc/terms/accessRights" stringId="1,23,26,96,94.institution.termsOfUse" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/catalogNumber" stringId="1.collectionobject.catalogNumber" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/phylum" stringId="1,9-determinations,4-preferredTaxon.taxon.Phylum" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/class" stringId="1,9-determinations,4-preferredTaxon.taxon.Class" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/order" stringId="1,9-determinations,4-preferredTaxon.taxon.Order" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/family" stringId="1,9-determinations,4-preferredTaxon.taxon.Family" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/genus" stringId="1,9-determinations,4-preferredTaxon.taxon.Genus" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/specificEpithet" stringId="1,9-determinations,4-preferredTaxon.taxon.Species" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/infraspecificEpithet" stringId="1,9-determinations,4-preferredTaxon.taxon.Subspecies" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/vernacularName" stringId="1,9-determinations,4.taxon.commonName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/iri/typeStatus" stringId="1,9-determinations.determination.typeStatusName" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/eventID" stringId="1,10.collectingevent.stationFieldNumber" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/eventDate" stringId="1,10.collectingevent.startDate" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/recordedBy" stringId="1,10,30-collectors.collector.collectors" oper="11" value="" isNot="false" isRelFld="true"/>
	<field term="http://rs.tdwg.org/dwc/terms/continent" stringId="1,10,2,3.geography.Continent" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/country" stringId="1,10,2,3.geography.Country" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/stateProvince" stringId="1,10,2,3.geography.State" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/county" stringId="1,10,2,3.geography.County" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/locality" stringId="1,10,2.locality.localityName" oper="11" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/decimalLatitude" stringId="1,10,2.locality.latitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/decimalLongitude" stringId="1,10,2.locality.longitude1" oper="1" value="" isNot="false" isRelFld="false"/>
	<field term="http://rs.tdwg.org/dwc/terms/preparations" stringId="1,63-preparations.preparation.preparations" oper="11" value="" isNot="false" isRelFld="true"/>
</query>
</queries>
</core>
</archive>

:right_anger_bubble: Optional: The DwC exporting function supports adding additional queries with extensions to the mapping!

See GBIF extensions if you are interested in adding more information to your mapping.

You will need to have <extensions> before and </extensions> after the entirety of the extensions added in this file. If you are looking for help with this, please contact us at support@specifysoftware.org.

You will have to create an additional query (or queries) that include all of the information necessary for the extension you wish to add to the XML.

For each extension, the header information must contain the GBIF rowType URL in its contents. It will require the rowType to be defined in the heading before the queries. (Seen above)

<!-- GGBN Material Sample Extension –>

<extension rowType=”http://data.ggbn.org/schemas/ggbn/terms/MaterialSample>

After this section, insert your queries. Close the entire extension using </extension>.

You can share the metadata associated with attachments using this feature. Please let us know if you are interested in setting up any extensions and are looking for guidance!

Example from the KU Fish Voucher Collection:
DwCA_voucher.xml (15.7 KB)

  1. You will need to download or create the metadata file that will be associated with your collection export.

For this collection, we could download the EML metadata from an occurrence dataset already uploaded on GBIF.

Go to DownloadGBIF annotated metadata (EML) to download the EML file for your given collection’s dataset.

Here is an example of an EML file:

<?xml version="1.0"?>
<eml:eml
    packageId="doi:10.xxxx/eml.1.1" system="https://doi.org"
    xmlns:eml="https://eml.ecoinformatics.org/eml-2.2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:stmml="http://www.xml-cml.org/schema/stmml-1.1"
    xsi:schemaLocation="https://eml.ecoinformatics.org/eml-2.2.0 xsd/eml.xsd">
    
    <dataset>
        <title>Primary production of algal species from Southeast Alaska, 1990-2002</title>
        <creator id="https://orcid.org/0000-0003-0077-4738">
            <individualName>
                <givenName>Matthew</givenName>
                <givenName>B.</givenName>
                <surName>Jones</surName>
            </individualName>
            <electronicMailAddress>jones@nceas.ucsb.edu</electronicMailAddress>
            <userId directory="https://orcid.org">https://orcid.org/0000-0003-0077-4738</userId>
        </creator>
        <keywordSet>
            <keyword>biomass</keyword>
            <keyword>productivity</keyword>
        </keywordSet>
        <contact>
            <references>https://orcid.org/0000-0003-0077-4738</references>
        </contact>
    </dataset>
</eml:eml>

ExampleEML.txt (1.1 KB)

If you do not have any data uploaded to GBIF or another source to gather an EML file, you can modify the above one to fit your collection.

You can learn more about the EML (Ecological Metadata Language) on their website.

  1. Repeat steps 7-10 to create a new app resource at the same level as the resource we created in the previous steps. This new app resource can be named anything and it will contain the metadata that was acquired or created in the previous step.

In this instance, I am creating a new file named DwCA_Metadata.

  1. Use the Load File option in the top right and select the downloaded or created EML file. Alternatively, you can paste the EML file into the resource editor.

This is the same as the example EML I shared above.

  1. Create an ExportFeed app resource under the Global Resources section at the very top of the App Resources sidebar.

This resource must be named exactly ExportFeed or it will not operate correctly.

An ExportFeed resource should look something like this:

<channel>
  <title>KUBI ichthyology RSS Feed</title>
  <description>RSS feed for KUBI Ichthyology Voucher collections</description>
  <item collectionId="4" userId="2" notifyUserId="2" definition="DwCA_FishCollection" metadata="DwCA_Metadata" days="7" filename="kui-dwca.zip" publish="true">
    <title>KU Fish</title>
    <id>8f79c802-a58c-447f-99aa-1d6a0790825a</id>
  </item>
</channel>
  1. Inside of the <title> elements, put the name of your feed and a title for the collection.

  2. Inside of the <description> element, write a description for your feed.

  3. Replace the ID inside collectionId="4" with the collectionID found using the instructions below.

  4. Replace the ID inside userId="2"and notifyUserId="2" with the userID found using the instructions below.

  5. For definition="DwCA_FishCollection", you will need to replace DwCA_FishCollection with the name for the DwCA export app resource in your database.

  6. For metadata="DwCA_Metadata", you will need to replace DwCA_Metadata with the name for the EML app resource in your database.

  7. Replace the ID inside userId="2"and notifyUserId="2" with the userID found using the instructions below.

:bulb: You can have multiple items for each collection you wish to export.

Finding IDs for ExportFeed

userID

Append the following to your base Specify 7 installation URL:
/specify/query/new/specifyuser/

Example: https://sp7demofish.specifycloud.org/specify/query/new/specifyuser/

Add Username and ID to the query (enable hidden fields if necessary):

Find your current user and copy the ID.

collectionID

Append the following to your base Specify 7 installation URL:
/context/domain.json

Example: https://sp7demofish.specifycloud.org/context/domain.json

You will either see a JSON printout or it will be nicely visualized by your browser. In either case, you can copy the ID next to collection.

id (Collection GUID)

Append the following to your base Specify 7 installation URL:
/specify/query/new/collection/

Example: https://sp7demofish.specifycloud.org/specify/query/new/collection/

Add Collection Name and GUID to the query (enable hidden fields if necessary):

Find the desired collection you are exporting and copy the GUID.

  1. Once again, click on :usercircle_: Your Username in the navigation menu to access the

User Tools menu.

Now click Update RSS Feed.

Click Update

You will now see an update started message. You can safely dismiss this window.

You have now started your first RSS feed export!

  1. Once it is complete, you will receive a notification with a link to download the RSS feed export.

:warning: If you see a notification informing you that the export has failed or no notification at all, please double-check that all of the steps were performed correctly. Members can reply to this topic or send us an email to obtain further support!

Export feed endpoint

When a valid ExportFeed resource is present at the Global Resources app resource level, the RSS feed URL will become active and return the generated RSS feed:

https://ichthyology.specify.ku.edu/export/rss/

Replace ichthyology.specify.ku.edu with your base URL.


Output:

The data contained in this file is only for educational purposes, not representative of actual KU Ichthyology data.

example-dwca.zip (2.0 MB)

Validating with GBIF

To ensure that the export was constructed correctly before submitting to GBIF, you can upload the ZIP file (or provide a direct link) to GBIF Data Validator site.

To use this tool, please log in with your GBIF account. It provides warnings and feedback on your EML metadata and occurrence data. It also ensures that your data can be shared with GBIF without any problems