Project

General

Profile

« Previous | Next » 

Revision 3678

mappings/DwC2-VegBIEN.specimens.csv, VegX-VegBIEN.stems.csv: Removed all manual mappings to datasource_id now that datasource_id is auto-populated, both on the VegBIEN output side and the DwC/VegX input side. This should greatly simplify many of the mappings!

View differences:

inputs/SALVIAS/test/import.plots.xml.ref
89 89
                </elevationrange>
90 90
                <centerlatitude>$LatDec</centerlatitude>
91 91
                <centerlongitude>$LongDec</centerlongitude>
92
                <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
93 92
                <sourceaccessioncode>
94 93
                    <_merge>
95 94
                        <2>
......
103 102
            </location>
104 103
        </location_id>
105 104
        <method_id><method><name>$PlotMethod</name></method></method_id>
106
        <project_id>
107
            <project>
108
                <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
109
                <projectname>$project_id</projectname>
110
            </project>
111
        </project_id>
105
        <project_id><project><projectname>$project_id</projectname></project></project_id>
112 106
        <commclass>
113 107
            <commdetermination>
114 108
                <commconcept_id>
inputs/SALVIAS/maps/VegX.stems.csv
1 1
SALVIAS,VegX:/*s/individualOrganismObservation[relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID],Comments
2 2
stem_id,,
3 3
origrecord_id_stems,,
4
PlotObsID,/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,
4
PlotObsID,/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=sourceAccessionCode]/value,
5 5
NoInd,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/aggregateOrganismObservation[*ID]/*/aggregateValue/value,
6 6
basal_diam,/diameterBaseDistance[baseDistance/value=0]/diameter,
7 7
stem_dbh,/diameterBaseDistance[baseDistance[!attributeID]/value=1.37]/diameter,
inputs/SALVIAS/maps/VegX.plots.csv
1 1
SALVIAS,VegX:/*s/plotObservation,Comments
2
PlotID,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
2
PlotID,/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
3 3
orig_filename,,
4 4
AccessCode,,
5
project_id,/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,
5
project_id,/*ID->/*s/project/title,
6 6
PrimOwnerID,,
7
SiteCode,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
7
SiteCode,/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
8 8
SiteName,,
9 9
new_world,,
10 10
MajorGeo,/*UniqueIdentifierID->/*s/plot/location[placeType=continent]/placeName,
inputs/SALVIAS/maps/VegX.organisms.full.csv
14 14
Genus,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=gen])/tcs:Name",
15 15
Species,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=sp])/tcs:Name",
16 16
Notes,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/note/text,
17
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
18
SourceVoucher,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
17
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
18
SourceVoucher,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
19 19
tag1,/*ID->/*s/individualOrganism/identificationLabel[@id=1],"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."
20 20
tag2,/*ID->/*s/individualOrganism/identificationLabel[@id=2],"Brad: See commend for tag1. Your mapping for tag2 looks correct. Probably both values would go here, only nested, with one superceding the other."
21
Line,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
21 22
PlotCode,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"Brad: Same as plotCode, above"
22
PlotID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
23
Line,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
23
PlotID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
24 24
temp_dbh,/diameterBaseDistance[baseDistance/value=1.37]/diameter,
25 25
height_m,/height,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
26 26
x_position,/relativePlotPosition/relativeX,"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."
......
33 33
Habit,"/simpleUserdefined[name=growthForm]/value/_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: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
34 34
ht_first_branch_m,/simpleUserdefined[name=heightFirstBranch]/value,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
35 35
liana_infestation,/simpleUserdefined[name=lianaInfestation]/value,Brad: Should also be userDefined for VegBank. 
36
PlotObsID,/simpleUserdefined[name=sourceAccessionCode]/value,"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."
36 37
cover_percent,/volumeCanopy/*ID->/*s/attribute/ordinal/coverPercent,
37 38
intercept_cm,/volumeCanopy/value,"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."
38
PlotObsID,:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,"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."
39 39
GenAuth,,
40 40
IsMorpho,,
41 41
OrigAuth,,
inputs/U/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>U</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>U</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>U</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <namedplace_id>
13 11
                                <_simplifyPath>
inputs/SALVIAS-CSV/maps/VegBIEN.plots.csv
13 13
lat_decimal,"/*_id/location/{locationdetermination/latitude,centerlatitude}",
14 14
long_decimal,"/*_id/location/{locationdetermination/longitude,centerlongitude}",
15 15
plot_methodology,/*_id/method/name,
16
project,/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/projectname,
16
project,/*_id/project/projectname,
17 17
holdridge_life_zone,/commclass/commdetermination/*_id/commconcept/*_id/*/commname,
18 18
life_zone_code,/commclass/commdetermination/*_id/commconcept/commdescription,
19 19
date_finish,/obsenddate/_*/date,
......
37 37
soil_Na,"/soilobs/sodium/_units:[default=""%"",to=]/value",
38 38
soil_texture,/soilobs/texture,
39 39
temp_c,/temperature,
40
plot_code,"/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project); ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
41
PLOT_ID,"/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/1}","Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata.; ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
40
plot_code,"/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
41
PLOT_ID,"/{sourceaccessioncode,*_id/location/sourceaccessioncode/_merge/2/_alt/1}","Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
42 42
observation_type,,"Brad: SALVIAS internal metadata indicating whether the record represents an individual or aggregate observation. Rather than storing, use to decide where to store in VegX.; Aaron: VegX aggregateOrganismObservation table is missing many fields available in individualOrganismObservation, so we're mapping to individualOrganismObservation regardless of observation type"
43 43
recensused,,"Brad: This is a 0/1 value, internal to SALVIAS. 1 indicates that a  plot has >1 set of values, from different census events.; Aaron: Different censuses are distinguished in organisms data by different census_no values"
inputs/REMIB/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>REMIB</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>REMIB</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>REMIB</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <namedplace_id>
13 11
                                <_simplifyPath>
inputs/REMIB/maps/VegBIEN.specimens.csv
1
REMIB[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
REMIB[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
county,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
3 3
state,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=stateProvince]/placename",,65
4 4
country,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,stateProvince,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=country]/placename",Brad: Required; reject record if this field NULL,63
inputs/CTFS/maps/VegX.organisms.csv
1 1
CTFS[VegX]:/*s/individualOrganismObservation,VegX:/*s/individualOrganismObservation,Comments
2
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotName,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
3
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,
2
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotName,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
3
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,
4 4
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/*/relatedPlot[plotRelationship=Quadrat]/relatedPlotID,,
5 5
/*ID->/*s/plotObservation/simpleUserdefined[name=CensusNumber]/value,/simpleUserdefined[name=censusNo]/value,
6
/@id,:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,
6
/@id,/simpleUserdefined[name=sourceAccessionCode]/value,
7 7
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,!partyWithRole]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank=Species])/tcs:Name","/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,!partyWithRole]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=sp])/tcs:Name",
8 8
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,!partyWithRole]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank=Genus])/tcs:Name","/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,!partyWithRole]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=gen])/tcs:Name",
9 9
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,!partyWithRole]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank=Family])/tcs:Name","/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,!partyWithRole]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=fam])/tcs:Name",
inputs/CTFS/maps/VegBIEN.organisms.csv
15 15
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/latitude,centerlatitude}",
16 16
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/longitude,centerlongitude}",
17 17
/*ID->/*s/plotObservation/simpleUserdefined[name=method]/*ID/method/name,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/method/name,
18
/*ID->/*s/plotObservation/*ID->/*s/project/personnel[role=metadataProvider]/organizationName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1,
19
/*ID->/*s/plotObservation/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/projectname,
18
/*ID->/*s/plotObservation/*ID->/*s/project/title,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project/projectname,
20 19
/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/commclass/commdetermination/*_id/commconcept/*_id/*/commname,
21 20
/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/name,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/commclass/commdetermination/*_id/commconcept/commdescription,
22 21
/*ID->/*s/plotObservation/obsEndDate,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/obsenddate,
......
42 41
/*ID->/*s/plotObservation/temperature,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/temperature,
43 42
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/maximumDepthInMeters,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/waterdepth/_avg/max/_units:[default=m,to=m,to=]/value",
44 43
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/minimumDepthInMeters,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/waterdepth/_avg/min/_units:[default=m,to=m,to=]/value",
45
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
46
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/2},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
47
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/1},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/1}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
48
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{.}/*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1},"""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
49
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/1}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
50
/*ID->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{.}/*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1,"""{.}"" sorts it with other location mappings with a datasource_id"
44
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",
45
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_alt/2},*_id/location/sourceaccessioncode/_merge/1/_alt/2}",
46
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_alt/1},*_id/location/sourceaccessioncode/_merge/1/_alt/1}",
47
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_merge/2/_alt/1}",
51 48
/simpleUserdefined[name=growthForm]/value,/aggregateoccurrence/*_id/taxonoccurrence/growthform,
52 49
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=TaxonomicRankBelowSubspeciesEnum])/tcs:Rank","/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,authority,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=subspecies]/plantname/_name/first",
53 50
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=auth])/tcs:Name","/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]:[iscurrent=true]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=authority]/plantname",
......
79 76
/*ID->/*s/individualOrganism/identificationLabel[@id=2],/stemobservation/stemtag[iscurrent=true]:[../stemtag?[iscurrent/_alt/2=true]/iscurrent/_alt/1=false]/tag,
80 77
/relativePlotPosition/relativeX,/stemobservation/xposition,
81 78
/relativePlotPosition/relativeY,/stemobservation/yposition,
82
/simpleUserdefined[name=authorPlantCode]/value,"/{./authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/2}","""{./"" sorts it with other _ifs"
83
/@id,"/{./sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/1}","""{./"" sorts it with other _ifs"
84
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/catalognumber_dwc","""{.}"" sorts it with other _ifs"
85
/simpleUserdefined[name=collectionDate]/value,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/collectiondate","""{.}"" sorts it with other _ifs"
86
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1","""{.}"" sorts it with other _ifs"
79
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//catalognumber_dwc","""{.}"" sorts it with other _ifs"
80
/simpleUserdefined[name=collectionDate]/value,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//collectiondate","""{.}"" sorts it with other _ifs"
87 81
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/groupType",/{.}/_ignore/voucherType,"""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
82
/simpleUserdefined[name=authorPlantCode]/value,"/{authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/2}","""{"" sorts it with other _ifs"
83
/@id,"/{sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
88 84
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/*/relatedPlot[plotRelationship=Quadrat]/relatedPlotID,,** No input mapping for /*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/*/relatedPlot[plotRelationship=Quadrat]/relatedPlotID ** 
inputs/SALVIAS/test/import.stems.xml.ref
14 14
                            <right>direct</right>
