Class GBIFTaxonomyReader

java.lang.Object
org.episteme.core.io.AbstractResourceReader<String>
org.episteme.natural.biology.loaders.GBIFTaxonomyReader
All Implemented Interfaces:
ResourceIO<String>, ResourceReader<String>

public class GBIFTaxonomyReader extends AbstractResourceReader<String>
Connector to the Global Biodiversity Information Facility (GBIF) API.

What it does: Provides access to the GBIF taxonomy backbone, allowing search and retrieval of biological species data without storing the massive dataset locally.

Data Source: GBIF (https://www.gbif.org/developer/species)

License: Data is free (CC0 or CC-BY), API is open.

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • GBIFTaxonomyReader

      public GBIFTaxonomyReader()
  • Method Details

    • loadFromSource

      protected String loadFromSource(String resourceId) throws Exception
      Specified by:
      loadFromSource in class AbstractResourceReader<String>
      Throws:
      Exception
    • getResourcePath

      public String getResourcePath()
      Description copied from interface: ResourceIO
      Returns the base path where this resource is located.
    • getResourceType

      public Class<String> getResourceType()
      Description copied from interface: ResourceIO
      Returns the type of resource.
    • getSupportedVersions

      public String[] getSupportedVersions()
      Description copied from interface: ResourceIO
      Returns the supported versions of the format this reader/writer handles.

      Each implementation MUST override this method to declare which versions of the underlying format are supported. The returned array should contain version strings in the format's standard notation (e.g., "3.0", "2.1", "Level 3 Version 2").

      Examples:

      • MathML: {"3.0", "2.0"}
      • SBML: {"Level 3 Version 2", "Level 3 Version 1", "Level 2 Version 5"}
      • PhyloXML: {"1.10", "1.00"}

      Returns:
      array of supported version strings, never null (empty array if version-agnostic)
    • search

      public static String search(String query)
      Searches for species matching the query.
      Parameters:
      query - scientific or common name
      Returns:
      raw JSON response string
      Throws:
      RuntimeException - if connection fails
    • map

      public static <T> T map(String json, Class<T> target)
      Placeholder for future mapping to Biology domain objects.
    • getSpeciesJSON

      public static String getSpeciesJSON(int usageKey)
      Fetches species details by GBIF usage key.
      Parameters:
      usageKey - the unique GBIF identifier
      Returns:
      raw JSON response string
    • getCategory

      public String getCategory()
      Description copied from interface: ResourceIO
      Returns the category for grouping. MUST be implemented with I18N support.
      Returns:
      the category name
    • getName

      public String getName()
      Description copied from interface: ResourceIO
      Returns the display name of this resource handler. MUST be implemented with I18N support.
      Returns:
      the display name
    • getDescription

      public String getDescription()
      Description copied from interface: ResourceIO
      Returns a short description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the description
    • getLongDescription

      public String getLongDescription()
      Description copied from interface: ResourceIO
      Returns a long description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the long description