Skip to content

API Design ‐ Resources

regetz edited this page Jan 21, 2025 · 5 revisions

Note: Most VegBank 1.0 examples below trace back to this plot observation.

Strong entities

Plot observations

{
  "authorPlotCode": "027-02-0403",
  "authorObsCode": "027-02-0403",
  "locationAccuracy": "200 m",
  "confidentialityStatus": "exact location",
  "latitude": "32.576586567",
  "longitude": "-81.328065036",
  "authorLocation": "Webb Wildlife Center",
  "StateOrProvince": "South Carolina",
  "Country": "United States",
  "namedPlaces": [
    {`namedPlace`},
    {`namedPlace`}
  ],
  "azimuth": 292,
  "shape": "Rectangular",
  "area": "1000 m²",
  "permanence": "permanent plot",
  "elevation": "10 m",
  "elevationAccuracy": "10 m",
  "slopeAspect": "(n/a, flat)",
  "slopeGradient": "0",
  "topographicPosition": "Low level",
  "landform": "river flat",
  "hydrologicRegime": "Temporarily flooded",
  "observationStartDate": "15-May-1997",
  "observationEndDate": "15-May-1997",
  "dateAccuracy": "exact",
  "project": {`project`},
  "coverMethod": {`coverMethod`},
  "stratumMethod": {`stratumMethod`},
  "stemSizeLimit": "0 cm",
  "methodNarrative": "Carolina Vegetation Survey Standard...",
  "taxonObservationArea": "1000 m²",
  "coverDispersion": "subplot-contiguous",
  "autoTaxonCover": "yes",
  "stemObservationArea": "1000 m²",
  "stemSampleMethod": "Full census",
  "plotValidationLevel": "(2) classification plot: ...",
  "disturbanceObs": [
    {
      "disturbanceType": "...",
      "disturbanceIntensity": "...",
      "disturbanceComment": "...",
    },
  ],
  "soilObs": [
    {
      "soilHorizon": "...",
      "soilTexture": "...",
      "soilDescription": "...",
    },
  ],
  "soilTaxon": [
    {
      "soilName": "...",
      "soilLevel": "...",
      "accessionCode": "...",
    },
  ],
  "plotAccessionCode": "...",
  "obsAccessionCode": "..."
}

VegBank 1.0 example

Named Place

{
  "placeSystem": "region|state|province",
  "placeName": "South Carolina",
  "placeCode": "n-us-sc",
  "reference": {`reference`},
  "accessionCode": "VB.NP.411.SOUTHCAROLINA"
}

VegBank 1.0 example


Plant name

Note: Database table does not have accessionCode?

{
  `tbd`,
}

Community name

Note: Database table does not have accessionCode?

{
  `tbd`,
}

Reference Party

{
  `tbd`,
  "accessionCode": "..."
}

VegBank 1.0 example


Plant Concept

{
  "plantName": "Carya glabra",
  "reference": {`reference`},
  "accessionCode": "urn:lsid:cvs.bio.unc.edu:reference:36538-{7AC65A89-7222-4B0A-A501-F25E17C1BD6F}"
}

VegBank 1.0 example

Additional examples with non-standard characters:


Community concept

{
  "name": "Quercus hemisphaerica - Magnolia grandiflora - Carya pallida / Vaccinium arboreum / Chasmanthium sessiliflorum Forest",
  "reference": {`reference`},
  "description": "This association represents upland forests with diverse overstory composition found in...",
  "accessionCode": "urn:lsid:vegbank.org:commConcept:33565-{6565F58F-E088-4C65-866B-E6C512E078EA}"
}

VegBank 1.0 example

  • Main table: commConcept
  • Join table: commName

Party

{
  `tbd`,
  "accessionCode": "..."
}

VegBank 1.0 example, example2


Reference

{
  "shortName": "NatureServe Biotics 2019",
  "title": "Biotics Database",
  "pubDate": "01-May-2019",
  "publisher": "NatureServe",
  "url": "http://www.natureserve.org/conservation-tools/biotics-5",
  "accessionCode": "urn:lsid:vegbank.org:reference:36553-{79672A9E-3159-4713-B8C2-16F22FD013F4"
}

VegBank 1.0 example