15 15
                        </_eq>
16 16
                    </cond>
17
                    <then>
18
                        <specimenreplicate>
19
                            <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
20
                            <sourceaccessioncode><_alt><1>$PlotObsID</1></_alt></sourceaccessioncode>
21
                        </specimenreplicate>
22
                    </then>
23
                    <else>
24
                        <aggregateoccurrence merge="1">
25
                            <taxonoccurrence_id>
26
                                <taxonoccurrence>
27
                                    <voucher>
28
                                        <specimenreplicate_id>
29
                                            <specimenreplicate>
30
                                                <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
31
                                                <sourceaccessioncode><_alt><1>$PlotObsID</1></_alt></sourceaccessioncode>
32
                                            </specimenreplicate>
33
                                        </specimenreplicate_id>
34
                                    </voucher>
35
                                </taxonoccurrence>
36
                            </taxonoccurrence_id>
37
                        </aggregateoccurrence>
38
                    </else>
17
                    <then><specimenreplicate><sourceaccessioncode><_alt><1>$PlotObsID</1></_alt></sourceaccessioncode></specimenreplicate></then>
18
                    <else><aggregateoccurrence merge="1"><taxonoccurrence_id><taxonoccurrence><voucher><specimenreplicate_id><specimenreplicate><sourceaccessioncode><_alt><1>$PlotObsID</1></_alt></sourceaccessioncode></specimenreplicate></specimenreplicate_id></voucher></taxonoccurrence></taxonoccurrence_id></aggregateoccurrence></else>
39 19
                </_if>
40 20
            </plantobservation>
41 21
        </plantobservation_id>
