Revision 3678
Added by Aaron Marcuse-Kubitza over 12 years ago
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->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLatitude</centerlatitude> |
98 | 98 |
<centerlongitude>$/*ID->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/geospatial/DecimalLongitude</centerlongitude> |
99 |
<datasource_id> |
|
100 |
<party> |
|
101 |
<organizationname> |
|
102 |
<_alt> |
|
103 |
<2>CTFS</2> |
|
104 |
<1>$/*ID->/*s/plotObservation/partyWithRole/*ID->/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->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName</2> |
120 |
<1>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier</1>
|
|
110 |
<1>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*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->/*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->/*s/plotObservation/*ID->/*s/project/personnel[role=metadataProvider]/organizationName</1> |
|
136 |
</_alt> |
|
137 |
</organizationname> |
|
138 |
</party> |
|
139 |
</datasource_id> |
|
140 |
<projectname>$/*ID->/*s/plotObservation/*ID->/*s/project:[personnel[role=metadataProvider]/organizationName=$/_ignore/inLabel]/title</projectname> |
|
141 |
</project> |
|
142 |
</project_id> |
|
118 |
<project_id><project><projectname>$/*ID->/*s/plotObservation/*ID->/*s/project/title</projectname></project></project_id> |
|
143 | 119 |
<commclass> |
144 | 120 |
<commdetermination> |
145 | 121 |
<commconcept_id> |
... | ... | |
199 | 175 |
<authorlocationcode>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*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->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/partyWithRole/*ID->/parties/party/organizationName</1> |
|
208 |
</_alt> |
|
209 |
</organizationname> |
|
210 |
</party> |
|
211 |
</datasource_id> |
|
212 | 178 |
<sourceaccessioncode> |
213 | 179 |
<_alt> |
214 | 180 |
<2>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotName</2> |
215 |
<1>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier</1>
|
|
181 |
<1>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier</1> |
|
216 | 182 |
</_alt> |
217 | 183 |
</sourceaccessioncode> |
218 | 184 |
</location> |
219 | 185 |
</location_id> |
220 |
<sourceaccessioncode>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation:[partyWithRole/*ID->/parties/party/organizationName=$/_ignore/inLabel]/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier</sourceaccessioncode>
|
|
186 |
<sourceaccessioncode>$/*ID->/*s/plotObservation/simpleUserdefined[name=parent]/value->/*s/plotObservation/*UniqueIdentifierID->/*s/plot/plotUniqueIdentifier</sourceaccessioncode> |
|
221 | 187 |
</locationevent> |
222 | 188 |
</parent_id> |
223 | 189 |
<sourceaccessioncode>$/*ID->/*s/plotObservation/plotUniqueIdentifierID->/*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->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName</1> |
|
433 |
</_alt> |
|
434 |
</organizationname> |
|
435 |
</party> |
|
436 |
</datasource_id> |
|
392 |
<catalognumber_dwc>$/*ID->/*s/individualOrganism/*ID->/*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->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/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->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept/partyWithRole/*ID->/parties/party/organizationName</1> |
|
460 |
</_alt> |
|
461 |
</organizationname> |
|
462 |
</party> |
|
463 |
</datasource_id> |
|
409 |
<catalognumber_dwc>$/*ID->/*s/individualOrganism/*ID->/*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->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept:[partyWithRole/*ID->/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->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*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->/*s/individualOrganism/*ID->/*s/taxonNameUsageConcept->/*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}", |
Also available in: Unified diff
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!