Stratum Method

{
  "stratumMethodName": "Carolina Vegetation Survey",
  "stratumMethodDescription": "Stratum heights are constructed to reflect the vegetation of the plot. Foliage is then...",
  "reference": {`reference`},
  "StratumTypes": [
    {
      "stratumIndex": "E",
      "stratumName": "Emergent",
      "stratumDescription": "Foliage generally greater than 35m high"
    },
    {
      "stratumIndex": "H",
      "stratumName": "Herb",
      "stratumDescription": "Foliage generally less than 0.5m high"
    },
  ],
  "accessionCode": "VB.SM.1.CAROLINAVEGETAT"
}

VegBank 1.0 example


Cover Method

{
  "coverType": "Carolina Vegetation Survey",
  "reference": {`reference`},
  "CoverTypes": [
    {
      "coverCode": 1,
      "lowerLimit": 0,
      "upperLimit": 0.1,
      "coverPercent": 0.05,
      "indexDescription": "trace"
    },
    {
      "coverCode": 2,
      "lowerLimit": 0.1,
      "upperLimit": 1,
      "coverPercent": 0.505,
      "indexDescription": "0-1 percent"
    },
  ],
  "accessionCode": "VB.CM.1.CAROLINAVEGETAT"
}

VegBank 1.0 example


Project

{
  "projectName": "High Calcium coastal plain",
  "projectDescription": "Peet & Wentworth",
  "projectContributors": [
    `projectContributor`,
    `projectContributor`
  ],
  "accessionCode": "urn:lsid:cvs.bio.unc.edu:project:CVS.Pj.CVS-27"
}

VegBank 1.0 example


Weak independent entities

Taxon Observation

Bound to a Plot Observation

{
  "plotObservation": `plotObservation`,
  "authorPlantName": "Carya glabra (P. Mill.) Sweet",
  "reference": `reference`,
  "taxonInferenceArea": "1000 m²",
  "accessionCode": "urn:lsid:cvs.bio.unc.edu:taxonObservation:40468-{62AA9F79-503C-4C11-89EF-74CB35BCACAC}2"
}

VegBank 1.0 example


Community Classification

Bound to a Plot Observation

{
  "plotObservation": `plotObservation`,
  "classStartDate": "10-Jun-2015",
  "inspection": "no",
  "tableAnalysis": "no",
  "multivariateAnalysis": "no",
  "CommunityInterpretations": [
    `CommunityInterpretation`,
    `CommunityInterpretation`
  ],
  "ClassificationContributors": [
    `party`,
    `party`
  ],
  "accessionCode": ""

VegBank 1.0 example


Associative entities

Taxon Interpretation

Bound to both a Plant Concept and a Taxon Observation (and possibly a Stem Location), along with an associated Party and Role (and possibly Reference)

Note: Database table has accessionCode, but it's missing from the ER diagram?

{
  "plotObservation": `plotObservation`,
  "taxonObservation": `taxonObservation`,
  "plantConcept": `plantConcept`,
  "interpretationDate": "01-Oct-2008",
  "Party": `party`,
  "Role": `role`,
  "interpretationType": "Taxonomic revision",
  "originalInterpretation": "no",
  "currentInterpretation": "no",
  "taxonFit": "Good answer",
  "taxonConfidence": "High",
  "notesPublic": "f",
  "notesMgt": "f",
  "revisions": "f",
  "accessionCode": "urn:lsid:cvs.bio.unc.edu:taxonInterpretation:40468-{6AA6BBAD-06D2-4494-9733-E4CAFDA299B0}"

VegBank 1.0 example


Community Interpretation

Bound to both a Community Concept and a Community Classification (and possibly a Reference)

Note: Database table does not have accessionCode?

{
  "communityClassification": `communityClassification`,
  "communityConcept": `communityConcept`,
  "classFit": 4,
  "classConfidence": "",
  "communityAuthorityReference": `reference`,
  "typal": "no"  ## where does this come from??
}

VegBank 1.0: Embedded in Community Classification view?


Classification Contributor

Bound to both a Community Classification and a Party (and possibly a Role)

Note: Database table does not have accessionCode?

{
  `tbd`
}

VegBank 1.0: Embedded in Community Classification view?