full diff

app.gainforest.dwc.event

gainforest.earth +100 −0
From
bafyreiflvjppbpbg3znurg33dbcosis2upxz6vn77hqotg3ny365ahs55m indexed 2026-02-18 18:05 UTC View this version
To
bafyreif27dtcrgeogvqpzhpmsiozwk677r7sjuufcgfjcs3jzxb2y3lc74 indexed 2026-04-29 14:28 UTC View this version

Compatibility

backward compatible Backward compatible. 40 non-breaking changes.

Non-breaking changes (40)
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.cloudCover" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.completeness" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.equipmentUsed" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.humidity" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.monitoringFrequency" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.monitoringProgramme" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.moonPhase" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.precipitation" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.projectRef" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.qualityControlNotes" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.recordedBy" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.recordedByID" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.siteRef" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.teamSize" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.temperature" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.visibility" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.waterLevel" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.waterTemperature" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.weatherRemarks" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.dwc.event:body.windSpeed" }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.cloudCover", kind: "prop", name: Some("cloudCover") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.completeness", kind: "prop", name: Some("completeness") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.equipmentUsed", kind: "prop", name: Some("equipmentUsed") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.humidity", kind: "prop", name: Some("humidity") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.monitoringFrequency", kind: "prop", name: Some("monitoringFrequency") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.monitoringProgramme", kind: "prop", name: Some("monitoringProgramme") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.moonPhase", kind: "prop", name: Some("moonPhase") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.precipitation", kind: "prop", name: Some("precipitation") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.projectRef", kind: "prop", name: Some("projectRef") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.qualityControlNotes", kind: "prop", name: Some("qualityControlNotes") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.recordedBy", kind: "prop", name: Some("recordedBy") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.recordedByID", kind: "prop", name: Some("recordedByID") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.siteRef", kind: "prop", name: Some("siteRef") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.teamSize", kind: "prop", name: Some("teamSize") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.temperature", kind: "prop", name: Some("temperature") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.visibility", kind: "prop", name: Some("visibility") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.waterLevel", kind: "prop", name: Some("waterLevel") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.waterTemperature", kind: "prop", name: Some("waterTemperature") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.weatherRemarks", kind: "prop", name: Some("weatherRemarks") }
  • AddedEdge AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.windSpeed", kind: "prop", name: Some("windSpeed") }

Migration guidance

Added

  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.cloudCover" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.completeness" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.equipmentUsed" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.humidity" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.monitoringFrequency" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.monitoringProgramme" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.moonPhase" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.precipitation" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.projectRef" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.qualityControlNotes" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.recordedBy" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.recordedByID" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.siteRef" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.teamSize" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.temperature" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.visibility" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.waterLevel" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.waterTemperature" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.weatherRemarks" }
  • AddedVertex { vertex_id: "app.gainforest.dwc.event:body.windSpeed" }

Notes

  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.cloudCover", kind: "prop", name: Some("cloudCover") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.completeness", kind: "prop", name: Some("completeness") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.equipmentUsed", kind: "prop", name: Some("equipmentUsed") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.humidity", kind: "prop", name: Some("humidity") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.monitoringFrequency", kind: "prop", name: Some("monitoringFrequency") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.monitoringProgramme", kind: "prop", name: Some("monitoringProgramme") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.moonPhase", kind: "prop", name: Some("moonPhase") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.precipitation", kind: "prop", name: Some("precipitation") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.projectRef", kind: "prop", name: Some("projectRef") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.qualityControlNotes", kind: "prop", name: Some("qualityControlNotes") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.recordedBy", kind: "prop", name: Some("recordedBy") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.recordedByID", kind: "prop", name: Some("recordedByID") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.siteRef", kind: "prop", name: Some("siteRef") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.teamSize", kind: "prop", name: Some("teamSize") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.temperature", kind: "prop", name: Some("temperature") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.visibility", kind: "prop", name: Some("visibility") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.waterLevel", kind: "prop", name: Some("waterLevel") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.waterTemperature", kind: "prop", name: Some("waterTemperature") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.weatherRemarks", kind: "prop", name: Some("weatherRemarks") }
  • Non-breaking: AddedEdge { src: "app.gainforest.dwc.event:body", tgt: "app.gainforest.dwc.event:body.windSpeed", kind: "prop", name: Some("windSpeed") }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "A sampling or collecting event. Multiple dwc.occurrence records can reference the same event via eventRef, sharing location and protocol metadata.",
