Project

General

Profile

« Previous | Next » 

Revision 5639

schemas/vegbien.sql: taxonlabel: Renamed taxonomicnamewithauthor to taxonomicname because it is equivalent to Darwin Core's scientificName

View differences:

inputs/Madidi/Organism/VegBIEN.csv
45 45
Genera,"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=genus]/taxonepithet",
46 46
Family (revised),"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=family]/taxonepithet",
47 47
Specific epithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/species,
48
Specie+autor,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicnamewithauthor,
48
Specie+autor,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicname,
49 49
Qualifier,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/taxonfit,
50 50
Field family,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/family,
51 51
Field name,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/genus,Often = Genera
inputs/Madidi/Organism/test.xml.ref
149 149
                                        </taxonlabel>
150 150
                                    </parent_id>
151 151
                                    <species>$Specific epithet</species>
152
                                    <taxonomicnamewithauthor>$Specie+autor</taxonomicnamewithauthor>
152
                                    <taxonomicname>$Specie+autor</taxonomicname>
153 153
                                </taxonlabel>
154 154
                            </taxonlabel_id>
155 155
                            <taxonfit>$Qualifier</taxonfit>
inputs/ACAD/Specimen/VegBIEN.csv
44 44
infraspecificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/parent_id/taxonlabel/taxonepithet,
45 45
taxonRank,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/rank,
46 46
specificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/species,
47
scientificName,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicnamewithauthor,
47
scientificName,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicname,
48 48
taxonRank,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/verbatimrank,
49 49
dateIdentified,"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/{determinationdate,*_id/taxonlabel/creationdate}/_alt/1/_*/date/_dateRangeStart/value",
50 50
recordedBy,/location/locationevent/taxonoccurrence/verbatimcollectorname,
inputs/ACAD/Specimen/test.xml.ref
187 187
                                    </parent_id>
188 188
                                    <rank>$taxonRank</rank>
189 189
                                    <species>$specificEpithet</species>
190
                                    <taxonomicnamewithauthor>$scientificName</taxonomicnamewithauthor>
190
                                    <taxonomicname>$scientificName</taxonomicname>
191 191
                                    <verbatimrank>$taxonRank</verbatimrank>
192 192
                                    <creationdate><_date><date><_dateRangeStart><value>$dateIdentified</value></_dateRangeStart></date></_date></creationdate>
193 193
                                </taxonlabel>
inputs/ARIZ/Specimen/VegBIEN.csv
49 49
Phylum,"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,order,class,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=phylum]/taxonepithet",
50 50
Kingdom,"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,order,class,phylum,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=kingdom]/taxonepithet",
51 51
Species,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/species,
52
ScientificNameAuthor,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicnamewithauthor,Contains the binomial in addition to the authority
52
ScientificNameAuthor,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicname,Contains the binomial in addition to the authority
53 53
Remarks,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/notes,
54 54
IdentificationModifier,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/taxonfit,
55 55
DayIdentified,"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/{determinationdate,*_id/taxonlabel/creationdate}/_alt/2/_date/day/_nullIf:[null=0,type=float]/value",
inputs/ARIZ/Specimen/test.xml.ref
214 214
                                        </taxonlabel>
215 215
                                    </parent_id>
216 216
                                    <species>$Species</species>
217
                                    <taxonomicnamewithauthor>$ScientificNameAuthor</taxonomicnamewithauthor>
217
                                    <taxonomicname>$ScientificNameAuthor</taxonomicname>
218 218
                                    <creationdate>
219 219
                                        <_date>
220 220
                                            <day>
schemas/vegbien.my.sql
231 231
    identifyingtaxonomicname text,
232 232
    binomial text,
233 233
    author text,
234
    taxonomicnamewithauthor text,
234
    taxonomicname text,
235 235
    morphospecies text,
236 236
    family text,
237 237
    genus text,