inputs/SALVIAS/maps/VegBIEN.stems.csv
1 1
SALVIAS,VegBIEN:/stemobservation,Comments
2 2
NoInd,/*_id/plantobservation/stemcount,
3
PlotObsID,"/*_id/plantobservation/{./sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/1}","""{./"" sorts it with other _ifs"
3
PlotObsID,"/*_id/plantobservation/{sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
4 4
basal_diam,/basaldiameter,
5 5
stem_canopy_form,"/definedvalue[*_id/userdefined[tablename=stemobservation,userdefinedname=canopyForm]]:[@fkey=tablerecord_id]/definedvalue",
6 6
stem_canopy_position,"/definedvalue[*_id/userdefined[tablename=stemobservation,userdefinedname=canopyPosition]]:[@fkey=tablerecord_id]/definedvalue",
inputs/SALVIAS/maps/VegX.plots.full.csv
18 18
soil_texture,"->/*s/abioticObservation[*ID]/simpleUserdefined[name=texture]/value/_units:[default=""%"",to=]/value",
19 19
life_zone_code,->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,
20 20
life_zone,->/*s/communityDetermination[*ID]/*s/communityConcept/name,
21
project_id,/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,
21
project_id,/*ID->/*s/project/title,
22 22
plot_area_ha,/*UniqueIdentifierID->/*s/plot/area,"Brad: Area in hectares. Is there any way to store units?; Aaron: VegX plot area annotation says ""Total area of the plot in square meters."" so units are fixed"
23 23
LatDec,/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,
24 24
LongDec,/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude,
......
30 30
Country,/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName,
31 31
pol2,/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName,Brad: No pol2=countyParish
32 32
PolDiv1,/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName,Brad: No; pol1=stateProvince
33
SiteCode,/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
34
PlotID,/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
33 35
slope_aspect,/*UniqueIdentifierID->/*s/plot/slopeAspect,
34 36
slope_gradient,/*UniqueIdentifierID->/*s/plot/slopeGradient,
35 37
date_finish,/obsEndDate/_*/date,
......
37 39
PlotMethod,/simpleUserdefined[name=method]/*ID/method/name,
38 40
Precip,/simpleUserdefined[name=precipitation]/value,
39 41
Temp,/temperature,
40
SiteCode,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
41
PlotID,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
42 42
AccessCode,,
43 43
ElevSource,,
44 44
Habitat,,
inputs/SALVIAS/maps/VegBIEN.organisms.csv
1 1
SALVIAS,VegBIEN:/plantobservation,Comments
2
Line,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
3
PlotCode,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/2},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/2}","Brad: Same as plotCode, above; ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
4
PlotID,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/1},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/1}","Brad: Not sure why this is repeated? This field and plotCode, as the same as above.; ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
2
Line,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",
3
PlotCode,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_alt/2},*_id/location/sourceaccessioncode/_merge/1/_alt/2}","Brad: Same as plotCode, above"
4
PlotID,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_alt/1},*_id/location/sourceaccessioncode/_merge/1/_alt/1}","Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
5 5
Habit,"/aggregateoccurrence/*_id/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: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
6 6
infra_rank_1,"/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,authority,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=subspecies]/plantname/_name/first",
7 7
auth,"/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]:[iscurrent=true]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=authority]/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
......
24 24
tag2,/stemobservation/stemtag[iscurrent=true]:[../stemtag?[iscurrent/_alt/2=true]/iscurrent/_alt/1=false]/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."
25 25
x_position,/stemobservation/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."
26 26
y_position,/stemobservation/yposition,Brad: See comment above for x_position
27
Ind,"/{./authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/2}","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.; ""{./"" sorts it with other _ifs"
28
PlotObsID,"/{./sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/1}","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.; ""{./"" sorts it with other _ifs"
29
coll_number,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/catalognumber_dwc/_alt/1","Brad: Incorrect. Map instead as for voucher_string; ""{.}"" sorts it with other _ifs"
30
SourceVoucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/catalognumber_dwc/_alt/2","Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below.; ""{.}"" sorts it with other _ifs"
31
census_date,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/collectiondate/_*/date","""{.}"" sorts it with other _ifs"
27
coll_number,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//catalognumber_dwc/_alt/1","Brad: Incorrect. Map instead as for voucher_string; ""{.}"" sorts it with other _ifs"
28
SourceVoucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//catalognumber_dwc/_alt/2","Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below.; ""{.}"" sorts it with other _ifs"
29
census_date,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//collectiondate/_*/date","""{.}"" sorts it with other _ifs"
32 30
DetType,/{.}/_ignore/voucherType,"Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen.; ""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
31
Ind,"/{authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/2}","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.; ""{"" sorts it with other _ifs"
32
PlotObsID,"/{sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","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.; ""{"" sorts it with other _ifs"
33 33
GenAuth,,** No input mapping for GenAuth ** 
34 34
IsMorpho,,** No input mapping for IsMorpho ** 
35 35
Notes,,** No join mapping for /*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/note/text ** 
inputs/ARIZ/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>ARIZ</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>ARIZ</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>ARIZ</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <coordsaccuracy><_noCV><value><_alt><1>$CoordinateUncertaintyInMeters</1></_alt></value></_noCV></coordsaccuracy>
13 11
                            <footprintgeometry_dwc>$BoundingBox</footprintgeometry_dwc>
inputs/GBIF/maps/DwC.specimens.full.csv
1
GBIF[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
GBIF[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
CatalogNO,CatalogNumber,
3 3
CollectionCD,CollectionCode,
4 4
Collector,Collector
inputs/U/maps/VegBIEN.specimens.csv
1
U[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
U[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
Country,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,stateProvince,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=country]/placename",Brad: Required; reject record if this field NULL,63
3 3
Gazetteer,"/*_id/locationevent/*_id/location/locationnarrative/_merge/2/_merge/1/_label[label=""gazetteer""]/value/_merge/1","Brad: Correct for VB; Nick, is there no specific element for locality description in VegX? Definitely need one.",69
4 4
Newgazett,"/*_id/locationevent/*_id/location/locationnarrative/_merge/2/_merge/1/_label[label=""gazetteer""]/value/_merge/2","Only used in 1 row; Brad: Correct for VB; Nick, is there no specific element for locality description in VegX? Definitely need one.",69
inputs/GBIF/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>GBIF</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>GBIF</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>GBIF</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <namedplace_id>
13 11
                                <_simplifyPath>
inputs/ARIZ/maps/DwC.specimens.full.csv
1
ARIZ[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
ARIZ[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
BasisOfRecord,BasisOfRecord
3 3
BoundingBox,BoundingBox
4 4
CatalogNumberNumeric,CatalogNumber,
inputs/GBIF/maps/VegBIEN.specimens.csv
1
GBIF[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
GBIF[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
County,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
3 3
StateProvince,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=stateProvince]/placename",,65
4 4
Country,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,stateProvince,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=country]/placename",Brad: Required; reject record if this field NULL,63
inputs/MT/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>MT</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>MT</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>MT</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <namedplace_id>
13 11
                                <_simplifyPath>
inputs/MT/maps/DwC.specimens.full.csv
1
MT[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
MT[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
basisOfRecord,basisOfRecord
3 3
collectionCode,collectionCode
4 4
collectionID,collectionID
inputs/MT/maps/VegBIEN.specimens.csv
1
MT[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
MT[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
continent,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,stateProvince,country,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=continent]/placename",Brad: OMIT,59
3 3
locality,/*_id/locationevent/*_id/location/locationnarrative/_merge/1,,68
4 4
collectionID,/collectionnumber/_alt/2,,9
inputs/XAL/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>XAL</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>XAL</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>XAL</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <coordsaccuracy><_noCV><value><_alt><2>$CoordinatePrecision</2></_alt></value></_noCV></coordsaccuracy>
13 11
                            <namedplace_id>
inputs/XAL/maps/DwC.specimens.full.csv
1
"XAL[DwC,darwin:]:/content/record/","DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
"XAL[DwC,darwin:]:/content/record/","DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
BasisOfRecord,BasisOfRecord
3 3
CatalogNumber,CatalogNumber
4 4
Class,Class
inputs/XAL/maps/VegBIEN.specimens.csv
1
"XAL[DwC,darwin:]:/content/record/","VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
"XAL[DwC,darwin:]:/content/record/",VegBIEN:/specimenreplicate,Comments,Order
2 2
CoordinatePrecision,/*_id/locationevent/*_id/location/locationdetermination/coordsaccuracy/_noCV/value/_alt/2,,89
3 3
County,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
4 4
StateProvince,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=stateProvince]/placename",,65
inputs/NY/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>NY</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>NY</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>NY</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <coordsaccuracy><_noCV><value><_alt><2>$CoordinatePrecision</2></_alt></value></_noCV></coordsaccuracy>
13 11
                            <footprintgeometry_dwc>$BoundingBox</footprintgeometry_dwc>
inputs/NY/maps/DwC.specimens.full.csv
1
NY[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
NY[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
BasisOfRecord,BasisOfRecord
3 3
BoundingBox,BoundingBox
4 4
CatalogNumber,CatalogNumber
inputs/NY/maps/VegBIEN.specimens.csv
1
NY[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
NY[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
CoordinatePrecision,/*_id/locationevent/*_id/location/locationdetermination/coordsaccuracy/_noCV/value/_alt/2,,89
3 3
BoundingBox,/*_id/locationevent/*_id/location/locationdetermination/footprintgeometry_dwc,,91
4 4
County,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
inputs/UNCC/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>UNCC</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>UNCC</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>UNCC</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <namedplace_id>
13 11
                                <_simplifyPath>
inputs/UNCC/maps/DwC.specimens.full.csv
1
UNCC[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
UNCC[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
collector,Collector/_merge/1,
3 3
collector1,Collector/_merge/2,
4 4
collector2,Collector/_merge/3,
inputs/UNCC/maps/VegBIEN.specimens.csv
1
UNCC[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
UNCC[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
county,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
3 3
state,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=stateProvince]/placename",,65
4 4
country,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,stateProvince,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=country]/placename",Brad: Required; reject record if this field NULL,63
inputs/ACAD/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>ACAD</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>ACAD</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>ACAD</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <namedplace_id>
13 11
                                <_simplifyPath>
inputs/ACAD/maps/DwC.specimens.full.csv
1
ACAD[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
ACAD[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
basisOfRecord,basisOfRecord
3 3
bibliographicCitation,bibliographicCitation
4 4
catalogNumber,catalogNumber
inputs/ACAD/maps/VegBIEN.specimens.csv
1
ACAD[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
ACAD[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
county,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
3 3
stateProvince,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=stateProvince]/placename",,65
4 4
country,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,stateProvince,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=country]/placename",Brad: Required; reject record if this field NULL,63
inputs/CVS/test/import.organisms.xml.ref
54 54
                                            <2>$publicLongitude</2>
55 55
                                        </_alt>
56 56
                                    </centerlongitude>
57
                                    <datasource_id><party><organizationname><_alt><2>CVS</2></_alt></organizationname></party></datasource_id>
58 57
                                    <sourceaccessioncode><_merge><2><_alt><2>$authorObsCode</2></_alt></2></_merge></sourceaccessioncode>
59 58
                                </location>
60 59
                            </location_id>
inputs/CVS/maps/VegX.organisms.csv
1 1
CVS,VegX:/*s/individualOrganismObservation,Comments
2
authorObsCode,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
2
authorObsCode,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
3 3
obsStartDate,/*ID->/*s/plotObservation/obsStartDate/_*/date,
4 4
realLatitude,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude/_alt/1,
5 5
realLongitude,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude/_alt/1,
inputs/CVS/maps/VegX.organisms.full.csv
7 7
publicLongitude,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude/_alt/2,
8 8
county,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName,
9 9
state,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName,
10
authorObsCode,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
10 11
obsStartDate,/*ID->/*s/plotObservation/obsStartDate/_*/date,
11
authorObsCode,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
12 12
%cover,/volumeCanopy/*ID->/*s/attribute/ordinal/coverPercent,
13 13
confidentialityStatus,,
inputs/CVS/maps/VegBIEN.organisms.csv
7 7
realLongitude,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/longitude,centerlongitude}/_alt/1",
8 8
publicLongitude,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/longitude,centerlongitude}/_alt/2",
9 9
obsStartDate,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/obsstartdate/_*/date,
10
authorObsCode,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
10
authorObsCode,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",
11 11
currentTaxonName sec Weakley 2006,"/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=identifier]:[isoriginal=true,iscurrent=true]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[],do=""plantname[rank=_val]/parent_id""]/plantname[rank=binomial]/plantname/_name/first",
12 12
%cover,/aggregateoccurrence/cover,
13 13
confidentialityStatus,,** No input mapping for confidentialityStatus ** 
inputs/SALVIAS-CSV/test/import.plots.xml.ref
89 89
                </elevationrange>
90 90
                <centerlatitude>$lat_decimal</centerlatitude>
91 91
                <centerlongitude>$long_decimal</centerlongitude>
92
                <datasource_id><party><organizationname><_alt><2>SALVIAS-CSV</2></_alt></organizationname></party></datasource_id>
93 92
                <sourceaccessioncode>
94 93
                    <_merge>
95 94
                        <2>
......
103 102
            </location>
104 103
        </location_id>
105 104
        <method_id><method><name>$plot_methodology</name></method></method_id>
106
        <project_id>
107
            <project>
108
                <datasource_id><party><organizationname><_alt><2>SALVIAS-CSV</2></_alt></organizationname></party></datasource_id>
109
                <projectname>$project</projectname>
110
            </project>
111
        </project_id>
105
        <project_id><project><projectname>$project</projectname></project></project_id>
112 106
        <commclass>
113 107
            <commdetermination>
114 108
                <commconcept_id>
inputs/SALVIAS-CSV/test/import.organisms.xml.ref
11 11
                            <authorlocationcode>$subplot</authorlocationcode>
12 12
                            <location_id>
13 13
                                <location>
14
                                    <datasource_id><party><organizationname><_alt><2>SALVIAS-CSV</2></_alt></organizationname></party></datasource_id>
15 14
                                    <sourceaccessioncode>
16 15
                                        <_merge>
17 16
                                            <2><_alt><2>$subplot</2></_alt></2>
......
30 29
                                    <authorlocationcode>$plot_code</authorlocationcode>
31 30
                                    <location_id>
32 31
                                        <location>
33
                                            <datasource_id><party><organizationname><_alt><2>SALVIAS-CSV</2></_alt></organizationname></party></datasource_id>
34 32
                                            <sourceaccessioncode>
35 33
                                                <_alt>
36 34
                                                    <2>$plot_code</2>
......
232 230
            <xposition>$x_position</xposition>
233 231
            <yposition>$y_position</yposition>
234 232
        </stemobservation>
235
        <authorplantcode>$individual_code</authorplantcode>
