Project

General

Profile

« Previous | Next » 

Revision 4832

mappings/VegCore-VegBIEN.csv: Mapped tag to taxonoccurrence.authortaxoncode when the record is an organism, in case there is no other ID for the taxonoccurrence. This fixes a bug in FIA and TEAM data where all organisms in a plot used the same taxonoccurrence because taxonoccurrence was not properly constrained, causing the loss of individual taxondeterminations on each organism.

View differences:

mappings/VegCore-VegBIEN.csv
103 103
tag,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag,
104 104
organismX,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,
105 105
organismY,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,
106
recordNumber,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1,
106
recordNumber,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/1,
107
locationID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
108
plotName,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
109
tag,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
107 110
verbatimScientificName,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/2/_alt/1,
108 111
scientificNameWithAuthorship,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/2/_alt/2,
109 112
scientificName,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/2/_alt/3,
inputs/TEAM/VL/VegBIEN.csv
17 17
TreeNumber,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag,
18 18
X_1haPlot,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,
19 19
Y_1haPlot,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,
20
1haPlotCode,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
21
TreeNumber,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
20 22
Family,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/family,
21 23
Genus,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/genus,
22 24
SpecificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/species,
inputs/TEAM/VL/test.xml.ref
39 39
                                </stemobservation>
40 40
                            </plantobservation>
41 41
                        </aggregateoccurrence>
42
                        <authortaxoncode>$TreeNumber</authortaxoncode>
42 43
                        <taxondetermination>
43 44
                            <taxonpath_id>
44 45
                                <taxonpath>
......
55 56
        </path>
56 57
    </_simplifyPath>
57 58
</VegBIEN>
58
Inserted 16 new rows into database
59
Inserted 20 new rows into database
inputs/TEAM/VT/VegBIEN.csv
17 17
TreeNumber,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag,
18 18
X_1haPlot,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,
19 19
Y_1haPlot,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,
20
1haPlotCode,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
21
TreeNumber,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
20 22
Family,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/family,
21 23
Genus,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/genus,
22 24
SpecificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/species,
inputs/TEAM/VT/test.xml.ref
39 39
                                </stemobservation>
40 40
                            </plantobservation>
41 41
                        </aggregateoccurrence>
42
                        <authortaxoncode>$TreeNumber</authortaxoncode>
42 43
                        <taxondetermination>
43 44
                            <taxonpath_id>
44 45
                                <taxonpath>
......
55 56
        </path>
56 57
    </_simplifyPath>
57 58
</VegBIEN>
58
Inserted 16 new rows into database
59
Inserted 20 new rows into database
inputs/Madidi/Organism/VegBIEN.csv
21 21
Tag number,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag,
22 22
Subplot X,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,
23 23
Subplot Y,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,
24
Tree number,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1,
24
Tree number,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/1,
25
Inventory code,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
26
Inventory name,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
27
Tag number,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
25 28
Specie+autor,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/2/_alt/2,
26 29
Species and morphotypes,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/2/_alt/3,"Contains less than ""Specie+autor"""
27 30
Habit,"/location/locationevent/taxonoccurrence/growthform/_map:[./{T,Arbol,palm}=tree,./{H,""Hemiepífito""}=hemiepiphyte,./{L,l,""L?"",Liana}=liana,E=epiphyte,S=shrub,Hb=herb,""vine-herbaceous""=vine,graminoid=grass,rosette=forb,*=*]/value","According to <http://salvias.net/Documents/salvias_data_dictionary.html#Plot+data.habit>, <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/SALVIAS#Habit>"
inputs/Madidi/Organism/test.xml.ref
40 40
                        </aggregateoccurrence>
41 41
                        <authortaxoncode>
42 42
                            <_alt>
43
                                <1>$Tree number</1>
43
                                <1>
44
                                    <_alt>
45
                                        <1>$Tree number</1>
46
                                        <2>$Tag number</2>
47
                                    </_alt>
48
                                </1>
44 49
                                <2>
45 50
                                    <_alt>
46 51
                                        <2>$Specie+autor</2>
