app.gainforest.dwc.occurrence

gainforest.earth

Schema Diff

+18 -3

From

CID
bafyreigwisf6fgc...
Indexed At
2026-01-25 01:34 UTC
View this version

To

CID
bafyreie272no7qp...
Indexed At
2026-01-28 09:52 UTC
View this version
1 1
{
2 2
  "id": "app.gainforest.dwc.occurrence",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "basisOfRecord",
11 11
          "scientificName",
12 12
          "eventDate",
13 13
          "createdAt"
14 14
        ],
15 15
        "properties": {
16 16
          "sex": {
17 17
            "enum": [
18 18
              "male",
19 19
              "female",
20 20
              "hermaphrodite"
21 21
            ],
22 22
            "type": "string",
23 23
            "description": "The sex of the biological individual(s).",
24 24
            "maxGraphemes": 64
25 25
          },
26 26
          "class": {
27 27
            "type": "string",
28 28
            "description": "The full scientific name of the class.",
29 29
            "maxGraphemes": 128
30 30
          },
31 31
          "genus": {
32 32
            "type": "string",
33 33
            "description": "The full scientific name of the genus.",
34 34
            "maxGraphemes": 128
35 35
          },
36 36
          "order": {
37 37
            "type": "string",
38 38
            "description": "The full scientific name of the order.",
39 39
            "maxGraphemes": 128
40 40
          },
41 41
          "county": {
42 42
            "type": "string",
43 43
            "description": "The full, unabbreviated name of the next smaller administrative region than stateProvince.",
44 44
            "maxGraphemes": 256
45 45
          },
46 46
          "dcType": {
47 47
            "enum": [
48 48
              "PhysicalObject",
49 49
              "StillImage",
50 50
              "MovingImage",
51 51
              "Sound",
52 52
              "Text",
53 53
              "Event",
54 54
              "Dataset"
55 55
            ],
56 56
            "type": "string",
57 57
            "description": "The Dublin Core type class that best describes the resource (dc:type).",
58 58
            "maxGraphemes": 64
59 59
          },
60 60
          "family": {
61 61
            "type": "string",
62 62
            "description": "The full scientific name of the family.",
63 63
            "maxGraphemes": 128
64 64
          },
65 65
          "phylum": {
66 66
            "type": "string",
67 67
            "description": "The full scientific name of the phylum or division.",
68 68
            "maxGraphemes": 128
69 69
          },
70 70
          "country": {
71 71
            "type": "string",
72 72
            "description": "The name of the country or major administrative unit.",
73 73
            "maxGraphemes": 128
74 74
          },
75 75
          "eventID": {
76 76
            "type": "string",
77 77
            "description": "Identifier for the sampling event. Can be used to group occurrences from the same event.",
78 78
            "maxGraphemes": 256
79 79
          },
80 80
          "habitat": {
81 81
            "type": "string",
82 82
            "description": "A description of the habitat in which the event occurred (e.g., 'tropical rainforest', 'mangrove swamp', 'montane cloud forest').",
83 83
            "maxGraphemes": 512
84 84
          },
85 85
          "kingdom": {
86 86
            "type": "string",
87 87
            "description": "The full scientific name of the kingdom (e.g., 'Animalia', 'Plantae', 'Fungi').",
88 88
            "maxGraphemes": 128
89 89
          },
90 90
          "license": {
91 91
            "type": "string",
92 92
            "description": "A legal document giving official permission to do something with the record. Recommended: a Creative Commons URI (e.g., 'http://creativecommons.org/licenses/by/4.0/').",
93 93
            "maxGraphemes": 512
94 94
          },
95 95
          "behavior": {
96 96
            "type": "string",
97 97
            "description": "The behavior shown by the subject at the time of occurrence (e.g., 'foraging', 'nesting', 'roosting').",
98 98
            "maxGraphemes": 256
99 99
          },
100 100
          "eventRef": {
101 101
            "type": "string",
102 102
            "format": "at-uri",
103 103
            "description": "AT-URI reference to an app.gainforest.dwc.event record (for star-schema linkage)."
104 104
          },
105 105
          "locality": {
106 106
            "type": "string",
107 107
            "description": "The specific description of the place (e.g., '500m upstream of bridge on Rio ParĂ¡').",
108 108
            "maxGraphemes": 1024
109 109
          },
110 110
          "createdAt": {
111 111
            "type": "string",
112 112
            "format": "datetime",
113 113
            "description": "Timestamp of record creation in the ATProto PDS."
114 114
          },
115 115
          "eventDate": {
116 116
            "type": "string",
117 117
            "description": "The date or date-time (or interval) during which the occurrence was recorded. ISO 8601 format (e.g., '2024-03-15', '2024-03-15T10:30:00Z', '2024-03/2024-06').",
118 118
            "maxGraphemes": 64
119 119
          },
120 120
          "eventTime": {
121 121
            "type": "string",
122 122
            "description": "The time of the event. ISO 8601 format (e.g., '14:30:00', '14:30:00+02:00').",
123 123
            "maxGraphemes": 64
124 124
          },
125 125
          "lifeStage": {
126 126
            "type": "string",
127 127
            "description": "The age class or life stage at the time of occurrence (e.g., 'adult', 'juvenile', 'larva', 'seedling', 'sapling').",
128 128
            "maxGraphemes": 128
129 129
          },
130 130
          "taxonRank": {
131 131
            "enum": [
132 132
              "kingdom",
133 133
              "phylum",
134 134
              "class",
135 135
              "order",
136 136
              "family",
137 137
              "subfamily",
138 138
              "genus",
139 139
              "subgenus",
140 140
              "species",
141 141
              "subspecies",
142 142
              "variety",
143 143
              "form"
144 144
            ],
145 145
            "type": "string",
146 146
            "description": "The taxonomic rank of the most specific name in scientificName.",
147 147
            "maxGraphemes": 64
148 148
          },
149 149
          "fieldNotes": {
150 150
            "type": "string",
151 151
            "description": "Notes or reference to notes taken in the field about the event.",
152 152
            "maxGraphemes": 10000
153 153
          },
154 154
          "locationID": {
155 155
            "type": "string",
156 156
            "description": "Identifier for the location (e.g., a reference to a named site).",
157 157
            "maxGraphemes": 256
158 158
          },
159 159
          "recordedBy": {
160 160
            "type": "string",
161 161
            "description": "Person(s) responsible for recording the occurrence in the field. Pipe-delimited for multiple (e.g., 'Jane Smith | John Doe').",
162 162
            "maxGraphemes": 512
163 163
          },
164 164
          "references": {
165 165
            "type": "string",
166 166
            "format": "uri",
167 167
            "description": "A related resource that is referenced, cited, or otherwise pointed to by the record (URL)."
168 168
          },
169 169
          "countryCode": {
170 170
            "type": "string",
171 171
            "maxLength": 2,
172 172
            "minLength": 2,
173 173
            "description": "The standard code for the country (ISO 3166-1 alpha-2)."
174 174
          },
175 175
          "datasetName": {
176 176
            "type": "string",
177 177
            "description": "The name identifying the dataset from which the record was derived.",
178 178
            "maxGraphemes": 256
179 179
          },
180 180
          "gbifTaxonKey": {
181 181
            "type": "string",
182 182
            "description": "GBIF backbone taxonomy key for the identified taxon. Retained for backward compatibility with existing GainForest workflows.",
183 183
            "maxGraphemes": 64
184 184
          },
185 185
          "identifiedBy": {
186 186
            "type": "string",
187 187
            "description": "Person(s) who assigned the taxon to the occurrence. Pipe-delimited for multiple.",
188 188
            "maxGraphemes": 512
189 189
          },
190 190
          "municipality": {
191 191
            "type": "string",
192 192
            "description": "The full, unabbreviated name of the next smaller administrative region than county.",
193 193
            "maxGraphemes": 256
194 194
          },
195 195
          "occurrenceID": {
196 196
            "type": "string",
197 197
            "description": "A globally unique identifier for the occurrence record. Recommended: a persistent URI (e.g., DOI, LSID, or UUID-based URI).",
198 198
            "maxGraphemes": 256
199 199
          },
200 200
          "recordedByID": {
201 201
            "type": "string",
202 202
            "description": "Persistent identifier(s) (e.g., ORCID) of the person(s) who recorded. Pipe-delimited for multiple.",
203 203
            "maxGraphemes": 512
204 204
          },
205 205
          "rightsHolder": {
206 206
            "type": "string",
207 207
            "description": "Person or organization owning or managing rights over the resource.",
208 208
            "maxGraphemes": 256
209 209
          },
210 +
          "audioEvidence": {
211 +
            "ref": "app.gainforest.common.defs#audio",
212 +
            "type": "ref",
213 +
            "description": "Audio evidence (bioacoustics, soundscape, species call, field recording, etc.)."
214 +
          },
210 215
          "basisOfRecord": {
211 216
            "enum": [
212 217
              "HumanObservation",
213 218
              "MachineObservation",
214 219
              "PreservedSpecimen",
215 220
              "LivingSpecimen",
216 221
              "FossilSpecimen",
217 222
              "MaterialSample",
218 223
              "MaterialEntity",
219 224
              "MaterialCitation"
220 225
            ],
221 226
            "type": "string",
222 227
            "description": "The specific nature of the data record. Must be one of the Darwin Core class names.",
223 228
            "maxGraphemes": 64
224 229
          },
225 230
          "geodeticDatum": {
226 231
            "type": "string",
227 232
            "description": "The spatial reference system for the coordinates. Recommended: 'EPSG:4326' (WGS84).",
228 233
            "maxGraphemes": 64
229 234
          },
230 -
          "mediaEvidence": {
231 -
            "ref": "app.gainforest.common.defs#smallImage",
235 +
          "imageEvidence": {
236 +
            "ref": "app.gainforest.common.defs#image",
232 237
            "type": "ref",
233 -
            "description": "Direct image evidence uploaded as ATProto blob (photo of organism, camera trap image, etc.)."
238 +
            "description": "Image evidence (photo, camera trap, drone still, scanned specimen, etc.)."
234 239
          },
235 240
          "stateProvince": {
236 241
            "type": "string",
237 242
            "description": "The name of the next smaller administrative region than country.",
238 243
            "maxGraphemes": 256
239 244
          },
245 +
          "videoEvidence": {
246 +
            "ref": "app.gainforest.common.defs#video",
247 +
            "type": "ref",
248 +
            "description": "Video evidence (camera trap, drone footage, underwater video, behavioral observation, etc.)."
249 +
          },
240 250
          "collectionCode": {
241 251
            "type": "string",
242 252
            "description": "The name, acronym, or code identifying the collection or dataset from which the record was derived.",
243 253
            "maxGraphemes": 256
244 254
          },
245 255
          "dateIdentified": {
246 256
            "type": "string",
247 257
            "description": "The date on which the identification was made. ISO 8601 format.",
248 258
            "maxGraphemes": 64
249 259
          },
250 260
          "identifiedByID": {
251 261
            "type": "string",
252 262
            "description": "Persistent identifier(s) (e.g., ORCID) of the person(s) who identified. Pipe-delimited.",
253 263
            "maxGraphemes": 512
254 264
          },
255 265
          "samplingEffort": {
256 266
            "type": "string",
257 267
            "description": "The amount of effort expended during the event (e.g., '2 trap-nights', '30 minutes', '10 km transect').",
258 268
            "maxGraphemes": 256
259 269
          },
260 270
          "scientificName": {
261 271
            "type": "string",
262 272
            "description": "The full scientific name, with authorship and date if known (e.g., 'Centropyge flavicauda Fraser-Brunner 1933').",
263 273
            "maxGraphemes": 512
264 274
          },
265 275
          "vernacularName": {
266 276
            "type": "string",
267 277
            "description": "A common or vernacular name for the taxon.",
268 278
            "maxGraphemes": 256
269 279
          },
270 280
          "associatedMedia": {
271 281
            "type": "string",
272 282
            "description": "Identifiers (URIs) of media associated with the occurrence. Pipe-delimited for multiple.",
273 283
            "maxGraphemes": 2048
274 284
          },
275 285
          "decimalLatitude": {
276 286
            "type": "string",
277 287
            "description": "Geographic latitude in decimal degrees (WGS84). Positive values are north of the Equator. Range: -90 to 90.",
278 288
            "maxGraphemes": 32
279 289
          },
280 290
          "individualCount": {
281 291
            "type": "integer",
282 292
            "minimum": 0,
283 293
            "description": "The number of individuals present at the time of the occurrence."
284 294
          },
285 295
          "institutionCode": {
286 296
            "type": "string",
287 297
            "description": "The name or acronym of the institution having custody of the object(s) or information in the record.",
288 298
            "maxGraphemes": 256
289 299
          },
290 300
          "locationRemarks": {
291 301
            "type": "string",
292 302
            "description": "Comments about the location.",
293 303
            "maxGraphemes": 2048
294 304
          },
295 305
          "specificEpithet": {
296 306
            "type": "string",
297 307
            "description": "The name of the species epithet of the scientificName.",
298 308
            "maxGraphemes": 128
299 309
          },
300 310
          "taxonomicStatus": {
301 311
            "type": "string",
302 312
            "description": "The status of the use of the scientificName (e.g., 'accepted', 'synonym', 'doubtful').",
303 313
            "maxGraphemes": 64
304 314
          },
305 315
          "decimalLongitude": {
306 316
            "type": "string",
307 317
            "description": "Geographic longitude in decimal degrees (WGS84). Positive values are east of the Greenwich Meridian. Range: -180 to 180.",
308 318
            "maxGraphemes": 32
309 319
          },
310 320
          "occurrenceStatus": {
311 321
            "enum": [
312 322
              "present",
313 323
              "absent"
314 324
            ],
315 325
            "type": "string",
316 326
            "description": "Statement about the presence or absence of a taxon at a location.",
317 327
            "maxGraphemes": 64
318 328
          },
319 329
          "organismQuantity": {
320 330
            "type": "string",
321 331
            "description": "A number or enumeration value for the quantity of organisms (e.g., '27', '12.5', 'many').",
322 332
            "maxGraphemes": 64
323 333
          },
324 334
          "samplingProtocol": {
325 335
            "type": "string",
326 336
            "description": "The method or protocol used during the event (e.g., 'camera trap', 'point count', 'mist net', '20m x 20m plot survey', 'acoustic monitoring').",
327 337
            "maxGraphemes": 1024
328 338
          },
329 339
          "verbatimLocality": {
330 340
            "type": "string",
331 341
            "description": "The original textual description of the place as provided by the recorder.",
332 342
            "maxGraphemes": 1024
333 343
          },
334 344
          "dynamicProperties": {
335 345
            "type": "string",
336 346
            "description": "Additional structured data as a valid JSON string (per Simple DwC Section 7.1). Example: '{\"iucnStatus\":\"vulnerable\",\"canopyCover\":\"85%\"}'. Should be flattened to a single line with no non-printing characters.",
337 347
            "maxGraphemes": 10000
338 348
          },
339 349
          "nomenclaturalCode": {
340 350
            "enum": [
341 351
              "ICZN",
342 352
              "ICN",
343 353
              "ICNP",
344 354
              "ICTV",
345 355
              "BioCode"
346 356
            ],
347 357
            "type": "string",
348 358
            "description": "The nomenclatural code under which the scientificName is constructed.",
349 359
            "maxGraphemes": 64
350 360
          },
351 361
          "occurrenceRemarks": {
352 362
            "type": "string",
353 363
            "description": "Comments or notes about the occurrence.",
354 364
            "maxGraphemes": 5000
355 365
          },
356 366
          "associatedSequences": {
357 367
            "type": "string",
358 368
            "description": "Identifiers (URIs) of genetic sequence information associated with the occurrence. Pipe-delimited for multiple.",
359 369
            "maxGraphemes": 2048
360 370
          },
361 371
          "dataGeneralizations": {
362 372
            "type": "string",
363 373
            "description": "A description of actions taken to make the data less specific or complete (e.g., 'coordinates rounded to nearest 0.1 degree').",
364 374
            "maxGraphemes": 1024
365 375
          },
366 376
          "informationWithheld": {
367 377
            "type": "string",
368 378
            "description": "A description of what information is withheld from this record and why (e.g., 'coordinates generalized to protect endangered species').",
369 379
            "maxGraphemes": 1024
370 380
          },
381 +
          "spectrogramEvidence": {
382 +
            "ref": "app.gainforest.common.defs#spectrogram",
383 +
            "type": "ref",
384 +
            "description": "Spectrogram image showing frequency analysis of audio recording."
385 +
          },
371 386
          "associatedReferences": {
372 387
            "type": "string",
373 388
            "description": "Identifiers (URIs) of literature associated with the occurrence. Pipe-delimited for multiple.",
374 389
            "maxGraphemes": 2048
375 390
          },
376 391
          "higherClassification": {
377 392
            "type": "string",
378 393
            "description": "A complete list of taxa names terminating at the rank immediately superior to the taxon. Pipe-delimited (e.g., 'Animalia|Chordata|Mammalia|Rodentia|Ctenomyidae|Ctenomys').",
379 394
            "maxGraphemes": 1024
380 395
          },
381 396
          "infraspecificEpithet": {
382 397
            "type": "string",
383 398
            "description": "The name of the lowest or terminal infraspecific epithet.",
384 399
            "maxGraphemes": 128
385 400
          },
386 401
          "maximumDepthInMeters": {
387 402
            "type": "integer",
388 403
            "minimum": 0,
389 404
            "description": "The greater depth of a range of depth below the local surface (in meters)."
390 405
          },
391 406
          "minimumDepthInMeters": {
392 407
            "type": "integer",
393 408
            "minimum": 0,
394 409
            "description": "The lesser depth of a range of depth below the local surface (in meters)."
395 410
          },
396 411
          "organismQuantityType": {
397 412
            "type": "string",
398 413
            "description": "The type of quantification system used for organismQuantity (e.g., 'individuals', '% biomass', 'stems/ha').",
399 414
            "maxGraphemes": 128
400 415
          },
401 416
          "associatedOccurrences": {
402 417
            "type": "string",
403 418
            "description": "Identifiers of other occurrences associated with this one (e.g., parasite-host). Pipe-delimited.",
404 419
            "maxGraphemes": 2048
405 420
          },
406 421
          "identificationRemarks": {
407 422
            "type": "string",
408 423
            "description": "Comments or notes about the identification.",
409 424
            "maxGraphemes": 2048
410 425
          },
411 426
          "reproductiveCondition": {
412 427
            "type": "string",
413 428
            "description": "The reproductive condition at the time of occurrence (e.g., 'flowering', 'fruiting', 'budding', 'pregnant').",
414 429
            "maxGraphemes": 128
415 430
          },
416 431
          "identificationQualifier": {
417 432
            "type": "string",
418 433
            "description": "A brief phrase or standard term qualifying the identification (e.g., 'cf. agrestis', 'aff. agrestis').",
419 434
            "maxGraphemes": 256
420 435
          },
421 436
          "previousIdentifications": {
422 437
            "type": "string",
423 438
            "description": "Previous assignments of names to the occurrence. Pipe-delimited.",
424 439
            "maxGraphemes": 2048
425 440
          },
426 441
          "maximumElevationInMeters": {
427 442
            "type": "integer",
428 443
            "description": "The upper limit of the range of elevation (in meters above sea level)."
429 444
          },
430 445
          "minimumElevationInMeters": {
431 446
            "type": "integer",
432 447
            "description": "The lower limit of the range of elevation (in meters above sea level)."
433 448
          },
434 449
          "scientificNameAuthorship": {
435 450
            "type": "string",
436 451
            "description": "The authorship information for the scientific name (e.g., 'Fraser-Brunner 1933').",
437 452
            "maxGraphemes": 256
438 453
          },
439 454
          "coordinateUncertaintyInMeters": {
440 455
            "type": "integer",
441 456
            "minimum": 1,
442 457
            "description": "Horizontal distance (meters) from the given coordinates describing the smallest circle containing the whole location."
443 458
          }
444 459
        }
445 460
      },
446 461
      "description": "A biodiversity occurrence record following the Simple Darwin Core standard. Each record represents one occurrence of an organism at a location and time."
447 462
    }
448 463
  },
449 464
  "$type": "com.atproto.lexicon.schema",
450 465
  "lexicon": 1,
451 466
  "description": "A single biodiversity occurrence record aligned with Simple Darwin Core (TDWG Standard 450, version 2023-09-13). Represents one organism or group of organisms at a particular place and time."
452 467
}

Compare Other Versions

Lexicon Garden

@