236 233
        <_if>
237 234
            <cond>
238 235
                <_eq>
......
242 239
            </cond>
243 240
            <then>
244 241
                <specimenreplicate>
245
                    <datasource_id><party><organizationname><_alt><2>SALVIAS-CSV</2></_alt></organizationname></party></datasource_id>
242
                    <catalognumber_dwc>
243
                        <_alt>
244
                            <1>$coll_number</1>
245
                            <2>$voucher_string</2>
246
                        </_alt>
247
                    </catalognumber_dwc>
246 248
                    <sourceaccessioncode>
247 249
                        <_alt>
248 250
                            <2>$individual_code</2>
249 251
                            <1>$OBSERVATION_ID</1>
250 252
                        </_alt>
251 253
                    </sourceaccessioncode>
252
                    <catalognumber_dwc>
253
                        <_alt>
254
                            <1>$coll_number</1>
255
                            <2>$voucher_string</2>
256
                        </_alt>
257
                    </catalognumber_dwc>
258 254
                </specimenreplicate>
259 255
            </then>
260 256
            <else>
......
264 260
                            <voucher>
265 261
                                <specimenreplicate_id>
266 262
                                    <specimenreplicate>
267
                                        <datasource_id><party><organizationname><_alt><2>SALVIAS-CSV</2></_alt></organizationname></party></datasource_id>
263
                                        <catalognumber_dwc>
264
                                            <_alt>
265
                                                <1>$coll_number</1>
266
                                                <2>$voucher_string</2>
267
                                            </_alt>
268
                                        </catalognumber_dwc>
268 269
                                        <sourceaccessioncode>
269 270
                                            <_alt>
270 271
                                                <2>$individual_code</2>
271 272
                                                <1>$OBSERVATION_ID</1>
272 273
                                            </_alt>
273 274
                                        </sourceaccessioncode>
274
                                        <catalognumber_dwc>
275
                                            <_alt>
276
                                                <1>$coll_number</1>
277
                                                <2>$voucher_string</2>
278
                                            </_alt>
279
                                        </catalognumber_dwc>
280 275
                                    </specimenreplicate>
281 276
                                </specimenreplicate_id>
282 277
                            </voucher>
......
285 280
                </aggregateoccurrence>
286 281
            </else>
287 282
        </_if>
283
        <_ignore><voucherType>$det_type</voucherType></_ignore>
284
        <authorplantcode>$individual_code</authorplantcode>
288 285
        <sourceaccessioncode>$OBSERVATION_ID</sourceaccessioncode>
289
        <_ignore><voucherType>$det_type</voucherType></_ignore>
290 286
    </plantobservation>