inputs/Madidi/Plot/VegBIEN.csv
85 85
Limo (DIN 18 123–%–1),/location/locationevent/soilobs/silt_fraction,
86 86
"Sodio intercambiable (WSP S-5,10–cmolc/Kg–0.00083)",/location/locationevent/soilobs/sodium_fraction,
87 87
Textural class,/location/locationevent/soilobs/texture,
88
Inventory code,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
89
Inventory name,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
88 90
Locality,/location/locationnarrative/_merge/1,
89 91
Observaciones,/location/notespublic,
90 92
Direction,/location/slopeaspect_deg/_alt/1/_compass/value/_alt/1,Part files provide either this field or Orientación
inputs/SALVIAS-CSV/Organism/VegBIEN.csv
53 53
tag1,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag/_alt/2/_alt/2,"The second tag supercedes the first. The stem tag supercedes the tree tag. 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."
54 54
x_position,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,"Brad: These are important, fundamental values of many tree plots"
55 55
y_position,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,Brad: See comment above for x_position
56
individual_code,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1,"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."
56
individual_code,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/1,"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."
57
PLOT_ID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
58
plot_code,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
59
stem_tag2,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/1/_alt/1",The second tag supercedes the first. The stem tag supercedes the tree tag. Brad: see above
60
stem_tag1,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/1/_alt/2","The second tag supercedes the first. The stem tag supercedes the tree tag. 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."
61
tag2,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/2/_alt/1","The second tag supercedes the first. The stem tag supercedes the tree tag. Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
62
tag1,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/2/_alt/2","The second tag supercedes the first. The stem tag supercedes the tree tag. 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."
57 63
habit,"/location/locationevent/taxonoccurrence/growthform/_map:[./{T,Arbol,palm}=tree,./{H,""Hemiepífito""}=hemiepiphyte,./{L,l,""L?"",Liana}=liana,E=epiphyte,S=shrub,Hb=herb,""vine-herbaceous""=vine,graminoid=grass,rosette=forb,*=*]/value","Brad: This is growth form (tree, shrub, herb, etc.). It is an observation of a trait.; According to <http://salvias.net/Documents/salvias_data_dictionary.html#Plot+data.habit>, <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/SALVIAS#Habit>"
58 64
OBSERVATION_ID,/location/locationevent/taxonoccurrence/sourceaccessioncode/_first/2,"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."
59 65
family,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/family,
inputs/SALVIAS-CSV/Organism/test.xml.ref
121 121
                                </stemobservation>
122 122
                            </plantobservation>
123 123
                        </aggregateoccurrence>
124
                        <authortaxoncode>$individual_code</authortaxoncode>
124
                        <authortaxoncode>
125
                            <_alt>
126
                                <1>$individual_code</1>
127
                                <2>
128
                                    <_alt>
129
                                        <1>
130
                                            <_alt>
131
                                                <1>$stem_tag2</1>
132
                                                <2>$stem_tag1</2>
133
                                            </_alt>
134
                                        </1>
135
                                        <2>
136
                                            <_alt>
137
                                                <1>$tag2</1>
138
                                                <2>$tag1</2>
139
                                            </_alt>
140
                                        </2>
141
                                    </_alt>
142
                                </2>
143
                            </_alt>
144
                        </authortaxoncode>
125 145
                        <growthform>
126 146
                            <_map>
127 147
                                <T>tree</T>
