app.gainforest.dwc.occurrence
Schema Diff
+18 -3
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
}