291 287
</VegBIEN>
292 288
Inserted 44 new rows into database
inputs/SALVIAS-CSV/maps/VegX.plots.csv
1 1
SALVIAS-CSV,VegX:/*s/plotObservation,Comments
2
project,/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,
3
PLOT_ID,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
4
plot_code,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
2
project,/*ID->/*s/project/title,
3
PLOT_ID,/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
4
plot_code,/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
5 5
major_geo,/*UniqueIdentifierID->/*s/plot/location[placeType=continent]/placeName,
6 6
country,/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName,
7 7
pol1,/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName,Brad: No; pol1=stateProvince
inputs/SALVIAS-CSV/maps/VegX.organisms.csv
1 1
SALVIAS-CSV,VegX:/*s/individualOrganismObservation,Comments
2
OBSERVATION_ID,:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,"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."
3
PLOT_ID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
2
OBSERVATION_ID,/simpleUserdefined[name=sourceAccessionCode]/value,"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."
3
PLOT_ID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
4 4
plot_code,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"Brad: Same as plotCode, above"
5 5
census_no,/simpleUserdefined[name=censusNo]/value,"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."
6 6
census_date,/*ID->/*s/plotObservation/obsStartDate/_date/year,
7
subplot,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
7
subplot,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
8 8
individual_code,/simpleUserdefined[name=authorPlantCode]/value,"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."
9 9
ind_id,,Brad: OMIT
10 10
tag1,/*ID->/*s/individualOrganism/identificationLabel[@id=1]/_alt/1,"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."
11 11
tag2,/*ID->/*s/individualOrganism/identificationLabel[@id=2]/_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."
12 12
x_position,/relativePlotPosition/relativeX,"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."
13 13
y_position,/relativePlotPosition/relativeY,Brad: See comment above for x_position
14
voucher_string,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
15
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
14
voucher_string,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
15
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
16 16
collector_code,,Brad: OMIT
17 17
coll_lastname,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/surName","Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
18 18
coll_firstname,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/givenName",Brad: See comment above
inputs/SALVIAS-CSV/maps/VegX.plots.full.csv
18 18
soil_texture,->/*s/abioticObservation[*ID]/simpleUserdefined[name=texture]/value,
19 19
holdridge_life_zone,->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,
20 20
life_zone_code,->/*s/communityDetermination[*ID]/*s/communityConcept/name,
21
project,/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,
21
project,/*ID->/*s/project/title,
22 22
plot_area_ha,/*UniqueIdentifierID->/*s/plot/area,"Brad: Area in hectares. Is there any way to store units?; Aaron: VegX plot area annotation says ""Total area of the plot in square meters."" so units are fixed"
23 23
lat_decimal,/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,
24 24
long_decimal,/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude,
......
30 30
country,/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName,
31 31
pol2,/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName,Brad: No pol2=countyParish
32 32
pol1,/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName,Brad: No; pol1=stateProvince
33
plot_code,/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
34
PLOT_ID,/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
33 35
slope_aspect,/*UniqueIdentifierID->/*s/plot/slopeAspect,
34 36
slope_gradient,/*UniqueIdentifierID->/*s/plot/slopeGradient,
35 37
date_finish,/obsEndDate/_*/date,
......
37 39
plot_methodology,/simpleUserdefined[name=method]/*ID/method/name,
38 40
precip_mm,/simpleUserdefined[name=precipitation]/value,
39 41
temp_c,/temperature,
40
plot_code,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
41
PLOT_ID,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
42 42
observation_type,,"Brad: SALVIAS internal metadata indicating whether the record represents an individual or aggregate observation. Rather than storing, use to decide where to store in VegX.; Aaron: VegX aggregateOrganismObservation table is missing many fields available in individualOrganismObservation, so we're mapping to individualOrganismObservation regardless of observation type"
43 43
recensused,,"Brad: This is a 0/1 value, internal to SALVIAS. 1 indicates that a  plot has >1 set of values, from different census events.; Aaron: Different censuses are distinguished in organisms data by different census_no values"
inputs/SALVIAS-CSV/maps/VegX.organisms.full.csv
13 13
genus,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=gen])/tcs:Name",
14 14
specific_epithet,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=sp])/tcs:Name",
15 15
notes,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/note/text,
16
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
17
voucher_string,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
16
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
17
voucher_string,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
18 18
tag1,/*ID->/*s/individualOrganism/identificationLabel[@id=1]/_alt/1,"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."
19 19
stem_tag1,/*ID->/*s/individualOrganism/identificationLabel[@id=1]/_alt/2,"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."
20 20
tag2,/*ID->/*s/individualOrganism/identificationLabel[@id=2]/_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."
21 21
stem_tag2,/*ID->/*s/individualOrganism/identificationLabel[@id=2]/_alt/2,Brad: see above
22
subplot,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
22 23
census_date,/*ID->/*s/plotObservation/obsStartDate/_date/year,
23 24
plot_code,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"Brad: Same as plotCode, above"
24
PLOT_ID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
25
subplot,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
25
PLOT_ID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
26 26
basal_diam,/diameterBaseDistance[baseDistance/value=0]/diameter,
27 27
stem_dbh,/diameterBaseDistance[baseDistance/value=1.37]/diameter,
28 28
height_m,/height,Brad: Incorrect for VegBank. This is a measurement applied to a single tree. Check with Bob
......
37 37
stem_height_first_branch_m,/simpleUserdefined[name=heightFirstBranch]/value,"Brad: Should also be userDefined for VegBank. Same as for ht_first_branch_m, but applies to individuals stems, not trees. Rare."
38 38
stem_height_m,/simpleUserdefined[name=height]/value,"Brad: Same as for height, but applies to individuals stems, not trees. Rare."
39 39
stem_liana_infestation,/simpleUserdefined[name=lianaInfestation]/value,Brad: Should also be userDefined for VegBank. 
40
OBSERVATION_ID,/simpleUserdefined[name=sourceAccessionCode]/value,"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 41
cover_percent,/volumeCanopy/*ID->/*s/attribute/ordinal/coverPercent,
41 42
intercept_cm,/volumeCanopy/value,"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."
42
OBSERVATION_ID,:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,"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."
43 43
collector_code,,Brad: OMIT
44 44
comments,,Brad: OMIT
45 45
fam_status,,Brad: OMIT. This will be determined later by using TNRS.
inputs/SALVIAS-CSV/maps/VegBIEN.organisms.csv
1 1
SALVIAS-CSV,VegBIEN:/plantobservation,Comments
2 2
census_date,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/obsstartdate/_date/year,
3
subplot,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
4
plot_code,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/2},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/2}","Brad: Same as plotCode, above; ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
5
PLOT_ID,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/1},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/1}","Brad: Not sure why this is repeated? This field and plotCode, as the same as above.; ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
3
subplot,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",
4
plot_code,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_alt/2},*_id/location/sourceaccessioncode/_merge/1/_alt/2}","Brad: Same as plotCode, above"
5
PLOT_ID,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_alt/1},*_id/location/sourceaccessioncode/_merge/1/_alt/1}","Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
6 6
habit,"/aggregateoccurrence/*_id/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: Incorrect for VegBank, correct for VegX. This is growth form (tree, shrub, herb, etc.). It is an observation of a trait."
7 7
infra_rank_1,"/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,authority,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=subspecies]/plantname/_name/first",
8 8
specific_authority,"/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]:[iscurrent=true]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=authority]/plantname",Brad: Incorrect. This is the author of the scientificName. The should be a place for this in the taxonomic name elements of VegB and VegX. Let's discuss.
......
27 27
stem_tag2,/stemobservation/stemtag[iscurrent=true]:[../stemtag?[iscurrent/_alt/2=true]/iscurrent/_alt/1=false]/tag/_alt/2,Brad: see above
28 28
x_position,/stemobservation/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."
29 29
y_position,/stemobservation/yposition,Brad: See comment above for x_position
30
individual_code,"/{./authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/2}","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.; ""{./"" sorts it with other _ifs"
31
OBSERVATION_ID,"/{./sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/1}","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.; ""{./"" sorts it with other _ifs"
32
coll_number,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/catalognumber_dwc/_alt/1","Brad: Incorrect. Map instead as for voucher_string; ""{.}"" sorts it with other _ifs"
33
voucher_string,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/catalognumber_dwc/_alt/2","Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below.; ""{.}"" sorts it with other _ifs"
30
coll_number,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//catalognumber_dwc/_alt/1","Brad: Incorrect. Map instead as for voucher_string; ""{.}"" sorts it with other _ifs"
31
voucher_string,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//catalognumber_dwc/_alt/2","Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below.; ""{.}"" sorts it with other _ifs"
34 32
det_type,/{.}/_ignore/voucherType,"Brad: A SALVIAS value referring to the relationship between the voucher specimen and the observation. Affect how the identification of the specimen(latin name) is transferred to the observation. 'direct'=voucher specimen was collected from this same tree; they are one and the same individual. 'indirect'=voucher specimen was collected for a different individual, but the original data provider confirmed that this is the same species. 'default'=basically same as 'indirect'. 'uncollected'=no voucher specimen, data provider  asserted that this was the name but was unable to collect. The main different is that with 'direct', 'indirect', and 'default', the scientific name can be updated automatically based on the name attached to the specimen voucher (assuming you have a link to that data, presumably from a herbarium database. Whereas, if det_type='uncollected', the name can never change because there is no specimen.; ""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
33
individual_code,"/{authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/2}","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.; ""{"" sorts it with other _ifs"
34
OBSERVATION_ID,"/{sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","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.; ""{"" sorts it with other _ifs"
35 35
basal_diam,,** No join mapping for /diameterBaseDistance[baseDistance/value=0]/diameter ** 
36 36
collector_code,,Brad: OMIT
37 37
comments,,Brad: OMIT
inputs/REMIB/maps/DwC.specimens.full.csv
1
REMIB[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
REMIB[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
acronym,collectionCode,
3 3
collector,collector
4 4
country,country
inputs/CTFS/test/import.organisms.xml.ref
96 96
                                    </elevationrange>
97 97
                                    <centerlatitude>$/*ID-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/geospatial/DecimalLatitude</centerlatitude>
98 98
                                    <centerlongitude>$/*ID-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/geospatial/DecimalLongitude</centerlongitude>
99
                                    <datasource_id>
100
                                        <party>
101
                                            <organizationname>
102
                                                <_alt>
103
                                                    <2>CTFS</2>
104
                                                    <1>$/*ID-&gt;/*s/plotObservation/partyWithRole/*ID-&gt;/parties/party/organizationName</1>
105
                                                </_alt>
106
                                            </organizationname>
107
                                        </party>
108
                                    </datasource_id>
109 99
                                    <sourceaccessioncode>
110 100
                                        <_merge>
111 101
                                            <2>
......
117 107
                                            <1>
118 108
                                                <_alt>
119 109
                                                    <2>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/plotName</2>
120
                                                    <1>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation:[partyWithRole/*ID-&gt;/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID-&gt;/*s/plot/plotUniqueIdentifier</1>
110
                                                    <1>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/plotUniqueIdentifier</1>
121 111
                                                </_alt>
122 112
                                            </1>
123 113
                                        </_merge>
......
125 115
                                </location>
126 116
                            </location_id>
127 117
                            <method_id><method><name>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=method]/*ID/method/name</name></method></method_id>
128
                            <project_id>
129
                                <project>
130
                                    <datasource_id>
131
                                        <party>
132
                                            <organizationname>
133
                                                <_alt>
134
                                                    <2>CTFS</2>
135
                                                    <1>$/*ID-&gt;/*s/plotObservation/*ID-&gt;/*s/project/personnel[role=metadataProvider]/organizationName</1>
136
                                                </_alt>
137
                                            </organizationname>
138
                                        </party>
139
                                    </datasource_id>
140
                                    <projectname>$/*ID-&gt;/*s/plotObservation/*ID-&gt;/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title</projectname>
141
                                </project>
142
                            </project_id>
118
                            <project_id><project><projectname>$/*ID-&gt;/*s/plotObservation/*ID-&gt;/*s/project/title</projectname></project></project_id>
143 119
                            <commclass>
144 120
                                <commdetermination>
145 121
                                    <commconcept_id>
......
199 175
                                    <authorlocationcode>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/plotName</authorlocationcode>
200 176
                                    <location_id>
201 177
                                        <location>
202
                                            <datasource_id>
203
                                                <party>
204
                                                    <organizationname>
205
                                                        <_alt>
206
                                                            <2>CTFS</2>
207
                                                            <1>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/partyWithRole/*ID-&gt;/parties/party/organizationName</1>
208
                                                        </_alt>
209
                                                    </organizationname>
210
                                                </party>
211
                                            </datasource_id>
212 178
                                            <sourceaccessioncode>
213 179
                                                <_alt>
214 180
                                                    <2>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/plotName</2>
215
                                                    <1>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation:[partyWithRole/*ID-&gt;/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID-&gt;/*s/plot/plotUniqueIdentifier</1>
181
                                                    <1>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/plotUniqueIdentifier</1>
216 182
                                                </_alt>
217 183
                                            </sourceaccessioncode>
218 184
                                        </location>
219 185
                                    </location_id>
220
                                    <sourceaccessioncode>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation:[partyWithRole/*ID-&gt;/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID-&gt;/*s/plot/plotUniqueIdentifier</sourceaccessioncode>
186
                                    <sourceaccessioncode>$/*ID-&gt;/*s/plotObservation/simpleUserdefined[name=parent]/value-&gt;/*s/plotObservation/*UniqueIdentifierID-&gt;/*s/plot/plotUniqueIdentifier</sourceaccessioncode>
221 187
                                </locationevent>
222 188
                            </parent_id>
223 189
                            <sourceaccessioncode>$/*ID-&gt;/*s/plotObservation/plotUniqueIdentifierID-&gt;/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier</sourceaccessioncode>
......
414 380
            <xposition>$/relativePlotPosition/relativeX</xposition>
415 381
            <yposition>$/relativePlotPosition/relativeY</yposition>
416 382
        </stemobservation>
417
        <authorplantcode>$/simpleUserdefined[name=authorPlantCode]/value</authorplantcode>
418 383
        <_if>
419 384
            <cond>
420 385
                <_eq>
......
424 389
            </cond>
425 390
            <then>
426 391
                <specimenreplicate>
427
                    <datasource_id>
428
                        <party>
429
                            <organizationname>
430
                                <_alt>
431
                                    <2>CTFS</2>
432
                                    <1>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept/partyWithRole/*ID-&gt;/parties/party/organizationName</1>
433
                                </_alt>
434
                            </organizationname>
435
                        </party>
436
                    </datasource_id>
392
                    <catalognumber_dwc>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept/voucher</catalognumber_dwc>
393
                    <collectiondate>$/simpleUserdefined[name=collectionDate]/value</collectiondate>
437 394
                    <sourceaccessioncode>
438 395
                        <_alt>
439 396
                            <2>$/simpleUserdefined[name=authorPlantCode]/value</2>
440 397
                            <1>$/@id</1>
441 398
                        </_alt>
442 399
                    </sourceaccessioncode>
443
                    <catalognumber_dwc>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept:[partyWithRole/*ID-&gt;/parties/party/organizationName=$/_ignore/inLabel]/voucher</catalognumber_dwc>
444
                    <collectiondate>$/simpleUserdefined[name=collectionDate]/value</collectiondate>
445 400
                </specimenreplicate>
446 401
            </then>
447 402
            <else>
......
451 406
                            <voucher>
452 407
                                <specimenreplicate_id>
453 408
                                    <specimenreplicate>
454
                                        <datasource_id>
455
                                            <party>
456
                                                <organizationname>
457
                                                    <_alt>
458
                                                        <2>CTFS</2>
459
                                                        <1>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept/partyWithRole/*ID-&gt;/parties/party/organizationName</1>
460
                                                    </_alt>
461
                                                </organizationname>
462
                                            </party>
463
                                        </datasource_id>
409
                                        <catalognumber_dwc>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept/voucher</catalognumber_dwc>
410
                                        <collectiondate>$/simpleUserdefined[name=collectionDate]/value</collectiondate>
464 411
                                        <sourceaccessioncode>
465 412
                                            <_alt>
466 413
                                                <2>$/simpleUserdefined[name=authorPlantCode]/value</2>
467 414
                                                <1>$/@id</1>
468 415
                                            </_alt>
469 416
                                        </sourceaccessioncode>
470
                                        <catalognumber_dwc>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept:[partyWithRole/*ID-&gt;/parties/party/organizationName=$/_ignore/inLabel]/voucher</catalognumber_dwc>
471
                                        <collectiondate>$/simpleUserdefined[name=collectionDate]/value</collectiondate>
472 417
                                    </specimenreplicate>
473 418
                                </specimenreplicate_id>
474 419
                            </voucher>
......
477 422
                </aggregateoccurrence>
478 423
            </else>
479 424
        </_if>
425
        <_ignore><voucherType>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept-&gt;/*s/taxonDetermination[*ID,partyWithRole/role=collector]/groupType</voucherType></_ignore>
426
        <authorplantcode>$/simpleUserdefined[name=authorPlantCode]/value</authorplantcode>
480 427
        <sourceaccessioncode>$/@id</sourceaccessioncode>
481
        <_ignore><voucherType>$/*ID-&gt;/*s/individualOrganism/*ID-&gt;/*s/taxonNameUsageConcept-&gt;/*s/taxonDetermination[*ID,partyWithRole/role=collector]/groupType</voucherType></_ignore>
482 428
    </plantobservation>
483 429
</VegBIEN>
484 430
Inserted 38 new rows into database
inputs/CTFS/maps/VegX.organisms.full.csv
21 21
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=fam])/tcs:Name","/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=fam])/tcs:Name"
22 22
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=gen])/tcs:Name","/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=gen])/tcs:Name"
23 23
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=sp])/tcs:Name","/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=sp])/tcs:Name"
24
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName
25
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher
24
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher
26 25
/*ID->/*s/individualOrganism/identificationLabel[@id=1],/*ID->/*s/individualOrganism/identificationLabel[@id=1]
27 26
/*ID->/*s/individualOrganism/identificationLabel[@id=2],/*ID->/*s/individualOrganism/identificationLabel[@id=2]
28 27
/*ID->/*s/plotObservation->/*s/abioticObservation[*ID]/magnesium,/*ID->/*s/plotObservation->/*s/abioticObservation[*ID]/magnesium
......
44 43
/*ID->/*s/plotObservation->/*s/abioticObservation[*ID]/simpleUserdefined[name=texture]/value,/*ID->/*s/plotObservation->/*s/abioticObservation[*ID]/simpleUserdefined[name=texture]/value
45 44
/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/commonName
46 45
/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/name,/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/name
47
/*ID->/*s/plotObservation/*ID->/*s/project/personnel[role=metadataProvider]/organizationName,/*ID->/*s/plotObservation/*ID->/*s/project/personnel[role=metadataProvider]/organizationName
48
/*ID->/*s/plotObservation/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,/*ID->/*s/plotObservation/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title
46
/*ID->/*s/plotObservation/*ID->/*s/project/title,/*ID->/*s/plotObservation/*ID->/*s/project/title
49 47
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/area,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/area
50 48
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/CoordinateUncertaintyInMeters,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/CoordinateUncertaintyInMeters
51 49
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude
......
61 59
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName
62 60
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName
63 61
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName
62
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotName,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
63
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,
64 64
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/slopeAspect,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/slopeAspect
65 65
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/slopeGradient,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/slopeGradient
66 66
/*ID->/*s/plotObservation/obsEndDate,/*ID->/*s/plotObservation/obsEndDate
67 67
/*ID->/*s/plotObservation/obsStartDate,/*ID->/*s/plotObservation/obsStartDate
68
/*ID->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/*ID->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName
69 68
/*ID->/*s/plotObservation/simpleUserdefined[name=method]/*ID/method/name,/*ID->/*s/plotObservation/simpleUserdefined[name=method]/*ID/method/name
70 69
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName
71
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName
72
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier
70
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier
73 71
/*ID->/*s/plotObservation/simpleUserdefined[name=precipitation]/value,/*ID->/*s/plotObservation/simpleUserdefined[name=precipitation]/value
74 72
/*ID->/*s/plotObservation/temperature,/*ID->/*s/plotObservation/temperature
75
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotName,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
76
/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*s/plot[plotUniqueIdentifier]/plotUniqueIdentifier,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,
77 73
/height,/height
78 74
/relativePlotPosition/relativeX,/relativePlotPosition/relativeX
79 75
/relativePlotPosition/relativeY,/relativePlotPosition/relativeY
......
82 78
/simpleUserdefined[name=collectionDate]/value,/simpleUserdefined[name=collectionDate]/value
83 79
/simpleUserdefined[name=growthForm]/value,/simpleUserdefined[name=growthForm]/value
84 80
/simpleUserdefined[name=height]/value,/simpleUserdefined[name=height]/value
81
/@id,/simpleUserdefined[name=sourceAccessionCode]/value,
85 82
/volumeCanopy/*ID->/*s/attribute/ordinal/coverPercent,/volumeCanopy/*ID->/*s/attribute/ordinal/coverPercent
86 83
/volumeCanopy/value,/volumeCanopy/value
87
/@id,:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,
88 84
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/*/relatedPlot[plotRelationship=Quadrat]/relatedPlotID,,
inputs/SALVIAS/test/import.organisms.xml.ref
10 10
                            <authorlocationcode>$Line</authorlocationcode>