inputs/SALVIAS-CSV/Plot/VegBIEN.csv
36 36
silt_percent,"/location/locationevent/soilobs/silt_fraction/_units:[default=""%"",to=]/value",
37 37
soil_Na,"/location/locationevent/soilobs/sodium_fraction/_units:[default=""%"",to=]/value",
38 38
soil_texture,/location/locationevent/soilobs/texture,
39
PLOT_ID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists","Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
40
plot_code,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
39 41
temp_c,/location/locationevent/temperature_c,
40 42
locality_description,/location/locationnarrative/_merge/1,"Brad: No; this is free text description of locality where plot was situated, same as for DwC. Not a description of vegetation. Most likely='namedPlace.placeDescription' in VB; not sure about VX, again need to ask Nick where locality descriptions live in VX"
41 43
major_geo,/location/locationplace/*_id/placepath/continent,
inputs/CTFS/StemObservation/VegBIEN.csv
16 16
Tag,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag,
17 17
x,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,
18 18
y,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,
19
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
20
StemTag,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
21
Tag,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
19 22
MeasureID,/location/locationevent/taxonoccurrence/sourceaccessioncode/_first/2,
20 23
Family,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/family,
21 24
Genus,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/genus,
inputs/CTFS/StemObservation/test.xml.ref
31 31
                                </stemobservation>
32 32
                            </plantobservation>
33 33
                        </aggregateoccurrence>
34
                        <authortaxoncode>
35
                            <_alt>
36
                                <0>$StemTag</0>
37
                                <1>$Tag</1>
38
                            </_alt>
39
                        </authortaxoncode>
34 40
                        <sourceaccessioncode>$MeasureID</sourceaccessioncode>
35 41
                        <taxondetermination>
36 42
                            <taxonpath_id>
inputs/CTFS/Subplot/VegBIEN.csv
6 6
QuadratID,/location/authorlocationcode,Not globally unique; unique only within Site
7 7
QuadratID,"/location/locationevent/_if[@name=""if subplot""]/cond/_exists/_first/2",Not globally unique; unique only within Site
8 8
PlotID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode",
9
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
9 10
StartX,/location/sublocationxposition_m,
10 11
StartY,/location/sublocationyposition_m,
11 12
DimX,,** No join mapping for DimX ** 
inputs/CTFS/PlotObservation/VegBIEN.csv
12 12
CensusID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/sourceaccessioncode",
13 13
EndDate,/location/locationevent/obsenddate/_*/date/_alt/1,
14 14
StartDate,/location/locationevent/obsstartdate/_*/date/_alt/1,
15
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
15 16
Description,,** No join mapping for Description ** 
inputs/CTFS/TaxonOccurrence/VegBIEN.csv
6 6
CensusID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/cond/_exists/_first/1",
7 7
PlotID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode",
8 8
CensusID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/sourceaccessioncode",
9
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
9 10
SpeciesInvID,/location/locationevent/taxonoccurrence/sourceaccessioncode/_first/1,
10 11
Family,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/family,
11 12
Genus,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/genus,
inputs/CTFS/SubplotObservation/VegBIEN.csv
9 9
CensusID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/cond/_exists/_first/1",
10 10
PlotID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode",
11 11
CensusID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/sourceaccessioncode",
12
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
inputs/CTFS/Plot/VegBIEN.csv
19 19
Longitude,"/location/locationcoords/longitude_deg/_alt/2/_nullIf:[null=0,type=float]/value",
20 20
PlotName,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/authorlocationcode",
21 21
PlotID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode",
22
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
23
PlotName,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
22 24
DescriptionOfSite,/location/locationnarrative/_merge/1,
23 25
LocationName,/location/locationnarrative/_merge/1,
24 26
CountryName,/location/locationplace/*_id/placepath/country,
inputs/FIA/Organism/VegBIEN.csv
12 12
DBH,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/diameterbreastheight_m,
13 13
Height,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/height_m,
14 14
TreeTag,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag,
15
PlotCD,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
16
TreeTag,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then",
15 17
Genus,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/genus,
16 18
SpecificEpithet,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/species,
17 19
County,/location/locationplace/*_id/placepath/county,
inputs/FIA/Organism/test.xml.ref
58 58
                                </stemobservation>
59 59
                            </plantobservation>
60 60
                        </aggregateoccurrence>
61
                        <authortaxoncode>$TreeTag</authortaxoncode>
61 62
                        <taxondetermination>
62 63
                            <taxonpath_id>
63 64
                                <taxonpath>
......
80 81
        </path>
81 82
    </_simplifyPath>
82 83
</VegBIEN>
83
Inserted 12 new rows into database
84
Inserted 17 new rows into database
inputs/SALVIAS/plotMetadata/VegBIEN.csv
36 36
silt_percent,"/location/locationevent/soilobs/silt_fraction/_units:[default=""%"",to=]/value",
37 37
soil_Na,"/location/locationevent/soilobs/sodium_fraction/_units:[default=""%"",to=]/value",
38 38
soil_texture,"/location/locationevent/soilobs/texture/_units:[default=""%"",to=]/value",
39
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists","Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
40
SiteCode,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
39 41
Temp,/location/locationevent/temperature_c,
40 42
Locality_Description,/location/locationnarrative/_merge/1,"Brad: No; this is free text description of locality where plot was situated, same as for DwC. Not a description of vegetation. Most likely='namedPlace.placeDescription' in VB; not sure about VX, again need to ask Nick where locality descriptions live in VX"
41 43
Habitat,"/location/locationnarrative/_merge/3/_label[label=""habitat""]/value","Brad: Free-text description of vegetation community where collected, frequently redundane wrt 'Vegetation'. Bob, Nick: keep as user defined or create special element?"
inputs/SALVIAS/stems/VegBIEN.csv
13 13
stem_id,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/sourceaccessioncode,
14 14
stem_tag2,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag/_alt/1,"The second tag supercedes the first. Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
15 15
stem_tag1,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag/_alt/2,"The second tag supercedes the first. 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."
16
stem_tag2,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/1","The second tag supercedes the first. Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
17
stem_tag1,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/2","The second tag supercedes the first. 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."
16 18
PlotObsID,/location/locationevent/taxonoccurrence/sourceaccessioncode/_first/2,
17 19
origrecord_id_stems,,** No join mapping for origrecord_id_stems ** 
18 20
plotobs_id_index,,** No join mapping for plotobs_id_index ** 
inputs/SALVIAS/plotObservations/VegBIEN.csv
48 48
tag1,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/tag/_alt/2,"The second tag supercedes the first. 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."
49 49
x_position,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/xposition_m,"Brad: These are important, fundamental values of many tree plots"
50 50
y_position,/location/locationevent/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/yposition_m,Brad: See comment above for x_position
51
Ind,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1,"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."
51
Ind,/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/1,"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."
52
PlotCode,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
53
PlotID,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
54
tag2,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/1","The second tag supercedes the first. Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
55
tag1,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/then/_alt/2","The second tag supercedes the first. 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."
52 56
Habit,"/location/locationevent/taxonoccurrence/growthform/_map:[./{T,Arbol,palm}=tree,./{H,""Hemiepífito""}=hemiepiphyte,./{L,l,""L?"",Liana}=liana,E=epiphyte,S=shrub,Hb=herb,""vine-herbaceous""=vine,graminoid=grass,rosette=forb,*=*]/value","Brad: This is growth form (tree, shrub, herb, etc.). It is an observation of a trait.; According to <http://salvias.net/Documents/salvias_data_dictionary.html#Plot+data.habit>, <https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki/SALVIAS#Habit>"
53 57
PlotObsID,/location/locationevent/taxonoccurrence/sourceaccessioncode/_first/2,"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."
54 58
Family,/location/locationevent/taxonoccurrence/taxondetermination[!isoriginal]/*_id/taxonpath/family,
inputs/SALVIAS/plotObservations/test.xml.ref
92 92
                                </stemobservation>
93 93
                            </plantobservation>
94 94
                        </aggregateoccurrence>
95
                        <authortaxoncode>$Ind</authortaxoncode>
95
                        <authortaxoncode>
96
                            <_alt>
97
                                <1>$Ind</1>
98
                                <2>
99
                                    <_alt>
100
                                        <1>$tag2</1>
101
                                        <2>$tag1</2>
102
                                    </_alt>
103
                                </2>
104
                            </_alt>
105
                        </authortaxoncode>
96 106
                        <growthform>
97 107
                            <_map>
98 108
                                <T>tree</T>
inputs/VegBank/observation_/VegBIEN.csv
22 22
soilsand,/location/locationevent/soilobs/sand_fraction,
23 23
soilsilt,/location/locationevent/soilobs/silt_fraction,
24 24
soiltexture,/location/locationevent/soilobs/texture,
25
plot_id,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
25 26
accessioncode,,** No join mapping for accessioncode ** 
26 27
autotaxoncover,,** No join mapping for autotaxoncover ** 
27 28
basalarea,,** No join mapping for basalarea ** 
inputs/VegBank/plot_/VegBIEN.csv
13 13
longitude,"/location/locationcoords/longitude_deg/_alt/2/_nullIf:[null=0,type=float]/value",
14 14
authorplotcode,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/authorlocationcode",
15 15
plot_id,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode",
16
authorplotcode,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
17
plot_id,"/location/locationevent/taxonoccurrence/authortaxoncode/_alt/1/_alt/2/_if[@name=""if is organism""]/cond/_exists",
16 18
locationnarrative,/location/locationnarrative/_merge/1,
17 19
continent,/location/locationplace/*_id/placepath/continent,
18 20
area|country|territory,/location/locationplace/*_id/placepath/country,
mappings/for_review/VegCore-VegBIEN.csv
104 104
organismX,//stemobservation/xposition_m,
105 105
organismY,//stemobservation/yposition_m,
106 106
recordNumber,//taxonoccurrence/authortaxoncode,
107
locationID,"//taxonoccurrence/authortaxoncode/_if[@name=""if is organism""]/cond/_exists",
108
plotName,"//taxonoccurrence/authortaxoncode/_if[@name=""if is organism""]/cond/_exists",
109
tag,"//taxonoccurrence/authortaxoncode/_if[@name=""if is organism""]/then",
107 110
verbatimScientificName,//taxonoccurrence/authortaxoncode,
108 111
scientificNameWithAuthorship,//taxonoccurrence/authortaxoncode,
109 112
scientificName,//taxonoccurrence/authortaxoncode,

Also available in: Unified diff