......
340 340

  
341 341

  
342 342
--
343
-- Name: COLUMN taxonlabel.taxonomicnamewithauthor; Type: COMMENT; Schema: public; Owner: -
343
-- Name: COLUMN taxonlabel.taxonomicname; Type: COMMENT; Schema: public; Owner: -
344 344
--
345 345

  
346 346

  
......
1086 1086
--
1087 1087

  
1088 1088
CREATE VIEW analytical_db_view AS
1089
    SELECT datasource.organizationname AS `dataSourceName`, accepted_taxonlabel.family, accepted_taxonlabel.genus, accepted_taxonlabel.species, COALESCE(accepted_taxonlabel.taxonomicnamewithauthor, accepted_taxonlabel.binomial) AS taxon, accepted_taxonlabel.author AS `taxonAuthor`, accepted_taxonlabel.taxonepithet AS `taxonMorphospecies`, placepath.country, placepath.stateprovince AS `stateProvince`, placepath.county AS `countyParish`, taxonoccurrence.verbatimcollectorname AS collector, plantobservation.collectionnumber AS `collectionNumber`, array_to_string(ARRAY[identifiedby.givenname, identifiedby.middlename, identifiedby.surname], CAST(' ' AS text)) AS `identifiedBy`, aggregateoccurrence.collectiondate AS `observationDate`, location.authorlocationcode AS `plotCode`, functions._m2_to_ha(location.area_m2) AS `plotAreaHa`, method.name AS `plotMethod`, locationcoords.latitude_deg AS latitude, locationcoords.longitude_deg AS longitude, location.elevation_m, taxonoccurrence.iscultivated AS `isCultivated`, taxonoccurrence.cultivatedbasis AS `isCultivatedReason`, _fraction_to_percent(aggregateoccurrence.cover_fraction) AS `pctCover` FROM ((((((((((((((location JOIN party datasource ON (((datasource.party_id = location.creator_id) AND (datasource.organizationname IS NOT NULL)))) LEFT JOIN locationcoords USING (location_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN placepath USING (placepath_id)) JOIN locationevent USING (location_id)) LEFT JOIN method USING (method_id)) JOIN taxonoccurrence USING (locationevent_id)) JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) JOIN taxonlabel datasource_taxonlabel USING (taxonlabel_id)) JOIN taxonlabel accepted_taxonlabel ON ((accepted_taxonlabel.taxonlabel_id = datasource_taxonlabel.canon_label_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN specimenreplicate USING (plantobservation_id));
1089
    SELECT datasource.organizationname AS `dataSourceName`, accepted_taxonlabel.family, accepted_taxonlabel.genus, accepted_taxonlabel.species, COALESCE(accepted_taxonlabel.taxonomicname, accepted_taxonlabel.binomial) AS taxon, accepted_taxonlabel.author AS `taxonAuthor`, accepted_taxonlabel.taxonepithet AS `taxonMorphospecies`, placepath.country, placepath.stateprovince AS `stateProvince`, placepath.county AS `countyParish`, taxonoccurrence.verbatimcollectorname AS collector, plantobservation.collectionnumber AS `collectionNumber`, array_to_string(ARRAY[identifiedby.givenname, identifiedby.middlename, identifiedby.surname], CAST(' ' AS text)) AS `identifiedBy`, aggregateoccurrence.collectiondate AS `observationDate`, location.authorlocationcode AS `plotCode`, functions._m2_to_ha(location.area_m2) AS `plotAreaHa`, method.name AS `plotMethod`, locationcoords.latitude_deg AS latitude, locationcoords.longitude_deg AS longitude, location.elevation_m, taxonoccurrence.iscultivated AS `isCultivated`, taxonoccurrence.cultivatedbasis AS `isCultivatedReason`, _fraction_to_percent(aggregateoccurrence.cover_fraction) AS `pctCover` FROM ((((((((((((((location JOIN party datasource ON (((datasource.party_id = location.creator_id) AND (datasource.organizationname IS NOT NULL)))) LEFT JOIN locationcoords USING (location_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN placepath USING (placepath_id)) JOIN locationevent USING (location_id)) LEFT JOIN method USING (method_id)) JOIN taxonoccurrence USING (locationevent_id)) JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) JOIN taxonlabel datasource_taxonlabel USING (taxonlabel_id)) JOIN taxonlabel accepted_taxonlabel ON ((accepted_taxonlabel.taxonlabel_id = datasource_taxonlabel.canon_label_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN specimenreplicate USING (plantobservation_id));
1090 1090

  
1091 1091

  
1092 1092
--
schemas/vegbien.sql
549 549
    identifyingtaxonomicname text,
550 550
    binomial text,
551 551
    author text,
552
    taxonomicnamewithauthor text,
552
    taxonomicname text,
553 553
    morphospecies text,
554 554
    family text,
555 555
    genus text,
......
557 557
    description text,
558 558
    accessioncode text,
559 559
    CONSTRAINT taxonlabel_matched_label_fit_fraction_range CHECK (((matched_label_fit_fraction >= (0)::double precision) AND (matched_label_fit_fraction <= (1)::double precision))),
560
    CONSTRAINT taxonlabel_required_key CHECK ((((((((sourceaccessioncode IS NOT NULL) OR (taxonepithet IS NOT NULL)) OR (identifyingtaxonomicname IS NOT NULL)) OR (binomial IS NOT NULL)) OR (taxonomicnamewithauthor IS NOT NULL)) OR (morphospecies IS NOT NULL)) OR ((parent_id IS NOT NULL) AND ((creationdate IS NOT NULL) OR (author IS NOT NULL)))))
560
    CONSTRAINT taxonlabel_required_key CHECK ((((((((sourceaccessioncode IS NOT NULL) OR (taxonepithet IS NOT NULL)) OR (identifyingtaxonomicname IS NOT NULL)) OR (binomial IS NOT NULL)) OR (taxonomicname IS NOT NULL)) OR (morphospecies IS NOT NULL)) OR ((parent_id IS NOT NULL) AND ((creationdate IS NOT NULL) OR (author IS NOT NULL)))))
561 561
);
562 562

  
563 563

  
......
676 676

  
677 677

  
678 678
--
679
-- Name: COLUMN taxonlabel.taxonomicnamewithauthor; Type: COMMENT; Schema: public; Owner: -
679
-- Name: COLUMN taxonlabel.taxonomicname; Type: COMMENT; Schema: public; Owner: -
680 680
--
681 681

  
682
COMMENT ON COLUMN taxonlabel.taxonomicnamewithauthor IS 'The concatenated taxonomic name which uniquely identifies this taxon, plus the author of that name.
682
COMMENT ON COLUMN taxonlabel.taxonomicname IS 'The concatenated taxonomic name which uniquely identifies this taxon, including the author of that name.
683 683

  
684 684
Equivalent to Darwin Core''s scientificName.';
685 685

  
......
1541 1541
--
1542 1542

  
1543 1543
CREATE VIEW analytical_db_view AS
1544
    SELECT datasource.organizationname AS "dataSourceName", accepted_taxonlabel.family, accepted_taxonlabel.genus, accepted_taxonlabel.species, COALESCE(accepted_taxonlabel.taxonomicnamewithauthor, accepted_taxonlabel.binomial) AS taxon, accepted_taxonlabel.author AS "taxonAuthor", accepted_taxonlabel.taxonepithet AS "taxonMorphospecies", placepath.country, placepath.stateprovince AS "stateProvince", placepath.county AS "countyParish", taxonoccurrence.verbatimcollectorname AS collector, plantobservation.collectionnumber AS "collectionNumber", array_to_string(ARRAY[identifiedby.givenname, identifiedby.middlename, identifiedby.surname], ' '::text) AS "identifiedBy", aggregateoccurrence.collectiondate AS "observationDate", location.authorlocationcode AS "plotCode", functions._m2_to_ha(location.area_m2) AS "plotAreaHa", method.name AS "plotMethod", locationcoords.latitude_deg AS latitude, locationcoords.longitude_deg AS longitude, location.elevation_m, taxonoccurrence.iscultivated AS "isCultivated", taxonoccurrence.cultivatedbasis AS "isCultivatedReason", _fraction_to_percent(aggregateoccurrence.cover_fraction) AS "pctCover" FROM ((((((((((((((location JOIN party datasource ON (((datasource.party_id = location.creator_id) AND (datasource.organizationname IS NOT NULL)))) LEFT JOIN locationcoords USING (location_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN placepath USING (placepath_id)) JOIN locationevent USING (location_id)) LEFT JOIN method USING (method_id)) JOIN taxonoccurrence USING (locationevent_id)) JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) JOIN taxonlabel datasource_taxonlabel USING (taxonlabel_id)) JOIN taxonlabel accepted_taxonlabel ON ((accepted_taxonlabel.taxonlabel_id = datasource_taxonlabel.canon_label_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN specimenreplicate USING (plantobservation_id));
1544
    SELECT datasource.organizationname AS "dataSourceName", accepted_taxonlabel.family, accepted_taxonlabel.genus, accepted_taxonlabel.species, COALESCE(accepted_taxonlabel.taxonomicname, accepted_taxonlabel.binomial) AS taxon, accepted_taxonlabel.author AS "taxonAuthor", accepted_taxonlabel.taxonepithet AS "taxonMorphospecies", placepath.country, placepath.stateprovince AS "stateProvince", placepath.county AS "countyParish", taxonoccurrence.verbatimcollectorname AS collector, plantobservation.collectionnumber AS "collectionNumber", array_to_string(ARRAY[identifiedby.givenname, identifiedby.middlename, identifiedby.surname], ' '::text) AS "identifiedBy", aggregateoccurrence.collectiondate AS "observationDate", location.authorlocationcode AS "plotCode", functions._m2_to_ha(location.area_m2) AS "plotAreaHa", method.name AS "plotMethod", locationcoords.latitude_deg AS latitude, locationcoords.longitude_deg AS longitude, location.elevation_m, taxonoccurrence.iscultivated AS "isCultivated", taxonoccurrence.cultivatedbasis AS "isCultivatedReason", _fraction_to_percent(aggregateoccurrence.cover_fraction) AS "pctCover" FROM ((((((((((((((location JOIN party datasource ON (((datasource.party_id = location.creator_id) AND (datasource.organizationname IS NOT NULL)))) LEFT JOIN locationcoords USING (location_id)) LEFT JOIN locationplace USING (location_id)) LEFT JOIN placepath USING (placepath_id)) JOIN locationevent USING (location_id)) LEFT JOIN method USING (method_id)) JOIN taxonoccurrence USING (locationevent_id)) JOIN taxondetermination USING (taxonoccurrence_id)) LEFT JOIN party identifiedby ON ((identifiedby.party_id = taxondetermination.party_id))) JOIN taxonlabel datasource_taxonlabel USING (taxonlabel_id)) JOIN taxonlabel accepted_taxonlabel ON ((accepted_taxonlabel.taxonlabel_id = datasource_taxonlabel.canon_label_id))) LEFT JOIN aggregateoccurrence USING (taxonoccurrence_id)) LEFT JOIN plantobservation USING (aggregateoccurrence_id)) LEFT JOIN specimenreplicate USING (plantobservation_id));
1545 1545

  
1546 1546

  
1547 1547
--
......
4819 4819
-- Name: taxonlabel_unique; Type: INDEX; Schema: public; Owner: -; Tablespace: 
4820 4820
--
4821 4821

  
4822
CREATE UNIQUE INDEX taxonlabel_unique ON taxonlabel USING btree ((COALESCE(parent_id, 2147483647)), (COALESCE(taxonepithet, '\\N'::text)), (COALESCE(rank, 'unknown'::taxonrank)), creator_id, (COALESCE(sourceaccessioncode, '\\N'::text)), (COALESCE(creationdate, 'infinity'::date)), (COALESCE(identifyingtaxonomicname, '\\N'::text)), (COALESCE(binomial, '\\N'::text)), (COALESCE(author, '\\N'::text)), (COALESCE(taxonomicnamewithauthor, '\\N'::text)), (COALESCE(morphospecies, '\\N'::text)));
4822
CREATE UNIQUE INDEX taxonlabel_unique ON taxonlabel USING btree ((COALESCE(parent_id, 2147483647)), (COALESCE(taxonepithet, '\\N'::text)), (COALESCE(rank, 'unknown'::taxonrank)), creator_id, (COALESCE(sourceaccessioncode, '\\N'::text)), (COALESCE(creationdate, 'infinity'::date)), (COALESCE(identifyingtaxonomicname, '\\N'::text)), (COALESCE(binomial, '\\N'::text)), (COALESCE(author, '\\N'::text)), (COALESCE(taxonomicname, '\\N'::text)), (COALESCE(morphospecies, '\\N'::text)));
4823 4823

  
4824 4824

  
4825 4825
--
mappings/VegCore-VegBIEN.csv
230 230
morphospecies,"/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonlabel:[@fkey=matched_label_id]/morphospecies/_if[@name=""if has verbatim name""]/then",
231 231
verbatimSpecificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonlabel:[@fkey=matched_label_id]/species,
232 232
verbatimTaxonRank,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonlabel:[@fkey=matched_label_id]/verbatimrank,
233
scientificName,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicnamewithauthor,
233
scientificName,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonomicname,
234 234
taxonomicStatus,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/taxonstatus,
235 235
taxonRank,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonlabel/verbatimrank,
236 236
taxonRemarks,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/notes,
......
272 272
originalTaxonRank,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/parent_id/taxonlabel/verbatimrank,
273 273
originalTaxonRank,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/rank,
274 274
originalSpecificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/species,
275
originalScientificName,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/taxonomicnamewithauthor,
275
originalScientificName,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/taxonomicname,
276 276
originalTaxonRank,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/verbatimrank,
277 277
originalIdentificationQualifier,/location/locationevent/taxonoccurrence/taxondetermination[isoriginal=true]/taxonfit,
278 278
recordedBy,/location/locationevent/taxonoccurrence/verbatimcollectorname,
mappings/for_review/VegCore-VegBIEN.csv
230 230
morphospecies,"//taxonlabel/morphospecies/_if[@name=""if has verbatim name""]/then",
231 231
verbatimSpecificEpithet,//taxonoccurrence/taxondetermination[]/*_id/taxonlabel/taxonlabel/species,
232 232
verbatimTaxonRank,//taxonoccurrence/taxondetermination[]/*_id/taxonlabel/taxonlabel/verbatimrank,
233
scientificName,//taxonoccurrence/taxondetermination[]/*_id/taxonlabel/taxonomicnamewithauthor,
233
scientificName,//taxonoccurrence/taxondetermination[]/*_id/taxonlabel/taxonomicname,
234 234
taxonomicStatus,//taxonoccurrence/taxondetermination[]/*_id/taxonlabel/taxonstatus,
235 235
taxonRank,//taxonoccurrence/taxondetermination[]/*_id/taxonlabel/verbatimrank,
236 236
taxonRemarks,//taxonoccurrence/taxondetermination[]/notes,
......
272 272
originalTaxonRank,//taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/parent_id/taxonlabel/verbatimrank,
273 273
originalTaxonRank,//taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/rank,
274 274
originalSpecificEpithet,//taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/species,
275
originalScientificName,//taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/taxonomicnamewithauthor,
275
originalScientificName,//taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/taxonomicname,
276 276
originalTaxonRank,//taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonlabel/verbatimrank,
277 277
originalIdentificationQualifier,//taxonoccurrence/taxondetermination[isoriginal=true]/taxonfit,
278 278
recordedBy,//taxonoccurrence/verbatimcollectorname,

Also available in: Unified diff