11 11
                            <location_id>
12 12
                                <location>
13
                                    <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
14 13
                                    <sourceaccessioncode>
15 14
                                        <_merge>
16 15
                                            <2><_alt><2>$Line</2></_alt></2>
......
29 28
                                    <authorlocationcode>$PlotCode</authorlocationcode>
30 29
                                    <location_id>
31 30
                                        <location>
32
                                            <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
33 31
                                            <sourceaccessioncode>
34 32
                                                <_alt>
35 33
                                                    <2>$PlotCode</2>
......
221 219
            <xposition>$x_position</xposition>
222 220
            <yposition>$y_position</yposition>
223 221
        </stemobservation>
224
        <authorplantcode>$Ind</authorplantcode>
225 222
        <_if>
226 223
            <cond>
227 224
                <_eq>
......
231 228
            </cond>
232 229
            <then>
233 230
                <specimenreplicate>
234
                    <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
235
                    <sourceaccessioncode>
236
                        <_alt>
237
                            <2>$Ind</2>
238
                            <1>$PlotObsID</1>
239
                        </_alt>
240
                    </sourceaccessioncode>
241 231
                    <catalognumber_dwc>
242 232
                        <_alt>
243 233
                            <1>$coll_number</1>
......
245 235
                        </_alt>
246 236
                    </catalognumber_dwc>
247 237
                    <collectiondate><_date><date>$census_date</date></_date></collectiondate>
238
                    <sourceaccessioncode>
239
                        <_alt>
240
                            <2>$Ind</2>
241
                            <1>$PlotObsID</1>
242
                        </_alt>
243
                    </sourceaccessioncode>
248 244
                </specimenreplicate>
249 245
            </then>
250 246
            <else>
......
254 250
                            <voucher>
255 251
                                <specimenreplicate_id>
256 252
                                    <specimenreplicate>
257
                                        <datasource_id><party><organizationname><_alt><2>SALVIAS</2></_alt></organizationname></party></datasource_id>
258
                                        <sourceaccessioncode>
259
                                            <_alt>
260
                                                <2>$Ind</2>
261
                                                <1>$PlotObsID</1>
262
                                            </_alt>
263
                                        </sourceaccessioncode>
264 253
                                        <catalognumber_dwc>
265 254
                                            <_alt>
266 255
                                                <1>$coll_number</1>
......
268 257
                                            </_alt>
269 258
                                        </catalognumber_dwc>
270 259
                                        <collectiondate><_date><date>$census_date</date></_date></collectiondate>
260
                                        <sourceaccessioncode>
261
                                            <_alt>
262
                                                <2>$Ind</2>
263
                                                <1>$PlotObsID</1>
264
                                            </_alt>
265
                                        </sourceaccessioncode>
271 266
                                    </specimenreplicate>
272 267
                                </specimenreplicate_id>
273 268
                            </voucher>
......
276 271
                </aggregateoccurrence>
277 272
            </else>