66 "key": "tid",
77 "record": {
88 "properties": {
9 "cloudCover": {
10 "description": "Cloud cover percentage.",
11 "maxGraphemes": 16,
12 "type": "string"
13 },
14 "completeness": {
15 "description": "Assessment of survey completeness (e.g., 'complete', 'partial - rain stopped survey', 'incomplete').",
16 "maxGraphemes": 64,
17 "type": "string"
18 },
919 "coordinateUncertaintyInMeters": {
1020 "description": "Uncertainty radius in meters around the coordinates.",
1121 "minimum": 1,
1222 "type": "integer"
1323 },
1424 "country": {
1525 "description": "The name of the country.",
1626 "maxGraphemes": 128,
1727 "type": "string"
1828 },
1929 "countryCode": {
2030 "description": "ISO 3166-1 alpha-2 country code.",
2131 "maxLength": 2,
2232 "minLength": 2,
2333 "type": "string"
2434 },
2535 "county": {
2636 "description": "Second-level administrative division.",
2737 "maxGraphemes": 256,
2838 "type": "string"
2939 },
3040 "createdAt": {
3141 "description": "Timestamp of record creation in the ATProto PDS.",
3242 "format": "datetime",
3343 "type": "string"
3444 },
3545 "decimalLatitude": {
3646 "description": "Geographic latitude in decimal degrees (WGS84). Range: -90 to 90.",
3747 "maxGraphemes": 32,
3848 "type": "string"
3949 },
4050 "decimalLongitude": {
4151 "description": "Geographic longitude in decimal degrees (WGS84). Range: -180 to 180.",
4252 "maxGraphemes": 32,
4353 "type": "string"
4454 },
55 "equipmentUsed": {
56 "description": "Description of equipment used during the event.",
57 "maxGraphemes": 1024,
58 "type": "string"
59 },
4560 "eventDate": {
4661 "description": "The date or date range during which the event occurred. ISO 8601 format (e.g., '2024-03-15', '2024-03-15/2024-03-17').",
4762 "maxGraphemes": 64,
4863 "type": "string"
4964 },
5065 "eventID": {
5166 "description": "An identifier for the event. Should be globally unique or unique within the dataset.",
5267 "maxGraphemes": 256,
5368 "type": "string"
5469 },
5570 "eventRemarks": {
5671 "description": "Comments or notes about the event.",
5772 "maxGraphemes": 5000,
5873 "type": "string"
5974 },
6075 "eventTime": {
6176 "description": "The time or time range during which the event occurred. ISO 8601 format (e.g., '06:30:00', '06:30:00/09:00:00').",
6277 "maxGraphemes": 64,
6378 "type": "string"
6479 },
6580 "fieldNotes": {
6681 "description": "Notes or a reference to notes taken in the field about the event.",
6782 "maxGraphemes": 10000,
6883 "type": "string"
6984 },
7085 "geodeticDatum": {
7186 "description": "The spatial reference system. Recommended: 'EPSG:4326'.",
7287 "maxGraphemes": 64,
7388 "type": "string"
7489 },
7590 "habitat": {
7691 "description": "A category or description of the habitat in which the event occurred (e.g., 'primary tropical rainforest', 'degraded pasture', 'riparian zone').",
7792 "maxGraphemes": 512,
7893 "type": "string"
7994 },
95 "humidity": {
96 "description": "Relative humidity percentage.",
97 "maxGraphemes": 16,
98 "type": "string"
99 },
80100 "locality": {
81101 "description": "Specific locality description.",
82102 "maxGraphemes": 1024,
83103 "type": "string"
84104 },
85105 "locationID": {
86106 "description": "Identifier for the location where the event occurred.",
87107 "maxGraphemes": 256,
88108 "type": "string"
89109 },
90110 "locationRemarks": {
91111 "description": "Comments about the location.",
92112 "maxGraphemes": 2048,
93113 "type": "string"
94114 },
95115 "maximumElevationInMeters": {
96116 "description": "Upper limit of elevation range in meters above sea level.",
97117 "type": "integer"
98118 },
99119 "minimumElevationInMeters": {
100120 "description": "Lower limit of elevation range in meters above sea level.",
101121 "type": "integer"
102122 },
123 "monitoringFrequency": {
124 "description": "How often this type of event recurs (e.g., 'monthly', 'quarterly', 'annual', 'one-time').",
125 "maxGraphemes": 64,
126 "type": "string"
127 },
128 "monitoringProgramme": {
129 "description": "Name of the monitoring programme (e.g., 'Annual Biodiversity Survey 2025').",
130 "maxGraphemes": 256,
131 "type": "string"
132 },
133 "moonPhase": {
134 "description": "Moon phase (relevant for nocturnal surveys).",
135 "maxGraphemes": 32,
136 "type": "string"
137 },
103138 "municipality": {
104139 "description": "Third-level administrative division.",
105140 "maxGraphemes": 256,
106141 "type": "string"
107142 },
108143 "parentEventID": {
109144 "description": "An identifier for the broader event that this event is part of (e.g., a survey campaign that contains multiple transects).",
110145 "maxGraphemes": 256,
111146 "type": "string"
112147 },
113148 "parentEventRef": {
114149 "description": "AT-URI reference to the parent app.gainforest.dwc.event record.",
115150 "format": "at-uri",
116151 "type": "string"
117152 },
153 "precipitation": {
154 "description": "Precipitation description (e.g., 'none', 'light rain', '5mm').",
155 "maxGraphemes": 32,
156 "type": "string"
157 },
158 "projectRef": {
159 "description": "AT-URI reference to the organization info record.",
160 "format": "at-uri",
161 "type": "string"
162 },
163 "qualityControlNotes": {
164 "description": "Notes on data quality issues encountered during or after the event.",
165 "maxGraphemes": 2048,
166 "type": "string"
167 },
168 "recordedBy": {
169 "description": "Person(s) who conducted the event. Pipe-delimited for multiple people (e.g., 'Jane Smith | John Doe').",
170 "maxGraphemes": 512,
171 "type": "string"
172 },
173 "recordedByID": {
174 "description": "ORCID or other persistent identifiers for the recorder(s). Pipe-delimited for multiple IDs.",
175 "maxGraphemes": 512,
176 "type": "string"
177 },
118178 "sampleSizeUnit": {
119179 "description": "The unit of measurement for the sampleSizeValue (e.g., 'square meters', 'hectares', 'trap-nights').",
120180 "maxGraphemes": 128,
121181 "type": "string"
122182 },
123183 "sampleSizeValue": {
124184 "description": "A numeric value for a measurement of the size of a sample in the event (e.g., '20', '0.25').",
125185 "maxGraphemes": 64,
126186 "type": "string"
127187 },
128188 "samplingEffort": {
129189 "description": "The amount of effort expended during the event (e.g., '3 person-hours', '14 trap-nights', '2 km transect walked').",
130190 "maxGraphemes": 256,
131191 "type": "string"
132192 },
133193 "samplingProtocol": {
134194 "description": "The names of, references to, or descriptions of the methods used during the event (e.g., 'camera trap array', 'line transect distance sampling', 'audio point count 10-min').",
135195 "maxGraphemes": 1024,
136196 "type": "string"
137197 },
198 "siteRef": {
199 "description": "AT-URI reference to the organization site record.",
200 "format": "at-uri",
201 "type": "string"
202 },
138203 "stateProvince": {
139204 "description": "First-level administrative division.",
140205 "maxGraphemes": 256,
141206 "type": "string"
207 },
208 "teamSize": {
209 "description": "Number of people involved in the event.",
210 "minimum": 1,
211 "type": "integer"
212 },
213 "temperature": {
214 "description": "Temperature in Celsius during event.",
215 "maxGraphemes": 16,
216 "type": "string"
217 },
218 "visibility": {
219 "description": "Visibility conditions (e.g., 'clear', 'foggy', '10m underwater').",
220 "maxGraphemes": 32,
221 "type": "string"
222 },
223 "waterLevel": {
224 "description": "Water level if aquatic survey (e.g., 'low', '2.3m').",
225 "maxGraphemes": 32,
226 "type": "string"
227 },
228 "waterTemperature": {
229 "description": "Water temperature in Celsius.",
230 "maxGraphemes": 16,
231 "type": "string"
232 },
233 "weatherRemarks": {
234 "description": "General weather description.",
235 "maxGraphemes": 512,
236 "type": "string"
237 },
238 "windSpeed": {
239 "description": "Wind speed during event.",
240 "maxGraphemes": 16,
241 "type": "string"
142242 }
143243 },
144244 "required": [
145245 "eventID",
146246 "eventDate",
147247 "createdAt"
148248 ],
149249 "type": "object"
150250 },
151251 "type": "record"
152252 }
153253 },
154254 "description": "A sampling event record aligned with Darwin Core Event class. Enables star-schema pattern where multiple occurrences reference a shared event context (location, protocol, effort).",
155255 "id": "app.gainforest.dwc.event",
156256 "lexicon": 1
157257}

Compare other versions