app.gainforest.dwc.occurrence

gainforest.earth

Schema Diff

+50 -0

From

CID
bafyreie272no7qp...
Indexed At
2026-02-18 18:05 UTC
View this version

To

CID
bafyreic6ssyzvul...
Indexed At
2026-04-29 14:28 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@