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