Project

General

Profile

« Previous | Next » 

Revision 3703

mappings/VegX-VegBIEN.stems.csv: Replaced "/}" (with unnecessary "/") with "}"

View differences:

inputs/SALVIAS-CSV/maps/VegBIEN.organisms.csv
30 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 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"
32 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"
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/CTFS/maps/VegBIEN.organisms.csv
82 82
/*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"
83 83
/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"
84 84
"/*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"
85
/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"
86
/@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"
85
/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"
86
/@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"
87 87
/*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/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}/}/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/VegBIEN.organisms.csv
28 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 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"
30 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"
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 ** 
mappings/VegX-VegBIEN.organisms.csv
82 82
/*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"
83 83
/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"
84 84
"/*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"
85
/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"
86
/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"
85
/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"
86
/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/for_review/VegX-VegBIEN.organisms.csv
82 82
//taxonNameUsageConcept/voucher,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/catalognumber_dwc","""{.}"" sorts it with other _ifs"
83 83
/simpleUserdefined[name=collectionDate]/value,"/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/collectiondate","""{.}"" sorts it with other _ifs"
84 84
//*s/taxonDetermination[role=collector]/groupType,/{.}/_ignore/voucherType,"""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
85
/simpleUserdefined[name=authorPlantCode]/value,"/{authorplantcode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/2}","""{"" sorts it with other _ifs"
86
/simpleUserdefined[name=sourceAccessionCode]/value,"/{sourceaccessioncode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
85
/simpleUserdefined[name=authorPlantCode]/value,"/{authorplantcode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}}/sourceaccessioncode/_alt/2}","""{"" sorts it with other _ifs"
86
/simpleUserdefined[name=sourceAccessionCode]/value,"/{sourceaccessioncode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
mappings/for_review/VegX-VegBIEN.stems.csv
83 83
//taxonNameUsageConcept/voucher,"/*_id/plantobservation/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/catalognumber_dwc","""{.}"" sorts it with other _ifs"
84 84
//individualOrganismObservation/simpleUserdefined[name=collectionDate]/value,"/*_id/plantobservation/{.}/_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/collectiondate","""{.}"" sorts it with other _ifs"
85 85
//*s/taxonDetermination[role=collector]/groupType,/*_id/plantobservation/{.}/_ignore/voucherType,"""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
86
//individualOrganismObservation/simpleUserdefined[name=authorPlantCode]/value,"/*_id/plantobservation/{authorplantcode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/2}","""{"" sorts it with other _ifs"
87
//individualOrganismObservation/simpleUserdefined[name=sourceAccessionCode]/value,"/*_id/plantobservation/{sourceaccessioncode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}/}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
86
//individualOrganismObservation/simpleUserdefined[name=authorPlantCode]/value,"/*_id/plantobservation/{authorplantcode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}}/sourceaccessioncode/_alt/2}","""{"" sorts it with other _ifs"
87
//individualOrganismObservation/simpleUserdefined[name=sourceAccessionCode]/value,"/*_id/plantobservation/{sourceaccessioncode,./{aggregateoccurrence/*_id/taxonoccurrence,_if:[cond/_eq:[left/_ref[addr=""../../../../_ignore/voucherType""],right=direct]]/{then/specimenreplicate,else/aggregateoccurrence/*_id/taxonoccurrence/voucher/*_id/specimenreplicate}}/sourceaccessioncode/_alt/1}","""{"" sorts it with other _ifs"
88 88
/diameterBaseDistance[value=0]/diameter,/basaldiameter,
89 89
/simpleUserdefined[name=canopyForm]/value,"/definedvalue[*_id/userdefined[tablename=stemobservation,userdefinedname=canopyForm]]/definedvalue",
90 90
/simpleUserdefined[name=canopyPosition]/value,"/definedvalue[*_id/userdefined[tablename=stemobservation,userdefinedname=canopyPosition]]/definedvalue",
mappings/VegX-VegBIEN.stems.csv
83 83
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/voucher,"/*_id/plantobservation/{.}/_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"
84 84
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=collectionDate]/value,"/*_id/plantobservation/{.}/_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"
85 85
"/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/*ID->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*s/taxonDetermination[*ID,partyWithRole/role=collector]/groupType",/*_id/plantobservation/{.}/_ignore/voucherType,"""{"" sorts it after what uses it, so the _ignore is executed after the _refs"
86
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=authorPlantCode]/value,"/*_id/plantobservation/{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"
87
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=sourceAccessionCode]/value,"/*_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"
86
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=authorPlantCode]/value,"/*_id/plantobservation/{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"
87
/relatedIndividual/relatedItem[itemRelationship=stemParent]/relatedItemID->/*s/individualOrganismObservation/simpleUserdefined[name=sourceAccessionCode]/value,"/*_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"
88 88
/diameterBaseDistance[baseDistance/value=0]/diameter,/basaldiameter,
89 89
/simpleUserdefined[name=canopyForm]/value,"/definedvalue[*_id/userdefined[tablename=stemobservation,userdefinedname=canopyForm]]:[@fkey=tablerecord_id]/definedvalue",
90 90
/simpleUserdefined[name=canopyPosition]/value,"/definedvalue[*_id/userdefined[tablename=stemobservation,userdefinedname=canopyPosition]]:[@fkey=tablerecord_id]/definedvalue",

Also available in: Unified diff