Class IUPACGoldBookReader

java.lang.Object
org.episteme.core.io.AbstractResourceReader<ScientificTerm>
org.episteme.natural.chemistry.loaders.IUPACGoldBookReader
All Implemented Interfaces:
ResourceIO<ScientificTerm>, ResourceReader<ScientificTerm>

public class IUPACGoldBookReader extends AbstractResourceReader<ScientificTerm>
Modernized reader for the IUPAC Gold Book (Compendium of Chemical Terminology).

This reader provides access to standardized chemical definitions and concepts. It integrates with the IUPAC Gold Book autocomplete and term APIs.

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

  • Constructor Details

    • IUPACGoldBookReader

      public IUPACGoldBookReader()
  • Method Details

    • 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
    • getResourcePath

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

      public Class<ScientificTerm> 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)
    • loadFromSource

      protected ScientificTerm loadFromSource(String termCode) throws Exception
      Specified by:
      loadFromSource in class AbstractResourceReader<ScientificTerm>
      Throws:
      Exception
    • search

      public CompletableFuture<List<ScientificTerm>> search(String query)
      Searches for a term in the IUPAC Gold Book.
      Parameters:
      query - the term to search for
      Returns:
      a list of matching scientific terms
    • fetchByCode

      public CompletableFuture<ScientificTerm> fetchByCode(String code)
      Fetches the full definition for a specific Gold Book term code. Note: The Gold Book API is primary for identification; full HTML scraping might be needed for full definitions if not exposed in JSON.