278 273
        </_if>
274
        <_ignore><voucherType>$DetType</voucherType></_ignore>
275
        <authorplantcode>$Ind</authorplantcode>
279 276
        <sourceaccessioncode>$PlotObsID</sourceaccessioncode>
280
        <_ignore><voucherType>$DetType</voucherType></_ignore>
281 277
    </plantobservation>
282 278
</VegBIEN>
283 279
Inserted 38 new rows into database
inputs/SALVIAS/maps/VegX.stems.full.csv
6 6
basal_diam,/diameterBaseDistance[baseDistance/value=0]/diameter,
7 7
stem_dbh,/diameterBaseDistance[baseDistance[!attributeID]/value=1.37]/diameter,
8 8
gentry_dbh,/diameterBaseDistance[baseDistance[*ID/*s/attribute/quantitative/*ID/*s/method(/name=Gentry)]/value=1.37]/diameter,
9
PlotObsID,/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,
9
PlotObsID,/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=sourceAccessionCode]/value,
10 10
stem_canopy_form,/simpleUserdefined[name=canopyForm]/value,
11 11
stem_canopy_position,/simpleUserdefined[name=canopyPosition]/value,
12 12
stem_height_first_branch_m,/simpleUserdefined[name=heightFirstBranch]/value,
inputs/SALVIAS/maps/VegX.organisms.csv
1 1
SALVIAS,VegX:/*s/individualOrganismObservation,Comments
2
PlotObsID,:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,"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."
3
PlotID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
2
PlotObsID,/simpleUserdefined[name=sourceAccessionCode]/value,"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."
3
PlotID,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"Brad: Not sure why this is repeated? This field and plotCode, as the same as above."
4 4
PlotCode,/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"Brad: Same as plotCode, above"
5 5
census_no,/simpleUserdefined[name=censusNo]/value,"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."
6 6
census_date,/simpleUserdefined[name=collectionDate]/value/_*/date,
7 7
OrigRecordID,,
8
Line,/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,
8
Line,/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,
9 9
Ind,/simpleUserdefined[name=authorPlantCode]/value,"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."
10 10
ind_id,,Brad: OMIT
11 11
tag1,/*ID->/*s/individualOrganism/identificationLabel[@id=1],"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 14
y_position,/relativePlotPosition/relativeY,Brad: See comment above for x_position
15 15
dist,,
16 16
perp_dist,,
17
SourceVoucher,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
18
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
17
SourceVoucher,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/2,"Brad: OMIT. This is the verbatim text, which includes both collectors name and collection number. I would use coll_number, below."
18
coll_number,/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher/_alt/1,Brad: Incorrect. Map instead as for voucher_string
19 19
collector_code,,Brad: OMIT
20 20
coll_inits,,
21 21
coll_lastname,"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/partyWithRole/*ID->/parties/party/individualName/surName","Brad: Correct for VegBank. This is the collector of a separate specimen which vouchers this tree or species. I worry that vouchers are not properly accommodated in VegX. Again, we need to check with Nick."
inputs/SALVIAS/maps/VegBIEN.plots.csv
13 13
LatDec,"/*_id/location/{locationdetermination/latitude,centerlatitude}",
14 14
LongDec,"/*_id/location/{locationdetermination/longitude,centerlongitude}",
15 15
PlotMethod,/*_id/method/name,
16
project_id,/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/projectname,
16
project_id,/*_id/project/projectname,
17 17
life_zone_code,/commclass/commdetermination/*_id/commconcept/*_id/*/commname,
18 18
life_zone,/commclass/commdetermination/*_id/commconcept/commdescription,
19 19
date_finish,/obsenddate/_*/date,
......
37 37
soil_Na,"/soilobs/sodium/_units:[default=""%"",to=]/value",
38 38
soil_texture,"/soilobs/texture/_units:[default=""%"",to=]/value",
39 39
Temp,/temperature,
40
SiteCode,"/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project); ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
41
PlotID,"/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/1}","Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata.; ""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
40
SiteCode,"/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",Brad: plotCode is as-assigned by data provider; guranteed to be unique only within dataset (=project)
41
PlotID,"/{sourceaccessioncode,*_id/location/sourceaccessioncode/_merge/2/_alt/1}","Brad: This is artificial internal database ID; a unique identifier within SALVIAS DB to each plot, within the table plotMetadata."
42 42
AccessCode,,** No input mapping for AccessCode ** 
43 43
ElevSource,,** No input mapping for ElevSource ** 
44 44
Habitat,,** No input mapping for Habitat ** 
inputs/U/maps/DwC.specimens.full.csv
1
U[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
U[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
Barcode,CatalogNumber,
3 3
Collector,Collector/_merge/1,
4 4
Addcoll,Collector/_merge/2,
inputs/ARIZ/maps/VegBIEN.specimens.csv
1
ARIZ[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
ARIZ[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
CoordinateUncertaintyInMeters,/*_id/locationevent/*_id/location/locationdetermination/coordsaccuracy/_noCV/value/_alt/1,,88
3 3
BoundingBox,/*_id/locationevent/*_id/location/locationdetermination/footprintgeometry_dwc,,91
4 4
County,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
inputs/NCU-NCSC/maps/VegBIEN.specimens.csv
1
NCU-NCSC[DwC],"VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
NCU-NCSC[DwC],VegBIEN:/specimenreplicate,Comments,Order
2 2
Accuracy,/*_id/locationevent/*_id/location/locationdetermination/coordsaccuracy/_noCV/value/_alt/1,,88
3 3
County,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=county]/placename",,66
4 4
State,"/*_id/locationevent/*_id/location/locationdetermination/namedplace_id/_simplifyPath:[next=""parent_id/namedplace"",require=placename]/path/_forEach:[in:[county,],do=""namedplace[rank=_val]/parent_id""]/namedplace[rank=stateProvince]/placename",,65
inputs/NCU-NCSC/maps/DwC.specimens.full.csv
1
NCU-NCSC[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
NCU-NCSC[DwC],"DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
Barcode,CatalogNumber,
3 3
Collect Date,CollectedDate,
4 4
SeriesName,CollectionCode,
inputs/NCU-NCSC/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>NCU-NCSC</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id><party><organizationname><_alt><2>NCU-NCSC</2></_alt></organizationname></party></datasource_id>
6 5
        <locationevent_id>
7 6
            <locationevent>
8 7
                <location_id>
9 8
                    <location>
10
                        <datasource_id><party><organizationname><_alt><2>NCU-NCSC</2></_alt></organizationname></party></datasource_id>
11 9
                        <locationdetermination>
12 10
                            <coordsaccuracy><_noCV><value><_alt><1>$Accuracy</1></_alt></value></_noCV></coordsaccuracy>
13 11
                            <namedplace_id>
inputs/SpeciesLink/maps/VegBIEN.specimens.csv
1
"SpeciesLink[DwC,dwc_dwcore_,dwc_curatorial_,dwc_geospatial_,http__purl_org_,dwc_terms_,conceptual_darwin_2003_1_0_]","VegBIEN:/specimenreplicate:[./{.,*_id/locationevent/*_id/location}/datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]",Comments,Order
1
"SpeciesLink[DwC,dwc_dwcore_,dwc_curatorial_,dwc_geospatial_,http__purl_org_,dwc_terms_,conceptual_darwin_2003_1_0_]",VegBIEN:/specimenreplicate,Comments,Order
2 2
coordinateUncertaintyInMeters,/*_id/locationevent/*_id/location/locationdetermination/coordsaccuracy/_noCV/value/_alt/1,,88
3 3
CoordinatePrecision,/*_id/locationevent/*_id/location/locationdetermination/coordsaccuracy/_noCV/value/_alt/2,,89
4 4
BoundingBox,/*_id/locationevent/*_id/location/locationdetermination/footprintgeometry_dwc,,91
inputs/QMOR/test/import.specimens.xml.ref
2 2
<VegBIEN>
3 3
    <_ignore><inLabel>QMOR</inLabel></_ignore>
4 4
    <specimenreplicate id="-1">
5
        <datasource_id>
6
            <party>
7
                <organizationname>
8
                    <_alt>
9
                        <2>QMOR</2>
10
                        <1>$institutionID</1>
11
                    </_alt>
12
                </organizationname>
13
            </party>
14
        </datasource_id>
15 5
        <locationevent_id>
16 6
            <locationevent>
17 7
                <location_id>
18 8
                    <location>
19
                        <datasource_id>
20
                            <party>
21
                                <organizationname>
22
                                    <_alt>
23
                                        <2>QMOR</2>
24
                                        <1>$institutionID</1>
25
                                    </_alt>
26
                                </organizationname>
27
                            </party>
28
                        </datasource_id>
29 9
                        <locationdetermination>
30 10
                            <coordsaccuracy><_noCV><value><_alt><1>$coordinateUncertaintyInMeters</1></_alt></value></_noCV></coordsaccuracy>
31 11
                            <footprintgeometry_dwc>$footprintWKT</footprintgeometry_dwc>
mappings/VegX-VegBIEN.organisms.csv
15 15
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/latitude,centerlatitude}",
16 16
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/longitude,centerlongitude}",
17 17
/*ID->/*s/plotObservation/simpleUserdefined[name=method]/*ID/method/name,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/method/name,
18
/*ID->/*s/plotObservation/*ID->/*s/project/personnel[role=metadataProvider]/organizationName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1,
19
/*ID->/*s/plotObservation/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/projectname,
18
/*ID->/*s/plotObservation/*ID->/*s/project/title,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project/projectname,
20 19
/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/commclass/commdetermination/*_id/commconcept/*_id/*/commname,
21 20
/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/name,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/commclass/commdetermination/*_id/commconcept/commdescription,
22 21
/*ID->/*s/plotObservation/obsEndDate,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/obsenddate,
......
42 41
/*ID->/*s/plotObservation/temperature,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/temperature,
43 42
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/maximumDepthInMeters,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/waterdepth/_avg/max/_units:[default=m,to=m,to=]/value",
44 43
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/minimumDepthInMeters,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/waterdepth/_avg/min/_units:[default=m,to=m,to=]/value",
45
/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
46
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/2},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
47
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/1},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/1}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
48
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{.}/*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1},"""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
49
/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/1}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
50
/*ID->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{.}/*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1,"""{.}"" sorts it with other location mappings with a datasource_id"
44
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",
45
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_alt/2},*_id/location/sourceaccessioncode/_merge/1/_alt/2}",
46
/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_alt/1},*_id/location/sourceaccessioncode/_merge/1/_alt/1}",
47
/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_merge/2/_alt/1}",
51 48
/simpleUserdefined[name=growthForm]/value,/aggregateoccurrence/*_id/taxonoccurrence/growthform,
52 49
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=TaxonomicRankBelowSubspeciesEnum])/tcs:Rank","/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,authority,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=subspecies]/plantname/_name/first",
53 50
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=computer]/*s/taxonRelationshipAssertion(/assertion/*ID->/*s/taxonConcept[tcs:Rank/@code=auth])/tcs:Name","/aggregateoccurrence/*_id/taxonoccurrence/taxondetermination[role=computer]:[iscurrent=true]/*_id/plantconcept/plantname_id/_simplifyPath:[next=""parent_id/plantname"",require=plantname]/path/_forEach:[in:[binomial,],do=""plantname[rank=_val]/parent_id""]/plantname[rank=authority]/plantname",
......
79 76
/*ID->/*s/individualOrganism/identificationLabel[@id=2],/stemobservation/stemtag[iscurrent=true]:[../stemtag?[iscurrent/_alt/2=true]/iscurrent/_alt/1=false]/tag,
80 77
/relativePlotPosition/relativeX,/stemobservation/xposition,
81 78
/relativePlotPosition/relativeY,/stemobservation/yposition,
82
/simpleUserdefined[name=authorPlantCode]/value,"/{./authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/2}","""{./"" sorts it with other _ifs"
83
:[*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/simpleUserdefined[name=sourceAccessionCode]/value,"/{./sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]}/sourceaccessioncode/_alt/1}","""{./"" sorts it with other _ifs"
84
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/voucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/catalognumber_dwc","""{.}"" sorts it with other _ifs"
85
/simpleUserdefined[name=collectionDate]/value,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/collectiondate","""{.}"" sorts it with other _ifs"
86
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1","""{.}"" sorts it with other _ifs"
79
/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//catalognumber_dwc","""{.}"" sorts it with other _ifs"
80
/simpleUserdefined[name=collectionDate]/value,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}//collectiondate","""{.}"" sorts it with other _ifs"
87 81
"/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/groupType",/{.}/_ignore/voucherType,"""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
82
/simpleUserdefined[name=authorPlantCode]/value,"/{authorplantcode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/2}","""{"" sorts it with other _ifs"
83
/simpleUserdefined[name=sourceAccessionCode]/value,"/{sourceaccessioncode,./{aggregateoccurrence:[@merge=1]/*_id:[@merge=1]/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence:[@merge=1]/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
mappings/VegX.self.plots.csv
18 18
->/*s/abioticObservation[*ID]/simpleUserdefined[name=texture]/value,->/*s/abioticObservation[*ID]/simpleUserdefined[name=texture]/value
19 19
->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,->/*s/communityDetermination[*ID]/*s/communityConcept/commonName
20 20
->/*s/communityDetermination[*ID]/*s/communityConcept/name,->/*s/communityDetermination[*ID]/*s/communityConcept/name
21
/*ID->/*s/project/personnel[role=metadataProvider]/organizationName,/*ID->/*s/project/personnel[role=metadataProvider]/organizationName
22
/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title
21
/*ID->/*s/project/title,/*ID->/*s/project/title
23 22
/*UniqueIdentifierID->/*s/plot/area,/*UniqueIdentifierID->/*s/plot/area
24 23
/*UniqueIdentifierID->/*s/plot/geospatial/CoordinateUncertaintyInMeters,/*UniqueIdentifierID->/*s/plot/geospatial/CoordinateUncertaintyInMeters
25 24
/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude
......
35 34
/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName,/*UniqueIdentifierID->/*s/plot/location[placeType=country]/placeName
36 35
/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName,/*UniqueIdentifierID->/*s/plot/location[placeType=county]/placeName
37 36
/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName,/*UniqueIdentifierID->/*s/plot/location[placeType=state]/placeName
37
/*UniqueIdentifierID->/*s/plot/plotName,/*UniqueIdentifierID->/*s/plot/plotName
38
/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier
38 39
/*UniqueIdentifierID->/*s/plot/slopeAspect,/*UniqueIdentifierID->/*s/plot/slopeAspect
39 40
/*UniqueIdentifierID->/*s/plot/slopeGradient,/*UniqueIdentifierID->/*s/plot/slopeGradient
40 41
/obsEndDate,/obsEndDate
41 42
/obsStartDate,/obsStartDate
42
/partyWithRole/*ID->/parties/party/organizationName,/partyWithRole/*ID->/parties/party/organizationName
43 43
/simpleUserdefined[name=method]/*ID/method/name,/simpleUserdefined[name=method]/*ID/method/name
44 44
/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName
45
/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName
46
/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier
45
/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier
47 46
/simpleUserdefined[name=precipitation]/value,/simpleUserdefined[name=precipitation]/value
48 47
/temperature,/temperature
49
:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName
50
:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier
mappings/for_review/DwC1-DwC2.specimens.csv
1
"DwC1::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/","DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list:[institutionID=$/_ignore/inLabel]/",Comments
1
"DwC1::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/","DwC::[@xmlns:dcterms=""http://purl.org/dc/terms/""]/list/",Comments
2 2
continentOcean,continent,
3 3
dateIdentified/_alt,dateIdentified/_alt,Allow datasource to define custom dateIdentified mappings that don't pass through the default dateIdentified mapping
4 4
dayIdentified,dateIdentified/_alt/1/_date/day/_nullIf/value,
mappings/VegX-VegBIEN.stems.csv
15 15
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/latitude,centerlatitude}",
16 16
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/location/{locationdetermination/longitude,centerlongitude}",
17 17
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/simpleUserdefined[name=method]/*ID/method/name,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/method/name,
18
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*ID->/*s/project/personnel[role=metadataProvider]/organizationName,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1,
19
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/projectname,
18
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*ID->/*s/project/title,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/*_id/project/projectname,
20 19
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/commonName,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/commclass/commdetermination/*_id/commconcept/*_id/*/commname,
21 20
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation->/*s/communityDetermination[*ID]/*s/communityConcept/name,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/commclass/commdetermination/*_id/commconcept/commdescription,
22 21
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/obsEndDate,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/obsenddate,
......
42 41
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/temperature,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/temperature,
43 42
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/maximumDepthInMeters,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/waterdepth/_avg/max/_units:[default=m,to=m,to=]/value",
44 43
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/minimumDepthInMeters,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/waterdepth/_avg/min/_units:[default=m,to=m,to=]/value",
45
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotName,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
46
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./authorlocationcode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/2},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/2}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
47
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_alt/1},*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/1/_alt/1}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
48
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./parent_id/locationevent/{.}/*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1},"""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
49
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{./sourceaccessioncode,*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/sourceaccessioncode/_merge/2/_alt/1}","""{./"" sorts it before the location.datasource_id mapping with ""{.}"""
50
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName,/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{.}/*_id/location:[datasource_id/party/organizationname/_alt/2=$/_ignore/inLabel]/datasource_id/party/organizationname/_alt/1,"""{.}"" sorts it with other location mappings with a datasource_id"
44
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_merge/2/_alt/2}",
45
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{authorlocationcode,*_id/location/sourceaccessioncode/_alt/2},*_id/location/sourceaccessioncode/_merge/1/_alt/2}",
46
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{parent_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_alt/1},*_id/location/sourceaccessioncode/_merge/1/_alt/1}",
47
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier,"/*_id/plantobservation/aggregateoccurrence/*_id/taxonoccurrence/*_id/locationevent/{sourceaccessioncode,*_id/location/sourceaccessioncode/_merge/2/_alt/1}",
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff