Project

General

Profile

« Previous | Next » 

Revision 668

VegBIEN: Renamed specimen to specimenreplicate

View differences:

test/accepted_output/SALVIAS.organisms.VegBIEN.xml
53 53
            </userdefined_id>
54 54
            <definedvalue>10</definedvalue>
55 55
        </definedvalue>
56
        <specimen>
56
        <specimenreplicate>
57 57
            <reference_id>
58 58
                <reference/>
59 59
            </reference_id>
60 60
            <catalognumber_dwc>14598</catalognumber_dwc>
61 61
            <verbatimcollectorname>Vasquez</verbatimcollectorname>
62 62
            <sourceaccessioncode>607771</sourceaccessioncode>
63
        </specimen>
63
        </specimenreplicate>
64 64
        <taxondetermination>
65 65
            <role_id>
66 66
                <role>
......
222 222
            </userdefined_id>
223 223
            <definedvalue>100</definedvalue>
224 224
        </definedvalue>
225
        <specimen>
225
        <specimenreplicate>
226 226
            <reference_id>
227 227
                <reference/>
228 228
            </reference_id>
229 229
            <catalognumber_dwc>14669</catalognumber_dwc>
230 230
            <verbatimcollectorname>Vasquez</verbatimcollectorname>
231 231
            <sourceaccessioncode>607722</sourceaccessioncode>
232
        </specimen>
232
        </specimenreplicate>
233 233
        <taxondetermination>
234 234
            <role_id>
235 235
                <role>
test/accepted_output/SALVIAS_db.organisms.VegBIEN.xml
176 176
            <isoriginal>true</isoriginal>
177 177
            <iscurrent>true</iscurrent>
178 178
        </taxondetermination>
179
        <specimen>
179
        <specimenreplicate>
180 180
            <reference_id>
181 181
                <reference/>
182 182
            </reference_id>
183 183
            <sourceaccessioncode>1</sourceaccessioncode>
184
        </specimen>
184
        </specimenreplicate>
185 185
    </taxonoccurrence>
186 186
    <taxonoccurrence id="1">
187 187
        <locationevent_id>
......
359 359
            <isoriginal>true</isoriginal>
360 360
            <iscurrent>true</iscurrent>
361 361
        </taxondetermination>
362
        <specimen>
362
        <specimenreplicate>
363 363
            <reference_id>
364 364
                <reference/>
365 365
            </reference_id>
366 366
            <sourceaccessioncode>2</sourceaccessioncode>
367
        </specimen>
367
        </specimenreplicate>
368 368
    </taxonoccurrence>
369 369
</VegBIEN>
test/accepted_output/NYBG.organisms.VegBIEN.xml
64 64
                <authorplantcode>816590</authorplantcode>
65 65
            </individualplant>
66 66
        </aggregateoccurrence>
67
        <specimen>
67
        <specimenreplicate>
68 68
            <reference_id>
69 69
                <reference/>
70 70
            </reference_id>
......
77 77
            </museum_id>
78 78
            <collectioncode_dwc>Herbarium</collectioncode_dwc>
79 79
            <sourceaccessioncode>816590</sourceaccessioncode>
80
        </specimen>
80
        </specimenreplicate>
81 81
        <taxondetermination>
82 82
            <role_id>
83 83
                <role>
......
261 261
                <obsstartdate>1994-01-17</obsstartdate>
262 262
            </locationevent>
263 263
        </locationevent_id>
264
        <specimen>
264
        <specimenreplicate>
265 265
            <reference_id>
266 266
                <reference/>
267 267
            </reference_id>
......
274 274
            </museum_id>
275 275
            <collectioncode_dwc>Herbarium</collectioncode_dwc>
276 276
            <sourceaccessioncode>220541</sourceaccessioncode>
277
        </specimen>
277
        </specimenreplicate>
278 278
        <taxondetermination>
279 279
            <role_id>
280 280
                <role>
inputs/NYBG/test/VegBIEN.xml.ref
65 65
</authorplantcode>
66 66
            </individualplant>
67 67
        </aggregateoccurrence>
68
        <specimen>
68
        <specimenreplicate>
69 69
            <reference_id>
70 70
                <reference/>
71 71
            </reference_id>
......
79 79
            <collectioncode_dwc>Herbarium</collectioncode_dwc>
80 80
            <sourceaccessioncode>816590
 </sourceaccessioncode>
81
        </specimen>
81
        </specimenreplicate>
82 82
        <taxondetermination>
83 83
            <role_id>
84 84
                <role>
......
263 263
                <obsstartdate>1994-01-17</obsstartdate>
264 264
            </locationevent>
265 265
        </locationevent_id>
266
        <specimen>
266
        <specimenreplicate>
267 267
            <reference_id>
268 268
                <reference/>
269 269
            </reference_id>
......
277 277
            <collectioncode_dwc>Herbarium</collectioncode_dwc>
278 278
            <sourceaccessioncode>220541
 </sourceaccessioncode>
279
        </specimen>
279
        </specimenreplicate>
280 280
        <taxondetermination>
281 281
            <role_id>
282 282
                <role>
inputs/NYBG/maps/VegBIEN.organisms.csv
19 19
PlantFungusDescription,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=plantFungusDescription]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect mapping to VB, also possibly to VX;  this is the specimenDescription field, as used by this institution (NOT a standard DwC element). Very important! Bob, Nick, where would this go in VB and VX?"
20 20
Substrate,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=substrate]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect mapping to VB and VX; refers to geological substrate or soils where specimen collected. Often concatenated with habitat, or included with specimen description. Bob, Nick, is there an element for this in VB/VX, or shall we just use userDefined?"
21 21
Vegetation,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=vegetation]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Habitat'. Bob, Nick: keep as user defined or create special element?"
22
FieldNumber,/specimen:[*_id/reference]/catalognumber_dwc,"Brad: Correct for VB, not sure about VX; Nick, is there an element in VX fo Collection Number?"
23
CollectorNumber,/specimen:[*_id/reference]/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
24
Collector,/specimen:[*_id/reference]/verbatimcollectorname,Brad: Correct for VB. Nick: is there a way to specifically identify this party as collector of a specimen?
25
InstitutionCode,/specimen:[*_id/reference]/{museum_id/party/organizationname/_name/first},
26
CollectionCode,"/specimen:[*_id/reference]/{museum_id/party/organizationname/_name/last,collectioncode_dwc}",Brad: Not sure if mapping correct. DwC element; code for entire collection; often same as InstitutionCode; Aaron: Combining with InstitutionCode to create collection name
22
FieldNumber,/specimenreplicate:[*_id/reference]/catalognumber_dwc,"Brad: Correct for VB, not sure about VX; Nick, is there an element in VX fo Collection Number?"
23
CollectorNumber,/specimenreplicate:[*_id/reference]/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
24
Collector,/specimenreplicate:[*_id/reference]/verbatimcollectorname,Brad: Correct for VB. Nick: is there a way to specifically identify this party as collector of a specimen?
25
InstitutionCode,/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname/_name/first},
26
CollectionCode,"/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname/_name/last,collectioncode_dwc}",Brad: Not sure if mapping correct. DwC element; code for entire collection; often same as InstitutionCode; Aaron: Combining with InstitutionCode to create collection name
27 27
Sex,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]/definedvalue[*_id/userdefined[tablename=taxondetermination,userdefinedname=sex]]:[@fkey=tableRecord_ID]/definedvalue","Brad: OMIT. Apparently not used by this institution and of uncertain applicability to plants. With other collections, *sometimes* used for phenological information (if specimen in flower, in fruit, sterile, etc.). If so, this is important information we should keep. Bob, Nick, anywhere for phenological information in VB and VX?; Aaron: Keeping it because it's useful for some collections"
28 28
IdentifiedDate,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]/determinationdate/_*/date",
29 29
DayIdentified,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]/determinationdate/_date/day",
......
41 41
Species,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Species]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
42 42
Phylum,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Subkingdom]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
43 43
Subspecies,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Subspecies]/*_id/plantconcept/*_id/*/plantname",
44
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/individualplant/authorplantcode,specimen:[*_id/reference]/sourceaccessioncode}","Brad: OMIT; Aaron: We need this field because it is the only ID column with an entry in every row; Brad: OK, use this as primary key"
44
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}","Brad: OMIT; Aaron: We need this field because it is the only ID column with an entry in every row; Brad: OK, use this as primary key"
inputs/SALVIAS/test/VegBIEN.xml.ref
299 299
            <isoriginal>true</isoriginal>
300 300
            <iscurrent>true</iscurrent>
301 301
        </taxondetermination>
302
        <specimen>
302
        <specimenreplicate>
303 303
            <reference_id>
304 304
                <reference/>
305 305
            </reference_id>
306 306
            <sourceaccessioncode>1</sourceaccessioncode>
307
        </specimen>
307
        </specimenreplicate>
308 308
    </taxonoccurrence>
309 309
    <taxonoccurrence id="1">
310 310
        <locationevent_id>
......
482 482
            <isoriginal>true</isoriginal>
483 483
            <iscurrent>true</iscurrent>
484 484
        </taxondetermination>
485
        <specimen>
485
        <specimenreplicate>
486 486
            <reference_id>
487 487
                <reference/>
488 488
            </reference_id>
489 489
            <sourceaccessioncode>2</sourceaccessioncode>
490
        </specimen>
490
        </specimenreplicate>
491 491
    </taxonoccurrence>
492 492
    <stem id="0">
493 493
        <individualplant_id>
inputs/SALVIAS/maps/VegBIEN.organisms.csv
14 14
Habit,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
15 15
Ind,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Code, if any, used by the data provider to indicate an individual tree. Scope is unknown, although typically this value is unique only within plot, or sometimes only within subplot."
16 16
DetType,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]:[@fkey=tableRecord_ID]/definedvalue","Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen."
17
coll_number,/specimen:[*_id/reference]/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
18
census_date,/specimen:[*_id/reference]/collectiondate/_*/date,
19
coll_firstname,/specimen:[*_id/reference]/verbatimcollectorname/_name/first,Brad: See comment above
20
coll_lastname,/specimen:[*_id/reference]/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
17
coll_number,/specimenreplicate:[*_id/reference]/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
18
census_date,/specimenreplicate:[*_id/reference]/collectiondate/_*/date,
19
coll_firstname,/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/first,Brad: See comment above
20
coll_lastname,/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
21 21
auth,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Authority]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
22 22
Family,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
23 23
Genus,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Genus]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
......
28 28
Notes,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]:[determinationtype=Author,iscurrent=true]/notes",
29 29
OrigFamily,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
30 30
OrigSpecies,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Species]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
31
PlotObsID,"/{aggregateoccurrence/individualplant/authorplantcode,specimen:[*_id/reference]/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
31
PlotObsID,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
schemas/vegbien.for_ERD.my.sql
281 281
  CONSTRAINT stem_keys_code UNIQUE (individualplant_id , authorstemcode )
282 282
);
283 283

  
284
CREATE TABLE specimen -- A herbarium specimen. Contains Darwin Core specimen data.
284
CREATE TABLE specimenreplicate -- A herbarium specimenreplicate. Contains Darwin Core specimenreplicate data.
285 285
(
286
  specimen_id int(11) NOT NULL AUTO_INCREMENT,
286
  specimenreplicate_id int(11) NOT NULL AUTO_INCREMENT,
287 287
  reference_id int(11) NOT NULL,
288
  collectioncode_dwc character varying(255), -- The code for the collection that the specimen is from.
288
  collectioncode_dwc character varying(255), -- The code for the collection that the specimenreplicate is from.
289 289
  catalognumber_dwc character varying(255),
290 290
  collectiondate timestamp NULL,
291 291
  museum_id int(11),
......
293 293
  accessioncode character varying(255),
294 294
  taxonoccurrence_id int(11) NOT NULL,
295 295
  verbatimcollectorname character varying(255),
296
  collectionnumber character varying(255), -- The number of the specimen within the collection.
297
  CONSTRAINT specimen_pkey PRIMARY KEY (specimen_id ),
298
  CONSTRAINT specimen_museum_id FOREIGN KEY (museum_id)
296
  collectionnumber character varying(255), -- The number of the specimenreplicate within the collection.
297
  CONSTRAINT specimenreplicate_pkey PRIMARY KEY (specimenreplicate_id ),
298
  CONSTRAINT specimenreplicate_museum_id FOREIGN KEY (museum_id)
299 299
      REFERENCES party (party_id) MATCH SIMPLE
300 300
      ON UPDATE CASCADE ON DELETE CASCADE,
301
  CONSTRAINT specimen_reference_id_fkey FOREIGN KEY (reference_id)
301
  CONSTRAINT specimenreplicate_reference_id_fkey FOREIGN KEY (reference_id)
302 302
      REFERENCES reference (reference_id) MATCH SIMPLE
303 303
      ON UPDATE CASCADE ON DELETE CASCADE,
304
  CONSTRAINT specimen_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id)
304
  CONSTRAINT specimenreplicate_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id)
305 305
      REFERENCES taxonoccurrence (taxonoccurrence_id) MATCH SIMPLE
306 306
      ON UPDATE CASCADE ON DELETE CASCADE,
307
  CONSTRAINT specimen_keys_accessioncode UNIQUE (reference_id , collectioncode_dwc , sourceaccessioncode ),
308
  CONSTRAINT specimen_keys_catalognumber UNIQUE (reference_id , collectioncode_dwc , catalognumber_dwc ),
309
  CONSTRAINT specimen_keys_collectionnumber UNIQUE (reference_id , collectioncode_dwc , collectionnumber ),
310
  CONSTRAINT specimen_taxonoccurrence_id_1_to_1 UNIQUE (taxonoccurrence_id )
307
  CONSTRAINT specimenreplicate_keys_accessioncode UNIQUE (reference_id , collectioncode_dwc , sourceaccessioncode ),
308
  CONSTRAINT specimenreplicate_keys_catalognumber UNIQUE (reference_id , collectioncode_dwc , catalognumber_dwc ),
309
  CONSTRAINT specimenreplicate_keys_collectionnumber UNIQUE (reference_id , collectioncode_dwc , collectionnumber ),
310
  CONSTRAINT specimenreplicate_taxonoccurrence_id_1_to_1 UNIQUE (taxonoccurrence_id )
311 311
);
312 312

  
313 313
CREATE TABLE voucher
314 314
(
315 315
  voucher_id int(11) NOT NULL AUTO_INCREMENT,
316 316
  taxonoccurrence_id int(11) NOT NULL,
317
  specimen_id int(11) NOT NULL,
317
  specimenreplicate_id int(11) NOT NULL,
318 318
  accessioncode character varying(255),
319 319
  CONSTRAINT voucher_pkey PRIMARY KEY (voucher_id ),
320
  CONSTRAINT voucher_specimen_id FOREIGN KEY (specimen_id)
321
      REFERENCES specimen (specimen_id) MATCH SIMPLE
320
  CONSTRAINT voucher_specimenreplicate_id FOREIGN KEY (specimenreplicate_id)
321
      REFERENCES specimenreplicate (specimenreplicate_id) MATCH SIMPLE
322 322
      ON UPDATE CASCADE ON DELETE CASCADE,
323 323
  CONSTRAINT voucher_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id)
324 324
      REFERENCES taxonoccurrence (taxonoccurrence_id) MATCH SIMPLE
325 325
      ON UPDATE CASCADE ON DELETE CASCADE,
326
  CONSTRAINT voucher_keys UNIQUE (taxonoccurrence_id , specimen_id )
326
  CONSTRAINT voucher_keys UNIQUE (taxonoccurrence_id , specimenreplicate_id )
327 327
);
328 328

  
329 329
CREATE TABLE taxondetermination -- VegBank's taxoninterpretation table.
schemas/vegbien.for_wiki.sql
92 92
  sourceaccessioncode character varying(100),
93 93
);
94 94

  
95
CREATE TABLE specimen -- A herbarium specimen. Contains Darwin Core specimen data.
95
CREATE TABLE specimenreplicate -- A herbarium specimenreplicate. Contains Darwin Core specimenreplicate data.
96 96
(
97
  specimen_id serial NOT NULL,
97
  specimenreplicate_id serial NOT NULL,
98 98
  reference_id integer NOT NULL,
99
  collectioncode_dwc character varying(255), -- The code for the collection that the specimen is from.
99
  collectioncode_dwc character varying(255), -- The code for the collection that the specimenreplicate is from.
100 100
  catalognumber_dwc character varying(255),
101 101
  collectiondate timestamp with time zone,
102 102
  museum_id integer,
......
104 104
  accessioncode character varying(255),
105 105
  taxonoccurrence_id integer NOT NULL,
106 106
  verbatimcollectorname character varying(255),
107
  collectionnumber character varying(255), -- The number of the specimen within the collection.
107
  collectionnumber character varying(255), -- The number of the specimenreplicate within the collection.
108 108
);
109 109

  
110 110
CREATE TABLE voucher
111 111
(
112 112
  voucher_id serial NOT NULL,
113 113
  taxonoccurrence_id integer NOT NULL,
114
  specimen_id integer NOT NULL,
114
  specimenreplicate_id integer NOT NULL,
115 115
  accessioncode character varying(255),
116 116
);
117 117

  
schemas/vegbien_empty.sql
59 59
TRUNCATE sizeclass CASCADE;
60 60
TRUNCATE soilobs CASCADE;
61 61
TRUNCATE soiltaxon CASCADE;
62
TRUNCATE specimen CASCADE;
62
TRUNCATE specimenreplicate CASCADE;
63 63
TRUNCATE stem CASCADE;
64 64
TRUNCATE stratum CASCADE;
65 65
TRUNCATE stratummethod CASCADE;
schemas/vegbien.for_ERD.sql
281 281
  CONSTRAINT stem_keys_code UNIQUE (individualplant_id , authorstemcode )
282 282
);
283 283

  
284
CREATE TABLE specimen -- A herbarium specimen. Contains Darwin Core specimen data.
284
CREATE TABLE specimenreplicate -- A herbarium specimenreplicate. Contains Darwin Core specimenreplicate data.
285 285
(
286
  specimen_id serial NOT NULL,
286
  specimenreplicate_id serial NOT NULL,
287 287
  reference_id integer NOT NULL,
288
  collectioncode_dwc character varying(255), -- The code for the collection that the specimen is from.
288
  collectioncode_dwc character varying(255), -- The code for the collection that the specimenreplicate is from.
289 289
  catalognumber_dwc character varying(255),
290 290
  collectiondate timestamp with time zone,
291 291
  museum_id integer,
......
293 293
  accessioncode character varying(255),
294 294
  taxonoccurrence_id integer NOT NULL,
295 295
  verbatimcollectorname character varying(255),
296
  collectionnumber character varying(255), -- The number of the specimen within the collection.
297
  CONSTRAINT specimen_pkey PRIMARY KEY (specimen_id ),
298
  CONSTRAINT specimen_museum_id FOREIGN KEY (museum_id)
296
  collectionnumber character varying(255), -- The number of the specimenreplicate within the collection.
297
  CONSTRAINT specimenreplicate_pkey PRIMARY KEY (specimenreplicate_id ),
298
  CONSTRAINT specimenreplicate_museum_id FOREIGN KEY (museum_id)
299 299
      REFERENCES party (party_id) MATCH SIMPLE
300 300
      ON UPDATE CASCADE ON DELETE CASCADE,
301
  CONSTRAINT specimen_reference_id_fkey FOREIGN KEY (reference_id)
301
  CONSTRAINT specimenreplicate_reference_id_fkey FOREIGN KEY (reference_id)
302 302
      REFERENCES reference (reference_id) MATCH SIMPLE
303 303
      ON UPDATE CASCADE ON DELETE CASCADE,
304
  CONSTRAINT specimen_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id)
304
  CONSTRAINT specimenreplicate_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id)
305 305
      REFERENCES taxonoccurrence (taxonoccurrence_id) MATCH SIMPLE
306 306
      ON UPDATE CASCADE ON DELETE CASCADE,
307
  CONSTRAINT specimen_keys_accessioncode UNIQUE (reference_id , collectioncode_dwc , sourceaccessioncode ),
308
  CONSTRAINT specimen_keys_catalognumber UNIQUE (reference_id , collectioncode_dwc , catalognumber_dwc ),
309
  CONSTRAINT specimen_keys_collectionnumber UNIQUE (reference_id , collectioncode_dwc , collectionnumber ),
310
  CONSTRAINT specimen_taxonoccurrence_id_1_to_1 UNIQUE (taxonoccurrence_id )
307
  CONSTRAINT specimenreplicate_keys_accessioncode UNIQUE (reference_id , collectioncode_dwc , sourceaccessioncode ),
308
  CONSTRAINT specimenreplicate_keys_catalognumber UNIQUE (reference_id , collectioncode_dwc , catalognumber_dwc ),
309
  CONSTRAINT specimenreplicate_keys_collectionnumber UNIQUE (reference_id , collectioncode_dwc , collectionnumber ),
310
  CONSTRAINT specimenreplicate_taxonoccurrence_id_1_to_1 UNIQUE (taxonoccurrence_id )
311 311
);
312 312

  
313 313
CREATE TABLE voucher
314 314
(
315 315
  voucher_id serial NOT NULL,
316 316
  taxonoccurrence_id integer NOT NULL,
317
  specimen_id integer NOT NULL,
317
  specimenreplicate_id integer NOT NULL,
318 318
  accessioncode character varying(255),
319 319
  CONSTRAINT voucher_pkey PRIMARY KEY (voucher_id ),
320
  CONSTRAINT voucher_specimen_id FOREIGN KEY (specimen_id)
321
      REFERENCES specimen (specimen_id) MATCH SIMPLE
320
  CONSTRAINT voucher_specimenreplicate_id FOREIGN KEY (specimenreplicate_id)
321
      REFERENCES specimenreplicate (specimenreplicate_id) MATCH SIMPLE
322 322
      ON UPDATE CASCADE ON DELETE CASCADE,
323 323
  CONSTRAINT voucher_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id)
324 324
      REFERENCES taxonoccurrence (taxonoccurrence_id) MATCH SIMPLE
325 325
      ON UPDATE CASCADE ON DELETE CASCADE,
326
  CONSTRAINT voucher_keys UNIQUE (taxonoccurrence_id , specimen_id )
326
  CONSTRAINT voucher_keys UNIQUE (taxonoccurrence_id , specimenreplicate_id )
327 327
);
328 328

  
329 329
CREATE TABLE taxondetermination -- VegBank's taxoninterpretation table.
schemas/vegbien.sql
2260 2260
SET default_with_oids = false;
2261 2261

  
2262 2262
--
2263
-- Name: specimen; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2263
-- Name: specimenreplicate; Type: TABLE; Schema: public; Owner: -; Tablespace: 
2264 2264
--
2265 2265

  
2266
CREATE TABLE specimen (
2267
    specimen_id integer NOT NULL,
2266
CREATE TABLE specimenreplicate (
2267
    specimenreplicate_id integer NOT NULL,
2268 2268
    reference_id integer NOT NULL,
2269 2269
    collectioncode_dwc character varying(255),
2270 2270
    catalognumber_dwc character varying(255),
......
2279 2279

  
2280 2280

  
2281 2281
--
2282
-- Name: TABLE specimen; Type: COMMENT; Schema: public; Owner: -
2282
-- Name: TABLE specimenreplicate; Type: COMMENT; Schema: public; Owner: -
2283 2283
--
2284 2284

  
2285
COMMENT ON TABLE specimen IS 'A herbarium specimen. Contains Darwin Core specimen data.';
2285
COMMENT ON TABLE specimenreplicate IS 'A herbarium specimenreplicate. Contains Darwin Core specimenreplicate data.';
2286 2286

  
2287 2287

  
2288 2288
--
2289
-- Name: COLUMN specimen.collectioncode_dwc; Type: COMMENT; Schema: public; Owner: -
2289
-- Name: COLUMN specimenreplicate.collectioncode_dwc; Type: COMMENT; Schema: public; Owner: -
2290 2290
--
2291 2291

  
2292
COMMENT ON COLUMN specimen.collectioncode_dwc IS 'The code for the collection that the specimen is from.';
2292
COMMENT ON COLUMN specimenreplicate.collectioncode_dwc IS 'The code for the collection that the specimenreplicate is from.';
2293 2293

  
2294 2294

  
2295 2295
--
2296
-- Name: COLUMN specimen.collectionnumber; Type: COMMENT; Schema: public; Owner: -
2296
-- Name: COLUMN specimenreplicate.collectionnumber; Type: COMMENT; Schema: public; Owner: -
2297 2297
--
2298 2298

  
2299
COMMENT ON COLUMN specimen.collectionnumber IS 'The number of the specimen within the collection.';
2299
COMMENT ON COLUMN specimenreplicate.collectionnumber IS 'The number of the specimenreplicate within the collection.';
2300 2300

  
2301 2301

  
2302 2302
--
2303
-- Name: specimen_specimen_id_seq; Type: SEQUENCE; Schema: public; Owner: -
2303
-- Name: specimenreplicate_specimenreplicate_id_seq; Type: SEQUENCE; Schema: public; Owner: -
2304 2304
--
2305 2305

  
2306
CREATE SEQUENCE specimen_specimen_id_seq
2306
CREATE SEQUENCE specimenreplicate_specimenreplicate_id_seq
2307 2307
    START WITH 1
2308 2308
    INCREMENT BY 1
2309 2309
    NO MINVALUE
......
2312 2312

  
2313 2313

  
2314 2314
--
2315
-- Name: specimen_specimen_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
2315
-- Name: specimenreplicate_specimenreplicate_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
2316 2316
--
2317 2317

  
2318
ALTER SEQUENCE specimen_specimen_id_seq OWNED BY specimen.specimen_id;
2318
ALTER SEQUENCE specimenreplicate_specimenreplicate_id_seq OWNED BY specimenreplicate.specimenreplicate_id;
2319 2319

  
2320 2320

  
2321 2321
SET default_with_oids = true;
......
3187 3187
CREATE TABLE voucher (
3188 3188
    voucher_id integer NOT NULL,
3189 3189
    taxonoccurrence_id integer NOT NULL,
3190
    specimen_id integer NOT NULL,
3190
    specimenreplicate_id integer NOT NULL,
3191 3191
    accessioncode character varying(255)
3192 3192
);
3193 3193

  
......
3611 3611

  
3612 3612

  
3613 3613
--
3614
-- Name: specimen_id; Type: DEFAULT; Schema: public; Owner: -
3614
-- Name: specimenreplicate_id; Type: DEFAULT; Schema: public; Owner: -
3615 3615
--
3616 3616

  
3617
ALTER TABLE specimen ALTER COLUMN specimen_id SET DEFAULT nextval('specimen_specimen_id_seq'::regclass);
3617
ALTER TABLE specimenreplicate ALTER COLUMN specimenreplicate_id SET DEFAULT nextval('specimenreplicate_specimenreplicate_id_seq'::regclass);
3618 3618

  
3619 3619

  
3620 3620
--
......
4387 4387

  
4388 4388

  
4389 4389
--
4390
-- Name: specimen_keys_accessioncode; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4390
-- Name: specimenreplicate_keys_accessioncode; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4391 4391
--
4392 4392

  
4393
ALTER TABLE ONLY specimen
4394
    ADD CONSTRAINT specimen_keys_accessioncode UNIQUE (reference_id, collectioncode_dwc, sourceaccessioncode);
4393
ALTER TABLE ONLY specimenreplicate
4394
    ADD CONSTRAINT specimenreplicate_keys_accessioncode UNIQUE (reference_id, collectioncode_dwc, sourceaccessioncode);
4395 4395

  
4396 4396

  
4397 4397
--
4398
-- Name: specimen_keys_catalognumber; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4398
-- Name: specimenreplicate_keys_catalognumber; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4399 4399
--
4400 4400

  
4401
ALTER TABLE ONLY specimen
4402
    ADD CONSTRAINT specimen_keys_catalognumber UNIQUE (reference_id, collectioncode_dwc, catalognumber_dwc);
4401
ALTER TABLE ONLY specimenreplicate
4402
    ADD CONSTRAINT specimenreplicate_keys_catalognumber UNIQUE (reference_id, collectioncode_dwc, catalognumber_dwc);
4403 4403

  
4404 4404

  
4405 4405
--
4406
-- Name: specimen_keys_collectionnumber; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4406
-- Name: specimenreplicate_keys_collectionnumber; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4407 4407
--
4408 4408

  
4409
ALTER TABLE ONLY specimen
4410
    ADD CONSTRAINT specimen_keys_collectionnumber UNIQUE (reference_id, collectioncode_dwc, collectionnumber);
4409
ALTER TABLE ONLY specimenreplicate
4410
    ADD CONSTRAINT specimenreplicate_keys_collectionnumber UNIQUE (reference_id, collectioncode_dwc, collectionnumber);
4411 4411

  
4412 4412

  
4413 4413
--
4414
-- Name: specimen_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4414
-- Name: specimenreplicate_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4415 4415
--
4416 4416

  
4417
ALTER TABLE ONLY specimen
4418
    ADD CONSTRAINT specimen_pkey PRIMARY KEY (specimen_id);
4417
ALTER TABLE ONLY specimenreplicate
4418
    ADD CONSTRAINT specimenreplicate_pkey PRIMARY KEY (specimenreplicate_id);
4419 4419

  
4420 4420

  
4421 4421
--
4422
-- Name: specimen_taxonoccurrence_id_1_to_1; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4422
-- Name: specimenreplicate_taxonoccurrence_id_1_to_1; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4423 4423
--
4424 4424

  
4425
ALTER TABLE ONLY specimen
4426
    ADD CONSTRAINT specimen_taxonoccurrence_id_1_to_1 UNIQUE (taxonoccurrence_id);
4425
ALTER TABLE ONLY specimenreplicate
4426
    ADD CONSTRAINT specimenreplicate_taxonoccurrence_id_1_to_1 UNIQUE (taxonoccurrence_id);
4427 4427

  
4428 4428

  
4429 4429
--
......
4639 4639
--
4640 4640

  
4641 4641
ALTER TABLE ONLY voucher
4642
    ADD CONSTRAINT voucher_keys UNIQUE (taxonoccurrence_id, specimen_id);
4642
    ADD CONSTRAINT voucher_keys UNIQUE (taxonoccurrence_id, specimenreplicate_id);
4643 4643

  
4644 4644

  
4645 4645
--
......
5043 5043

  
5044 5044

  
5045 5045
--
5046
-- Name: fki_specimen_museum_id; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5046
-- Name: fki_specimenreplicate_museum_id; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5047 5047
--
5048 5048

  
5049
CREATE INDEX fki_specimen_museum_id ON specimen USING btree (museum_id);
5049
CREATE INDEX fki_specimenreplicate_museum_id ON specimenreplicate USING btree (museum_id);
5050 5050

  
5051 5051

  
5052 5052
--
5053
-- Name: fki_specimen_reference_id_fkey; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5053
-- Name: fki_specimenreplicate_reference_id_fkey; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5054 5054
--
5055 5055

  
5056
CREATE INDEX fki_specimen_reference_id_fkey ON specimen USING btree (reference_id);
5056
CREATE INDEX fki_specimenreplicate_reference_id_fkey ON specimenreplicate USING btree (reference_id);
5057 5057

  
5058 5058

  
5059 5059
--
......
6574 6574

  
6575 6575

  
6576 6576
--
6577
-- Name: specimen_museum_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6577
-- Name: specimenreplicate_museum_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6578 6578
--
6579 6579

  
6580
ALTER TABLE ONLY specimen
6581
    ADD CONSTRAINT specimen_museum_id FOREIGN KEY (museum_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;
6580
ALTER TABLE ONLY specimenreplicate
6581
    ADD CONSTRAINT specimenreplicate_museum_id FOREIGN KEY (museum_id) REFERENCES party(party_id) ON UPDATE CASCADE ON DELETE CASCADE;
6582 6582

  
6583 6583

  
6584 6584
--
6585
-- Name: specimen_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
6585
-- Name: specimenreplicate_reference_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
6586 6586
--
6587 6587

  
6588
ALTER TABLE ONLY specimen
6589
    ADD CONSTRAINT specimen_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;
6588
ALTER TABLE ONLY specimenreplicate
6589
    ADD CONSTRAINT specimenreplicate_reference_id_fkey FOREIGN KEY (reference_id) REFERENCES reference(reference_id) ON UPDATE CASCADE ON DELETE CASCADE;
6590 6590

  
6591 6591

  
6592 6592
--
6593
-- Name: specimen_taxonoccurrence_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6593
-- Name: specimenreplicate_taxonoccurrence_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6594 6594
--
6595 6595

  
6596
ALTER TABLE ONLY specimen
6597
    ADD CONSTRAINT specimen_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id) REFERENCES taxonoccurrence(taxonoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;
6596
ALTER TABLE ONLY specimenreplicate
6597
    ADD CONSTRAINT specimenreplicate_taxonoccurrence_id FOREIGN KEY (taxonoccurrence_id) REFERENCES taxonoccurrence(taxonoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;
6598 6598

  
6599 6599

  
6600 6600
--
......
6830 6830

  
6831 6831

  
6832 6832
--
6833
-- Name: voucher_specimen_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6833
-- Name: voucher_specimenreplicate_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6834 6834
--
6835 6835

  
6836 6836
ALTER TABLE ONLY voucher
6837
    ADD CONSTRAINT voucher_specimen_id FOREIGN KEY (specimen_id) REFERENCES specimen(specimen_id) ON UPDATE CASCADE ON DELETE CASCADE;
6837
    ADD CONSTRAINT voucher_specimenreplicate_id FOREIGN KEY (specimenreplicate_id) REFERENCES specimenreplicate(specimenreplicate_id) ON UPDATE CASCADE ON DELETE CASCADE;
6838 6838

  
6839 6839

  
6840 6840
--
mappings/SALVIAS_db-VegBIEN.organisms.csv
14 14
Habit,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
15 15
Ind,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Code, if any, used by the data provider to indicate an individual tree. Scope is unknown, although typically this value is unique only within plot, or sometimes only within subplot."
16 16
DetType,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]:[@fkey=tableRecord_ID]/definedvalue","Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen."
17
coll_number,/specimen:[*_id/reference]/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
18
census_date,/specimen:[*_id/reference]/collectiondate/_*/date,
19
coll_firstname,/specimen:[*_id/reference]/verbatimcollectorname/_name/first,Brad: See comment above
20
coll_lastname,/specimen:[*_id/reference]/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
17
coll_number,/specimenreplicate:[*_id/reference]/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
18
census_date,/specimenreplicate:[*_id/reference]/collectiondate/_*/date,
19
coll_firstname,/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/first,Brad: See comment above
20
coll_lastname,/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
21 21
auth,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Authority]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
22 22
Family,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
23 23
Genus,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Genus]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
......
28 28
Notes,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]:[determinationtype=Author,iscurrent=true]/notes",
29 29
OrigFamily,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
30 30
OrigSpecies,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Species]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
31
PlotObsID,"/{aggregateoccurrence/individualplant/authorplantcode,specimen:[*_id/reference]/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
31
PlotObsID,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
mappings/VegX-VegBIEN.organisms.csv
89 89
/simpleUserdefined[name=habit]/value,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]:[@fkey=tableRecord_ID]/definedvalue"
90 90
/simpleUserdefined[name=individualCode]/value,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]:[@fkey=tableRecord_ID]/definedvalue"
91 91
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/groupType","/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]:[@fkey=tableRecord_ID]/definedvalue"
92
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/authorCode,/specimen:[*_id/reference]/catalognumber_dwc
93
/simpleUserdefined[name=collectionDate]/value,/specimen:[*_id/reference]/collectiondate
94
/simpleUserdefined[name=collectionDate]/value/_*/date,/specimen:[*_id/reference]/collectiondate/_*/date
95
/simpleUserdefined[name=collectorNumberDwc]/value,/specimen:[*_id/reference]/collectornumber_dwc
96
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/{givenName/_namePart/{first,middle},surName/_namePart/last}",/specimen:[*_id/reference]/verbatimcollectorname
97
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/givenName",/specimen:[*_id/reference]/verbatimcollectorname/_name/first
98
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/surName",/specimen:[*_id/reference]/verbatimcollectorname/_name/last
99
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName,"/specimen:[*_id/reference]/{museum_id/party/organizationname,collectioncode_dwc/_namePart/last}"
100
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName/_name/first,/specimen:[*_id/reference]/{museum_id/party/organizationname/_name/first}
101
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName/_name/last,"/specimen:[*_id/reference]/{museum_id/party/organizationname/_name/last,collectioncode_dwc}"
92
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/authorCode,/specimenreplicate:[*_id/reference]/catalognumber_dwc
93
/simpleUserdefined[name=collectionDate]/value,/specimenreplicate:[*_id/reference]/collectiondate
94
/simpleUserdefined[name=collectionDate]/value/_*/date,/specimenreplicate:[*_id/reference]/collectiondate/_*/date
95
/simpleUserdefined[name=collectorNumberDwc]/value,/specimenreplicate:[*_id/reference]/collectornumber_dwc
96
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/{givenName/_namePart/{first,middle},surName/_namePart/last}",/specimenreplicate:[*_id/reference]/verbatimcollectorname
97
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/givenName",/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/first
98
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/surName",/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/last
99
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName,"/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname,collectioncode_dwc/_namePart/last}"
100
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName/_name/first,/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname/_name/first}
101
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName/_name/last,"/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname/_name/last,collectioncode_dwc}"
102 102
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[Rank/@code=auth])/Name","/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Authority]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname"
103 103
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[Rank/@code=fam])/Name","/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname"
104 104
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[Rank/@code=gen])/Name","/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Genus]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname"
......
124 124
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=identifier]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[Rank/@code=sp])/Name","/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Species]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname"
125 125
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=identifier]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[Rank/@code=phyl_div])/Name","/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Subkingdom]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname"
126 126
"/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=identifier]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[Rank/@code=ssp])/Name","/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Subspecies]/*_id/plantconcept/*_id/*/plantname"
127
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,"/{aggregateoccurrence/individualplant/authorplantcode,specimen:[*_id/reference]/sourceaccessioncode}"
127
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}"
mappings/for_review/SALVIAS_db-VegBIEN.organisms.csv
14 14
Habit,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]/definedvalue","Brad: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
15 15
Ind,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]/definedvalue","Brad: Code, if any, used by the data provider to indicate an individual tree. Scope is unknown, although typically this value is unique only within plot, or sometimes only within subplot."
16 16
DetType,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]/definedvalue","Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen."
17
coll_number,//specimen/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
18
census_date,//specimen/collectiondate/_*/date,
19
coll_firstname,//specimen/verbatimcollectorname/_name/first,Brad: See comment above
20
coll_lastname,//specimen/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
17
coll_number,//specimenreplicate/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
18
census_date,//specimenreplicate/collectiondate/_*/date,
19
coll_firstname,//specimenreplicate/verbatimcollectorname/_name/first,Brad: See comment above
20
coll_lastname,//specimenreplicate/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
21 21
auth,"/taxondetermination[rolecode=computer,plantlevel=Authority]/*_id/plantconcept/*_id/*/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
22 22
Family,"/taxondetermination[rolecode=computer,plantlevel=Family]/*_id/plantconcept/*_id/*/plantname",
23 23
Genus,"/taxondetermination[rolecode=computer,plantlevel=Genus]/*_id/plantconcept/*_id/*/plantname",
......
28 28
Notes,/taxondetermination[rolecode=identifier]/notes,
29 29
OrigFamily,"/taxondetermination[rolecode=identifier,plantlevel=Family]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
30 30
OrigSpecies,"/taxondetermination[rolecode=identifier,plantlevel=Species]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
31
PlotObsID,"/{aggregateoccurrence/individualplant/authorplantcode,specimen/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
31
PlotObsID,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
mappings/for_review/VegX-VegBIEN.organisms.csv
89 89
/simpleUserdefined[name=habit]/value,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]/definedvalue"
90 90
/simpleUserdefined[name=individualCode]/value,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]/definedvalue"
91 91
//*s/taxonDetermination[role=collector]/groupType,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]/definedvalue"
92
//taxonNameUsageConcept/authorCode,//specimen/catalognumber_dwc
93
/simpleUserdefined[name=collectionDate]/value,//specimen/collectiondate
94
/simpleUserdefined[name=collectionDate]/value/_*/date,//specimen/collectiondate/_*/date
95
/simpleUserdefined[name=collectorNumberDwc]/value,//specimen/collectornumber_dwc
96
"//parties/party/individualName/{givenName/_namePart/{first,middle},surName/_namePart/last}",//specimen/verbatimcollectorname
97
//individualName/givenName,//specimen/verbatimcollectorname/_name/first
98
//individualName/surName,//specimen/verbatimcollectorname/_name/last
99
//party/organizationName,"/specimen/{museum_id/party/organizationname,collectioncode_dwc/_namePart/last}"
100
//party/organizationName/_name/first,/specimen/{museum_id/party/organizationname/_name/first}
101
//party/organizationName/_name/last,"/specimen/{museum_id/party/organizationname/_name/last,collectioncode_dwc}"
92
//taxonNameUsageConcept/authorCode,//specimenreplicate/catalognumber_dwc
93
/simpleUserdefined[name=collectionDate]/value,//specimenreplicate/collectiondate
94
/simpleUserdefined[name=collectionDate]/value/_*/date,//specimenreplicate/collectiondate/_*/date
95
/simpleUserdefined[name=collectorNumberDwc]/value,//specimenreplicate/collectornumber_dwc
96
"//parties/party/individualName/{givenName/_namePart/{first,middle},surName/_namePart/last}",//specimenreplicate/verbatimcollectorname
97
//individualName/givenName,//specimenreplicate/verbatimcollectorname/_name/first
98
//individualName/surName,//specimenreplicate/verbatimcollectorname/_name/last
99
//party/organizationName,"/specimenreplicate/{museum_id/party/organizationname,collectioncode_dwc/_namePart/last}"
100
//party/organizationName/_name/first,/specimenreplicate/{museum_id/party/organizationname/_name/first}
101
//party/organizationName/_name/last,"/specimenreplicate/{museum_id/party/organizationname/_name/last,collectioncode_dwc}"
102 102
//*s/taxonConcept[@code=auth]/Name,"/taxondetermination[rolecode=computer,plantlevel=Authority]/*_id/plantconcept/*_id/*/plantname"
103 103
//*s/taxonConcept[@code=fam]/Name,"/taxondetermination[rolecode=computer,plantlevel=Family]/*_id/plantconcept/*_id/*/plantname"
104 104
//*s/taxonConcept[@code=gen]/Name,"/taxondetermination[rolecode=computer,plantlevel=Genus]/*_id/plantconcept/*_id/*/plantname"
......
124 124
//*s/taxonConcept[@code=sp]/Name,"/taxondetermination[rolecode=identifier,plantlevel=Species]/*_id/plantconcept/*_id/*/plantname"
125 125
//*s/taxonConcept[@code=phyl_div]/Name,"/taxondetermination[rolecode=identifier,plantlevel=Subkingdom]/*_id/plantconcept/*_id/*/plantname"
126 126
//*s/taxonConcept[@code=ssp]/Name,"/taxondetermination[rolecode=identifier,plantlevel=Subspecies]/*_id/plantconcept/*_id/*/plantname"
127
//taxonNameUsageConcept/voucher,"/{aggregateoccurrence/individualplant/authorplantcode,specimen/sourceaccessioncode}"
127
//taxonNameUsageConcept/voucher,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate/sourceaccessioncode}"
mappings/for_review/NYBG-VegBIEN.organisms.csv
18 18
PlantFungusDescription,"//stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=plantFungusDescription]]/definedvalue","Brad: Incorrect mapping to VB, also possibly to VX;  this is the specimenDescription field, as used by this institution (NOT a standard DwC element). Very important! Bob, Nick, where would this go in VB and VX?"
19 19
Substrate,"//stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=substrate]]/definedvalue","Brad: Incorrect mapping to VB and VX; refers to geological substrate or soils where specimen collected. Often concatenated with habitat, or included with specimen description. Bob, Nick, is there an element for this in VB/VX, or shall we just use userDefined?"
20 20
Vegetation,"//stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=vegetation]]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Habitat'. Bob, Nick: keep as user defined or create special element?"
21
FieldNumber,//specimen/catalognumber_dwc,"Brad: Correct for VB, not sure about VX; Nick, is there an element in VX fo Collection Number?"
22
CollectorNumber,//specimen/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
23
Collector,//specimen/verbatimcollectorname,Brad: Correct for VB. Nick: is there a way to specifically identify this party as collector of a specimen?
24
InstitutionCode,/specimen/{museum_id/party/organizationname/_name/first},
25
CollectionCode,"/specimen/{museum_id/party/organizationname/_name/last,collectioncode_dwc}",Brad: Not sure if mapping correct. DwC element; code for entire collection; often same as InstitutionCode; Aaron: Combining with InstitutionCode to create collection name
21
FieldNumber,//specimenreplicate/catalognumber_dwc,"Brad: Correct for VB, not sure about VX; Nick, is there an element in VX fo Collection Number?"
22
CollectorNumber,//specimenreplicate/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
23
Collector,//specimenreplicate/verbatimcollectorname,Brad: Correct for VB. Nick: is there a way to specifically identify this party as collector of a specimen?
24
InstitutionCode,/specimenreplicate/{museum_id/party/organizationname/_name/first},
25
CollectionCode,"/specimenreplicate/{museum_id/party/organizationname/_name/last,collectioncode_dwc}",Brad: Not sure if mapping correct. DwC element; code for entire collection; often same as InstitutionCode; Aaron: Combining with InstitutionCode to create collection name
26 26
Sex,"/taxondetermination[rolecode=identifier]/definedvalue[*_id/userdefined[tablename=taxondetermination,userdefinedname=sex]]/definedvalue","Brad: OMIT. Apparently not used by this institution and of uncertain applicability to plants. With other collections, *sometimes* used for phenological information (if specimen in flower, in fruit, sterile, etc.). If so, this is important information we should keep. Bob, Nick, anywhere for phenological information in VB and VX?; Aaron: Keeping it because it's useful for some collections"
27 27
DayIdentified,/taxondetermination[rolecode=identifier]/determinationdate/_date/day,
28 28
MonthIdentified,/taxondetermination[rolecode=identifier]/determinationdate/_date/month,
......
39 39
Species,"/taxondetermination[rolecode=identifier,plantlevel=Species]/*_id/plantconcept/*_id/*/plantname",
40 40
Phylum,"/taxondetermination[rolecode=identifier,plantlevel=Subkingdom]/*_id/plantconcept/*_id/*/plantname",
41 41
Subspecies,"/taxondetermination[rolecode=identifier,plantlevel=Subspecies]/*_id/plantconcept/*_id/*/plantname",
42
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/individualplant/authorplantcode,specimen/sourceaccessioncode}","Brad: OMIT; Aaron: We need this field because it is the only ID column with an entry in every row; Brad: OK, use this as primary key"
42
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate/sourceaccessioncode}","Brad: OMIT; Aaron: We need this field because it is the only ID column with an entry in every row; Brad: OK, use this as primary key"
mappings/for_review/SALVIAS-VegBIEN.organisms.csv
24 24
habit,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]/definedvalue","Brad: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
25 25
individual_code,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]/definedvalue","Brad: Code, if any, used by the data provider to indicate an individual tree. Scope is unknown, although typically this value is unique only within plot, or sometimes only within subplot."
26 26
det_type,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]/definedvalue","Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen."
27
coll_number,//specimen/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
28
coll_firstname,//specimen/verbatimcollectorname/_name/first,Brad: See comment above
29
coll_lastname,//specimen/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
27
coll_number,//specimenreplicate/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
28
coll_firstname,//specimenreplicate/verbatimcollectorname/_name/first,Brad: See comment above
29
coll_lastname,//specimenreplicate/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
30 30
specific_authority,"/taxondetermination[rolecode=computer,plantlevel=Authority]/*_id/plantconcept/*_id/*/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
31 31
family,"/taxondetermination[rolecode=computer,plantlevel=Family]/*_id/plantconcept/*_id/*/plantname",
32 32
genus,"/taxondetermination[rolecode=computer,plantlevel=Genus]/*_id/plantconcept/*_id/*/plantname",
......
37 37
notes,/taxondetermination[rolecode=identifier]/notes,
38 38
orig_family,"/taxondetermination[rolecode=identifier,plantlevel=Family]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
39 39
orig_species,"/taxondetermination[rolecode=identifier,plantlevel=Species]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
40
OBSERVATION_ID,"/{aggregateoccurrence/individualplant/authorplantcode,specimen/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
40
OBSERVATION_ID,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
mappings/NYBG-VegBIEN.organisms.csv
18 18
PlantFungusDescription,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=plantFungusDescription]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect mapping to VB, also possibly to VX;  this is the specimenDescription field, as used by this institution (NOT a standard DwC element). Very important! Bob, Nick, where would this go in VB and VX?"
19 19
Substrate,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=substrate]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect mapping to VB and VX; refers to geological substrate or soils where specimen collected. Often concatenated with habitat, or included with specimen description. Bob, Nick, is there an element for this in VB/VX, or shall we just use userDefined?"
20 20
Vegetation,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=vegetation]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Habitat'. Bob, Nick: keep as user defined or create special element?"
21
FieldNumber,/specimen:[*_id/reference]/catalognumber_dwc,"Brad: Correct for VB, not sure about VX; Nick, is there an element in VX fo Collection Number?"
22
CollectorNumber,/specimen:[*_id/reference]/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
23
Collector,/specimen:[*_id/reference]/verbatimcollectorname,Brad: Correct for VB. Nick: is there a way to specifically identify this party as collector of a specimen?
24
InstitutionCode,/specimen:[*_id/reference]/{museum_id/party/organizationname/_name/first},
25
CollectionCode,"/specimen:[*_id/reference]/{museum_id/party/organizationname/_name/last,collectioncode_dwc}",Brad: Not sure if mapping correct. DwC element; code for entire collection; often same as InstitutionCode; Aaron: Combining with InstitutionCode to create collection name
21
FieldNumber,/specimenreplicate:[*_id/reference]/catalognumber_dwc,"Brad: Correct for VB, not sure about VX; Nick, is there an element in VX fo Collection Number?"
22
CollectorNumber,/specimenreplicate:[*_id/reference]/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
23
Collector,/specimenreplicate:[*_id/reference]/verbatimcollectorname,Brad: Correct for VB. Nick: is there a way to specifically identify this party as collector of a specimen?
24
InstitutionCode,/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname/_name/first},
25
CollectionCode,"/specimenreplicate:[*_id/reference]/{museum_id/party/organizationname/_name/last,collectioncode_dwc}",Brad: Not sure if mapping correct. DwC element; code for entire collection; often same as InstitutionCode; Aaron: Combining with InstitutionCode to create collection name
26 26
Sex,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]/definedvalue[*_id/userdefined[tablename=taxondetermination,userdefinedname=sex]]:[@fkey=tableRecord_ID]/definedvalue","Brad: OMIT. Apparently not used by this institution and of uncertain applicability to plants. With other collections, *sometimes* used for phenological information (if specimen in flower, in fruit, sterile, etc.). If so, this is important information we should keep. Bob, Nick, anywhere for phenological information in VB and VX?; Aaron: Keeping it because it's useful for some collections"
27 27
DayIdentified,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]/determinationdate/_date/day",
28 28
MonthIdentified,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]/determinationdate/_date/month",
......
39 39
Species,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Species]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
40 40
Phylum,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Subkingdom]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
41 41
Subspecies,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Subspecies]/*_id/plantconcept/*_id/*/plantname",
42
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/individualplant/authorplantcode,specimen:[*_id/reference]/sourceaccessioncode}","Brad: OMIT; Aaron: We need this field because it is the only ID column with an entry in every row; Brad: OK, use this as primary key"
42
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}","Brad: OMIT; Aaron: We need this field because it is the only ID column with an entry in every row; Brad: OK, use this as primary key"
mappings/SALVIAS-VegBIEN.organisms.csv
24 24
habit,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=habit]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
25 25
individual_code,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=individualCode]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Code, if any, used by the data provider to indicate an individual tree. Scope is unknown, although typically this value is unique only within plot, or sometimes only within subplot."
26 26
det_type,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=voucherType]]:[@fkey=tableRecord_ID]/definedvalue","Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen."
27
coll_number,/specimen:[*_id/reference]/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
28
coll_firstname,/specimen:[*_id/reference]/verbatimcollectorname/_name/first,Brad: See comment above
29
coll_lastname,/specimen:[*_id/reference]/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
27
coll_number,/specimenreplicate:[*_id/reference]/catalognumber_dwc,Brad: Incorrect. Map instead as for voucher_string
28
coll_firstname,/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/first,Brad: See comment above
29
coll_lastname,/specimenreplicate:[*_id/reference]/verbatimcollectorname/_name/last,"Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
30 30
specific_authority,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Authority]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
31 31
family,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
32 32
genus,"/taxondetermination[*_id/role/rolecode=computer,*_id/plantconcept/plantstatus/plantlevel=Genus]:[determinationtype=""Computer (automated)"",iscurrent=true]/*_id/plantconcept/*_id/*/plantname",
......
37 37
notes,"/taxondetermination[*_id/role/rolecode=identifier,!*_id/plantconcept]:[determinationtype=Author,iscurrent=true]/notes",
38 38
orig_family,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Family]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
39 39
orig_species,"/taxondetermination[*_id/role/rolecode=identifier,*_id/plantconcept/plantstatus/plantlevel=Species]:[determinationtype=Author,isoriginal=true,iscurrent=true]/*_id/plantconcept/*_id/*/plantname",Brad: OMIT
40
OBSERVATION_ID,"/{aggregateoccurrence/individualplant/authorplantcode,specimen:[*_id/reference]/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."
40
OBSERVATION_ID,"/{aggregateoccurrence/individualplant/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}","Brad: Neither is correct; this is just an internal ID for table plotObservations. However, it has the important property of uniquely identifying an ""observation"", which is an individual tree, in the case of an individual observation, or a records of a species with an associated count of individuals or measurement of percent cover, in the case of aggregate observations. Not sure where to store this. Main point is that it is not part of the original data, but an auto_increment added later."

Also available in: Unified diff