Project

General

Profile

« Previous | Next » 

Revision 671

VegBIEN: Renamed individualplant to plantobservation

View differences:

test/accepted_output/SALVIAS.organisms.VegBIEN.xml
18 18
        </locationevent_id>
19 19
        <aggregateoccurrence>
20 20
            <count>1</count>
21
            <individualplant>
21
            <plantobservation>
22 22
                <stem>
23 23
                    <authorstemcode>8</authorstemcode>
24 24
                    <diameter>662</diameter>
25 25
                </stem>
26 26
                <authorplantcode>607771</authorplantcode>
27
            </individualplant>
27
            </plantobservation>
28 28
        </aggregateoccurrence>
29 29
        <definedvalue fkey="tableRecord_ID">
30 30
            <userdefined_id>
......
187 187
        </locationevent_id>
188 188
        <aggregateoccurrence>
189 189
            <count>1</count>
190
            <individualplant>
190
            <plantobservation>
191 191
                <stem>
192 192
                    <authorstemcode>91</authorstemcode>
193 193
                    <diameter>215</diameter>
194 194
                </stem>
195 195
                <authorplantcode>607722</authorplantcode>
196
            </individualplant>
196
            </plantobservation>
197 197
        </aggregateoccurrence>
198 198
        <definedvalue fkey="tableRecord_ID">
199 199
            <userdefined_id>
test/accepted_output/SALVIAS_db.organisms.VegBIEN.xml
8 8
        </locationevent_id>
9 9
        <aggregateoccurrence>
10 10
            <count>1</count>
11
            <individualplant>
11
            <plantobservation>
12 12
                <authorplantcode>1</authorplantcode>
13
            </individualplant>
13
            </plantobservation>
14 14
        </aggregateoccurrence>
15 15
        <definedvalue fkey="tableRecord_ID">
16 16
            <userdefined_id>
......
191 191
        </locationevent_id>
192 192
        <aggregateoccurrence>
193 193
            <count>1</count>
194
            <individualplant>
194
            <plantobservation>
195 195
                <authorplantcode>2</authorplantcode>
196
            </individualplant>
196
            </plantobservation>
197 197
        </aggregateoccurrence>
198 198
        <definedvalue fkey="tableRecord_ID">
199 199
            <userdefined_id>
test/accepted_output/NYBG.organisms.VegBIEN.xml
40 40
            </locationevent>
41 41
        </locationevent_id>
42 42
        <aggregateoccurrence>
43
            <individualplant>
43
            <plantobservation>
44 44
                <stem>
45 45
                    <definedvalue fkey="tableRecord_ID">
46 46
                        <userdefined_id>
......
62 62
                    </definedvalue>
63 63
                </stem>
64 64
                <authorplantcode>816590</authorplantcode>
65
            </individualplant>
65
            </plantobservation>
66 66
        </aggregateoccurrence>
67 67
        <specimenreplicate>
68 68
            <reference_id>
......
361 361
            <iscurrent>true</iscurrent>
362 362
        </taxondetermination>
363 363
        <aggregateoccurrence>
364
            <individualplant>
364
            <plantobservation>
365 365
                <authorplantcode>220541</authorplantcode>
366
            </individualplant>
366
            </plantobservation>
367 367
        </aggregateoccurrence>
368 368
    </taxonoccurrence>
369 369
</VegBIEN>
inputs/NYBG/test/VegBIEN.xml.ref
40 40
            </locationevent>
41 41
        </locationevent_id>
42 42
        <aggregateoccurrence>
43
            <individualplant>
43
            <plantobservation>
44 44
                <stem>
45 45
                    <definedvalue fkey="tableRecord_ID">
46 46
                        <userdefined_id>
......
63 63
                </stem>
64 64
                <authorplantcode>816590
 </authorplantcode>
65
            </individualplant>
65
            </plantobservation>
66 66
        </aggregateoccurrence>
67 67
        <specimenreplicate>
68 68
            <reference_id>
......
364 364
            <iscurrent>true</iscurrent>
365 365
        </taxondetermination>
366 366
        <aggregateoccurrence>
367
            <individualplant>
367
            <plantobservation>
368 368
                <authorplantcode>220541
 </authorplantcode>
369
            </individualplant>
369
            </plantobservation>
370 370
        </aggregateoccurrence>
371 371
    </taxonoccurrence>
372 372
</VegBIEN>
inputs/NYBG/maps/VegBIEN.organisms.csv
15 15
YearCollected,/*_id/locationevent/obsstartdate/_date/year,
16 16
MaximumDepth,/*_id/locationevent/waterdepth/max,
17 17
MinimumDepth,/*_id/locationevent/waterdepth/min,
18
Habitat,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=habitat]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Vegetation'. Bob, Nick: keep as user defined or create special element?"
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
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
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?"
18
Habitat,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=habitat]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Vegetation'. Bob, Nick: keep as user defined or create special element?"
19
PlantFungusDescription,"/aggregateoccurrence/plantobservation/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
Substrate,"/aggregateoccurrence/plantobservation/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
Vegetation,"/aggregateoccurrence/plantobservation/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 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 23
CollectorNumber,/specimenreplicate:[*_id/reference]/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
24 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?
......
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,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"
44
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/plantobservation/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
131 131
        </locationevent_id>
132 132
        <aggregateoccurrence>
133 133
            <count>1</count>
134
            <individualplant>
134
            <plantobservation>
135 135
                <authorplantcode>1</authorplantcode>
136
            </individualplant>
136
            </plantobservation>
137 137
        </aggregateoccurrence>
138 138
        <definedvalue fkey="tableRecord_ID">
139 139
            <userdefined_id>
......
314 314
        </locationevent_id>
315 315
        <aggregateoccurrence>
316 316
            <count>1</count>
317
            <individualplant>
317
            <plantobservation>
318 318
                <authorplantcode>2</authorplantcode>
319
            </individualplant>
319
            </plantobservation>
320 320
        </aggregateoccurrence>
321 321
        <definedvalue fkey="tableRecord_ID">
322 322
            <userdefined_id>
......
490 490
        </specimenreplicate>
491 491
    </taxonoccurrence>
492 492
    <stem id="0">
493
        <individualplant_id>
494
            <individualplant>
493
        <plantobservation_id>
494
            <plantobservation>
495 495
                <authorplantcode>1</authorplantcode>
496 496
                <stemcount>1</stemcount>
497
            </individualplant>
498
        </individualplant_id>
497
            </plantobservation>
498
        </plantobservation_id>
499 499
        <diameter>6.59</diameter>
500 500
    </stem>
501 501
    <stem id="1">
502
        <individualplant_id>
503
            <individualplant>
502
        <plantobservation_id>
503
            <plantobservation>
504 504
                <authorplantcode>2</authorplantcode>
505 505
                <stemcount>0</stemcount>
506
            </individualplant>
507
        </individualplant_id>
506
            </plantobservation>
507
        </plantobservation_id>
508 508
        <diameter>3.09</diameter>
509 509
    </stem>
510 510
</VegBIEN>
inputs/SALVIAS/maps/VegBIEN.stems.csv
1 1
SALVIAS:stems,VegBIEN:/stem,Comments
2
PlotObsID,/*_id/individualplant/authorplantcode,
3
NoInd,/*_id/individualplant/stemcount,
2
PlotObsID,/*_id/plantobservation/authorplantcode,
3
NoInd,/*_id/plantobservation/stemcount,
4 4
stem_tag2,/authorstemcode/_alt/1,
5 5
stem_tag1,/authorstemcode/_alt/2,
6 6
basal_diam,"/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue",
inputs/SALVIAS/maps/VegBIEN.organisms.csv
3 3
NoInd,/aggregateoccurrence/count,"Brad: Incorrect for VegX. This is a count of number of indiiduals for an *aggregate* observation. For VegBank, I'm not sure. Not exactly the same as stemCount. An individual tree could have 3 stems but would still only count as 1. We need to check with Bob on this."
4 4
cover_percent,/aggregateoccurrence/cover,
5 5
intercept_cm,"/aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect for VegBank This is an aggregate observation. Used in line-intercept methodology only, describes the point along centerline at which an individual intercepts the center line of the plot. Used to determin relative abundance."
6
height_m,/aggregateoccurrence/individualplant/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
7
tag2,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
8
tag1,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
9
ht_first_branch_m,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
10
temp_dbh,/aggregateoccurrence/individualplant/stem/diameter,
11
x_position,/aggregateoccurrence/individualplant/stem/xposition,"Brad: Correct for VegBank. I'm not so sure for VegX. Let's ask Nick about this. These are important, fundamental values of many tree plots, and should be accommodated within VegX."
12
y_position,/aggregateoccurrence/individualplant/stem/yposition,Brad: See comment above for x_position
6
height_m,/aggregateoccurrence/plantobservation/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
7
tag2,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
8
tag1,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
9
ht_first_branch_m,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
10
temp_dbh,/aggregateoccurrence/plantobservation/stem/diameter,
11
x_position,/aggregateoccurrence/plantobservation/stem/xposition,"Brad: Correct for VegBank. I'm not so sure for VegX. Let's ask Nick about this. These are important, fundamental values of many tree plots, and should be accommodated within VegX."
12
y_position,/aggregateoccurrence/plantobservation/stem/yposition,Brad: See comment above for x_position
13 13
census_no,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=censusNo]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Assigned by SALVIAS. 1 for first plot, then 2, 3, etc. I can't recall if we even have repeat censuses in SALVIAS. Probably not."
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."
......
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,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."
31
PlotObsID,"/{aggregateoccurrence/plantobservation/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
224 224
  count int(11),
225 225
  accessioncode character varying(255),
226 226
  sourceaccessioncode character varying(100),
227
  individualplant_id int(11),
227
  plantobservation_id int(11),
228 228
  CONSTRAINT aggregateoccurrence_pkey PRIMARY KEY (aggregateoccurrence_id ),
229
  CONSTRAINT aggregateoccurrence_individualplant_id FOREIGN KEY (individualplant_id)
230
      REFERENCES individualplant (individualplant_id) MATCH SIMPLE
229
  CONSTRAINT aggregateoccurrence_plantobservation_id FOREIGN KEY (plantobservation_id)
230
      REFERENCES plantobservation (plantobservation_id) MATCH SIMPLE
231 231
      ON UPDATE CASCADE ON DELETE CASCADE,
232 232
  CONSTRAINT aggregateoccurrence_taxonbinmethod_id FOREIGN KEY (taxonbinmethod_id)
233 233
      REFERENCES taxonbinmethod (taxonbinmethod_id) MATCH SIMPLE
......
239 239
  CONSTRAINT aggregateoccurrence_keys_method UNIQUE (taxonoccurrence_id , taxonbinmethod_id )
240 240
);
241 241

  
242
CREATE TABLE individualplant -- VegBank's stemcount table.
242
CREATE TABLE plantobservation -- VegBank's stemcount table.
243 243
(
244
  individualplant_id int(11) NOT NULL AUTO_INCREMENT,
244
  plantobservation_id int(11) NOT NULL AUTO_INCREMENT,
245 245
  aggregateoccurrence_id int(11) NOT NULL,
246 246
  overallheight double precision,
247 247
  overallheightaccuracy double precision,
248
  emb_individualplant int(11),
248
  emb_plantobservation int(11),
249 249
  authorplantcode character varying(20),
250 250
  accessioncode character varying(255),
251 251
  stemcount int(11),
252 252
  sourceaccessioncode character varying(100),
253
  CONSTRAINT individualplant_pkey PRIMARY KEY (individualplant_id ),
254
  CONSTRAINT individualplant_aggregateoccurrence_id FOREIGN KEY (aggregateoccurrence_id)
253
  CONSTRAINT plantobservation_pkey PRIMARY KEY (plantobservation_id ),
254
  CONSTRAINT plantobservation_aggregateoccurrence_id FOREIGN KEY (aggregateoccurrence_id)
255 255
      REFERENCES aggregateoccurrence (aggregateoccurrence_id) MATCH SIMPLE
256 256
      ON UPDATE CASCADE ON DELETE CASCADE,
257
  CONSTRAINT individualplant_aggregateoccurrence_id_1_to_1 UNIQUE (aggregateoccurrence_id )
257
  CONSTRAINT plantobservation_aggregateoccurrence_id_1_to_1 UNIQUE (aggregateoccurrence_id )
258 258
);
259 259

  
260 260
CREATE TABLE stem -- VegBank's stemlocation table.
261 261
(
262 262
  stem_id int(11) NOT NULL AUTO_INCREMENT,
263
  individualplant_id int(11) NOT NULL,
263
  plantobservation_id int(11) NOT NULL,
264 264
  authorstemcode character varying(20),
265 265
  xposition double precision,
266 266
  yposition double precision,
......
274 274
  diameteraccuracy double precision,
275 275
  sourceaccessioncode character varying(100),
276 276
  CONSTRAINT stem_pkey PRIMARY KEY (stem_id ),
277
  CONSTRAINT stem_individualplant_id FOREIGN KEY (individualplant_id)
278
      REFERENCES individualplant (individualplant_id) MATCH SIMPLE
277
  CONSTRAINT stem_plantobservation_id FOREIGN KEY (plantobservation_id)
278
      REFERENCES plantobservation (plantobservation_id) MATCH SIMPLE
279 279
      ON UPDATE CASCADE ON DELETE CASCADE,
280
  CONSTRAINT stem_keys_accessioncode UNIQUE (individualplant_id , sourceaccessioncode ),
281
  CONSTRAINT stem_keys_code UNIQUE (individualplant_id , authorstemcode )
280
  CONSTRAINT stem_keys_accessioncode UNIQUE (plantobservation_id , sourceaccessioncode ),
281
  CONSTRAINT stem_keys_code UNIQUE (plantobservation_id , authorstemcode )
282 282
);
283 283

  
284 284
CREATE TABLE specimen -- A physical specimen collected from a plant. Used to link replicates of the same specimen together.
schemas/vegbien.for_wiki.sql
58 58
  count integer,
59 59
  accessioncode character varying(255),
60 60
  sourceaccessioncode character varying(100),
61
  individualplant_id integer,
61
  plantobservation_id integer,
62 62
);
63 63

  
64
CREATE TABLE individualplant -- VegBank's stemcount table.
64
CREATE TABLE plantobservation -- VegBank's stemcount table.
65 65
(
66
  individualplant_id serial NOT NULL,
66
  plantobservation_id serial NOT NULL,
67 67
  aggregateoccurrence_id integer NOT NULL,
68 68
  overallheight double precision,
69 69
  overallheightaccuracy double precision,
70
  emb_individualplant integer,
70
  emb_plantobservation integer,
71 71
  authorplantcode character varying(20),
72 72
  accessioncode character varying(255),
73 73
  stemcount integer,
......
77 77
CREATE TABLE stem -- VegBank's stemlocation table.
78 78
(
79 79
  stem_id serial NOT NULL,
80
  individualplant_id integer NOT NULL,
80
  plantobservation_id integer NOT NULL,
81 81
  authorstemcode character varying(20),
82 82
  xposition double precision,
83 83
  yposition double precision,
schemas/vegbien_empty.sql
27 27
TRUNCATE disturbanceobs CASCADE;
28 28
TRUNCATE embargo CASCADE;
29 29
TRUNCATE graphic CASCADE;
30
TRUNCATE individualplant CASCADE;
31 30
TRUNCATE keywords CASCADE;
32 31
TRUNCATE keywords_extra CASCADE;
33 32
TRUNCATE location CASCADE;
......
45 44
TRUNCATE plantcorrelation CASCADE;
46 45
TRUNCATE plantlineage CASCADE;
47 46
TRUNCATE plantname CASCADE;
47
TRUNCATE plantobservation CASCADE;
48 48
TRUNCATE plantstatus CASCADE;
49 49
TRUNCATE plantusage CASCADE;
50 50
TRUNCATE project CASCADE;
schemas/vegbien.for_ERD.sql
224 224
  count integer,
225 225
  accessioncode character varying(255),
226 226
  sourceaccessioncode character varying(100),
227
  individualplant_id integer,
227
  plantobservation_id integer,
228 228
  CONSTRAINT aggregateoccurrence_pkey PRIMARY KEY (aggregateoccurrence_id ),
229
  CONSTRAINT aggregateoccurrence_individualplant_id FOREIGN KEY (individualplant_id)
230
      REFERENCES individualplant (individualplant_id) MATCH SIMPLE
229
  CONSTRAINT aggregateoccurrence_plantobservation_id FOREIGN KEY (plantobservation_id)
230
      REFERENCES plantobservation (plantobservation_id) MATCH SIMPLE
231 231
      ON UPDATE CASCADE ON DELETE CASCADE,
232 232
  CONSTRAINT aggregateoccurrence_taxonbinmethod_id FOREIGN KEY (taxonbinmethod_id)
233 233
      REFERENCES taxonbinmethod (taxonbinmethod_id) MATCH SIMPLE
......
239 239
  CONSTRAINT aggregateoccurrence_keys_method UNIQUE (taxonoccurrence_id , taxonbinmethod_id )
240 240
);
241 241

  
242
CREATE TABLE individualplant -- VegBank's stemcount table.
242
CREATE TABLE plantobservation -- VegBank's stemcount table.
243 243
(
244
  individualplant_id serial NOT NULL,
244
  plantobservation_id serial NOT NULL,
245 245
  aggregateoccurrence_id integer NOT NULL,
246 246
  overallheight double precision,
247 247
  overallheightaccuracy double precision,
248
  emb_individualplant integer,
248
  emb_plantobservation integer,
249 249
  authorplantcode character varying(20),
250 250
  accessioncode character varying(255),
251 251
  stemcount integer,
252 252
  sourceaccessioncode character varying(100),
253
  CONSTRAINT individualplant_pkey PRIMARY KEY (individualplant_id ),
254
  CONSTRAINT individualplant_aggregateoccurrence_id FOREIGN KEY (aggregateoccurrence_id)
253
  CONSTRAINT plantobservation_pkey PRIMARY KEY (plantobservation_id ),
254
  CONSTRAINT plantobservation_aggregateoccurrence_id FOREIGN KEY (aggregateoccurrence_id)
255 255
      REFERENCES aggregateoccurrence (aggregateoccurrence_id) MATCH SIMPLE
256 256
      ON UPDATE CASCADE ON DELETE CASCADE,
257
  CONSTRAINT individualplant_aggregateoccurrence_id_1_to_1 UNIQUE (aggregateoccurrence_id )
257
  CONSTRAINT plantobservation_aggregateoccurrence_id_1_to_1 UNIQUE (aggregateoccurrence_id )
258 258
);
259 259

  
260 260
CREATE TABLE stem -- VegBank's stemlocation table.
261 261
(
262 262
  stem_id serial NOT NULL,
263
  individualplant_id integer NOT NULL,
263
  plantobservation_id integer NOT NULL,
264 264
  authorstemcode character varying(20),
265 265
  xposition double precision,
266 266
  yposition double precision,
......
274 274
  diameteraccuracy double precision,
275 275
  sourceaccessioncode character varying(100),
276 276
  CONSTRAINT stem_pkey PRIMARY KEY (stem_id ),
277
  CONSTRAINT stem_individualplant_id FOREIGN KEY (individualplant_id)
278
      REFERENCES individualplant (individualplant_id) MATCH SIMPLE
277
  CONSTRAINT stem_plantobservation_id FOREIGN KEY (plantobservation_id)
278
      REFERENCES plantobservation (plantobservation_id) MATCH SIMPLE
279 279
      ON UPDATE CASCADE ON DELETE CASCADE,
280
  CONSTRAINT stem_keys_accessioncode UNIQUE (individualplant_id , sourceaccessioncode ),
281
  CONSTRAINT stem_keys_code UNIQUE (individualplant_id , authorstemcode )
280
  CONSTRAINT stem_keys_accessioncode UNIQUE (plantobservation_id , sourceaccessioncode ),
281
  CONSTRAINT stem_keys_code UNIQUE (plantobservation_id , authorstemcode )
282 282
);
283 283

  
284 284
CREATE TABLE specimen -- A physical specimen collected from a plant. Used to link replicates of the same specimen together.
schemas/vegbien.sql
90 90
    count integer,
91 91
    accessioncode character varying(255),
92 92
    sourceaccessioncode character varying(100),
93
    individualplant_id integer
93
    plantobservation_id integer
94 94
);
95 95

  
96 96

  
......
1022 1022

  
1023 1023

  
1024 1024
--
1025
-- Name: individualplant; Type: TABLE; Schema: public; Owner: -; Tablespace: 
1026
--
1027

  
1028
CREATE TABLE individualplant (
1029
    individualplant_id integer NOT NULL,
1030
    aggregateoccurrence_id integer NOT NULL,
1031
    overallheight double precision,
1032
    overallheightaccuracy double precision,
1033
    emb_individualplant integer,
1034
    authorplantcode character varying(20),
1035
    accessioncode character varying(255),
1036
    stemcount integer,
1037
    sourceaccessioncode character varying(100)
1038
);
1039

  
1040

  
1041
--
1042
-- Name: TABLE individualplant; Type: COMMENT; Schema: public; Owner: -
1043
--
1044

  
1045
COMMENT ON TABLE individualplant IS 'VegBank''s stemcount table.';
1046

  
1047

  
1048
--
1049
-- Name: individualplant_individualplant_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1050
--
1051

  
1052
CREATE SEQUENCE individualplant_individualplant_id_seq
1053
    START WITH 1
1054
    INCREMENT BY 1
1055
    NO MINVALUE
1056
    NO MAXVALUE
1057
    CACHE 1;
1058

  
1059

  
1060
--
1061
-- Name: individualplant_individualplant_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1062
--
1063

  
1064
ALTER SEQUENCE individualplant_individualplant_id_seq OWNED BY individualplant.individualplant_id;
1065

  
1066

  
1067
--
1068 1025
-- Name: keywords; Type: TABLE; Schema: public; Owner: -; Tablespace: 
1069 1026
--
1070 1027

  
......
1734 1691

  
1735 1692

  
1736 1693
--
1694
-- Name: plantobservation; Type: TABLE; Schema: public; Owner: -; Tablespace: 
1695
--
1696

  
1697
CREATE TABLE plantobservation (
1698
    plantobservation_id integer NOT NULL,
1699
    aggregateoccurrence_id integer NOT NULL,
1700
    overallheight double precision,
1701
    overallheightaccuracy double precision,
1702
    emb_plantobservation integer,
1703
    authorplantcode character varying(20),
1704
    accessioncode character varying(255),
1705
    stemcount integer,
1706
    sourceaccessioncode character varying(100)
1707
);
1708

  
1709

  
1710
--
1711
-- Name: TABLE plantobservation; Type: COMMENT; Schema: public; Owner: -
1712
--
1713

  
1714
COMMENT ON TABLE plantobservation IS 'VegBank''s stemcount table.';
1715

  
1716

  
1717
--
1718
-- Name: plantobservation_plantobservation_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1719
--
1720

  
1721
CREATE SEQUENCE plantobservation_plantobservation_id_seq
1722
    START WITH 1
1723
    INCREMENT BY 1
1724
    NO MINVALUE
1725
    NO MAXVALUE
1726
    CACHE 1;
1727

  
1728

  
1729
--
1730
-- Name: plantobservation_plantobservation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1731
--
1732

  
1733
ALTER SEQUENCE plantobservation_plantobservation_id_seq OWNED BY plantobservation.plantobservation_id;
1734

  
1735

  
1736
--
1737 1737
-- Name: plantstatus; Type: TABLE; Schema: public; Owner: -; Tablespace: 
1738 1738
--
1739 1739

  
......
2362 2362

  
2363 2363
CREATE TABLE stem (
2364 2364
    stem_id integer NOT NULL,
2365
    individualplant_id integer NOT NULL,
2365
    plantobservation_id integer NOT NULL,
2366 2366
    authorstemcode character varying(20),
2367 2367
    xposition double precision,
2368 2368
    yposition double precision,
......
3437 3437

  
3438 3438

  
3439 3439
--
3440
-- Name: individualplant_id; Type: DEFAULT; Schema: public; Owner: -
3441
--
3442

  
3443
ALTER TABLE individualplant ALTER COLUMN individualplant_id SET DEFAULT nextval('individualplant_individualplant_id_seq'::regclass);
3444

  
3445

  
3446
--
3447 3440
-- Name: location_id; Type: DEFAULT; Schema: public; Owner: -
3448 3441
--
3449 3442

  
......
3549 3542

  
3550 3543

  
3551 3544
--
3545
-- Name: plantobservation_id; Type: DEFAULT; Schema: public; Owner: -
3546
--
3547

  
3548
ALTER TABLE plantobservation ALTER COLUMN plantobservation_id SET DEFAULT nextval('plantobservation_plantobservation_id_seq'::regclass);
3549

  
3550

  
3551
--
3552 3552
-- Name: plantstatus_id; Type: DEFAULT; Schema: public; Owner: -
3553 3553
--
3554 3554

  
......
4094 4094

  
4095 4095

  
4096 4096
--
4097
-- Name: individualplant_aggregateoccurrence_id_1_to_1; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4098
--
4099

  
4100
ALTER TABLE ONLY individualplant
4101
    ADD CONSTRAINT individualplant_aggregateoccurrence_id_1_to_1 UNIQUE (aggregateoccurrence_id);
4102

  
4103

  
4104
--
4105
-- Name: individualplant_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4106
--
4107

  
4108
ALTER TABLE ONLY individualplant
4109
    ADD CONSTRAINT individualplant_pkey PRIMARY KEY (individualplant_id);
4110

  
4111

  
4112
--
4113 4097
-- Name: location_keys_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4114 4098
--
4115 4099

  
......
4302 4286

  
4303 4287

  
4304 4288
--
4289
-- Name: plantobservation_aggregateoccurrence_id_1_to_1; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4290
--
4291

  
4292
ALTER TABLE ONLY plantobservation
4293
    ADD CONSTRAINT plantobservation_aggregateoccurrence_id_1_to_1 UNIQUE (aggregateoccurrence_id);
4294

  
4295

  
4296
--
4297
-- Name: plantobservation_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4298
--
4299

  
4300
ALTER TABLE ONLY plantobservation
4301
    ADD CONSTRAINT plantobservation_pkey PRIMARY KEY (plantobservation_id);
4302

  
4303

  
4304
--
4305 4305
-- Name: plantstatus_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
4306 4306
--
4307 4307

  
......
4482 4482
--
4483 4483

  
4484 4484
ALTER TABLE ONLY stem
4485
    ADD CONSTRAINT stem_keys_accessioncode UNIQUE (individualplant_id, sourceaccessioncode);
4485
    ADD CONSTRAINT stem_keys_accessioncode UNIQUE (plantobservation_id, sourceaccessioncode);
4486 4486

  
4487 4487

  
4488 4488
--
......
4490 4490
--
4491 4491

  
4492 4492
ALTER TABLE ONLY stem
4493
    ADD CONSTRAINT stem_keys_code UNIQUE (individualplant_id, authorstemcode);
4493
    ADD CONSTRAINT stem_keys_code UNIQUE (plantobservation_id, authorstemcode);
4494 4494

  
4495 4495

  
4496 4496
--
......
5017 5017

  
5018 5018

  
5019 5019
--
5020
-- Name: emb_individualplant_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5020
-- Name: emb_location_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5021 5021
--
5022 5022

  
5023
CREATE INDEX emb_individualplant_idx ON individualplant USING btree (emb_individualplant);
5023
CREATE INDEX emb_location_idx ON location USING btree (emb_location);
5024 5024

  
5025 5025

  
5026 5026
--
5027
-- Name: emb_location_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5027
-- Name: emb_locationevent_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5028 5028
--
5029 5029

  
5030
CREATE INDEX emb_location_idx ON location USING btree (emb_location);
5030
CREATE INDEX emb_locationevent_idx ON locationevent USING btree (emb_locationevent);
5031 5031

  
5032 5032

  
5033 5033
--
5034
-- Name: emb_locationevent_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5034
-- Name: emb_plantobservation_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5035 5035
--
5036 5036

  
5037
CREATE INDEX emb_locationevent_idx ON locationevent USING btree (emb_locationevent);
5037
CREATE INDEX emb_plantobservation_idx ON plantobservation USING btree (emb_plantobservation);
5038 5038

  
5039 5039

  
5040 5040
--
......
5080 5080

  
5081 5081

  
5082 5082
--
5083
-- Name: fki_aggregateoccurrence_individualplant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5083
-- Name: fki_aggregateoccurrence_plantobservation_id; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5084 5084
--
5085 5085

  
5086
CREATE INDEX fki_aggregateoccurrence_individualplant_id ON aggregateoccurrence USING btree (individualplant_id);
5086
CREATE INDEX fki_aggregateoccurrence_plantobservation_id ON aggregateoccurrence USING btree (plantobservation_id);
5087 5087

  
5088 5088

  
5089 5089
--
......
5143 5143

  
5144 5144

  
5145 5145
--
5146
-- Name: individualplant_aggregateoccurrence_id_x; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5147
--
5148

  
5149
CREATE INDEX individualplant_aggregateoccurrence_id_x ON individualplant USING btree (aggregateoccurrence_id);
5150

  
5151

  
5152
--
5153 5146
-- Name: keywords_table_id_entity_key; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5154 5147
--
5155 5148

  
......
5451 5444

  
5452 5445

  
5453 5446
--
5447
-- Name: plantobservation_aggregateoccurrence_id_x; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5448
--
5449

  
5450
CREATE INDEX plantobservation_aggregateoccurrence_id_x ON plantobservation USING btree (aggregateoccurrence_id);
5451

  
5452

  
5453
--
5454 5454
-- Name: plantstatus_accessioncode_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5455 5455
--
5456 5456

  
......
5654 5654

  
5655 5655

  
5656 5656
--
5657
-- Name: stem_individualplant_id_x; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5657
-- Name: stem_plantobservation_id_x; Type: INDEX; Schema: public; Owner: -; Tablespace: 
5658 5658
--
5659 5659

  
5660
CREATE INDEX stem_individualplant_id_x ON stem USING btree (individualplant_id);
5660
CREATE INDEX stem_plantobservation_id_x ON stem USING btree (plantobservation_id);
5661 5661

  
5662 5662

  
5663 5663
--
......
5936 5936

  
5937 5937

  
5938 5938
--
5939
-- Name: aggregateoccurrence_individualplant_id; Type: FK CONSTRAINT; Schema: public; Owner: -
5939
-- Name: aggregateoccurrence_plantobservation_id; Type: FK CONSTRAINT; Schema: public; Owner: -
5940 5940
--
5941 5941

  
5942 5942
ALTER TABLE ONLY aggregateoccurrence
5943
    ADD CONSTRAINT aggregateoccurrence_individualplant_id FOREIGN KEY (individualplant_id) REFERENCES individualplant(individualplant_id) ON UPDATE CASCADE ON DELETE CASCADE;
5943
    ADD CONSTRAINT aggregateoccurrence_plantobservation_id FOREIGN KEY (plantobservation_id) REFERENCES plantobservation(plantobservation_id) ON UPDATE CASCADE ON DELETE CASCADE;
5944 5944

  
5945 5945

  
5946 5946
--
......
6192 6192

  
6193 6193

  
6194 6194
--
6195
-- Name: individualplant_aggregateoccurrence_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6196
--
6197

  
6198
ALTER TABLE ONLY individualplant
6199
    ADD CONSTRAINT individualplant_aggregateoccurrence_id FOREIGN KEY (aggregateoccurrence_id) REFERENCES aggregateoccurrence(aggregateoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;
6200

  
6201

  
6202
--
6203 6195
-- Name: location_namedplace_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6204 6196
--
6205 6197

  
......
6480 6472

  
6481 6473

  
6482 6474
--
6475
-- Name: plantobservation_aggregateoccurrence_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6476
--
6477

  
6478
ALTER TABLE ONLY plantobservation
6479
    ADD CONSTRAINT plantobservation_aggregateoccurrence_id FOREIGN KEY (aggregateoccurrence_id) REFERENCES aggregateoccurrence(aggregateoccurrence_id) ON UPDATE CASCADE ON DELETE CASCADE;
6480

  
6481

  
6482
--
6483 6483
-- Name: plantstatus_party_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6484 6484
--
6485 6485

  
......
6664 6664

  
6665 6665

  
6666 6666
--
6667
-- Name: stem_individualplant_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6667
-- Name: stem_plantobservation_id; Type: FK CONSTRAINT; Schema: public; Owner: -
6668 6668
--
6669 6669

  
6670 6670
ALTER TABLE ONLY stem
6671
    ADD CONSTRAINT stem_individualplant_id FOREIGN KEY (individualplant_id) REFERENCES individualplant(individualplant_id) ON UPDATE CASCADE ON DELETE CASCADE;
6671
    ADD CONSTRAINT stem_plantobservation_id FOREIGN KEY (plantobservation_id) REFERENCES plantobservation(plantobservation_id) ON UPDATE CASCADE ON DELETE CASCADE;
6672 6672

  
6673 6673

  
6674 6674
--
mappings/SALVIAS_db-VegBIEN.organisms.csv
3 3
NoInd,/aggregateoccurrence/count,"Brad: Incorrect for VegX. This is a count of number of indiiduals for an *aggregate* observation. For VegBank, I'm not sure. Not exactly the same as stemCount. An individual tree could have 3 stems but would still only count as 1. We need to check with Bob on this."
4 4
cover_percent,/aggregateoccurrence/cover,
5 5
intercept_cm,"/aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect for VegBank This is an aggregate observation. Used in line-intercept methodology only, describes the point along centerline at which an individual intercepts the center line of the plot. Used to determin relative abundance."
6
height_m,/aggregateoccurrence/individualplant/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
7
tag2,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
8
tag1,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
9
ht_first_branch_m,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
10
temp_dbh,/aggregateoccurrence/individualplant/stem/diameter,
11
x_position,/aggregateoccurrence/individualplant/stem/xposition,"Brad: Correct for VegBank. I'm not so sure for VegX. Let's ask Nick about this. These are important, fundamental values of many tree plots, and should be accommodated within VegX."
12
y_position,/aggregateoccurrence/individualplant/stem/yposition,Brad: See comment above for x_position
6
height_m,/aggregateoccurrence/plantobservation/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
7
tag2,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
8
tag1,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
9
ht_first_branch_m,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
10
temp_dbh,/aggregateoccurrence/plantobservation/stem/diameter,
11
x_position,/aggregateoccurrence/plantobservation/stem/xposition,"Brad: Correct for VegBank. I'm not so sure for VegX. Let's ask Nick about this. These are important, fundamental values of many tree plots, and should be accommodated within VegX."
12
y_position,/aggregateoccurrence/plantobservation/stem/yposition,Brad: See comment above for x_position
13 13
census_no,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=censusNo]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Assigned by SALVIAS. 1 for first plot, then 2, 3, etc. I can't recall if we even have repeat censuses in SALVIAS. Probably not."
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."
......
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,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."
31
PlotObsID,"/{aggregateoccurrence/plantobservation/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
53 53
/simpleUserdefined[name=count]/value,/aggregateoccurrence/count
54 54
/simpleUserdefined[name=coverPercent]/value,/aggregateoccurrence/cover
55 55
/simpleUserdefined[name=interceptCm]/value,"/aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]:[@fkey=tableRecord_ID]/definedvalue"
56
/height,/aggregateoccurrence/individualplant/overallheight
57
/simpleUserdefined[name=stemHeightM]/value,/aggregateoccurrence/individualplant/overallheight
58
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/relatedItem[relationshipType=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,/aggregateoccurrence/individualplant/stem/*_id/individualplant/authorplantcode
59
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=count]/value,/aggregateoccurrence/individualplant/stem/*_id/individualplant/stemcount
60
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/identificationLabel,/aggregateoccurrence/individualplant/stem/authorstemcode
61
/*ID->/*s/individualOrganism/identificationLabel,/aggregateoccurrence/individualplant/stem/authorstemcode
62
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/identificationLabel/_alt/1,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/1
63
/*ID->/*s/individualOrganism/identificationLabel/_alt/1,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/1
64
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/identificationLabel/_alt/2,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/2
65
/*ID->/*s/individualOrganism/identificationLabel/_alt/2,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/2
66
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/diameterBaseDistance[baseDistance/value=0]/diameter,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue"
67
/diameterBaseDistance[baseDistance/value=0]/diameter,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue"
68
/simpleUserdefined[name=stemCanopyForm]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyForm]]:[@fkey=tableRecord_ID]/definedvalue"
69
/simpleUserdefined[name=stemCanopyPosition]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyPosition]]:[@fkey=tableRecord_ID]/definedvalue"
70
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/diameterBaseDistance[baseDistance[complexUserDefined/method=Gentry]/value=1.37]/diameter,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=gentryDiameter]]:[@fkey=tableRecord_ID]/definedvalue"
71
/simpleUserdefined[name=habitat]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=habitat]]:[@fkey=tableRecord_ID]/definedvalue"
72
/simpleUserdefined[name=htFirstBranchM]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue"
73
/simpleUserdefined[name=stemHeightFirstBranchM]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue"
74
/simpleUserdefined[name=stemLianaInfestation]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=lianaInfestation]]:[@fkey=tableRecord_ID]/definedvalue"
75
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/note/text,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=notes]]:[@fkey=tableRecord_ID]/definedvalue"
76
/simpleUserdefined[name=plantFungusDescription]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=plantFungusDescription]]:[@fkey=tableRecord_ID]/definedvalue"
77
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemCanopyForm]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemCanopyForm]]:[@fkey=tableRecord_ID]/definedvalue"
78
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemCanopyPosition]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemCanopyPosition]]:[@fkey=tableRecord_ID]/definedvalue"
79
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemHeightFirstBranchM]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemHeightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue"
80
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemLianaInfestation]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemLianaInfestation]]:[@fkey=tableRecord_ID]/definedvalue"
81
/simpleUserdefined[name=substrate]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=substrate]]:[@fkey=tableRecord_ID]/definedvalue"
82
/simpleUserdefined[name=vegetation]/value,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=vegetation]]:[@fkey=tableRecord_ID]/definedvalue"
83
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/diameterBaseDistance[baseDistance[!complexUserDefined/method]/value=1.37]/diameter,/aggregateoccurrence/individualplant/stem/diameter
84
/diameterBaseDistance[baseDistance/value=1.37]/diameter,/aggregateoccurrence/individualplant/stem/diameter
85
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemHeightM]/value,/aggregateoccurrence/individualplant/stem/height
86
/simpleUserdefined[name=xPosition]/value,/aggregateoccurrence/individualplant/stem/xposition
87
/simpleUserdefined[name=yPosition]/value,/aggregateoccurrence/individualplant/stem/yposition
56
/height,/aggregateoccurrence/plantobservation/overallheight
57
/simpleUserdefined[name=stemHeightM]/value,/aggregateoccurrence/plantobservation/overallheight
58
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/relatedItem[relationshipType=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,/aggregateoccurrence/plantobservation/stem/*_id/plantobservation/authorplantcode
59
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=count]/value,/aggregateoccurrence/plantobservation/stem/*_id/plantobservation/stemcount
60
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/identificationLabel,/aggregateoccurrence/plantobservation/stem/authorstemcode
61
/*ID->/*s/individualOrganism/identificationLabel,/aggregateoccurrence/plantobservation/stem/authorstemcode
62
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/identificationLabel/_alt/1,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/1
63
/*ID->/*s/individualOrganism/identificationLabel/_alt/1,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/1
64
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/identificationLabel/_alt/2,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/2
65
/*ID->/*s/individualOrganism/identificationLabel/_alt/2,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/2
66
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/diameterBaseDistance[baseDistance/value=0]/diameter,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue"
67
/diameterBaseDistance[baseDistance/value=0]/diameter,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue"
68
/simpleUserdefined[name=stemCanopyForm]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyForm]]:[@fkey=tableRecord_ID]/definedvalue"
69
/simpleUserdefined[name=stemCanopyPosition]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyPosition]]:[@fkey=tableRecord_ID]/definedvalue"
70
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/diameterBaseDistance[baseDistance[complexUserDefined/method=Gentry]/value=1.37]/diameter,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=gentryDiameter]]:[@fkey=tableRecord_ID]/definedvalue"
71
/simpleUserdefined[name=habitat]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=habitat]]:[@fkey=tableRecord_ID]/definedvalue"
72
/simpleUserdefined[name=htFirstBranchM]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue"
73
/simpleUserdefined[name=stemHeightFirstBranchM]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue"
74
/simpleUserdefined[name=stemLianaInfestation]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=lianaInfestation]]:[@fkey=tableRecord_ID]/definedvalue"
75
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/note/text,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=notes]]:[@fkey=tableRecord_ID]/definedvalue"
76
/simpleUserdefined[name=plantFungusDescription]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=plantFungusDescription]]:[@fkey=tableRecord_ID]/definedvalue"
77
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemCanopyForm]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemCanopyForm]]:[@fkey=tableRecord_ID]/definedvalue"
78
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemCanopyPosition]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemCanopyPosition]]:[@fkey=tableRecord_ID]/definedvalue"
79
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemHeightFirstBranchM]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemHeightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue"
80
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemLianaInfestation]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=stemLianaInfestation]]:[@fkey=tableRecord_ID]/definedvalue"
81
/simpleUserdefined[name=substrate]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=substrate]]:[@fkey=tableRecord_ID]/definedvalue"
82
/simpleUserdefined[name=vegetation]/value,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=vegetation]]:[@fkey=tableRecord_ID]/definedvalue"
83
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/diameterBaseDistance[baseDistance[!complexUserDefined/method]/value=1.37]/diameter,/aggregateoccurrence/plantobservation/stem/diameter
84
/diameterBaseDistance[baseDistance/value=1.37]/diameter,/aggregateoccurrence/plantobservation/stem/diameter
85
->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=stemHeightM]/value,/aggregateoccurrence/plantobservation/stem/height
86
/simpleUserdefined[name=xPosition]/value,/aggregateoccurrence/plantobservation/stem/xposition
87
/simpleUserdefined[name=yPosition]/value,/aggregateoccurrence/plantobservation/stem/yposition
88 88
/simpleUserdefined[name=censusNo]/value,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=censusNo]]:[@fkey=tableRecord_ID]/definedvalue"
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"
......
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,specimenreplicate:[*_id/reference]/sourceaccessioncode}"
127
/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,"/{aggregateoccurrence/plantobservation/authorplantcode,specimenreplicate:[*_id/reference]/sourceaccessioncode}"
mappings/for_review/SALVIAS_db-VegBIEN.organisms.csv
3 3
NoInd,//aggregateoccurrence/count,"Brad: Incorrect for VegX. This is a count of number of indiiduals for an *aggregate* observation. For VegBank, I'm not sure. Not exactly the same as stemCount. An individual tree could have 3 stems but would still only count as 1. We need to check with Bob on this."
4 4
cover_percent,//aggregateoccurrence/cover,
5 5
intercept_cm,"//aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]/definedvalue","Brad: Incorrect for VegBank This is an aggregate observation. Used in line-intercept methodology only, describes the point along centerline at which an individual intercepts the center line of the plot. Used to determin relative abundance."
6
height_m,//individualplant/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
6
height_m,//plantobservation/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
7 7
tag2,//stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
8 8
tag1,//stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
9 9
ht_first_branch_m,"//stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
......
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,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."
31
PlotObsID,"/{aggregateoccurrence/plantobservation/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
53 53
/simpleUserdefined[name=count]/value,//aggregateoccurrence/count
54 54
/simpleUserdefined[name=coverPercent]/value,//aggregateoccurrence/cover
55 55
/simpleUserdefined[name=interceptCm]/value,"//aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]/definedvalue"
56
/height,//individualplant/overallheight
57
/simpleUserdefined[name=stemHeightM]/value,//individualplant/overallheight
58
//taxonNameUsageConcept/voucher,//individualplant/authorplantcode
59
//*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=count]/value,//individualplant/stemcount
56
/height,//plantobservation/overallheight
57
/simpleUserdefined[name=stemHeightM]/value,//plantobservation/overallheight
58
//taxonNameUsageConcept/voucher,//plantobservation/authorplantcode
59
//*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]/simpleUserdefined[name=count]/value,//plantobservation/stemcount
60 60
//individualOrganism/identificationLabel,//stem/authorstemcode
61 61
//individualOrganism/identificationLabel,//stem/authorstemcode
62 62
//individualOrganism/identificationLabel/_alt/1,//stem/authorstemcode/_alt/1
......
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,specimenreplicate/sourceaccessioncode}"
127
//taxonNameUsageConcept/voucher,"/{aggregateoccurrence/plantobservation/authorplantcode,specimenreplicate/sourceaccessioncode}"
mappings/for_review/NYBG-VegBIEN.organisms.csv
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,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"
42
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/plantobservation/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
5 5
no_of_individuals,//aggregateoccurrence/count,"Brad: Incorrect for VegX. This is a count of number of indiiduals for an *aggregate* observation. For VegBank, I'm not sure. Not exactly the same as stemCount. An individual tree could have 3 stems but would still only count as 1. We need to check with Bob on this."
6 6
cover_percent,//aggregateoccurrence/cover,
7 7
intercept_cm,"//aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]/definedvalue","Brad: Incorrect for VegBank This is an aggregate observation. Used in line-intercept methodology only, describes the point along centerline at which an individual intercepts the center line of the plot. Used to determin relative abundance."
8
height_m,//individualplant/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
9
stem_height_m,//individualplant/overallheight,"Brad: Same as for height, but applies to individuals stems, not trees. Rare."
8
height_m,//plantobservation/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
9
stem_height_m,//plantobservation/overallheight,"Brad: Same as for height, but applies to individuals stems, not trees. Rare."
10 10
stem_tag1,//stem/authorstemcode,"Brad: Same as tag1 & tag2, but applied to individual stems. I'm still not clear how to distinguish between methods which tag only individuals trees, and those which tag individual stems."
11 11
stem_tag2,//stem/authorstemcode,Brad: see above
12 12
tag2,//stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
......
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,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."
40
OBSERVATION_ID,"/{aggregateoccurrence/plantobservation/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
14 14
YearCollected,/*_id/locationevent/obsstartdate/_date/year,
15 15
MaximumDepth,/*_id/locationevent/waterdepth/max,
16 16
MinimumDepth,/*_id/locationevent/waterdepth/min,
17
Habitat,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=habitat]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Vegetation'. Bob, Nick: keep as user defined or create special element?"
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
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
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?"
17
Habitat,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=habitat]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Vegetation'. Bob, Nick: keep as user defined or create special element?"
18
PlantFungusDescription,"/aggregateoccurrence/plantobservation/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
Substrate,"/aggregateoccurrence/plantobservation/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
Vegetation,"/aggregateoccurrence/plantobservation/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 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 22
CollectorNumber,/specimenreplicate:[*_id/reference]/collectornumber_dwc,"Brad: OMIT; db-specific element, not relevant to VB/VX"
23 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?
......
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,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"
42
UniqueNYInternalRecordNumber,"/{aggregateoccurrence/plantobservation/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/VegX-VegBIEN.stems.csv
1 1
VegX:/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID],VegBIEN:/stem
2
/relatedItem[relationshipType=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,/*_id/individualplant/authorplantcode
3
/simpleUserdefined[name=count]/value,/*_id/individualplant/stemcount
2
/relatedItem[relationshipType=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/individualOrganism/*sID->/*s/taxonNameUsageConcept/voucher,/*_id/plantobservation/authorplantcode
3
/simpleUserdefined[name=count]/value,/*_id/plantobservation/stemcount
4 4
/*ID->/*s/individualOrganism/identificationLabel,/authorstemcode
5 5
/*ID->/*s/individualOrganism/identificationLabel/_alt/1,/authorstemcode/_alt/1
6 6
/*ID->/*s/individualOrganism/identificationLabel/_alt/2,/authorstemcode/_alt/2
mappings/SALVIAS-VegBIEN.organisms.csv
5 5
no_of_individuals,/aggregateoccurrence/count,"Brad: Incorrect for VegX. This is a count of number of indiiduals for an *aggregate* observation. For VegBank, I'm not sure. Not exactly the same as stemCount. An individual tree could have 3 stems but would still only count as 1. We need to check with Bob on this."
6 6
cover_percent,/aggregateoccurrence/cover,
7 7
intercept_cm,"/aggregateoccurrence/definedvalue[*_id/userdefined[tablename=aggregateoccurrence,userdefinedname=interceptCm]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Incorrect for VegBank This is an aggregate observation. Used in line-intercept methodology only, describes the point along centerline at which an individual intercepts the center line of the plot. Used to determin relative abundance."
8
height_m,/aggregateoccurrence/individualplant/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
9
stem_height_m,/aggregateoccurrence/individualplant/overallheight,"Brad: Same as for height, but applies to individuals stems, not trees. Rare."
10
stem_tag1,/aggregateoccurrence/individualplant/stem/authorstemcode,"Brad: Same as tag1 & tag2, but applied to individual stems. I'm still not clear how to distinguish between methods which tag only individuals trees, and those which tag individual stems."
11
stem_tag2,/aggregateoccurrence/individualplant/stem/authorstemcode,Brad: see above
12
tag2,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
13
tag1,/aggregateoccurrence/individualplant/stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
14
basal_diam,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue",
15
stem_canopy_form,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyForm]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Should also be userDefined for VegBank. 
16
stem_canopy_position,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyPosition]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Should also be userDefined for VegBank. 
17
ht_first_branch_m,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
18
stem_height_first_branch_m,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Should also be userDefined for VegBank. Same as for ht_first_branch_m, but applies to individuals stems, not trees. Rare."
19
stem_liana_infestation,"/aggregateoccurrence/individualplant/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=lianaInfestation]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Should also be userDefined for VegBank. 
20
stem_dbh,/aggregateoccurrence/individualplant/stem/diameter,
21
x_position,/aggregateoccurrence/individualplant/stem/xposition,"Brad: Correct for VegBank. I'm not so sure for VegX. Let's ask Nick about this. These are important, fundamental values of many tree plots, and should be accommodated within VegX."
22
y_position,/aggregateoccurrence/individualplant/stem/yposition,Brad: See comment above for x_position
8
height_m,/aggregateoccurrence/plantobservation/overallheight,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
9
stem_height_m,/aggregateoccurrence/plantobservation/overallheight,"Brad: Same as for height, but applies to individuals stems, not trees. Rare."
10
stem_tag1,/aggregateoccurrence/plantobservation/stem/authorstemcode,"Brad: Same as tag1 & tag2, but applied to individual stems. I'm still not clear how to distinguish between methods which tag only individuals trees, and those which tag individual stems."
11
stem_tag2,/aggregateoccurrence/plantobservation/stem/authorstemcode,Brad: see above
12
tag2,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/1,"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
13
tag1,/aggregateoccurrence/plantobservation/stem/authorstemcode/_alt/2,"Brad: Another type of code, typically a number, used by the original data provider to indicate an individual tree. These are numbers on physical tags attached to the tree. Tag2 Is the same thing, only used if the first tag was lost. Obviously not a good system as it's possible a tree tag could be lost and changed more than once."
14
basal_diam,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=basalDiameter]]:[@fkey=tableRecord_ID]/definedvalue",
15
stem_canopy_form,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyForm]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Should also be userDefined for VegBank. 
16
stem_canopy_position,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=canopyPosition]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Should also be userDefined for VegBank. 
17
ht_first_branch_m,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
18
stem_height_first_branch_m,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=heightFirstBranchM]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Should also be userDefined for VegBank. Same as for ht_first_branch_m, but applies to individuals stems, not trees. Rare."
19
stem_liana_infestation,"/aggregateoccurrence/plantobservation/stem/definedvalue[*_id/userdefined[tablename=stem,userdefinedname=lianaInfestation]]:[@fkey=tableRecord_ID]/definedvalue",Brad: Should also be userDefined for VegBank. 
20
stem_dbh,/aggregateoccurrence/plantobservation/stem/diameter,
21
x_position,/aggregateoccurrence/plantobservation/stem/xposition,"Brad: Correct for VegBank. I'm not so sure for VegX. Let's ask Nick about this. These are important, fundamental values of many tree plots, and should be accommodated within VegX."
22
y_position,/aggregateoccurrence/plantobservation/stem/yposition,Brad: See comment above for x_position
23 23
census_no,"/definedvalue[*_id/userdefined[tablename=taxonoccurrence,userdefinedname=censusNo]]:[@fkey=tableRecord_ID]/definedvalue","Brad: Assigned by SALVIAS. 1 for first plot, then 2, 3, etc. I can't recall if we even have repeat censuses in SALVIAS. Probably not."
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."
......
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,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."
40
OBSERVATION_ID,"/{aggregateoccurrence/plantobservation/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/Makefile
44 44
	env \
45 45
left_in_root='/*s/individualOrganismObservation->/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]' \
46 46
left_out_root='/*s/individualOrganismObservation[relatedItem[relationshipType=stemParent]/relatedItemID]' \
47
right_in_root='/taxonoccurrence/aggregateoccurrence/individualplant/stem' \
47
right_in_root='/taxonoccurrence/aggregateoccurrence/plantobservation/stem' \
48 48
right_out_root='/stem' \
49 49
$(chRoot)

Also available in: Unified diff