UNPKG

lipdjs

Version:

A JavaScript library for reading and writing LiPD (Linked Paleo Data) files

27,136 lines 890 kB
// src/lipd.ts
import { Writer as Writer2 } from "n3";
import * as fs4 from "fs";
import * as path4 from "path";
import JSZip2 from "jszip";

// src/utils/env.ts
function isBrowser() {
  return typeof window !== "undefined";
}

// src/utils/logger.ts
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
  LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
  LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
  LogLevel2[LogLevel2["WARN"] = 2] = "WARN";
  LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR";
  return LogLevel2;
})(LogLevel || {});
var Logger = class _Logger {
  /**
   * Private constructor to enforce singleton pattern
   */
  constructor() {
    this.outputChannel = null;
    this.logLevel = 1 /* INFO */;
  }
  /**
   * Get the singleton instance of Logger
   */
  static getInstance() {
    if (!_Logger.instance) {
      _Logger.instance = new _Logger();
    }
    return _Logger.instance;
  }
  /**
   * Initialize the logger with an output channel
   * @param channel VS Code output channel
   * @param level Initial log level
   */
  initialize(channel = null, level = 1 /* INFO */) {
    this.outputChannel = channel;
    this.logLevel = level;
  }
  /**
   * Set the current log level
   * @param level Log level to set
   */
  setLogLevel(level) {
    this.logLevel = level;
  }
  /**
   * Get the current log level
   * @returns Current log level
   */
  getLogLevel() {
    return this.logLevel;
  }
  /**
   * Log a debug message
   * @param message Message to log
   * @param args Additional arguments for formatting
   */
  debug(message, ...args) {
    if (this.logLevel <= 0 /* DEBUG */) {
      this.log("DEBUG", message, ...args);
    }
  }
  /**
   * Log an info message
   * @param message Message to log
   * @param args Additional arguments for formatting
   */
  info(message, ...args) {
    if (this.logLevel <= 1 /* INFO */) {
      this.log("INFO", message, ...args);
    }
  }
  /**
   * Log a warning message
   * @param message Message to log
   * @param args Additional arguments for formatting
   */
  warn(message, ...args) {
    if (this.logLevel <= 2 /* WARN */) {
      this.log("WARN", message, ...args);
    }
  }
  /**
   * Log an error message
   * @param message Message to log
   * @param args Additional arguments for formatting
   */
  error(message, ...args) {
    if (this.logLevel <= 3 /* ERROR */) {
      this.log("ERROR", message, ...args);
    }
  }
  /**
   * Show the output channel
   */
  show() {
    this.outputChannel?.show(true);
  }
  /**
   * Internal log method
   * @param level Log level as string
   * @param message Message to log
   * @param args Additional arguments for formatting
   */
  log(level, message, ...args) {
    const timestamp = (/* @__PURE__ */ new Date()).toISOString();
    let formattedMessage = `[${timestamp}] [${level}] ${message}`;
    if (args.length > 0) {
      formattedMessage = this.formatMessage(formattedMessage, ...args);
    }
    if (this.outputChannel) {
      this.outputChannel.appendLine(formattedMessage);
    } else {
      switch (level) {
        case "DEBUG":
          console.debug(formattedMessage);
          break;
        case "INFO":
          console.info(formattedMessage);
          break;
        case "WARN":
          console.warn(formattedMessage);
          break;
        case "ERROR":
          console.error(formattedMessage);
          break;
        default:
          console.log(formattedMessage);
      }
    }
  }
  /**
   * Format a message with arguments (simple printf-like format)
   * @param message Base message with placeholders
   * @param args Arguments to insert
   * @returns Formatted message
   */
  formatMessage(message, ...args) {
    let formatted = message;
    let i = 0;
    return formatted.replace(/%s|%d|%f|%j/g, (match) => {
      if (i >= args.length) {
        return match;
      }
      const arg = args[i++];
      switch (match) {
        case "%s":
          return String(arg);
        case "%d":
          return Number(arg).toString();
        case "%f":
          return parseFloat(arg).toString();
        case "%j":
          return JSON.stringify(arg);
        default:
          return match;
      }
    });
  }
};

// src/globals/urls.ts
var NSURL = "http://linked.earth/lipd";
var ONTONS = "http://linked.earth/ontology#";
var DATAURL = "https://data.mint.isi.edu/files/lipd";
var ARCHIVEURL = "http://linked.earth/ontology/archive";
var PROXYURL = "http://linked.earth/ontology/proxy";
var UNITSURL = "http://linked.earth/ontology/units";
var VARIABLEURL = "http://linked.earth/ontology/variables";
var DEFAULT_GRAPH_URI = "http://www.openrdf.org/schema/sesame#nil";
var NAMESPACES = {
  "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
  "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
  "xsd": "http://www.w3.org/2001/XMLSchema#",
  "owl": "http://www.w3.org/2002/07/owl#",
  "wgs84": "http://www.w3.org/2003/01/geo/wgs84_pos#",
  "le_archive": ARCHIVEURL,
  "le_proxy": PROXYURL,
  "le_units": UNITSURL,
  "le_variables": VARIABLEURL
};

// src/rdfGraph.ts
import { Store } from "n3";
import { QueryEngine } from "@comunica/query-sparql";
var logger = Logger.getInstance();
var RDFGraph = class _RDFGraph {
  constructor(store, quiet = false, endpoint, auth) {
    this.store = store || new Store();
    this.quiet = quiet;
    this.endpoint = endpoint;
    this.remote = false;
    this.engine = new QueryEngine();
    this.auth = auth;
  }
  /**
   * Set authentication credentials for SPARQL endpoint
   * @param auth Authentication credentials containing username and password
   */
  setAuth(auth) {
    this.auth = auth;
  }
  /**
   * Clear authentication credentials
   */
  clearAuth() {
    this.auth = void 0;
  }
  /**
   * Execute a SPARQL query
   * @param queryStr SPARQL query string
   * @returns Array containing results and raw dataframe
   */
  async query(queryStr) {
    try {
      logger.debug("Query: " + queryStr);
      const bindingsStream = await this.engine.queryBindings(queryStr, this.getConfiguration());
      const bindings = await bindingsStream.toArray();
      const results = bindings.map((binding) => {
        const result = {};
        for (const variable of binding.keys()) {
          const term = binding.get(variable);
          if (term) {
            result[variable.value] = term;
          }
        }
        return result;
      });
      return [results, bindings];
    } catch (error) {
      logger.error("Error executing query: " + error);
      throw error;
    }
  }
  /**
   * Execute a SPARQL ASK query
   * @param queryStr SPARQL ASK query string
   * @returns Boolean result of the ASK query
   */
  async askQuery(queryStr) {
    try {
      logger.debug("ASK Query: " + queryStr);
      return await this.engine.queryBoolean(queryStr, this.getConfiguration());
    } catch (error) {
      logger.error("Error executing ASK query: " + error);
      throw error;
    }
  }
  /**
   * Execute a SPARQL Update query
   * @param queryStr SPARQL Update query string
   * @returns Boolean result of the Update query
   */
  async updateQuery(queryStr) {
    try {
      logger.debug("Update Query: " + queryStr);
      if (!this.remote || !this.endpoint) {
        throw new Error("Remote endpoint must be set for update operations");
      }
      const updateEndpoint = this.endpoint.replace(/\/repositories\/([^/]+)$/, "/repositories/$1/statements");
      console.log(`Using update endpoint: ${updateEndpoint}`);
      const headers = {
        "Content-Type": "application/sparql-update",
        "Accept": "application/json"
      };
      if (this.auth) {
        const authString = Buffer.from(`${this.auth.username}:${this.auth.password}`).toString("base64");
        headers["Authorization"] = `Basic ${authString}`;
      }
      const response = await fetch(updateEndpoint, {
        method: "POST",
        headers,
        body: queryStr
      });
      if (!response.ok) {
        const errorText = await response.text();
        throw new Error(`Error from update endpoint (${response.status}): ${errorText}`);
      }
      logger.debug("Update successful");
    } catch (error) {
      logger.error("Error executing Update query: " + error);
      throw error;
    }
  }
  /**
   * Get the source configuration for queries
   * @returns Array containing the store configuration
   * @private
   */
  getConfiguration(endpoint) {
    let source;
    if (!endpoint) {
      endpoint = this.endpoint;
    }
    if (this.remote && endpoint) {
      source = {
        type: "sparql",
        value: endpoint
      };
    } else {
      source = this.store;
    }
    let configuration = {
      sources: [source]
    };
    if (this.remote && endpoint && this.auth && this.auth.username) {
      configuration.httpAuth = `${this.auth.username}:${this.auth.password}`;
    }
    return configuration;
  }
  getStore() {
    return this.store;
  }
  /**
   * Get id(s) from the graph and returns a new RDFGraph object
   * @param ids Graph id(s) to get
   * @returns RDFGraph object with the retrieved graph(s)
   */
  get(ids) {
    const newStore = new Store();
    const idList = Array.isArray(ids) ? ids : [ids];
    const quads = this.store.getQuads(null, null, null, null);
    for (const quad of quads) {
      if (quad.graph && idList.includes(quad.graph.value)) {
        newStore.addQuad(quad);
      }
    }
    return new _RDFGraph(newStore, this.quiet, this.endpoint, this.auth);
  }
  /**
   * Removes id(s) from the graph
   * @param ids Graph id(s) to be removed
   */
  remove(ids) {
    const idList = Array.isArray(ids) ? ids : [ids];
    const quads = this.store.getQuads(null, null, null, null);
    for (const quad of quads) {
      if (quad.graph && idList.includes(quad.graph.value)) {
        this.store.removeQuad(quad);
      }
    }
  }
  /**
   * Pops graph(s) from the combined graph and returns the popped RDF Graph
   * @param ids Graph id(s) to be popped
   * @returns RDFGraph object with the popped graph(s)
   */
  pop(ids) {
    const popped = this.get(ids);
    this.remove(ids);
    return popped;
  }
  /**
   * Sets a SPARQL endpoint for a remote Knowledge Base (example: GraphDB)
   * @param endpoint URL for the SPARQL endpoint
   * 
   * @example
   * ```typescript
   * // Fetch LiPD data from remote RDF Graph
   * const rdf = new RDFGraph();
   * rdf.setEndpoint("https://linkedearth.graphdb.mint.isi.edu/repositories/LiPDVerse-dynamic");
   * rdf.setRemote(true);
   * const [result, resultDf] = await rdf.query("SELECT ?s ?p ?o WHERE {?s ?p ?o} LIMIT 10");
   * ```
   */
  setEndpoint(endpoint) {
    this.endpoint = endpoint;
  }
  getEndpoint() {
    return this.endpoint;
  }
  setRemote(remote) {
    this.remote = remote;
  }
  getRemote() {
    return this.remote;
  }
};

// src/utils/rdfToLipd.ts
import { DataFactory } from "n3";
import * as fs2 from "fs";
import * as path2 from "path";
import AdmZip from "adm-zip";

// src/globals/synonyms.ts
var SYNONYMS = {
  "ARCHIVES": {
    "ArchiveType": {
      "borehole": {
        "id": "http://linked.earth/ontology/archive#Borehole",
        "label": "Borehole"
      },
      "coral": {
        "id": "http://linked.earth/ontology/archive#Coral",
        "label": "Coral"
      },
      "fluvial sediment": {
        "id": "http://linked.earth/ontology/archive#FluvialSediment",
        "label": "Fluvial sediment"
      },
      "fluvialsediment": {
        "id": "http://linked.earth/ontology/archive#FluvialSediment",
        "label": "Fluvial sediment"
      },
      "creek": {
        "id": "http://linked.earth/ontology/archive#FluvialSediment",
        "label": "Fluvial sediment"
      },
      "fluvial": {
        "id": "http://linked.earth/ontology/archive#FluvialSediment",
        "label": "Fluvial sediment"
      },
      "river": {
        "id": "http://linked.earth/ontology/archive#FluvialSediment",
        "label": "Fluvial sediment"
      },
      "stream": {
        "id": "http://linked.earth/ontology/archive#FluvialSediment",
        "label": "Fluvial sediment"
      },
      "glacier ice": {
        "id": "http://linked.earth/ontology/archive#GlacierIce",
        "label": "Glacier ice"
      },
      "glacierice": {
        "id": "http://linked.earth/ontology/archive#GlacierIce",
        "label": "Glacier ice"
      },
      "ice cores": {
        "id": "http://linked.earth/ontology/archive#GlacierIce",
        "label": "Glacier ice"
      },
      "ground ice": {
        "id": "http://linked.earth/ontology/archive#GroundIce",
        "label": "Ground ice"
      },
      "groundice": {
        "id": "http://linked.earth/ontology/archive#GroundIce",
        "label": "Ground ice"
      },
      "bulk ice": {
        "id": "http://linked.earth/ontology/archive#GroundIce",
        "label": "Ground ice"
      },
      "lake sediment": {
        "id": "http://linked.earth/ontology/archive#LakeSediment",
        "label": "Lake sediment"
      },
      "lakesediment": {
        "id": "http://linked.earth/ontology/archive#LakeSediment",
        "label": "Lake sediment"
      },
      "lagoon": {
        "id": "http://linked.earth/ontology/archive#LakeSediment",
        "label": "Lake sediment"
      },
      "lake": {
        "id": "http://linked.earth/ontology/archive#LakeSediment",
        "label": "Lake sediment"
      },
      "marine sediment": {
        "id": "http://linked.earth/ontology/archive#MarineSediment",
        "label": "Marine sediment"
      },
      "marinesediment": {
        "id": "http://linked.earth/ontology/archive#MarineSediment",
        "label": "Marine sediment"
      },
      "delta": {
        "id": "http://linked.earth/ontology/archive#MarineSediment",
        "label": "Marine sediment"
      },
      "marine": {
        "id": "http://linked.earth/ontology/archive#MarineSediment",
        "label": "Marine sediment"
      },
      "midden": {
        "id": "http://linked.earth/ontology/archive#Midden",
        "label": "Midden"
      },
      "mollusk shell": {
        "id": "http://linked.earth/ontology/archive#MolluskShell",
        "label": "Mollusk shell"
      },
      "molluskshell": {
        "id": "http://linked.earth/ontology/archive#MolluskShell",
        "label": "Mollusk shell"
      },
      "bivalve": {
        "id": "http://linked.earth/ontology/archive#MolluskShell",
        "label": "Mollusk shell"
      },
      "molluskshells": {
        "id": "http://linked.earth/ontology/archive#MolluskShell",
        "label": "Mollusk shell"
      },
      "peat": {
        "id": "http://linked.earth/ontology/archive#Peat",
        "label": "Peat"
      },
      "bog": {
        "id": "http://linked.earth/ontology/archive#Peat",
        "label": "Peat"
      },
      "fen": {
        "id": "http://linked.earth/ontology/archive#Peat",
        "label": "Peat"
      },
      "marsh": {
        "id": "http://linked.earth/ontology/archive#Peat",
        "label": "Peat"
      },
      "mire": {
        "id": "http://linked.earth/ontology/archive#Peat",
        "label": "Peat"
      },
      "swamp": {
        "id": "http://linked.earth/ontology/archive#Peat",
        "label": "Peat"
      },
      "sclerosponge": {
        "id": "http://linked.earth/ontology/archive#Sclerosponge",
        "label": "Sclerosponge"
      },
      "shoreline": {
        "id": "http://linked.earth/ontology/archive#Shoreline",
        "label": "Shoreline"
      },
      "lake levels": {
        "id": "http://linked.earth/ontology/archive#Shoreline",
        "label": "Shoreline"
      },
      "lakedeposit": {
        "id": "http://linked.earth/ontology/archive#Shoreline",
        "label": "Shoreline"
      },
      "lakedeposits": {
        "id": "http://linked.earth/ontology/archive#Shoreline",
        "label": "Shoreline"
      },
      "speleothem": {
        "id": "http://linked.earth/ontology/archive#Speleothem",
        "label": "Speleothem"
      },
      "speleothems": {
        "id": "http://linked.earth/ontology/archive#Speleothem",
        "label": "Speleothem"
      },
      "cave": {
        "id": "http://linked.earth/ontology/archive#Speleothem",
        "label": "Speleothem"
      },
      "terrestrial sediment": {
        "id": "http://linked.earth/ontology/archive#TerrestrialSediment",
        "label": "Terrestrial sediment"
      },
      "terrestrialsediment": {
        "id": "http://linked.earth/ontology/archive#TerrestrialSediment",
        "label": "Terrestrial sediment"
      },
      "dune": {
        "id": "http://linked.earth/ontology/archive#TerrestrialSediment",
        "label": "Terrestrial sediment"
      },
      "loess": {
        "id": "http://linked.earth/ontology/archive#TerrestrialSediment",
        "label": "Terrestrial sediment"
      },
      "wood": {
        "id": "http://linked.earth/ontology/archive#Wood",
        "label": "Wood"
      },
      "tree ring": {
        "id": "http://linked.earth/ontology/archive#Wood",
        "label": "Wood"
      },
      "tree": {
        "id": "http://linked.earth/ontology/archive#Wood",
        "label": "Wood"
      },
      "documents": {
        "id": "http://linked.earth/ontology/archive#Documents",
        "label": "Documents"
      },
      "other": {
        "id": "http://linked.earth/ontology/archive#Other",
        "label": "Other"
      }
    }
  },
  "INTERPRETATION": {
    "InterpretationVariable": {
      "c3c4ratio": {
        "id": "http://linked.earth/ontology/interpretation#C3C4Ratio",
        "label": "C3C4Ratio"
      },
      "composition c3-c4 plants": {
        "id": "http://linked.earth/ontology/interpretation#C3C4Ratio",
        "label": "C3C4Ratio"
      },
      "circulationindex": {
        "id": "http://linked.earth/ontology/interpretation#circulationIndex",
        "label": "circulationIndex"
      },
      "circulation index": {
        "id": "http://linked.earth/ontology/interpretation#circulationIndex",
        "label": "circulationIndex"
      },
      "mode": {
        "id": "http://linked.earth/ontology/interpretation#circulationIndex",
        "label": "circulationIndex"
      },
      "nao index": {
        "id": "http://linked.earth/ontology/interpretation#circulationIndex",
        "label": "circulationIndex"
      },
      "circulationvariable": {
        "id": "http://linked.earth/ontology/interpretation#circulationVariable",
        "label": "circulationVariable"
      },
      "circulation variable": {
        "id": "http://linked.earth/ontology/interpretation#circulationVariable",
        "label": "circulationVariable"
      },
      "changes in monsoon intensity.": {
        "id": "http://linked.earth/ontology/interpretation#circulationVariable",
        "label": "circulationVariable"
      },
      "circulation": {
        "id": "http://linked.earth/ontology/interpretation#circulationVariable",
        "label": "circulationVariable"
      },
      "dissolvedoxygen": {
        "id": "http://linked.earth/ontology/interpretation#dissolvedOxygen",
        "label": "dissolvedOxygen"
      },
      "dissolved oxygen": {
        "id": "http://linked.earth/ontology/interpretation#dissolvedOxygen",
        "label": "dissolvedOxygen"
      },
      "suboxia": {
        "id": "http://linked.earth/ontology/interpretation#dissolvedOxygen",
        "label": "dissolvedOxygen"
      },
      "dust": {
        "id": "http://linked.earth/ontology/interpretation#dust",
        "label": "dust"
      },
      "ela": {
        "id": "http://linked.earth/ontology/interpretation#ELA",
        "label": "ELA"
      },
      "equilibrium line altitude": {
        "id": "http://linked.earth/ontology/interpretation#ELA",
        "label": "ELA"
      },
      "evaporation": {
        "id": "http://linked.earth/ontology/interpretation#evaporation",
        "label": "evaporation"
      },
      "fire": {
        "id": "http://linked.earth/ontology/interpretation#fire",
        "label": "fire"
      },
      "fire history": {
        "id": "http://linked.earth/ontology/interpretation#fire",
        "label": "fire"
      },
      "growingdegreedays": {
        "id": "http://linked.earth/ontology/interpretation#growingDegreeDays",
        "label": "growingDegreeDays"
      },
      "growing degree days": {
        "id": "http://linked.earth/ontology/interpretation#growingDegreeDays",
        "label": "growingDegreeDays"
      },
      "gdd": {
        "id": "http://linked.earth/ontology/interpretation#growingDegreeDays",
        "label": "growingDegreeDays"
      },
      "hydrologicbalance": {
        "id": "http://linked.earth/ontology/interpretation#hydrologicBalance",
        "label": "hydrologicBalance"
      },
      "gw-e": {
        "id": "http://linked.earth/ontology/interpretation#hydrologicBalance",
        "label": "hydrologicBalance"
      },
      "i_e": {
        "id": "http://linked.earth/ontology/interpretation#hydrologicBalance",
        "label": "hydrologicBalance"
      },
      "hydrology": {
        "id": "http://linked.earth/ontology/interpretation#hydrologicBalance",
        "label": "hydrologicBalance"
      },
      "lakewaterisotope": {
        "id": "http://linked.earth/ontology/interpretation#lakeWaterIsotope",
        "label": "lakeWaterIsotope"
      },
      "lake water and precipitation d2h": {
        "id": "http://linked.earth/ontology/interpretation#lakeWaterIsotope",
        "label": "lakeWaterIsotope"
      },
      "lake water d18o": {
        "id": "http://linked.earth/ontology/interpretation#lakeWaterIsotope",
        "label": "lakeWaterIsotope"
      },
      "lake water d2h": {
        "id": "http://linked.earth/ontology/interpretation#lakeWaterIsotope",
        "label": "lakeWaterIsotope"
      },
      "liso": {
        "id": "http://linked.earth/ontology/interpretation#lakeWaterIsotope",
        "label": "lakeWaterIsotope"
      },
      "meltwater": {
        "id": "http://linked.earth/ontology/interpretation#meltwater",
        "label": "meltwater"
      },
      "ice melt": {
        "id": "http://linked.earth/ontology/interpretation#meltwater",
        "label": "meltwater"
      },
      "needstobereplaced": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "anoxia": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "carbonate_ion_concentration": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "export-productivity": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "gdgt": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "mixed": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "precipitation d2h + evap": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "t+ela": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "plant community composition": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "liso/p-e": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "organic matter source": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeReplaced",
        "label": "needsToBeReplaced"
      },
      "p-e": {
        "id": "http://linked.earth/ontology/interpretation#P-E",
        "label": "P-E"
      },
      "precipitation minus evaporation": {
        "id": "http://linked.earth/ontology/interpretation#P-E",
        "label": "P-E"
      },
      "effective moisture": {
        "id": "http://linked.earth/ontology/interpretation#P-E",
        "label": "P-E"
      },
      "m": {
        "id": "http://linked.earth/ontology/interpretation#P-E",
        "label": "P-E"
      },
      "p_e": {
        "id": "http://linked.earth/ontology/interpretation#P-E",
        "label": "P-E"
      },
      "p=e": {
        "id": "http://linked.earth/ontology/interpretation#P-E",
        "label": "P-E"
      },
      "precipitation": {
        "id": "http://linked.earth/ontology/interpretation#precipitation",
        "label": "precipitation"
      },
      "pmax": {
        "id": "http://linked.earth/ontology/interpretation#precipitation",
        "label": "precipitation"
      },
      "pmin": {
        "id": "http://linked.earth/ontology/interpretation#precipitation",
        "label": "precipitation"
      },
      "p": {
        "id": "http://linked.earth/ontology/interpretation#precipitation",
        "label": "precipitation"
      },
      "p_amount": {
        "id": "http://linked.earth/ontology/interpretation#precipitation",
        "label": "precipitation"
      },
      "precipitationdeuteriumexcess": {
        "id": "http://linked.earth/ontology/interpretation#precipitationDeuteriumExcess",
        "label": "precipitationDeuteriumExcess"
      },
      "precipitation d-excess": {
        "id": "http://linked.earth/ontology/interpretation#precipitationDeuteriumExcess",
        "label": "precipitationDeuteriumExcess"
      },
      "precipitationisotope": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "dd": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "d18o of precipitation": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "p_isotope": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "piso": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "precipitation d18o": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "precipitation d2h": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "precipitation isotope": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "source": {
        "id": "http://linked.earth/ontology/interpretation#precipitationIsotope",
        "label": "precipitationIsotope"
      },
      "productivity": {
        "id": "http://linked.earth/ontology/interpretation#productivity",
        "label": "productivity"
      },
      "algal productivity": {
        "id": "http://linked.earth/ontology/interpretation#productivity",
        "label": "productivity"
      },
      "relativehumidity": {
        "id": "http://linked.earth/ontology/interpretation#relativeHumidity",
        "label": "relativeHumidity"
      },
      "relative humidity": {
        "id": "http://linked.earth/ontology/interpretation#relativeHumidity",
        "label": "relativeHumidity"
      },
      "rh": {
        "id": "http://linked.earth/ontology/interpretation#relativeHumidity",
        "label": "relativeHumidity"
      },
      "salinity": {
        "id": "http://linked.earth/ontology/interpretation#salinity",
        "label": "salinity"
      },
      "s": {
        "id": "http://linked.earth/ontology/interpretation#salinity",
        "label": "salinity"
      },
      "sss": {
        "id": "http://linked.earth/ontology/interpretation#salinity",
        "label": "salinity"
      },
      "seaice": {
        "id": "http://linked.earth/ontology/interpretation#seaIce",
        "label": "seaIce"
      },
      "sea ice cover": {
        "id": "http://linked.earth/ontology/interpretation#seaIce",
        "label": "seaIce"
      },
      "ice": {
        "id": "http://linked.earth/ontology/interpretation#seaIce",
        "label": "seaIce"
      },
      "seasonality": {
        "id": "http://linked.earth/ontology/interpretation#seasonality",
        "label": "seasonality"
      },
      "seawaterisotope": {
        "id": "http://linked.earth/ontology/interpretation#seawaterIsotope",
        "label": "seawaterIsotope"
      },
      "seawater_isotope": {
        "id": "http://linked.earth/ontology/interpretation#seawaterIsotope",
        "label": "seawaterIsotope"
      },
      "streamflow": {
        "id": "http://linked.earth/ontology/interpretation#streamflow",
        "label": "streamflow"
      },
      "q": {
        "id": "http://linked.earth/ontology/interpretation#streamflow",
        "label": "streamflow"
      },
      "sunlight": {
        "id": "http://linked.earth/ontology/interpretation#sunlight",
        "label": "sunlight"
      },
      "solar irradiance": {
        "id": "http://linked.earth/ontology/interpretation#sunlight",
        "label": "sunlight"
      },
      "sun": {
        "id": "http://linked.earth/ontology/interpretation#sunlight",
        "label": "sunlight"
      },
      "surfacepressure": {
        "id": "http://linked.earth/ontology/interpretation#surfacePressure",
        "label": "surfacePressure"
      },
      "surface pressure": {
        "id": "http://linked.earth/ontology/interpretation#surfacePressure",
        "label": "surfacePressure"
      },
      "temperature": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "sst": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "subt": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "surface water temp": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "t": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "t_air": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "t_water": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "temperature_water": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "lake water temperature": {
        "id": "http://linked.earth/ontology/interpretation#temperature",
        "label": "temperature"
      },
      "upwelling": {
        "id": "http://linked.earth/ontology/interpretation#upwelling",
        "label": "upwelling"
      },
      "upwelling index": {
        "id": "http://linked.earth/ontology/interpretation#upwelling",
        "label": "upwelling"
      },
      "windspeed": {
        "id": "http://linked.earth/ontology/interpretation#windSpeed",
        "label": "windSpeed"
      },
      "wind speed": {
        "id": "http://linked.earth/ontology/interpretation#windSpeed",
        "label": "windSpeed"
      },
      "w": {
        "id": "http://linked.earth/ontology/interpretation#windSpeed",
        "label": "windSpeed"
      }
    },
    "InterpretationSeasonality": {
      "annual": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,12": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1 2 3 4 5 6 7 8 9 10 11 12": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "warmest + coldest months": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "not applicable (always)": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "annual mean": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "annual calendar year (but 80% of precipitation from nov to may)": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "coldest + warmest month": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "warmest + coldest month": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "year round": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "year-round": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "years": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,117": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,122": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,138": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,158": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,190": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,229": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,291": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,434": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,464": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,588": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,646": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "1,2,3,4,5,6,7,8,9,10,11,706": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "12 1 2; 6 7 8": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "annual (*but recently would prob be interpreted as summer-biased)": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "coldest month + summer": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "late summer/winter lake water (summer-biased mean annual precip)": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "mean annual (weighted toward ond and mam)": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "multi-annual": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "summer + winter": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "summer-biased/annual?": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "warmest + coldest": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "warmest month + winter": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "warmest month; coldest month": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "winter": {
        "id": "http://linked.earth/ontology/interpretation#Winter",
        "label": "Winter"
      },
      "summer temperature": {
        "id": "http://linked.earth/ontology/interpretation#Annual",
        "label": "Annual"
      },
      "apr": {
        "id": "http://linked.earth/ontology/interpretation#Apr",
        "label": "Apr"
      },
      "4": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "apr-aug": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Aug",
        "label": "Apr-Aug"
      },
      "april-may": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Aug",
        "label": "Apr-Aug"
      },
      "june-august": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Aug",
        "label": "Apr-Aug"
      },
      "apr-dec": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Dec",
        "label": "Apr-Dec"
      },
      "4 5 6 7 8 9 10 12": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Dec",
        "label": "Apr-Dec"
      },
      "apr-feb": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Feb",
        "label": "Apr-Feb"
      },
      "apr-jan": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jan",
        "label": "Apr-Jan"
      },
      "apr-jul": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jul",
        "label": "Apr-Jul"
      },
      "4 5 6 7": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jul",
        "label": "Apr-Jul"
      },
      "amjj": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jul",
        "label": "Apr-Jul"
      },
      "spring-summer (april-july)": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jul",
        "label": "Apr-Jul"
      },
      "apr-jun": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jun",
        "label": "Apr-Jun"
      },
      "4 5 2006": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Jun",
        "label": "Apr-Jun"
      },
      "apr-mar": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Mar",
        "label": "Apr-Mar"
      },
      "april/june to april/march": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Mar",
        "label": "Apr-Mar"
      },
      "apr-may": {
        "id": "http://linked.earth/ontology/interpretation#Apr-May",
        "label": "Apr-May"
      },
      "apr-nov": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Nov",
        "label": "Apr-Nov"
      },
      "apr-oct": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Oct",
        "label": "Apr-Oct"
      },
      "4,5,6,7,8,9,10": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Oct",
        "label": "Apr-Oct"
      },
      "amjjaso": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Oct",
        "label": "Apr-Oct"
      },
      "apr-sep": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Sep",
        "label": "Apr-Sep"
      },
      "4,5,6,7,8,9": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Sep",
        "label": "Apr-Sep"
      },
      "amjjas": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Sep",
        "label": "Apr-Sep"
      },
      "4 5 6 7 8 9": {
        "id": "http://linked.earth/ontology/interpretation#Apr-Sep",
        "label": "Apr-Sep"
      },
      "aug": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "8": {
        "id": "http://linked.earth/ontology/interpretation#Aug",
        "label": "Aug"
      },
      "aug-apr": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Apr",
        "label": "Aug-Apr"
      },
      "aug-dec": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Dec",
        "label": "Aug-Dec"
      },
      "aug-feb": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Feb",
        "label": "Aug-Feb"
      },
      "aug-jan": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Jan",
        "label": "Aug-Jan"
      },
      "aug-jul": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Jul",
        "label": "Aug-Jul"
      },
      "-12 -11 -10 -9 -8 1 2 3 4 5 6 7": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Jul",
        "label": "Aug-Jul"
      },
      "thermal year (aug-jul) (but 80% of precipitation from nov to may)": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Jul",
        "label": "Aug-Jul"
      },
      "aug-jun": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Jun",
        "label": "Aug-Jun"
      },
      "aug-mar": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Mar",
        "label": "Aug-Mar"
      },
      "aug-may": {
        "id": "http://linked.earth/ontology/interpretation#Aug-May",
        "label": "Aug-May"
      },
      "aug-nov": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Nov",
        "label": "Aug-Nov"
      },
      "aug-oct": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Oct",
        "label": "Aug-Oct"
      },
      "aug-sep": {
        "id": "http://linked.earth/ontology/interpretation#Aug-Sep",
        "label": "Aug-Sep"
      },
      "coldest month": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "coldest_month": {
        "id": "http://linked.earth/ontology/interpretation#Coldest_Month",
        "label": "Coldest Month"
      },
      "growing season": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "coldest": {
        "id": "http://linked.earth/ontology/interpretation#Coldest_Month",
        "label": "Coldest Month"
      },
      "dec-apr": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Apr",
        "label": "Dec-Apr"
      },
      "12,1,2,3,4": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Apr",
        "label": "Dec-Apr"
      },
      "dec-aug": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Aug",
        "label": "Dec-Aug"
      },
      "dec-feb": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Feb",
        "label": "Dec-Feb"
      },
      "12,1,2": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Feb",
        "label": "Dec-Feb"
      },
      "djf": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Feb",
        "label": "Dec-Feb"
      },
      "-12 1 2": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Feb",
        "label": "Dec-Feb"
      },
      "1,2,12": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Feb",
        "label": "Dec-Feb"
      },
      "dec-jan": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Jan",
        "label": "Dec-Jan"
      },
      "dec-jul": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Jul",
        "label": "Dec-Jul"
      },
      "dec-jun": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Jun",
        "label": "Dec-Jun"
      },
      "dec-mar": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Mar",
        "label": "Dec-Mar"
      },
      "12,1,2,3": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Mar",
        "label": "Dec-Mar"
      },
      "-12 1 2 3": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Mar",
        "label": "Dec-Mar"
      },
      "december - march (monsoon season)": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Mar",
        "label": "Dec-Mar"
      },
      "dec-may": {
        "id": "http://linked.earth/ontology/interpretation#Dec-May",
        "label": "Dec-May"
      },
      "djfmam": {
        "id": "http://linked.earth/ontology/interpretation#Dec-May",
        "label": "Dec-May"
      },
      "dec-oct": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Oct",
        "label": "Dec-Oct"
      },
      "dec-sep": {
        "id": "http://linked.earth/ontology/interpretation#Dec-Sep",
        "label": "Dec-Sep"
      },
      "fall": {
        "id": "http://linked.earth/ontology/interpretation#Fall",
        "label": "Fall"
      },
      "autumn": {
        "id": "http://linked.earth/ontology/interpretation#Fall",
        "label": "Fall"
      },
      "feb": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Aug",
        "label": "Feb-Aug"
      },
      "2": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "feb-apr": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Apr",
        "label": "Feb-Apr"
      },
      "feb-aug": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Aug",
        "label": "Feb-Aug"
      },
      "2 3 4 5 6 7 8": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Aug",
        "label": "Feb-Aug"
      },
      "feb-dec": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Dec",
        "label": "Feb-Dec"
      },
      "feb-jul": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Jul",
        "label": "Feb-Jul"
      },
      "feb-jun": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Jun",
        "label": "Feb-Jun"
      },
      "feb-mar": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Mar",
        "label": "Feb-Mar"
      },
      "feb-may": {
        "id": "http://linked.earth/ontology/interpretation#Feb-May",
        "label": "Feb-May"
      },
      "feb-nov": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Nov",
        "label": "Feb-Nov"
      },
      "feb-oct": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Oct",
        "label": "Feb-Oct"
      },
      "feb-sep": {
        "id": "http://linked.earth/ontology/interpretation#Feb-Sep",
        "label": "Feb-Sep"
      },
      "growing_season": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "growing season? (not stated)": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "growth season": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "mainly growing season": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "with potential addition effects of snowmelt following wet winters": {
        "id": "http://linked.earth/ontology/interpretation#Growing_Season",
        "label": "Growing Season"
      },
      "jan": {
        "id": "http://linked.earth/ontology/interpretation#Jan",
        "label": "Jan"
      },
      "1": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "jan-apr": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Apr",
        "label": "Jan-Apr"
      },
      "january": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Apr",
        "label": "Jan-Apr"
      },
      "february": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Apr",
        "label": "Jan-Apr"
      },
      "march": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Apr",
        "label": "Jan-Apr"
      },
      "april": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Apr",
        "label": "Jan-Apr"
      },
      "jfma": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Apr",
        "label": "Jan-Apr"
      },
      "jan-aug": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Aug",
        "label": "Jan-Aug"
      },
      "jan-feb": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Feb",
        "label": "Jan-Feb"
      },
      "jan-jul": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Jul",
        "label": "Jan-Jul"
      },
      "jfmamjj": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Jul",
        "label": "Jan-Jul"
      },
      "jan-jun": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Jun",
        "label": "Jan-Jun"
      },
      "january-june (spring)": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Jun",
        "label": "Jan-Jun"
      },
      "jan-mar": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Mar",
        "label": "Jan-Mar"
      },
      "1 2 2003": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Mar",
        "label": "Jan-Mar"
      },
      "jan-may": {
        "id": "http://linked.earth/ontology/interpretation#Jan-May",
        "label": "Jan-May"
      },
      "jan-nov": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Nov",
        "label": "Jan-Nov"
      },
      "jan-oct": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Oct",
        "label": "Jan-Oct"
      },
      "jan-sep": {
        "id": "http://linked.earth/ontology/interpretation#Jan-Sep",
        "label": "Jan-Sep"
      },
      "jul": {
        "id": "http://linked.earth/ontology/interpretation#Jul",
        "label": "Jul"
      },
      "july": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "7": {
        "id": "http://linked.earth/ontology/interpretation#Jul",
        "label": "Jul"
      },
      "jul-apr": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Apr",
        "label": "Jul-Apr"
      },
      "jul-aug": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Aug",
        "label": "Jul-Aug"
      },
      "jul-dec": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Dec",
        "label": "Jul-Dec"
      },
      "7 8 9 10 11 12": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Dec",
        "label": "Jul-Dec"
      },
      "jul-feb": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Feb",
        "label": "Jul-Feb"
      },
      "jul-jan": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Jan",
        "label": "Jul-Jan"
      },
      "jul-jun": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Jun",
        "label": "Jul-Jun"
      },
      "-12 -11 -10 -9 -8 -7 1 2 3 4 5 6": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Jun",
        "label": "Jul-Jun"
      },
      "jul-mar": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Mar",
        "label": "Jul-Mar"
      },
      "jul-may": {
        "id": "http://linked.earth/ontology/interpretation#Jul-May",
        "label": "Jul-May"
      },
      "jul-nov": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Nov",
        "label": "Jul-Nov"
      },
      "jul-oct": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Oct",
        "label": "Jul-Oct"
      },
      "7,8,9,10": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Oct",
        "label": "Jul-Oct"
      },
      "jul-sep": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Sep",
        "label": "Jul-Sep"
      },
      "7 8 2009": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Sep",
        "label": "Jul-Sep"
      },
      "7,8,9": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Sep",
        "label": "Jul-Sep"
      },
      "((( 7 8 2009 ))) null /// 7 8 9": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Sep",
        "label": "Jul-Sep"
      },
      "jas": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Sep",
        "label": "Jul-Sep"
      },
      "summer (jas)": {
        "id": "http://linked.earth/ontology/interpretation#Jul-Sep",
        "label": "Jul-Sep"
      },
      "jun": {
        "id": "http://linked.earth/ontology/interpretation#Jun",
        "label": "Jun"
      },
      "6": {
        "id": "http://linked.earth/ontology/interpretation#Jun",
        "label": "Jun"
      },
      "jun-apr": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Apr",
        "label": "Jun-Apr"
      },
      "jun-aug": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "jja": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "6,7,8": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "6 7 2008": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "((( 6 7 2008 ))) null /// 6 7 8": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "summer (june-august)": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "((( 6 7 2008 ))) 39606 /// 6 7 8": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "june,july": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "august": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "summer (jja)": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Aug",
        "label": "Jun-Aug"
      },
      "jun-dec": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Dec",
        "label": "Jun-Dec"
      },
      "jun-feb": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Feb",
        "label": "Jun-Feb"
      },
      "jun-jan": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Jan",
        "label": "Jun-Jan"
      },
      "jun-jul": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Jul",
        "label": "Jun-Jul"
      },
      "6 7": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Jul",
        "label": "Jun-Jul"
      },
      "6,7": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Jul",
        "label": "Jun-Jul"
      },
      "june-july minimum": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Jul",
        "label": "Jun-Jul"
      },
      "jun-mar": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Mar",
        "label": "Jun-Mar"
      },
      "jun-nov": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Nov",
        "label": "Jun-Nov"
      },
      "jjason": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Nov",
        "label": "Jun-Nov"
      },
      "jun-oct": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Oct",
        "label": "Jun-Oct"
      },
      "6,7,8,9,10": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Oct",
        "label": "Jun-Oct"
      },
      "jjaso": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Oct",
        "label": "Jun-Oct"
      },
      "jun-sep": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "jjas": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "6,7,8,9": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "6 7 8 9": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "summer (june to september)": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "growing season/jjas": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "june": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "september": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "summer (jjas)": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "((( warm season (june-sept) ))) jjas /// jjas": {
        "id": "http://linked.earth/ontology/interpretation#Jun-Sep",
        "label": "Jun-Sep"
      },
      "mar": {
        "id": "http://linked.earth/ontology/interpretation#Mar",
        "label": "Mar"
      },
      "mar-apr": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Apr",
        "label": "Mar-Apr"
      },
      "mar-aug": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Aug",
        "label": "Mar-Aug"
      },
      "3 4 5 6 7 8": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Aug",
        "label": "Mar-Aug"
      },
      "3,4,5,6,7,8": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Aug",
        "label": "Mar-Aug"
      },
      "mar-dec": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Dec",
        "label": "Mar-Dec"
      },
      "mar-jan": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Jan",
        "label": "Mar-Jan"
      },
      "mar-jul": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Jul",
        "label": "Mar-Jul"
      },
      "mar-jun": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Jun",
        "label": "Mar-Jun"
      },
      "mar-may": {
        "id": "http://linked.earth/ontology/interpretation#Mar-May",
        "label": "Mar-May"
      },
      "3 4 2005": {
        "id": "http://linked.earth/ontology/interpretation#Mar-May",
        "label": "Mar-May"
      },
      "mam": {
        "id": "http://linked.earth/ontology/interpretation#Mar-May",
        "label": "Mar-May"
      },
      "mar-nov": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Nov",
        "label": "Mar-Nov"
      },
      "march to november": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Nov",
        "label": "Mar-Nov"
      },
      "mar-oct": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Oct",
        "label": "Mar-Oct"
      },
      "3 4 5 6 7 8 9 10 11 12 13 14": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Oct",
        "label": "Mar-Oct"
      },
      "3 4 5 6 7 8 9 10": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Oct",
        "label": "Mar-Oct"
      },
      "mar-sep": {
        "id": "http://linked.earth/ontology/interpretation#Mar-Sep",
        "label": "Mar-Sep"
      },
      "may": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "5": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "may-apr": {
        "id": "http://linked.earth/ontology/interpretation#May-Apr",
        "label": "May-Apr"
      },
      "-5 -6 -7 -8 -9 -10 -11 -12 1 2 3 4": {
        "id": "http://linked.earth/ontology/interpretation#May-Apr",
        "label": "May-Apr"
      },
      "may-aug": {
        "id": "http://linked.earth/ontology/interpretation#May-Aug",
        "label": "May-Aug"
      },
      "mjja": {
        "id": "http://linked.earth/ontology/interpretation#May-Aug",
        "label": "May-Aug"
      },
      "5,6,7,8": {
        "id": "http://linked.earth/ontology/interpretation#May-Aug",
        "label": "May-Aug"
      },
      "may-dec": {
        "id": "http://linked.earth/ontology/interpretation#May-Dec",
        "label": "May-Dec"
      },
      "october": {
        "id": "http://linked.earth/ontology/interpretation#May-Oct",
        "label": "May-Oct"
      },
      "november": {
        "id": "http://linked.earth/ontology/interpretation#May-Dec",
        "label": "May-Dec"
      },
      "december": {
        "id": "http://linked.earth/ontology/interpretation#May-Dec",
        "label": "May-Dec"
      },
      "mjjasond": {
        "id": "http://linked.earth/ontology/interpretation#May-Dec",
        "label": "May-Dec"
      },
      "5 6 7 8 9 10 11 12": {
        "id": "http://linked.earth/ontology/interpretation#May-Dec",
        "label": "May-Dec"
      },
      "may-feb": {
        "id": "http://linked.earth/ontology/interpretation#May-Feb",
        "label": "May-Feb"
      },
      "may-jan": {
        "id": "http://linked.earth/ontology/interpretation#May-Jan",
        "label": "May-Jan"
      },
      "may-jul": {
        "id": "http://linked.earth/ontology/interpretation#May-Jul",
        "label": "May-Jul"
      },
      "5 6 2007": {
        "id": "http://linked.earth/ontology/interpretation#May-Jul",
        "label": "May-Jul"
      },
      "may-jun": {
        "id": "http://linked.earth/ontology/interpretation#May-Jun",
        "label": "May-Jun"
      },
      "mj": {
        "id": "http://linked.earth/ontology/interpretation#May-Jun",
        "label": "May-Jun"
      },
      "may-mar": {
        "id": "http://linked.earth/ontology/interpretation#May-Mar",
        "label": "May-Mar"
      },
      "may-nov": {
        "id": "http://linked.earth/ontology/interpretation#May-Nov",
        "label": "May-Nov"
      },
      "may-oct": {
        "id": "http://linked.earth/ontology/interpretation#May-Oct",
        "label": "May-Oct"
      },
      "mjjaso": {
        "id": "http://linked.earth/ontology/interpretation#May-Oct",
        "label": "May-Oct"
      },
      "5,6,7,8,9,10": {
        "id": "http://linked.earth/ontology/interpretation#May-Oct",
        "label": "May-Oct"
      },
      "may to october": {
        "id": "http://linked.earth/ontology/interpretation#May-Oct",
        "label": "May-Oct"
      },
      "may-sep": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "mjjas": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "may to sept": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "5,6,7,8,9": {
        "id": "http://linked.earth/ontology/interpretation#May-Sep",
        "label": "May-Sep"
      },
      "needstobechanged": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "upwelling": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "unknown": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "n/a": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "1,10": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "1,11": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "changes depending on which season provides source moisture for plants": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "depends": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "inflow@surface": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "not indicated": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "under present conditions": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wet years often have higehr amount of winter rain": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "but d18o may reflect high summer rain": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "winter rain": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "or both": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "upwelling season": {
        "id": "http://linked.earth/ontology/interpretation#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "nov-apr": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Apr",
        "label": "Nov-Apr"
      },
      "11,12,1,2,3,4": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Apr",
        "label": "Nov-Apr"
      },
      "winter (nov-april)": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Apr",
        "label": "Nov-Apr"
      },
      "-11 -12 1 2 3 4": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Apr",
        "label": "Nov-Apr"
      },
      "ndjfma": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Apr",
        "label": "Nov-Apr"
      },
      "nov-aug": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Aug",
        "label": "Nov-Aug"
      },
      "nov-dec": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Dec",
        "label": "Nov-Dec"
      },
      "nov-feb": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Feb",
        "label": "Nov-Feb"
      },
      "-11 -12 1 2": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Feb",
        "label": "Nov-Feb"
      },
      "11,12,1,2": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Feb",
        "label": "Nov-Feb"
      },
      "ndjf": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Feb",
        "label": "Nov-Feb"
      },
      "november (previous year) to february (current year)": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Feb",
        "label": "Nov-Feb"
      },
      "nov-jan": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Jan",
        "label": "Nov-Jan"
      },
      "summer (ndj)": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Jan",
        "label": "Nov-Jan"
      },
      "nov-jul": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Jul",
        "label": "Nov-Jul"
      },
      "nov-jun": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Jun",
        "label": "Nov-Jun"
      },
      "11,12,1,2,3,4,5,6": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Jun",
        "label": "Nov-Jun"
      },
      "nov-mar": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Mar",
        "label": "Nov-Mar"
      },
      "11,12,1,2,3": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Mar",
        "label": "Nov-Mar"
      },
      "nov-may": {
        "id": "http://linked.earth/ontology/interpretation#Nov-May",
        "label": "Nov-May"
      },
      "11,12,1,2,3,4,5": {
        "id": "http://linked.earth/ontology/interpretation#Nov-May",
        "label": "Nov-May"
      },
      "winter (11,12,1,2,3,4,5)": {
        "id": "http://linked.earth/ontology/interpretation#Nov-May",
        "label": "Nov-May"
      },
      "nov-oct": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Oct",
        "label": "Nov-Oct"
      },
      "-12 -11 1 2 3 4 5 6 7 8 9 10": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Oct",
        "label": "Nov-Oct"
      },
      "nov-sep": {
        "id": "http://linked.earth/ontology/interpretation#Nov-Sep",
        "label": "Nov-Sep"
      },
      "oct-apr": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Apr",
        "label": "Oct-Apr"
      },
      "10,11,12,1,2,3,4": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Apr",
        "label": "Oct-Apr"
      },
      "-10 -11 -12 1 2 3 4": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Apr",
        "label": "Oct-Apr"
      },
      "october-april (wet season)": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Apr",
        "label": "Oct-Apr"
      },
      "ondjfma": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Apr",
        "label": "Oct-Apr"
      },
      "oct-aug": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Aug",
        "label": "Oct-Aug"
      },
      "oct-dec": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Dec",
        "label": "Oct-Dec"
      },
      "ond": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Dec",
        "label": "Oct-Dec"
      },
      "oct-feb": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Feb",
        "label": "Oct-Feb"
      },
      "oct-jan": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Jan",
        "label": "Oct-Jan"
      },
      "10,11,12,1": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Jan",
        "label": "Oct-Jan"
      },
      "ondj": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Jan",
        "label": "Oct-Jan"
      },
      "oct-jul": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Jul",
        "label": "Oct-Jul"
      },
      "oct-jun": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Jun",
        "label": "Oct-Jun"
      },
      "oct-mar": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Mar",
        "label": "Oct-Mar"
      },
      "ondjfm": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Mar",
        "label": "Oct-Mar"
      },
      "10,11,12,1,2,3": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Mar",
        "label": "Oct-Mar"
      },
      "oct-may": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "10": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "11": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "12": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "3": {
        "id": "http://linked.earth/ontology/interpretation#Oct-May",
        "label": "Oct-May"
      },
      "oct-nov": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Nov",
        "label": "Oct-Nov"
      },
      "oct-sep": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Sep",
        "label": "Oct-Sep"
      },
      "oct (previous year) to sept (current year)": {
        "id": "http://linked.earth/ontology/interpretation#Oct-Sep",
        "label": "Oct-Sep"
      },
      "sep-apr": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Apr",
        "label": "Sep-Apr"
      },
      "-9 -10 -11 -12 1 2 3 4": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Apr",
        "label": "Sep-Apr"
      },
      "sep-aug": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Aug",
        "label": "Sep-Aug"
      },
      "-12 -11 -10 -9 1 2 3 4 5 6 7 8": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Aug",
        "label": "Sep-Aug"
      },
      "sep-dec": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Dec",
        "label": "Sep-Dec"
      },
      "sep-feb": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Feb",
        "label": "Sep-Feb"
      },
      "-9 -10 -11 -12 1 2 2": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Feb",
        "label": "Sep-Feb"
      },
      "sondjf": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Feb",
        "label": "Sep-Feb"
      },
      "sep-jan": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Jan",
        "label": "Sep-Jan"
      },
      "sep-jul": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Jul",
        "label": "Sep-Jul"
      },
      "sep-jun": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Jun",
        "label": "Sep-Jun"
      },
      "sep-mar": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Mar",
        "label": "Sep-Mar"
      },
      "sep-may": {
        "id": "http://linked.earth/ontology/interpretation#Sep-May",
        "label": "Sep-May"
      },
      "sep-nov": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Nov",
        "label": "Sep-Nov"
      },
      "9 10 11": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Nov",
        "label": "Sep-Nov"
      },
      "sep-oct": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Oct",
        "label": "Sep-Oct"
      },
      "9 10": {
        "id": "http://linked.earth/ontology/interpretation#Sep-Oct",
        "label": "Sep-Oct"
      },
      "spr-sum": {
        "id": "http://linked.earth/ontology/interpretation#Spr-Sum",
        "label": "Spr-Sum"
      },
      "variable": {
        "id": "http://linked.earth/ontology/interpretation#Spr-Sum",
        "label": "Spr-Sum"
      },
      "probably spring/summer": {
        "id": "http://linked.earth/ontology/interpretation#Spr-Sum",
        "label": "Spr-Sum"
      },
      "spring summer": {
        "id": "http://linked.earth/ontology/interpretation#Spr-Sum",
        "label": "Spr-Sum"
      },
      "spring-summer": {
        "id": "http://linked.earth/ontology/interpretation#Spr-Sum",
        "label": "Spr-Sum"
      },
      "spring": {
        "id": "http://linked.earth/ontology/interpretation#Spring",
        "label": "Spring"
      },
      "subannual": {
        "id": "http://linked.earth/ontology/interpretation#subannual",
        "label": "subannual"
      },
      "n/a (subannually resolved)": {
        "id": "http://linked.earth/ontology/interpretation#subannual",
        "label": "subannual"
      },
      "not applicable (subannually resolved)": {
        "id": "http://linked.earth/ontology/interpretation#subannual",
        "label": "subannual"
      },
      "summer": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "warm season": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "mostly summer": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "summer+": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "summer-bias": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "ice-free season": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "nh summer": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "((( summeronly ))) summeronly /// null": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "am&ja": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "austral summer (oct-jan)": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "early summer": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "mean summer": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "p_amount (june)": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "temperature (july": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "aug)": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "temperature (may": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "oct)": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "summer?": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "t_air (july": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "august)": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "p_amount (july)": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "warmest quarter yr": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "mar&jul": {
        "id": "http://linked.earth/ontology/interpretation#Summer",
        "label": "Summer"
      },
      "warmest month": {
        "id": "http://linked.earth/ontology/interpretation#Warmest_Month",
        "label": "Warmest Month"
      },
      "warmest_month": {
        "id": "http://linked.earth/ontology/interpretation#Warmest_Month",
        "label": "Warmest Month"
      },
      "231pa excess": {
        "id": "http://linked.earth/ontology/interpretation#Warmest_Month",
        "label": "Warmest Month"
      },
      "warmest": {
        "id": "http://linked.earth/ontology/interpretation#Warmest_Month",
        "label": "Warmest Month"
      },
      "wet season": {
        "id": "http://linked.earth/ontology/interpretation#Wet_Season",
        "label": "Wet Season"
      },
      "wet_season": {
        "id": "http://linked.earth/ontology/interpretation#Wet_Season",
        "label": "Wet Season"
      },
      "monsoon": {
        "id": "http://linked.earth/ontology/interpretation#Wet_Season",
        "label": "Wet Season"
      },
      "andean wet season": {
        "id": "http://linked.earth/ontology/interpretation#Wet_Season",
        "label": "Wet Season"
      },
      "monsoon season": {
        "id": "http://linked.earth/ontology/interpretation#Wet_Season",
        "label": "Wet Season"
      },
      "win-spr": {
        "id": "http://linked.earth/ontology/interpretation#Win-Spr",
        "label": "Win-Spr"
      },
      "winter/spring": {
        "id": "http://linked.earth/ontology/interpretation#Win-Spr",
        "label": "Win-Spr"
      },
      "winter+": {
        "id": "http://linked.earth/ontology/interpretation#Winter",
        "label": "Winter"
      },
      "mostly winter": {
        "id": "http://linked.earth/ontology/interpretation#Winter",
        "label": "Winter"
      }
    }
  },
  "PROXIES": {
    "PaleoProxy": {
      "accumulation rate": {
        "id": "http://linked.earth/ontology/paleo_proxy#accumulation_rate",
        "label": "accumulation rate"
      },
      "accumulation_rate": {
        "id": "http://linked.earth/ontology/paleo_proxy#accumulation_rate",
        "label": "accumulation rate"
      },
      "sed accumulation": {
        "id": "http://linked.earth/ontology/paleo_proxy#accumulation_rate",
        "label": "accumulation rate"
      },
      "acl": {
        "id": "http://linked.earth/ontology/paleo_proxy#ACL",
        "label": "ACL"
      },
      "average chain length": {
        "id": "http://linked.earth/ontology/paleo_proxy#ACL",
        "label": "ACL"
      },
      "al2o3": {
        "id": "http://linked.earth/ontology/paleo_proxy#Al2O3",
        "label": "Al2O3"
      },
      "aluminum oxide": {
        "id": "http://linked.earth/ontology/paleo_proxy#Al2O3",
        "label": "Al2O3"
      },
      "alkenone": {
        "id": "http://linked.earth/ontology/paleo_proxy#alkenone",
        "label": "alkenone"
      },
      "amoeba": {
        "id": "http://linked.earth/ontology/paleo_proxy#amoeba",
        "label": "amoeba"
      },
      "testate amoeba": {
        "id": "http://linked.earth/ontology/paleo_proxy#amoeba",
        "label": "amoeba"
      },
      "ba/al": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Al",
        "label": "Ba/Al"
      },
      "ba_al": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Al",
        "label": "Ba/Al"
      },
      "barium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Al",
        "label": "Ba/Al"
      },
      "ba/ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Ca",
        "label": "Ba/Ca"
      },
      "ba_ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Ca",
        "label": "Ba/Ca"
      },
      "barium/calcium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Ca",
        "label": "Ba/Ca"
      },
      "baca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ba_Ca",
        "label": "Ba/Ca"
      },
      "biomarker": {
        "id": "http://linked.earth/ontology/paleo_proxy#biomarker",
        "label": "biomarker"
      },
      "organic compound": {
        "id": "http://linked.earth/ontology/paleo_proxy#biomarker",
        "label": "biomarker"
      },
      "c15 fatty alcohols": {
        "id": "http://linked.earth/ontology/paleo_proxy#biomarker",
        "label": "biomarker"
      },
      "c37.concentration": {
        "id": "http://linked.earth/ontology/paleo_proxy#biomarker",
        "label": "biomarker"
      },
      "bit": {
        "id": "http://linked.earth/ontology/paleo_proxy#BIT",
        "label": "BIT"
      },
      "branched and isoprenoid tetraether index": {
        "id": "http://linked.earth/ontology/paleo_proxy#BIT",
        "label": "BIT"
      },
      "bitindex": {
        "id": "http://linked.earth/ontology/paleo_proxy#BIT",
        "label": "BIT"
      },
      "borehole": {
        "id": "http://linked.earth/ontology/paleo_proxy#borehole",
        "label": "borehole"
      },
      "bsi": {
        "id": "http://linked.earth/ontology/paleo_proxy#BSi",
        "label": "BSi"
      },
      "biogenic silica": {
        "id": "http://linked.earth/ontology/paleo_proxy#BSi",
        "label": "BSi"
      },
      "bubble frequency": {
        "id": "http://linked.earth/ontology/paleo_proxy#bubble_frequency",
        "label": "bubble frequency"
      },
      "bubble_frequency": {
        "id": "http://linked.earth/ontology/paleo_proxy#bubble_frequency",
        "label": "bubble frequency"
      },
      "bulk density": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_density",
        "label": "bulk density"
      },
      "bulk_density": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_density",
        "label": "bulk density"
      },
      "gamma": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_density",
        "label": "bulk density"
      },
      "bulk sediment": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_sediment",
        "label": "bulk sediment"
      },
      "bulk_sediment": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_sediment",
        "label": "bulk sediment"
      },
      "dry sediment": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_sediment",
        "label": "bulk sediment"
      },
      "bulksed": {
        "id": "http://linked.earth/ontology/paleo_proxy#bulk_sediment",
        "label": "bulk sediment"
      },
      "c/n": {
        "id": "http://linked.earth/ontology/paleo_proxy#C_N",
        "label": "C/N"
      },
      "c_n": {
        "id": "http://linked.earth/ontology/paleo_proxy#C_N",
        "label": "C/N"
      },
      "carbon/nitrogen": {
        "id": "http://linked.earth/ontology/paleo_proxy#C_N",
        "label": "C/N"
      },
      "ca/k": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ca_K",
        "label": "Ca/K"
      },
      "ca_k": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ca_K",
        "label": "Ca/K"
      },
      "calcium/potassium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ca_K",
        "label": "Ca/K"
      },
      "ca/ti": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ca_Ti",
        "label": "Ca/Ti"
      },
      "ca_ti": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ca_Ti",
        "label": "Ca/Ti"
      },
      "calcium/titanium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ca_Ti",
        "label": "Ca/Ti"
      },
      "caco3": {
        "id": "http://linked.earth/ontology/paleo_proxy#CaCO3",
        "label": "CaCO3"
      },
      "calcium carbonate": {
        "id": "http://linked.earth/ontology/paleo_proxy#CaCO3",
        "label": "CaCO3"
      },
      "calcification rate": {
        "id": "http://linked.earth/ontology/paleo_proxy#calcification_rate",
        "label": "calcification rate"
      },
      "calcification_rate": {
        "id": "http://linked.earth/ontology/paleo_proxy#calcification_rate",
        "label": "calcification rate"
      },
      "calcification": {
        "id": "http://linked.earth/ontology/paleo_proxy#calcification_rate",
        "label": "calcification rate"
      },
      "calcite": {
        "id": "http://linked.earth/ontology/paleo_proxy#calcite",
        "label": "calcite"
      },
      "carbonate": {
        "id": "http://linked.earth/ontology/paleo_proxy#carbonate",
        "label": "carbonate"
      },
      "authigenic carbonate": {
        "id": "http://linked.earth/ontology/paleo_proxy#carbonate",
        "label": "carbonate"
      },
      "carbonate content": {
        "id": "http://linked.earth/ontology/paleo_proxy#carbonate",
        "label": "carbonate"
      },
      "cellulose": {
        "id": "http://linked.earth/ontology/paleo_proxy#cellulose",
        "label": "cellulose"
      },
      "charcoal": {
        "id": "http://linked.earth/ontology/paleo_proxy#charcoal",
        "label": "charcoal"
      },
      "chironomid": {
        "id": "http://linked.earth/ontology/paleo_proxy#chironomid",
        "label": "chironomid"
      },
      "midge": {
        "id": "http://linked.earth/ontology/paleo_proxy#chironomid",
        "label": "chironomid"
      },
      "chlorophyll": {
        "id": "http://linked.earth/ontology/paleo_proxy#chlorophyll",
        "label": "chlorophyll"
      },
      "chrysophyte assemblage": {
        "id": "http://linked.earth/ontology/paleo_proxy#chrysophyte_assemblage",
        "label": "chrysophyte assemblage"
      },
      "chrysophyte_assemblage": {
        "id": "http://linked.earth/ontology/paleo_proxy#chrysophyte_assemblage",
        "label": "chrysophyte assemblage"
      },
      "chrysophyte": {
        "id": "http://linked.earth/ontology/paleo_proxy#chrysophyte_assemblage",
        "label": "chrysophyte assemblage"
      },
      "cladoceran": {
        "id": "http://linked.earth/ontology/paleo_proxy#cladoceran",
        "label": "cladoceran"
      },
      "cladocera": {
        "id": "http://linked.earth/ontology/paleo_proxy#cladoceran",
        "label": "cladoceran"
      },
      "coccolithophore": {
        "id": "http://linked.earth/ontology/paleo_proxy#coccolithophore",
        "label": "coccolithophore"
      },
      "coccolith": {
        "id": "http://linked.earth/ontology/paleo_proxy#coccolithophore",
        "label": "coccolithophore"
      },
      "d13c": {
        "id": "http://linked.earth/ontology/paleo_proxy#d13C",
        "label": "d13C"
      },
      "delta 13c": {
        "id": "http://linked.earth/ontology/paleo_proxy#d13C",
        "label": "d13C"
      },
      "d13cwax": {
        "id": "http://linked.earth/ontology/paleo_proxy#d13C",
        "label": "d13C"
      },
      "d15n": {
        "id": "http://linked.earth/ontology/paleo_proxy#d15N",
        "label": "d15N"
      },
      "delta 15n": {
        "id": "http://linked.earth/ontology/paleo_proxy#d15N",
        "label": "d15N"
      },
      "d15n/d40ar": {
        "id": "http://linked.earth/ontology/paleo_proxy#d15N_d40Ar",
        "label": "d15N/d40Ar"
      },
      "d15n_d40ar": {
        "id": "http://linked.earth/ontology/paleo_proxy#d15N_d40Ar",
        "label": "d15N/d40Ar"
      },
      "15n/40ar fractionation": {
        "id": "http://linked.earth/ontology/paleo_proxy#d15N_d40Ar",
        "label": "d15N/d40Ar"
      },
      "d15nd40ar": {
        "id": "http://linked.earth/ontology/paleo_proxy#d15N_d40Ar",
        "label": "d15N/d40Ar"
      },
      "d18o": {
        "id": "http://linked.earth/ontology/paleo_proxy#d18O",
        "label": "d18O"
      },
      "delta 18o": {
        "id": "http://linked.earth/ontology/paleo_proxy#d18O",
        "label": "d18O"
      },
      "cellulose d18o": {
        "id": "http://linked.earth/ontology/paleo_proxy#d18O",
        "label": "d18O"
      },
      "delta18o": {
        "id": "http://linked.earth/ontology/paleo_proxy#d18O",
        "label": "d18O"
      },
      "foram d18o": {
        "id": "http://linked.earth/ontology/paleo_proxy#d18O",
        "label": "d18O"
      },
      "dd": {
        "id": "http://linked.earth/ontology/paleo_proxy#dD",
        "label": "dD"
      },
      "delta 2h": {
        "id": "http://linked.earth/ontology/paleo_proxy#dD",
        "label": "dD"
      },
      "d2h": {
        "id": "http://linked.earth/ontology/paleo_proxy#dD",
        "label": "dD"
      },
      "ddwax": {
        "id": "http://linked.earth/ontology/paleo_proxy#dD",
        "label": "dD"
      },
      "leaf wax": {
        "id": "http://linked.earth/ontology/paleo_proxy#dD",
        "label": "dD"
      },
      "leafwax": {
        "id": "http://linked.earth/ontology/paleo_proxy#dD",
        "label": "dD"
      },
      "deuterium excess": {
        "id": "http://linked.earth/ontology/paleo_proxy#deuterium_excess",
        "label": "deuterium excess"
      },
      "deuterium_excess": {
        "id": "http://linked.earth/ontology/paleo_proxy#deuterium_excess",
        "label": "deuterium excess"
      },
      "deterium excess": {
        "id": "http://linked.earth/ontology/paleo_proxy#deuterium_excess",
        "label": "deuterium excess"
      },
      "dx": {
        "id": "http://linked.earth/ontology/paleo_proxy#deuterium_excess",
        "label": "deuterium excess"
      },
      "diatom": {
        "id": "http://linked.earth/ontology/paleo_proxy#diatom",
        "label": "diatom"
      },
      "dinocyst": {
        "id": "http://linked.earth/ontology/paleo_proxy#dinocyst",
        "label": "dinocyst"
      },
      "dinoflagellate": {
        "id": "http://linked.earth/ontology/paleo_proxy#dinocyst",
        "label": "dinocyst"
      },
      "dynocist mat": {
        "id": "http://linked.earth/ontology/paleo_proxy#dinocyst",
        "label": "dinocyst"
      },
      "dry bulk density": {
        "id": "http://linked.earth/ontology/paleo_proxy#dry_bulk_density",
        "label": "dry bulk density"
      },
      "dry_bulk_density": {
        "id": "http://linked.earth/ontology/paleo_proxy#dry_bulk_density",
        "label": "dry bulk density"
      },
      "dbd": {
        "id": "http://linked.earth/ontology/paleo_proxy#dry_bulk_density",
        "label": "dry bulk density"
      },
      "eu/zr": {
        "id": "http://linked.earth/ontology/paleo_proxy#Eu_Zr",
        "label": "Eu/Zr"
      },
      "eu_zr": {
        "id": "http://linked.earth/ontology/paleo_proxy#Eu_Zr",
        "label": "Eu/Zr"
      },
      "fe": {
        "id": "http://linked.earth/ontology/paleo_proxy#Fe",
        "label": "Fe"
      },
      "iron": {
        "id": "http://linked.earth/ontology/paleo_proxy#Fe",
        "label": "Fe"
      },
      "fe/al": {
        "id": "http://linked.earth/ontology/paleo_proxy#Fe_Al",
        "label": "Fe/Al"
      },
      "fe_al": {
        "id": "http://linked.earth/ontology/paleo_proxy#Fe_Al",
        "label": "Fe/Al"
      },
      "iron/aluminum": {
        "id": "http://linked.earth/ontology/paleo_proxy#Fe_Al",
        "label": "Fe/Al"
      },
      "foraminifera": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "foraminifer": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "benthic foraminifers": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "n. dutertrei": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "planktonic foraminifera": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "transfer function": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "uvigerina mediterranea": {
        "id": "http://linked.earth/ontology/paleo_proxy#foraminifera",
        "label": "foraminifera"
      },
      "gdgt": {
        "id": "http://linked.earth/ontology/paleo_proxy#GDGT",
        "label": "GDGT"
      },
      "glycerol dialkyl glycerol tetraether": {
        "id": "http://linked.earth/ontology/paleo_proxy#GDGT",
        "label": "GDGT"
      },
      "brgdgt": {
        "id": "http://linked.earth/ontology/paleo_proxy#GDGT",
        "label": "GDGT"
      },
      "grain size": {
        "id": "http://linked.earth/ontology/paleo_proxy#grain_size",
        "label": "grain size"
      },
      "grain_size": {
        "id": "http://linked.earth/ontology/paleo_proxy#grain_size",
        "label": "grain size"
      },
      "particle size": {
        "id": "http://linked.earth/ontology/paleo_proxy#grain_size",
        "label": "grain size"
      },
      "hbi": {
        "id": "http://linked.earth/ontology/paleo_proxy#HBI",
        "label": "HBI"
      },
      "highly-branched isoprenoid alkene": {
        "id": "http://linked.earth/ontology/paleo_proxy#HBI",
        "label": "HBI"
      },
      "historical": {
        "id": "http://linked.earth/ontology/paleo_proxy#historical",
        "label": "historical"
      },
      "documentary": {
        "id": "http://linked.earth/ontology/paleo_proxy#historical",
        "label": "historical"
      },
      "historic": {
        "id": "http://linked.earth/ontology/paleo_proxy#historical",
        "label": "historical"
      },
      "humification": {
        "id": "http://linked.earth/ontology/paleo_proxy#humification",
        "label": "humification"
      },
      "humification index": {
        "id": "http://linked.earth/ontology/paleo_proxy#humification",
        "label": "humification"
      },
      "ice accumulation": {
        "id": "http://linked.earth/ontology/paleo_proxy#ice_accumulation",
        "label": "ice accumulation"
      },
      "ice_accumulation": {
        "id": "http://linked.earth/ontology/paleo_proxy#ice_accumulation",
        "label": "ice accumulation"
      },
      "ice melt": {
        "id": "http://linked.earth/ontology/paleo_proxy#ice_melt",
        "label": "ice melt"
      },
      "ice_melt": {
        "id": "http://linked.earth/ontology/paleo_proxy#ice_melt",
        "label": "ice melt"
      },
      "melt": {
        "id": "http://linked.earth/ontology/paleo_proxy#ice_melt",
        "label": "ice melt"
      },
      "melt layer": {
        "id": "http://linked.earth/ontology/paleo_proxy#ice_melt",
        "label": "ice melt"
      },
      "inorganic carbon": {
        "id": "http://linked.earth/ontology/paleo_proxy#inorganic_carbon",
        "label": "inorganic carbon"
      },
      "inorganic_carbon": {
        "id": "http://linked.earth/ontology/paleo_proxy#inorganic_carbon",
        "label": "inorganic carbon"
      },
      "tic": {
        "id": "http://linked.earth/ontology/paleo_proxy#inorganic_carbon",
        "label": "inorganic carbon"
      },
      "ip25": {
        "id": "http://linked.earth/ontology/paleo_proxy#IP25",
        "label": "IP25"
      },
      "ice proxy with 25 carbon atoms": {
        "id": "http://linked.earth/ontology/paleo_proxy#IP25",
        "label": "IP25"
      },
      "lake level": {
        "id": "http://linked.earth/ontology/paleo_proxy#lake_level",
        "label": "lake level"
      },
      "lake_level": {
        "id": "http://linked.earth/ontology/paleo_proxy#lake_level",
        "label": "lake level"
      },
      "lake stratigraphy and radiocarbon dating of macrofossils": {
        "id": "http://linked.earth/ontology/paleo_proxy#lake_level",
        "label": "lake level"
      },
      "lakelevel": {
        "id": "http://linked.earth/ontology/paleo_proxy#lake_level",
        "label": "lake level"
      },
      "lakestatus": {
        "id": "http://linked.earth/ontology/paleo_proxy#lake_level",
        "label": "lake level"
      },
      "latewood cellulose": {
        "id": "http://linked.earth/ontology/paleo_proxy#latewood_cellulose",
        "label": "latewood cellulose"
      },
      "latewood_cellulose": {
        "id": "http://linked.earth/ontology/paleo_proxy#latewood_cellulose",
        "label": "latewood cellulose"
      },
      "late-wood cellulose": {
        "id": "http://linked.earth/ontology/paleo_proxy#latewood_cellulose",
        "label": "latewood cellulose"
      },
      "ldi": {
        "id": "http://linked.earth/ontology/paleo_proxy#LDI",
        "label": "LDI"
      },
      "long-chain diol index": {
        "id": "http://linked.earth/ontology/paleo_proxy#LDI",
        "label": "LDI"
      },
      "long chain diol": {
        "id": "http://linked.earth/ontology/paleo_proxy#LDI",
        "label": "LDI"
      },
      "macrofossils": {
        "id": "http://linked.earth/ontology/paleo_proxy#macrofossils",
        "label": "macrofossils"
      },
      "plant macrofossils": {
        "id": "http://linked.earth/ontology/paleo_proxy#macrofossils",
        "label": "macrofossils"
      },
      "magnetic": {
        "id": "http://linked.earth/ontology/paleo_proxy#magnetic",
        "label": "magnetic"
      },
      "arm/irm": {
        "id": "http://linked.earth/ontology/paleo_proxy#magnetic",
        "label": "magnetic"
      },
      "irm": {
        "id": "http://linked.earth/ontology/paleo_proxy#magnetic",
        "label": "magnetic"
      },
      "magnetic susceptibility": {
        "id": "http://linked.earth/ontology/paleo_proxy#magnetic_susceptibility",
        "label": "magnetic susceptibility"
      },
      "magnetic_susceptibility": {
        "id": "http://linked.earth/ontology/paleo_proxy#magnetic_susceptibility",
        "label": "magnetic susceptibility"
      },
      "ms": {
        "id": "http://linked.earth/ontology/paleo_proxy#magnetic_susceptibility",
        "label": "magnetic susceptibility"
      },
      "mass accumulation rate": {
        "id": "http://linked.earth/ontology/paleo_proxy#mass_accumulation_rate",
        "label": "mass accumulation rate"
      },
      "mass_accumulation_rate": {
        "id": "http://linked.earth/ontology/paleo_proxy#mass_accumulation_rate",
        "label": "mass accumulation rate"
      },
      "mass per area per time unit": {
        "id": "http://linked.earth/ontology/paleo_proxy#mass_accumulation_rate",
        "label": "mass accumulation rate"
      },
      "mar": {
        "id": "http://linked.earth/ontology/paleo_proxy#mass_accumulation_rate",
        "label": "mass accumulation rate"
      },
      "maximum latewood density": {
        "id": "http://linked.earth/ontology/paleo_proxy#maximum_latewood_density",
        "label": "maximum latewood density"
      },
      "maximum_latewood_density": {
        "id": "http://linked.earth/ontology/paleo_proxy#maximum_latewood_density",
        "label": "maximum latewood density"
      },
      "latewood density": {
        "id": "http://linked.earth/ontology/paleo_proxy#maximum_latewood_density",
        "label": "maximum latewood density"
      },
      "delta density": {
        "id": "http://linked.earth/ontology/paleo_proxy#maximum_latewood_density",
        "label": "maximum latewood density"
      },
      "mxd": {
        "id": "http://linked.earth/ontology/paleo_proxy#maximum_latewood_density",
        "label": "maximum latewood density"
      },
      "mg": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg",
        "label": "Mg"
      },
      "magnesium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg",
        "label": "Mg"
      },
      "mg/ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mg_ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg_Ca",
        "label": "Mg/Ca"
      },
      "magnesium/calcium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg_Ca",
        "label": "Mg/Ca"
      },
      "foram mg/ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Mg_Ca",
        "label": "Mg/Ca"
      },
      "multiproxy": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "multiple proxies": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "hybrid": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "hybrid grain size": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "hybrid-ice": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "hybrid-lake": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "pore ice d2h and d18o": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "ti": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti",
        "label": "Ti"
      },
      "ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "k": {
        "id": "http://linked.earth/ontology/paleo_proxy#multiproxy",
        "label": "multiproxy"
      },
      "needs to be changed": {
        "id": "http://linked.earth/ontology/paleo_proxy#needs_to_be_changed",
        "label": "needs to be changed"
      },
      "needs_to_be_changed": {
        "id": "http://linked.earth/ontology/paleo_proxy#needs_to_be_changed",
        "label": "needs to be changed"
      },
      "pca": {
        "id": "http://linked.earth/ontology/paleo_proxy#needs_to_be_changed",
        "label": "needs to be changed"
      },
      "needstobechanged": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "((( calcium carbonate ))) accumulation /// null": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "3-oh-fatty acids": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "age": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cas": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cia": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "coral": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "element": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "element ratio": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ice": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "isotope": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "isotope diffusion": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mg0": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "middle-wood cellulose": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mineral": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mineralogy": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "percent": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "sediment": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "tds": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "trace element / ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "traceelement": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "u cluster 2": {
        "id": "http://linked.earth/ontology/paleo_proxy#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ostracod": {
        "id": "http://linked.earth/ontology/paleo_proxy#ostracod",
        "label": "ostracod"
      },
      "p-aqueous": {
        "id": "http://linked.earth/ontology/paleo_proxy#P-aqueous",
        "label": "P-aqueous"
      },
      "paq": {
        "id": "http://linked.earth/ontology/paleo_proxy#P-aqueous",
        "label": "P-aqueous"
      },
      "peat ash": {
        "id": "http://linked.earth/ontology/paleo_proxy#peat_ash",
        "label": "peat ash"
      },
      "peat_ash": {
        "id": "http://linked.earth/ontology/paleo_proxy#peat_ash",
        "label": "peat ash"
      },
      "ph": {
        "id": "http://linked.earth/ontology/paleo_proxy#pH",
        "label": "pH"
      },
      "pollen": {
        "id": "http://linked.earth/ontology/paleo_proxy#pollen",
        "label": "pollen"
      },
      "aquatic palynomorphs": {
        "id": "http://linked.earth/ontology/paleo_proxy#pollen",
        "label": "pollen"
      },
      "radiolaria": {
        "id": "http://linked.earth/ontology/paleo_proxy#radiolaria",
        "label": "radiolaria"
      },
      "radiolarian": {
        "id": "http://linked.earth/ontology/paleo_proxy#radiolaria",
        "label": "radiolaria"
      },
      "rb": {
        "id": "http://linked.earth/ontology/paleo_proxy#Rb",
        "label": "Rb"
      },
      "rubidium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Rb",
        "label": "Rb"
      },
      "rb/sr": {
        "id": "http://linked.earth/ontology/paleo_proxy#Rb_Sr",
        "label": "Rb/Sr"
      },
      "rb_sr": {
        "id": "http://linked.earth/ontology/paleo_proxy#Rb_Sr",
        "label": "Rb/Sr"
      },
      "reflectance": {
        "id": "http://linked.earth/ontology/paleo_proxy#reflectance",
        "label": "reflectance"
      },
      "ring width": {
        "id": "http://linked.earth/ontology/paleo_proxy#ring_width",
        "label": "ring width"
      },
      "ring_width": {
        "id": "http://linked.earth/ontology/paleo_proxy#ring_width",
        "label": "ring width"
      },
      "trw": {
        "id": "http://linked.earth/ontology/paleo_proxy#ring_width",
        "label": "ring width"
      },
      "sr": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr",
        "label": "Sr"
      },
      "strontium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr",
        "label": "Sr"
      },
      "sr/ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr_Ca",
        "label": "Sr/Ca"
      },
      "sr_ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr_Ca",
        "label": "Sr/Ca"
      },
      "strontium/calcium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr_Ca",
        "label": "Sr/Ca"
      },
      "ca/sr": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr_Ca",
        "label": "Sr/Ca"
      },
      "coral sr/ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr_Ca",
        "label": "Sr/Ca"
      },
      "srca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Sr_Ca",
        "label": "Sr/Ca"
      },
      "stratigraphy": {
        "id": "http://linked.earth/ontology/paleo_proxy#stratigraphy",
        "label": "stratigraphy"
      },
      "minerogenic layers": {
        "id": "http://linked.earth/ontology/paleo_proxy#stratigraphy",
        "label": "stratigraphy"
      },
      "plant detrital layers": {
        "id": "http://linked.earth/ontology/paleo_proxy#stratigraphy",
        "label": "stratigraphy"
      },
      "sulfur": {
        "id": "http://linked.earth/ontology/paleo_proxy#sulfur",
        "label": "sulfur"
      },
      "s": {
        "id": "http://linked.earth/ontology/paleo_proxy#sulfur",
        "label": "sulfur"
      },
      "tex86": {
        "id": "http://linked.earth/ontology/paleo_proxy#TEX86",
        "label": "TEX86"
      },
      "tetraether index of 86 carbon atoms": {
        "id": "http://linked.earth/ontology/paleo_proxy#TEX86",
        "label": "TEX86"
      },
      "titanium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti",
        "label": "Ti"
      },
      "ti/al": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Al",
        "label": "Ti/Al"
      },
      "ti_al": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Al",
        "label": "Ti/Al"
      },
      "titanium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Al",
        "label": "Ti/Al"
      },
      "ti/ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Ca",
        "label": "Ti/Ca"
      },
      "ti_ca": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Ca",
        "label": "Ti/Ca"
      },
      "titanium/calcium": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Ca",
        "label": "Ti/Ca"
      },
      "ln(ti/ca)": {
        "id": "http://linked.earth/ontology/paleo_proxy#Ti_Ca",
        "label": "Ti/Ca"
      },
      "toc": {
        "id": "http://linked.earth/ontology/paleo_proxy#TOC",
        "label": "TOC"
      },
      "organic carbon": {
        "id": "http://linked.earth/ontology/paleo_proxy#TOC",
        "label": "TOC"
      },
      "total nitrogen": {
        "id": "http://linked.earth/ontology/paleo_proxy#total_nitrogen",
        "label": "total nitrogen"
      },
      "total_nitrogen": {
        "id": "http://linked.earth/ontology/paleo_proxy#total_nitrogen",
        "label": "total nitrogen"
      },
      "tn": {
        "id": "http://linked.earth/ontology/paleo_proxy#total_nitrogen",
        "label": "total nitrogen"
      },
      "varve thickness": {
        "id": "http://linked.earth/ontology/paleo_proxy#varve_thickness",
        "label": "varve thickness"
      },
      "varve_thickness": {
        "id": "http://linked.earth/ontology/paleo_proxy#varve_thickness",
        "label": "varve thickness"
      },
      "varve": {
        "id": "http://linked.earth/ontology/paleo_proxy#varve_thickness",
        "label": "varve thickness"
      },
      "varve property": {
        "id": "http://linked.earth/ontology/paleo_proxy#varve_thickness",
        "label": "varve thickness"
      },
      "varves": {
        "id": "http://linked.earth/ontology/paleo_proxy#varve_thickness",
        "label": "varve thickness"
      }
    },
    "PaleoProxyGeneral": {
      "biogenic": {
        "id": "http://linked.earth/ontology/paleo_proxy#biogenic",
        "label": "biogenic"
      },
      "biological material": {
        "id": "http://linked.earth/ontology/paleo_proxy#biogenic",
        "label": "biogenic"
      },
      "cryophysical": {
        "id": "http://linked.earth/ontology/paleo_proxy#cryophysical",
        "label": "cryophysical"
      },
      "dendrophysical": {
        "id": "http://linked.earth/ontology/paleo_proxy#dendrophysical",
        "label": "dendrophysical"
      },
      "elemental": {
        "id": "http://linked.earth/ontology/paleo_proxy#elemental",
        "label": "elemental"
      },
      "faunal assemblage": {
        "id": "http://linked.earth/ontology/paleo_proxy#faunal_assemblage",
        "label": "faunal assemblage"
      },
      "faunal_assemblage": {
        "id": "http://linked.earth/ontology/paleo_proxy#faunal_assemblage",
        "label": "faunal assemblage"
      },
      "floral assemblage": {
        "id": "http://linked.earth/ontology/paleo_proxy#floral_assemblage",
        "label": "floral assemblage"
      },
      "floral_assemblage": {
        "id": "http://linked.earth/ontology/paleo_proxy#floral_assemblage",
        "label": "floral assemblage"
      },
      "isotopic": {
        "id": "http://linked.earth/ontology/paleo_proxy#isotopic",
        "label": "isotopic"
      },
      "isotope": {
        "id": "http://linked.earth/ontology/paleo_proxy#isotopic",
        "label": "isotopic"
      },
      "mineral": {
        "id": "http://linked.earth/ontology/paleo_proxy#mineral",
        "label": "mineral"
      },
      "pyrogenic": {
        "id": "http://linked.earth/ontology/paleo_proxy#pyrogenic",
        "label": "pyrogenic"
      },
      "fire history": {
        "id": "http://linked.earth/ontology/paleo_proxy#pyrogenic",
        "label": "pyrogenic"
      },
      "sedimentology": {
        "id": "http://linked.earth/ontology/paleo_proxy#sedimentology",
        "label": "sedimentology"
      }
    }
  },
  "UNITS": {
    "PaleoUnit": {
      "atomic ratio": {
        "id": "http://linked.earth/ontology/paleo_units#atomic_ratio",
        "label": "atomic ratio"
      },
      "atomic_ratio": {
        "id": "http://linked.earth/ontology/paleo_units#atomic_ratio",
        "label": "atomic ratio"
      },
      "cgs": {
        "id": "http://linked.earth/ontology/paleo_units#cgs",
        "label": "cgs"
      },
      "dimensionless (cgs system)": {
        "id": "http://linked.earth/ontology/paleo_units#cgs",
        "label": "cgs"
      },
      "cm": {
        "id": "http://linked.earth/ontology/paleo_units#cm",
        "label": "cm"
      },
      "centimeter": {
        "id": "http://linked.earth/ontology/paleo_units#cm",
        "label": "cm"
      },
      "cmblf": {
        "id": "http://linked.earth/ontology/paleo_units#cm",
        "label": "cm"
      },
      "cm/kyr": {
        "id": "http://linked.earth/ontology/paleo_units#cm_kyr",
        "label": "cm/kyr"
      },
      "cm_kyr": {
        "id": "http://linked.earth/ontology/paleo_units#cm_kyr",
        "label": "cm/kyr"
      },
      "centimeter per kiloyear": {
        "id": "http://linked.earth/ontology/paleo_units#cm_kyr",
        "label": "cm/kyr"
      },
      "cm/yr": {
        "id": "http://linked.earth/ontology/paleo_units#cm_yr",
        "label": "cm/yr"
      },
      "cm_yr": {
        "id": "http://linked.earth/ontology/paleo_units#cm_yr",
        "label": "cm/yr"
      },
      "centimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#cm_yr",
        "label": "cm/yr"
      },
      "cm/a": {
        "id": "http://linked.earth/ontology/paleo_units#cm_yr",
        "label": "cm/yr"
      },
      "cm yr-1": {
        "id": "http://linked.earth/ontology/paleo_units#cm_yr",
        "label": "cm/yr"
      },
      "cm3": {
        "id": "http://linked.earth/ontology/paleo_units#cm3",
        "label": "cm3"
      },
      "cubic centimeter": {
        "id": "http://linked.earth/ontology/paleo_units#cm3",
        "label": "cm3"
      },
      "count": {
        "id": "http://linked.earth/ontology/paleo_units#count",
        "label": "count"
      },
      "number": {
        "id": "http://linked.earth/ontology/paleo_units#count",
        "label": "count"
      },
      "#": {
        "id": "http://linked.earth/ontology/paleo_units#count",
        "label": "count"
      },
      "counts": {
        "id": "http://linked.earth/ontology/paleo_units#count",
        "label": "count"
      },
      "dark_sum": {
        "id": "http://linked.earth/ontology/paleo_units#count",
        "label": "count"
      },
      "cts": {
        "id": "http://linked.earth/ontology/paleo_units#count",
        "label": "count"
      },
      "count/century": {
        "id": "http://linked.earth/ontology/paleo_units#count_century",
        "label": "count/century"
      },
      "count_century": {
        "id": "http://linked.earth/ontology/paleo_units#count_century",
        "label": "count/century"
      },
      "count per century": {
        "id": "http://linked.earth/ontology/paleo_units#count_century",
        "label": "count/century"
      },
      "envents/100yrs": {
        "id": "http://linked.earth/ontology/paleo_units#count_century",
        "label": "count/century"
      },
      "count/cm2": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2",
        "label": "count/cm2"
      },
      "count_cm2": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2",
        "label": "count/cm2"
      },
      "count per square centimeter": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2",
        "label": "count/cm2"
      },
      "number/cm2": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2",
        "label": "count/cm2"
      },
      "count/cm2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2_yr",
        "label": "count/cm2/yr"
      },
      "count_cm2_yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2_yr",
        "label": "count/cm2/yr"
      },
      "count per square centimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2_yr",
        "label": "count/cm2/yr"
      },
      "grains>255 micron/cm2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2_yr",
        "label": "count/cm2/yr"
      },
      "no/cm2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm2_yr",
        "label": "count/cm2/yr"
      },
      "count/cm3": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm3",
        "label": "count/cm3"
      },
      "count_cm3": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm3",
        "label": "count/cm3"
      },
      "count per cubic centimeter": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm3",
        "label": "count/cm3"
      },
      "bubbles/cm3": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm3",
        "label": "count/cm3"
      },
      "#/cm3": {
        "id": "http://linked.earth/ontology/paleo_units#count_cm3",
        "label": "count/cm3"
      },
      "count/g": {
        "id": "http://linked.earth/ontology/paleo_units#count_g",
        "label": "count/g"
      },
      "count_g": {
        "id": "http://linked.earth/ontology/paleo_units#count_g",
        "label": "count/g"
      },
      "count per gram": {
        "id": "http://linked.earth/ontology/paleo_units#count_g",
        "label": "count/g"
      },
      "grains/g": {
        "id": "http://linked.earth/ontology/paleo_units#count_g",
        "label": "count/g"
      },
      "millions of valves/g dry sed": {
        "id": "http://linked.earth/ontology/paleo_units#count_g",
        "label": "count/g"
      },
      "count/kyr": {
        "id": "http://linked.earth/ontology/paleo_units#count_kyr",
        "label": "count/kyr"
      },
      "count_kyr": {
        "id": "http://linked.earth/ontology/paleo_units#count_kyr",
        "label": "count/kyr"
      },
      "count per kiloyear": {
        "id": "http://linked.earth/ontology/paleo_units#count_kyr",
        "label": "count/kyr"
      },
      "frequency/1000yrs": {
        "id": "http://linked.earth/ontology/paleo_units#count_kyr",
        "label": "count/kyr"
      },
      "count/ml": {
        "id": "http://linked.earth/ontology/paleo_units#count_mL",
        "label": "count/mL"
      },
      "count_ml": {
        "id": "http://linked.earth/ontology/paleo_units#count_mL",
        "label": "count/mL"
      },
      "count per milliliter": {
        "id": "http://linked.earth/ontology/paleo_units#count_mL",
        "label": "count/mL"
      },
      "count/yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_yr",
        "label": "count/yr"
      },
      "count_yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_yr",
        "label": "count/yr"
      },
      "count per year": {
        "id": "http://linked.earth/ontology/paleo_units#count_yr",
        "label": "count/yr"
      },
      "floods per year": {
        "id": "http://linked.earth/ontology/paleo_units#count_yr",
        "label": "count/yr"
      },
      "floods per yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_yr",
        "label": "count/yr"
      },
      "floods/yr": {
        "id": "http://linked.earth/ontology/paleo_units#count_yr",
        "label": "count/yr"
      },
      "cps": {
        "id": "http://linked.earth/ontology/paleo_units#cps",
        "label": "cps"
      },
      "count per second": {
        "id": "http://linked.earth/ontology/paleo_units#cps",
        "label": "cps"
      },
      "day": {
        "id": "http://linked.earth/ontology/paleo_units#day",
        "label": "day"
      },
      "days": {
        "id": "http://linked.earth/ontology/paleo_units#day",
        "label": "day"
      },
      "degc": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "degree celsius": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "gdd5": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "((( null ))) deg c /// degc": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "degrees": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "\xBAc": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "deg": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "gdd": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "kelvin": {
        "id": "http://linked.earth/ontology/paleo_units#degC",
        "label": "degC"
      },
      "degree": {
        "id": "http://linked.earth/ontology/paleo_units#degree",
        "label": "degree"
      },
      "decimal degrees": {
        "id": "http://linked.earth/ontology/paleo_units#degree",
        "label": "degree"
      },
      "fraction": {
        "id": "http://linked.earth/ontology/paleo_units#fraction",
        "label": "fraction"
      },
      "fractional abundance": {
        "id": "http://linked.earth/ontology/paleo_units#fraction",
        "label": "fraction"
      },
      "fraction 0 to 1": {
        "id": "http://linked.earth/ontology/paleo_units#fraction",
        "label": "fraction"
      },
      "relative abundance": {
        "id": "http://linked.earth/ontology/paleo_units#fraction",
        "label": "fraction"
      },
      "g": {
        "id": "http://linked.earth/ontology/paleo_units#g",
        "label": "g"
      },
      "gram": {
        "id": "http://linked.earth/ontology/paleo_units#g",
        "label": "g"
      },
      "g/cm/yr": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm_yr",
        "label": "g/cm/yr"
      },
      "g_cm_yr": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm_yr",
        "label": "g/cm/yr"
      },
      "gram per centimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm_yr",
        "label": "g/cm/yr"
      },
      "g/cm2": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2",
        "label": "g/cm2"
      },
      "g_cm2": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2",
        "label": "g/cm2"
      },
      "gram per square centimeter": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2",
        "label": "g/cm2"
      },
      "gcm2": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2",
        "label": "g/cm2"
      },
      "g cm-1": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2",
        "label": "g/cm2"
      },
      "g/cm2/kyr": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_kyr",
        "label": "g/cm2/kyr"
      },
      "g_cm2_kyr": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_kyr",
        "label": "g/cm2/kyr"
      },
      "gram per square centimeter per kiloyear": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_kyr",
        "label": "g/cm2/kyr"
      },
      "g/cm2/ka": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_kyr",
        "label": "g/cm2/kyr"
      },
      "g/cm2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "g_cm2_yr": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "gram per square centimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "g/m^2/a": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "gcm-2yr-1": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "g.cm-2.a-1": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "g/cm^2/y": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "gcm-2a-1": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm2_yr",
        "label": "g/cm2/yr"
      },
      "g/cm3": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm3",
        "label": "g/cm3"
      },
      "g_cm3": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm3",
        "label": "g/cm3"
      },
      "gram per cubic centimeter": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm3",
        "label": "g/cm3"
      },
      "g/cc": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm3",
        "label": "g/cm3"
      },
      "grams/cubic cm": {
        "id": "http://linked.earth/ontology/paleo_units#g_cm3",
        "label": "g/cm3"
      },
      "g/l": {
        "id": "http://linked.earth/ontology/paleo_units#g_L",
        "label": "g/L"
      },
      "g_l": {
        "id": "http://linked.earth/ontology/paleo_units#g_L",
        "label": "g/L"
      },
      "gram per liter": {
        "id": "http://linked.earth/ontology/paleo_units#g_L",
        "label": "g/L"
      },
      "g/m2": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2",
        "label": "g/m2"
      },
      "g_m2": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2",
        "label": "g/m2"
      },
      "gram per square meter": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2",
        "label": "g/m2"
      },
      "g/m": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2",
        "label": "g/m2"
      },
      "g/m2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2_yr",
        "label": "g/m2/yr"
      },
      "g_m2_yr": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2_yr",
        "label": "g/m2/yr"
      },
      "gram per square meter per year": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2_yr",
        "label": "g/m2/yr"
      },
      "gm2yr-1": {
        "id": "http://linked.earth/ontology/paleo_units#g_m2_yr",
        "label": "g/m2/yr"
      },
      "grayscale": {
        "id": "http://linked.earth/ontology/paleo_units#grayscale",
        "label": "grayscale"
      },
      "kg/m2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#kg_m2_yr",
        "label": "kg/m2/yr"
      },
      "kg_m2_yr": {
        "id": "http://linked.earth/ontology/paleo_units#kg_m2_yr",
        "label": "kg/m2/yr"
      },
      "kilogram per square meter per year": {
        "id": "http://linked.earth/ontology/paleo_units#kg_m2_yr",
        "label": "kg/m2/yr"
      },
      "kg/m3": {
        "id": "http://linked.earth/ontology/paleo_units#kg_m3",
        "label": "kg/m3"
      },
      "kg_m3": {
        "id": "http://linked.earth/ontology/paleo_units#kg_m3",
        "label": "kg/m3"
      },
      "kilogram per square meter": {
        "id": "http://linked.earth/ontology/paleo_units#kg_m3",
        "label": "kg/m3"
      },
      "km2": {
        "id": "http://linked.earth/ontology/paleo_units#km2",
        "label": "km2"
      },
      "square kilometer": {
        "id": "http://linked.earth/ontology/paleo_units#km2",
        "label": "km2"
      },
      "km3": {
        "id": "http://linked.earth/ontology/paleo_units#km3",
        "label": "km3"
      },
      "cubic kilometer": {
        "id": "http://linked.earth/ontology/paleo_units#km3",
        "label": "km3"
      },
      "log(mg/l)": {
        "id": "http://linked.earth/ontology/paleo_units#log_mg_L_",
        "label": "log(mg/L)"
      },
      "log_mg_l_": {
        "id": "http://linked.earth/ontology/paleo_units#log_mg_L_",
        "label": "log(mg/L)"
      },
      "log mg/l": {
        "id": "http://linked.earth/ontology/paleo_units#log_mg_L_",
        "label": "log(mg/L)"
      },
      "m": {
        "id": "http://linked.earth/ontology/paleo_units#m",
        "label": "m"
      },
      "meter": {
        "id": "http://linked.earth/ontology/paleo_units#m",
        "label": "m"
      },
      "m3/kg": {
        "id": "http://linked.earth/ontology/paleo_units#m3_kg",
        "label": "m3/kg"
      },
      "m3_kg": {
        "id": "http://linked.earth/ontology/paleo_units#m3_kg",
        "label": "m3/kg"
      },
      "cubic meter per kilogram": {
        "id": "http://linked.earth/ontology/paleo_units#m3_kg",
        "label": "m3/kg"
      },
      "m^3 kg^-1": {
        "id": "http://linked.earth/ontology/paleo_units#m3_kg",
        "label": "m3/kg"
      },
      "m3kg-1": {
        "id": "http://linked.earth/ontology/paleo_units#m3_kg",
        "label": "m3/kg"
      },
      "m3kg1": {
        "id": "http://linked.earth/ontology/paleo_units#m3_kg",
        "label": "m3/kg"
      },
      "mg": {
        "id": "http://linked.earth/ontology/paleo_units#mg",
        "label": "mg"
      },
      "milligram": {
        "id": "http://linked.earth/ontology/paleo_units#mg",
        "label": "mg"
      },
      "mg/cm2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#mg_cm2_yr",
        "label": "mg/cm2/yr"
      },
      "mg_cm2_yr": {
        "id": "http://linked.earth/ontology/paleo_units#mg_cm2_yr",
        "label": "mg/cm2/yr"
      },
      "milligram per square centimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#mg_cm2_yr",
        "label": "mg/cm2/yr"
      },
      "mg/g": {
        "id": "http://linked.earth/ontology/paleo_units#mg_g",
        "label": "mg/g"
      },
      "mg_g": {
        "id": "http://linked.earth/ontology/paleo_units#mg_g",
        "label": "mg/g"
      },
      "milligram per gram": {
        "id": "http://linked.earth/ontology/paleo_units#mg_g",
        "label": "mg/g"
      },
      "mg g-1": {
        "id": "http://linked.earth/ontology/paleo_units#mg_g",
        "label": "mg/g"
      },
      "mill/g": {
        "id": "http://linked.earth/ontology/paleo_units#mg_g",
        "label": "mg/g"
      },
      "mg/kg": {
        "id": "http://linked.earth/ontology/paleo_units#mg_kg",
        "label": "mg/kg"
      },
      "mg_kg": {
        "id": "http://linked.earth/ontology/paleo_units#mg_kg",
        "label": "mg/kg"
      },
      "milligram per kilogram": {
        "id": "http://linked.earth/ontology/paleo_units#mg_kg",
        "label": "mg/kg"
      },
      "mg/l": {
        "id": "http://linked.earth/ontology/paleo_units#mg_L",
        "label": "mg/L"
      },
      "mg_l": {
        "id": "http://linked.earth/ontology/paleo_units#mg_L",
        "label": "mg/L"
      },
      "milligram per liter": {
        "id": "http://linked.earth/ontology/paleo_units#mg_L",
        "label": "mg/L"
      },
      "mm": {
        "id": "http://linked.earth/ontology/paleo_units#mm",
        "label": "mm"
      },
      "millimeter": {
        "id": "http://linked.earth/ontology/paleo_units#mm",
        "label": "mm"
      },
      "depth_sample": {
        "id": "http://linked.earth/ontology/paleo_units#mm",
        "label": "mm"
      },
      "mm/day": {
        "id": "http://linked.earth/ontology/paleo_units#mm_day",
        "label": "mm/day"
      },
      "mm_day": {
        "id": "http://linked.earth/ontology/paleo_units#mm_day",
        "label": "mm/day"
      },
      "millimeter per day": {
        "id": "http://linked.earth/ontology/paleo_units#mm_day",
        "label": "mm/day"
      },
      "mm/season": {
        "id": "http://linked.earth/ontology/paleo_units#mm_season",
        "label": "mm/season"
      },
      "mm_season": {
        "id": "http://linked.earth/ontology/paleo_units#mm_season",
        "label": "mm/season"
      },
      "mm/yr": {
        "id": "http://linked.earth/ontology/paleo_units#mm_yr",
        "label": "mm/yr"
      },
      "mm_yr": {
        "id": "http://linked.earth/ontology/paleo_units#mm_yr",
        "label": "mm/yr"
      },
      "millimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#mm_yr",
        "label": "mm/yr"
      },
      "mm/a": {
        "id": "http://linked.earth/ontology/paleo_units#mm_yr",
        "label": "mm/yr"
      },
      "((( null ))) mm /// mm/a": {
        "id": "http://linked.earth/ontology/paleo_units#mm_yr",
        "label": "mm/yr"
      },
      "mmol/mol": {
        "id": "http://linked.earth/ontology/paleo_units#mmol_mol",
        "label": "mmol/mol"
      },
      "mmol_mol": {
        "id": "http://linked.earth/ontology/paleo_units#mmol_mol",
        "label": "mmol/mol"
      },
      "millimole per mole": {
        "id": "http://linked.earth/ontology/paleo_units#mmol_mol",
        "label": "mmol/mol"
      },
      "months/year": {
        "id": "http://linked.earth/ontology/paleo_units#months_year",
        "label": "months/year"
      },
      "months_year": {
        "id": "http://linked.earth/ontology/paleo_units#months_year",
        "label": "months/year"
      },
      "needstobechanged": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "1s": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "a\u20AC\xB0": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "floods per 30 years": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "floods per 30 yrs (200 yr running average)": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hu": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "layers/200yrs": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "[\xB1]": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "0.5s": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "1 sigma": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "10-5": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "10^-9 am2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "1sigma": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "a\x80\xB0": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "afae\u2019a\u2020a\u20AC\u2122afa\xA2a\xA2a\u20ACsa\xACa\u2026a\xA1afae\u2019a\xA2a\u201A\xACa\xA1afa\u20ACsa\u201Aaug/g": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "unknown": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mcm": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mwe": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "1041 m3/kg": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "am2kg-1": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "area": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "aug/cm2/ka": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "gomcm2yr-1": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "sum": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "total": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cm2yr-1": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "square mm/cubic cm": {
        "id": "http://linked.earth/ontology/paleo_units#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ng": {
        "id": "http://linked.earth/ontology/paleo_units#ng",
        "label": "ng"
      },
      "nanogram": {
        "id": "http://linked.earth/ontology/paleo_units#ng",
        "label": "ng"
      },
      "ng/sample": {
        "id": "http://linked.earth/ontology/paleo_units#ng",
        "label": "ng"
      },
      "ng/g": {
        "id": "http://linked.earth/ontology/paleo_units#ng_g",
        "label": "ng/g"
      },
      "ng_g": {
        "id": "http://linked.earth/ontology/paleo_units#ng_g",
        "label": "ng/g"
      },
      "nanogram per gram": {
        "id": "http://linked.earth/ontology/paleo_units#ng_g",
        "label": "ng/g"
      },
      "ng/g sed": {
        "id": "http://linked.earth/ontology/paleo_units#ng_g",
        "label": "ng/g"
      },
      "peak area": {
        "id": "http://linked.earth/ontology/paleo_units#peak_area",
        "label": "peak area"
      },
      "peak_area": {
        "id": "http://linked.earth/ontology/paleo_units#peak_area",
        "label": "peak area"
      },
      "peak area integral": {
        "id": "http://linked.earth/ontology/paleo_units#peak_area",
        "label": "peak area"
      },
      "pa/kcps": {
        "id": "http://linked.earth/ontology/paleo_units#peak_area",
        "label": "peak area"
      },
      "percent": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "%": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "((( null ))) % /// percent": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "wt %": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "% abs": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "mol%": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "mole per mole * 100": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "percentbyweight": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "precent": {
        "id": "http://linked.earth/ontology/paleo_units#percent",
        "label": "percent"
      },
      "permil": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "((( null ))) per mil /// permil": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil vs pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "((( null ))) per mil /// unitless": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil (vpdb)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil vs vpdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil (vsmow)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil (pdb)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vs pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil (pdb)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil (smow)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil smow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vsmow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil (vpdb)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vpdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vs vpdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vpdb 1sig": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "\u2030 pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil vsmow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "((( null ))) permil /// unitless": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "+/- permil pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "+/- permil smow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "\xB1 permil": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "per mil vsmow 1sig": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "((( null ))) permil /// per mil": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "\u2030 smow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "1000*counts/counts": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "d18o": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "pemil": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil (pbd)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil (smow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "not pdb!)": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil v pdb": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vmow": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permil vsmow 1sig": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "permit": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "perml": {
        "id": "http://linked.earth/ontology/paleo_units#permil",
        "label": "permil"
      },
      "ph": {
        "id": "http://linked.earth/ontology/paleo_units#pH",
        "label": "pH"
      },
      "acidity": {
        "id": "http://linked.earth/ontology/paleo_units#pH",
        "label": "pH"
      },
      "ppb": {
        "id": "http://linked.earth/ontology/paleo_units#ppb",
        "label": "ppb"
      },
      "parts per billion": {
        "id": "http://linked.earth/ontology/paleo_units#ppb",
        "label": "ppb"
      },
      "ppm": {
        "id": "http://linked.earth/ontology/paleo_units#ppm",
        "label": "ppm"
      },
      "parts per million": {
        "id": "http://linked.earth/ontology/paleo_units#ppm",
        "label": "ppm"
      },
      "practical salinity unit": {
        "id": "http://linked.earth/ontology/paleo_units#practical_salinity_unit",
        "label": "practical salinity unit"
      },
      "practical_salinity_unit": {
        "id": "http://linked.earth/ontology/paleo_units#practical_salinity_unit",
        "label": "practical salinity unit"
      },
      "psu": {
        "id": "http://linked.earth/ontology/paleo_units#practical_salinity_unit",
        "label": "practical salinity unit"
      },
      "ratio": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "relative unit": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "ratio cps": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "g/g": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "(mg/kg)/(mg/kg)": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "cps/cps": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "grams/dry weight": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "sediment 130um": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "((( null ))) ratio /// unitless": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "mm/m": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "mol_mol": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "mol/mol": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "r660_670": {
        "id": "http://linked.earth/ontology/paleo_units#ratio",
        "label": "ratio"
      },
      "si": {
        "id": "http://linked.earth/ontology/paleo_units#SI",
        "label": "SI"
      },
      "dimensionless (si system)": {
        "id": "http://linked.earth/ontology/paleo_units#SI",
        "label": "SI"
      },
      "10^-6si": {
        "id": "http://linked.earth/ontology/paleo_units#SI",
        "label": "SI"
      },
      "dimensionless (si)": {
        "id": "http://linked.earth/ontology/paleo_units#SI",
        "label": "SI"
      },
      "si 10^-5": {
        "id": "http://linked.earth/ontology/paleo_units#SI",
        "label": "SI"
      },
      "ug/cm2/yr": {
        "id": "http://linked.earth/ontology/paleo_units#ug_cm2_yr",
        "label": "ug/cm2/yr"
      },
      "ug_cm2_yr": {
        "id": "http://linked.earth/ontology/paleo_units#ug_cm2_yr",
        "label": "ug/cm2/yr"
      },
      "microgram per square centimeter per year": {
        "id": "http://linked.earth/ontology/paleo_units#ug_cm2_yr",
        "label": "ug/cm2/yr"
      },
      "ugcm-2yr-1": {
        "id": "http://linked.earth/ontology/paleo_units#ug_cm2_yr",
        "label": "ug/cm2/yr"
      },
      "ug/g": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "ug_g": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "microgram per gram": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "ug/g dry sediment": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "ug/g dry sed": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "ug g-1 dw": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "microg_g": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "[ug/g]": {
        "id": "http://linked.earth/ontology/paleo_units#ug_g",
        "label": "ug/g"
      },
      "um": {
        "id": "http://linked.earth/ontology/paleo_units#um",
        "label": "um"
      },
      "micrometer": {
        "id": "http://linked.earth/ontology/paleo_units#um",
        "label": "um"
      },
      "umol/mol": {
        "id": "http://linked.earth/ontology/paleo_units#umol_mol",
        "label": "umol/mol"
      },
      "umol_mol": {
        "id": "http://linked.earth/ontology/paleo_units#umol_mol",
        "label": "umol/mol"
      },
      "micromole per mole": {
        "id": "http://linked.earth/ontology/paleo_units#umol_mol",
        "label": "umol/mol"
      },
      "unitless": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "dimensionless": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "unitless index": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "index": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "type": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "absorbance units": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "ftirs absorbance units": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "name": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "uk37": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "unitless (anomalies)": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "pc": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "standardized": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "0-10": {
        "id": "http://linked.earth/ontology/paleo_units#unitless",
        "label": "unitless"
      },
      "yr 14c bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "yr_14c_bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "radiocarbon year before present": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "radiocarbon years bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "14c yr bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "yr 14c yr bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "bp14c": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "c14yr bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_14C_BP",
        "label": "yr 14C BP"
      },
      "yr ad": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "yr_ad": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "year common era": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "yr": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "ce": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "ad": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "year ce": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "ad/bc": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "cal yr ad": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "year a.d.": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "year c.e.": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "yr ce": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "yrad/bc": {
        "id": "http://linked.earth/ontology/paleo_units#yr_AD",
        "label": "yr AD"
      },
      "yr b2k": {
        "id": "http://linked.earth/ontology/paleo_units#yr_b2k",
        "label": "yr b2k"
      },
      "yr_b2k": {
        "id": "http://linked.earth/ontology/paleo_units#yr_b2k",
        "label": "yr b2k"
      },
      "b2000": {
        "id": "http://linked.earth/ontology/paleo_units#yr_b2k",
        "label": "yr b2k"
      },
      "cal. bp2000": {
        "id": "http://linked.earth/ontology/paleo_units#yr_b2k",
        "label": "yr b2k"
      },
      "years before 2k": {
        "id": "http://linked.earth/ontology/paleo_units#yr_b2k",
        "label": "yr b2k"
      },
      "yr bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "yr_bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "calendar year before present": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal years bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal year bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal yr bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "year bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "years bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "yr b.p.": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "yrs bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal yr b.p.": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "age=1950-year": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal age bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "cal yrs bp": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "yr bo": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "yr p": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "calibrated": {
        "id": "http://linked.earth/ontology/paleo_units#yr_BP",
        "label": "yr BP"
      },
      "yr ka": {
        "id": "http://linked.earth/ontology/paleo_units#yr_ka",
        "label": "yr ka"
      },
      "yr_ka": {
        "id": "http://linked.earth/ontology/paleo_units#yr_ka",
        "label": "yr ka"
      },
      "calendar kiloyear before present": {
        "id": "http://linked.earth/ontology/paleo_units#yr_ka",
        "label": "yr ka"
      },
      "ka": {
        "id": "http://linked.earth/ontology/paleo_units#yr_ka",
        "label": "yr ka"
      },
      "z score": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      },
      "z_score": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      },
      "standard deviation unit": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      },
      "zscore": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      },
      "sd units": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      },
      "std dev": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      },
      "sd": {
        "id": "http://linked.earth/ontology/paleo_units#z_score",
        "label": "z score"
      }
    }
  },
  "VARIABLES": {
    "PaleoVariable": {
      "acl": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "average chain length": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "acl (27-33)": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "acl25-35": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "acl27-31": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "aclc22-30": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "averagechainlength20to30": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "averagechainlength20to32": {
        "id": "http://linked.earth/ontology/paleo_variables#ACL",
        "label": "ACL"
      },
      "aet/pet": {
        "id": "http://linked.earth/ontology/paleo_variables#AET_PET",
        "label": "AET/PET"
      },
      "aet_pet": {
        "id": "http://linked.earth/ontology/paleo_variables#AET_PET",
        "label": "AET/PET"
      },
      "arm/irm": {
        "id": "http://linked.earth/ontology/paleo_variables#ARM_IRM",
        "label": "ARM/IRM"
      },
      "arm_irm": {
        "id": "http://linked.earth/ontology/paleo_variables#ARM_IRM",
        "label": "ARM/IRM"
      },
      "anhysteretic remanent magnetization/isothermal remanent magnetization": {
        "id": "http://linked.earth/ontology/paleo_variables#ARM_IRM",
        "label": "ARM/IRM"
      },
      "arstan": {
        "id": "http://linked.earth/ontology/paleo_variables#ARSTAN",
        "label": "ARSTAN"
      },
      "arstan chronology method": {
        "id": "http://linked.earth/ontology/paleo_variables#ARSTAN",
        "label": "ARSTAN"
      },
      "ars": {
        "id": "http://linked.earth/ontology/paleo_variables#ARSTAN",
        "label": "ARSTAN"
      },
      "al": {
        "id": "http://linked.earth/ontology/paleo_variables#Al",
        "label": "Al"
      },
      "aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#Al",
        "label": "Al"
      },
      "al peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Al",
        "label": "Al"
      },
      "alprop": {
        "id": "http://linked.earth/ontology/paleo_variables#Al",
        "label": "Al"
      },
      "al2o3": {
        "id": "http://linked.earth/ontology/paleo_variables#Al2O3",
        "label": "Al2O3"
      },
      "aluminum oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#Al2O3",
        "label": "Al2O3"
      },
      "as": {
        "id": "http://linked.earth/ontology/paleo_variables#As",
        "label": "As"
      },
      "arsenic": {
        "id": "http://linked.earth/ontology/paleo_variables#As",
        "label": "As"
      },
      "ppm as": {
        "id": "http://linked.earth/ontology/paleo_variables#As",
        "label": "As"
      },
      "bit": {
        "id": "http://linked.earth/ontology/paleo_variables#BIT",
        "label": "BIT"
      },
      "branched and isoprenoid tetraether index": {
        "id": "http://linked.earth/ontology/paleo_variables#BIT",
        "label": "BIT"
      },
      "bitindex": {
        "id": "http://linked.earth/ontology/paleo_variables#BIT",
        "label": "BIT"
      },
      "bitindex-3pt": {
        "id": "http://linked.earth/ontology/paleo_variables#BIT",
        "label": "BIT"
      },
      "bsi": {
        "id": "http://linked.earth/ontology/paleo_variables#BSi",
        "label": "BSi"
      },
      "biogenic silica": {
        "id": "http://linked.earth/ontology/paleo_variables#BSi",
        "label": "BSi"
      },
      "biosi": {
        "id": "http://linked.earth/ontology/paleo_variables#BSi",
        "label": "BSi"
      },
      "bsi_3pt": {
        "id": "http://linked.earth/ontology/paleo_variables#BSi",
        "label": "BSi"
      },
      "bsi_raw": {
        "id": "http://linked.earth/ontology/paleo_variables#BSi",
        "label": "BSi"
      },
      "inferred bsi": {
        "id": "http://linked.earth/ontology/paleo_variables#BSi",
        "label": "BSi"
      },
      "ba": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba",
        "label": "Ba"
      },
      "barium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba",
        "label": "Ba"
      },
      "ba (ppm)": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba",
        "label": "Ba"
      },
      "ba peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba",
        "label": "Ba"
      },
      "ppm ba": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba",
        "label": "Ba"
      },
      "ba/al": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Al",
        "label": "Ba/Al"
      },
      "ba_al": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Al",
        "label": "Ba/Al"
      },
      "barium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Al",
        "label": "Ba/Al"
      },
      "ppmba/%al": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Al",
        "label": "Ba/Al"
      },
      "ba/ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Ca",
        "label": "Ba/Ca"
      },
      "ba_ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Ca",
        "label": "Ba/Ca"
      },
      "barium/calcium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Ca",
        "label": "Ba/Ca"
      },
      "baca": {
        "id": "http://linked.earth/ontology/paleo_variables#Ba_Ca",
        "label": "Ba/Ca"
      },
      "be": {
        "id": "http://linked.earth/ontology/paleo_variables#Be",
        "label": "Be"
      },
      "beryllium": {
        "id": "http://linked.earth/ontology/paleo_variables#Be",
        "label": "Be"
      },
      "ppm be": {
        "id": "http://linked.earth/ontology/paleo_variables#Be",
        "label": "Be"
      },
      "br": {
        "id": "http://linked.earth/ontology/paleo_variables#Br",
        "label": "Br"
      },
      "bromine": {
        "id": "http://linked.earth/ontology/paleo_variables#Br",
        "label": "Br"
      },
      "c20n-alkenoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20 sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c20n": {
        "id": "http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid",
        "label": "C20n-alkenoicAcid"
      },
      "c21n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C21n-alkanoicAcid",
        "label": "C21n-alkanoicAcid"
      },
      "c21 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C21n-alkanoicAcid",
        "label": "C21n-alkanoicAcid"
      },
      "c21 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C21n-alkanoicAcid",
        "label": "C21n-alkanoicAcid"
      },
      "c21 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C21n-alkanoicAcid",
        "label": "C21n-alkanoicAcid"
      },
      "c21fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C21n-alkanoicAcid",
        "label": "C21n-alkanoicAcid"
      },
      "c22n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22 sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c22n": {
        "id": "http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid",
        "label": "C22n-alkanoicAcid"
      },
      "c23n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c23 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c23 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c23 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c23 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c23c31": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c23fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid",
        "label": "C23n-alkanoicAcid"
      },
      "c24n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24 sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c24n": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "n c24": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "nc24": {
        "id": "http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid",
        "label": "C24n-alkanoicAcid"
      },
      "c25_2n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C25_2n-alkanoicAcid",
        "label": "C25_2n-alkanoicAcid"
      },
      "c25:2 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C25_2n-alkanoicAcid",
        "label": "C25_2n-alkanoicAcid"
      },
      "c25n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid",
        "label": "C25n-alkanoicAcid"
      },
      "c25 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid",
        "label": "C25n-alkanoicAcid"
      },
      "c25 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid",
        "label": "C25n-alkanoicAcid"
      },
      "c25 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid",
        "label": "C25n-alkanoicAcid"
      },
      "c25 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid",
        "label": "C25n-alkanoicAcid"
      },
      "c25fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid",
        "label": "C25n-alkanoicAcid"
      },
      "c26n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26 sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26oh0x2f0x28c26oh0x2bc290x29": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c26n": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "n c26": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "nc26": {
        "id": "http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid",
        "label": "C26n-alkanoicAcid"
      },
      "c27n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid",
        "label": "C27n-alkanoicAcid"
      },
      "c27 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid",
        "label": "C27n-alkanoicAcid"
      },
      "c27 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid",
        "label": "C27n-alkanoicAcid"
      },
      "c27 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid",
        "label": "C27n-alkanoicAcid"
      },
      "c27 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid",
        "label": "C27n-alkanoicAcid"
      },
      "c27fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid",
        "label": "C27n-alkanoicAcid"
      },
      "c28n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28 sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c28n": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "n c28": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "n-c28": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "nc28": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "nc28_err": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "nc28_rep": {
        "id": "http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid",
        "label": "C28n-alkanoicAcid"
      },
      "c29n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid",
        "label": "C29n-alkanoicAcid"
      },
      "c29 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid",
        "label": "C29n-alkanoicAcid"
      },
      "c29 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid",
        "label": "C29n-alkanoicAcid"
      },
      "c29 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid",
        "label": "C29n-alkanoicAcid"
      },
      "c29 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid",
        "label": "C29n-alkanoicAcid"
      },
      "c29fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid",
        "label": "C29n-alkanoicAcid"
      },
      "c30n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30 fame concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30 sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30 n": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30sem": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c30n": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "nc30_rep": {
        "id": "http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid",
        "label": "C30n-alkanoicAcid"
      },
      "c31n-alkanoicacid": {
        "id": "http://linked.earth/ontology/paleo_variables#C31n-alkanoicAcid",
        "label": "C31n-alkanoicAcid"
      },
      "c31 n-alkanoic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#C31n-alkanoicAcid",
        "label": "C31n-alkanoicAcid"
      },
      "c31 concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C31n-alkanoicAcid",
        "label": "C31n-alkanoicAcid"
      },
      "c31fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C31n-alkanoicAcid",
        "label": "C31n-alkanoicAcid"
      },
      "c32fameconcentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C31n-alkanoicAcid",
        "label": "C31n-alkanoicAcid"
      },
      "c37alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37Alkenone",
        "label": "C37Alkenone"
      },
      "c37 alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37Alkenone",
        "label": "C37Alkenone"
      },
      "c37.concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#C37Alkenone",
        "label": "C37Alkenone"
      },
      "totalc37": {
        "id": "http://linked.earth/ontology/paleo_variables#C37Alkenone",
        "label": "C37Alkenone"
      },
      "c37:2alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_2Alkenone",
        "label": "C37:2Alkenone"
      },
      "c37_2alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_2Alkenone",
        "label": "C37:2Alkenone"
      },
      "c37:2 alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_2Alkenone",
        "label": "C37:2Alkenone"
      },
      "c37:2": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_2Alkenone",
        "label": "C37:2Alkenone"
      },
      "c37:3aalkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3aAlkenone",
        "label": "C37:3aAlkenone"
      },
      "c37_3aalkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3aAlkenone",
        "label": "C37:3aAlkenone"
      },
      "c37:3 alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3bAlkenone",
        "label": "C37:3bAlkenone"
      },
      "c37:3a": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3aAlkenone",
        "label": "C37:3aAlkenone"
      },
      "c37:3balkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3bAlkenone",
        "label": "C37:3bAlkenone"
      },
      "c37_3balkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3bAlkenone",
        "label": "C37:3bAlkenone"
      },
      "c37:3b": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_3bAlkenone",
        "label": "C37:3bAlkenone"
      },
      "c37:4alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_4Alkenone",
        "label": "C37:4Alkenone"
      },
      "c37_4alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_4Alkenone",
        "label": "C37:4Alkenone"
      },
      "c37:4 alkenone": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_4Alkenone",
        "label": "C37:4Alkenone"
      },
      "c34:4": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_4Alkenone",
        "label": "C37:4Alkenone"
      },
      "c370x3a4": {
        "id": "http://linked.earth/ontology/paleo_variables#C37_4Alkenone",
        "label": "C37:4Alkenone"
      },
      "cbt": {
        "id": "http://linked.earth/ontology/paleo_variables#CBT",
        "label": "CBT"
      },
      "cyclization index of branched tetraethers": {
        "id": "http://linked.earth/ontology/paleo_variables#CBT",
        "label": "CBT"
      },
      "cca1": {
        "id": "http://linked.earth/ontology/paleo_variables#CCA1",
        "label": "CCA1"
      },
      "multivariate eigenvector-based variable": {
        "id": "http://linked.earth/ontology/paleo_variables#CCA2",
        "label": "CCA2"
      },
      "caaxis1": {
        "id": "http://linked.earth/ontology/paleo_variables#CCA1",
        "label": "CCA1"
      },
      "cca2": {
        "id": "http://linked.earth/ontology/paleo_variables#CCA2",
        "label": "CCA2"
      },
      "caaxis2": {
        "id": "http://linked.earth/ontology/paleo_variables#CCA2",
        "label": "CCA2"
      },
      "cpi": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "carbon preference index": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "cpi (27-33)": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "cpi22-30": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "cpi_25-33": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "carbonpreferenceindex20to30": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "carbonpreferenceindex20to32": {
        "id": "http://linked.earth/ontology/paleo_variables#CPI",
        "label": "CPI"
      },
      "c/n": {
        "id": "http://linked.earth/ontology/paleo_variables#C_N",
        "label": "C/N"
      },
      "c_n": {
        "id": "http://linked.earth/ontology/paleo_variables#C_N",
        "label": "C/N"
      },
      "carbon/nitrogen": {
        "id": "http://linked.earth/ontology/paleo_variables#C_N",
        "label": "C/N"
      },
      "c/n organic": {
        "id": "http://linked.earth/ontology/paleo_variables#C_N",
        "label": "C/N"
      },
      "molarcn": {
        "id": "http://linked.earth/ontology/paleo_variables#C_N",
        "label": "C/N"
      },
      "ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "calcium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "% ca-detr": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "% ca-ex": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "ca peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "caprop": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "ca__": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca",
        "label": "Ca"
      },
      "caco3": {
        "id": "http://linked.earth/ontology/paleo_variables#CaCO3",
        "label": "CaCO3"
      },
      "calcium carbonate": {
        "id": "http://linked.earth/ontology/paleo_variables#CaCO3",
        "label": "CaCO3"
      },
      "% caco3-ex": {
        "id": "http://linked.earth/ontology/paleo_variables#CaCO3",
        "label": "CaCO3"
      },
      "caco3-ic": {
        "id": "http://linked.earth/ontology/paleo_variables#CaCO3",
        "label": "CaCO3"
      },
      "cao": {
        "id": "http://linked.earth/ontology/paleo_variables#CaO",
        "label": "CaO"
      },
      "calcium oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#CaO",
        "label": "CaO"
      },
      "ca/k": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_K",
        "label": "Ca/K"
      },
      "ca_k": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_K",
        "label": "Ca/K"
      },
      "calcium/potassium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_K",
        "label": "Ca/K"
      },
      "ca/sr": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Sr",
        "label": "Ca/Sr"
      },
      "ca_sr": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Sr",
        "label": "Ca/Sr"
      },
      "calcium/strontium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Sr",
        "label": "Ca/Sr"
      },
      "ca/ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Ti",
        "label": "Ca/Ti"
      },
      "ca_ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Ti",
        "label": "Ca/Ti"
      },
      "calcium/titanium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Ti",
        "label": "Ca/Ti"
      },
      "ca/ti-z": {
        "id": "http://linked.earth/ontology/paleo_variables#Ca_Ti",
        "label": "Ca/Ti"
      },
      "ti/ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Ca",
        "label": "Ti/Ca"
      },
      "cd": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd",
        "label": "Cd"
      },
      "cadmium": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd",
        "label": "Cd"
      },
      "cd mar (ug/cm2/ky)": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd",
        "label": "Cd"
      },
      "ppm cd": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd",
        "label": "Cd"
      },
      "cd/mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd_Mn",
        "label": "Cd/Mn"
      },
      "cd_mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd_Mn",
        "label": "Cd/Mn"
      },
      "ppm cd/% mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Cd_Mn",
        "label": "Cd/Mn"
      },
      "cl": {
        "id": "http://linked.earth/ontology/paleo_variables#Cl",
        "label": "Cl"
      },
      "chlorine": {
        "id": "http://linked.earth/ontology/paleo_variables#Cl",
        "label": "Cl"
      },
      "cl_": {
        "id": "http://linked.earth/ontology/paleo_variables#Cl",
        "label": "Cl"
      },
      "co": {
        "id": "http://linked.earth/ontology/paleo_variables#Co",
        "label": "Co"
      },
      "cobalt": {
        "id": "http://linked.earth/ontology/paleo_variables#Co",
        "label": "Co"
      },
      "ppm co": {
        "id": "http://linked.earth/ontology/paleo_variables#Co",
        "label": "Co"
      },
      "cr": {
        "id": "http://linked.earth/ontology/paleo_variables#Cr",
        "label": "Cr"
      },
      "chromium": {
        "id": "http://linked.earth/ontology/paleo_variables#Cr",
        "label": "Cr"
      },
      "ppm cr": {
        "id": "http://linked.earth/ontology/paleo_variables#Cr",
        "label": "Cr"
      },
      "cu": {
        "id": "http://linked.earth/ontology/paleo_variables#Cu",
        "label": "Cu"
      },
      "copper": {
        "id": "http://linked.earth/ontology/paleo_variables#Cu",
        "label": "Cu"
      },
      "ppm cu": {
        "id": "http://linked.earth/ontology/paleo_variables#Cu",
        "label": "Cu"
      },
      "dwhi": {
        "id": "http://linked.earth/ontology/paleo_variables#DWHI",
        "label": "DWHI"
      },
      "ecosystem index": {
        "id": "http://linked.earth/ontology/paleo_variables#DWHI",
        "label": "DWHI"
      },
      "dd2h": {
        "id": "http://linked.earth/ontology/paleo_variables#Dd2H",
        "label": "Dd2H"
      },
      "\u03B4\u03B4dterr-aq": {
        "id": "http://linked.earth/ontology/paleo_variables#Dd2H",
        "label": "Dd2H"
      },
      "eps": {
        "id": "http://linked.earth/ontology/paleo_variables#EPS",
        "label": "EPS"
      },
      "expressed population signal": {
        "id": "http://linked.earth/ontology/paleo_variables#EPS",
        "label": "EPS"
      },
      "elninoevent": {
        "id": "http://linked.earth/ontology/paleo_variables#ElNinoEvent",
        "label": "ElNinoEvent"
      },
      "el ni\xF1o event": {
        "id": "http://linked.earth/ontology/paleo_variables#ElNinoEvent",
        "label": "ElNinoEvent"
      },
      "enso_events": {
        "id": "http://linked.earth/ontology/paleo_variables#ElNinoEvent",
        "label": "ElNinoEvent"
      },
      "eu/zr": {
        "id": "http://linked.earth/ontology/paleo_variables#Eu_Zr",
        "label": "Eu/Zr"
      },
      "eu_zr": {
        "id": "http://linked.earth/ontology/paleo_variables#Eu_Zr",
        "label": "Eu/Zr"
      },
      "eu/zr-z": {
        "id": "http://linked.earth/ontology/paleo_variables#Eu_Zr",
        "label": "Eu/Zr"
      },
      "fe": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe",
        "label": "Fe"
      },
      "iron": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe",
        "label": "Fe"
      },
      "fe peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe",
        "label": "Fe"
      },
      "feprop": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe",
        "label": "Fe"
      },
      "fe2o3": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe2O3",
        "label": "Fe2O3"
      },
      "iron(iii) oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe2O3",
        "label": "Fe2O3"
      },
      "fe/al": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Al",
        "label": "Fe/Al"
      },
      "fe_al": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Al",
        "label": "Fe/Al"
      },
      "iron/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Al",
        "label": "Fe/Al"
      },
      "fe/ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Ca",
        "label": "Fe/Ca"
      },
      "fe_ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Ca",
        "label": "Fe/Ca"
      },
      "iron/calcium": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Ca",
        "label": "Fe/Ca"
      },
      "ln(fe/ca)": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Ca",
        "label": "Fe/Ca"
      },
      "fe/k": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_K",
        "label": "Fe/K"
      },
      "fe_k": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_K",
        "label": "Fe/K"
      },
      "iron/potassium": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_K",
        "label": "Fe/K"
      },
      "fe/mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Mn",
        "label": "Fe/Mn"
      },
      "fe_mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Mn",
        "label": "Fe/Mn"
      },
      "iron/manganese": {
        "id": "http://linked.earth/ontology/paleo_variables#Fe_Mn",
        "label": "Fe/Mn"
      },
      "gdgt": {
        "id": "http://linked.earth/ontology/paleo_variables#GDGT",
        "label": "GDGT"
      },
      "glycerol dialkyl glycerol tetraether": {
        "id": "http://linked.earth/ontology/paleo_variables#GDGT",
        "label": "GDGT"
      },
      "brgdgt": {
        "id": "http://linked.earth/ontology/paleo_variables#GDGT",
        "label": "GDGT"
      },
      "gdgt-0/cren": {
        "id": "http://linked.earth/ontology/paleo_variables#GDGT-0_Cren",
        "label": "GDGT-0/Cren"
      },
      "gdgt-0_cren": {
        "id": "http://linked.earth/ontology/paleo_variables#GDGT-0_Cren",
        "label": "GDGT-0/Cren"
      },
      "ip25": {
        "id": "http://linked.earth/ontology/paleo_variables#IP25",
        "label": "IP25"
      },
      "ice proxy with 25 carbon atoms": {
        "id": "http://linked.earth/ontology/paleo_variables#IP25",
        "label": "IP25"
      },
      "ip25_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#IP25",
        "label": "IP25"
      },
      "irm": {
        "id": "http://linked.earth/ontology/paleo_variables#IRM",
        "label": "IRM"
      },
      "isothermal remanent magnetization": {
        "id": "http://linked.earth/ontology/paleo_variables#IRM",
        "label": "IRM"
      },
      "irm_softflux": {
        "id": "http://linked.earth/ontology/paleo_variables#IRM",
        "label": "IRM"
      },
      "itcz": {
        "id": "http://linked.earth/ontology/paleo_variables#ITCZ",
        "label": "ITCZ"
      },
      "intertropical convergence zone index": {
        "id": "http://linked.earth/ontology/paleo_variables#ITCZ",
        "label": "ITCZ"
      },
      "itcz_index": {
        "id": "http://linked.earth/ontology/paleo_variables#ITCZ",
        "label": "ITCZ"
      },
      "julianday": {
        "id": "http://linked.earth/ontology/paleo_variables#JulianDay",
        "label": "JulianDay"
      },
      "k2o": {
        "id": "http://linked.earth/ontology/paleo_variables#K2O",
        "label": "K2O"
      },
      "potassium oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#K2O",
        "label": "K2O"
      },
      "k37": {
        "id": "http://linked.earth/ontology/paleo_variables#K37",
        "label": "K37"
      },
      "k37s": {
        "id": "http://linked.earth/ontology/paleo_variables#K37",
        "label": "K37"
      },
      "k/al": {
        "id": "http://linked.earth/ontology/paleo_variables#K_Al",
        "label": "K/Al"
      },
      "k_al": {
        "id": "http://linked.earth/ontology/paleo_variables#K_Al",
        "label": "K/Al"
      },
      "potassium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#K_Al",
        "label": "K/Al"
      },
      "ln(k/al)": {
        "id": "http://linked.earth/ontology/paleo_variables#K_Al",
        "label": "K/Al"
      },
      "ldi": {
        "id": "http://linked.earth/ontology/paleo_variables#LDI",
        "label": "LDI"
      },
      "long-chain diol index": {
        "id": "http://linked.earth/ontology/paleo_variables#LDI",
        "label": "LDI"
      },
      "loi": {
        "id": "http://linked.earth/ontology/paleo_variables#LOI",
        "label": "LOI"
      },
      "loss on ignition": {
        "id": "http://linked.earth/ontology/paleo_variables#LOI",
        "label": "LOI"
      },
      "la": {
        "id": "http://linked.earth/ontology/paleo_variables#La",
        "label": "La"
      },
      "lanthanum": {
        "id": "http://linked.earth/ontology/paleo_variables#La",
        "label": "La"
      },
      "ppm la": {
        "id": "http://linked.earth/ontology/paleo_variables#La",
        "label": "La"
      },
      "mar": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "mass per area per time unit": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "bulk mar": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "cordmar": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "mo mar (ug/cm2/ky)": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "bulkmar": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "massacum": {
        "id": "http://linked.earth/ontology/paleo_variables#MAR",
        "label": "MAR"
      },
      "mbt": {
        "id": "http://linked.earth/ontology/paleo_variables#MBT",
        "label": "MBT"
      },
      "methylation index of branched tetraethers": {
        "id": "http://linked.earth/ontology/paleo_variables#MBT",
        "label": "MBT"
      },
      "mbt\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#MBT",
        "label": "MBT"
      },
      "mbt\u20195me": {
        "id": "http://linked.earth/ontology/paleo_variables#MBT",
        "label": "MBT"
      },
      "ms": {
        "id": "http://linked.earth/ontology/paleo_variables#MS",
        "label": "MS"
      },
      "magnetic susceptibility": {
        "id": "http://linked.earth/ontology/paleo_variables#MS",
        "label": "MS"
      },
      "avg_ms_drs1_2a_3_2b_4": {
        "id": "http://linked.earth/ontology/paleo_variables#MS",
        "label": "MS"
      },
      "avg_ms": {
        "id": "http://linked.earth/ontology/paleo_variables#MS",
        "label": "MS"
      },
      "massmagsus": {
        "id": "http://linked.earth/ontology/paleo_variables#MS",
        "label": "MS"
      },
      "si": {
        "id": "http://linked.earth/ontology/paleo_variables#Si",
        "label": "Si"
      },
      "mxd": {
        "id": "http://linked.earth/ontology/paleo_variables#MXD",
        "label": "MXD"
      },
      "latewood density": {
        "id": "http://linked.earth/ontology/paleo_variables#MXD",
        "label": "MXD"
      },
      "mg": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "magnesium": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "% mg": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "%mg": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "mgdetrended": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "mg__": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "detrendmg": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg",
        "label": "Mg"
      },
      "mgo": {
        "id": "http://linked.earth/ontology/paleo_variables#MgO",
        "label": "MgO"
      },
      "magnesium oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#MgO",
        "label": "MgO"
      },
      "mg/ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mg_ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "magnesium/calcium": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "cdr3_mgca": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mg/ca raw": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "ndutertreimg/ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_bulloides": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_crassaformis": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_dutertrei": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_inflata": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_obliquiloculata": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_pachyderma": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_pachyderma_d": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_ruber": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_ruber_lato": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_ruber_pink": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_ruber_stricto": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_sacculifer": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mgca_truncatulinoides": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "planktic.mgca": {
        "id": "http://linked.earth/ontology/paleo_variables#Mg_Ca",
        "label": "Mg/Ca"
      },
      "mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn",
        "label": "Mn"
      },
      "manganese": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn",
        "label": "Mn"
      },
      "% mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn",
        "label": "Mn"
      },
      "ppm mn": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn",
        "label": "Mn"
      },
      "mno": {
        "id": "http://linked.earth/ontology/paleo_variables#MnO",
        "label": "MnO"
      },
      "manganese oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#MnO",
        "label": "MnO"
      },
      "mn/fe": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn_Fe",
        "label": "Mn/Fe"
      },
      "mn_fe": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn_Fe",
        "label": "Mn/Fe"
      },
      "manganese/iron": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn_Fe",
        "label": "Mn/Fe"
      },
      "mn/mo": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn_Mo",
        "label": "Mn/Mo"
      },
      "mn_mo": {
        "id": "http://linked.earth/ontology/paleo_variables#Mn_Mo",
        "label": "Mn/Mo"
      },
      "mo": {
        "id": "http://linked.earth/ontology/paleo_variables#Mo",
        "label": "Mo"
      },
      "molybdenum": {
        "id": "http://linked.earth/ontology/paleo_variables#Mo",
        "label": "Mo"
      },
      "mo_xs": {
        "id": "http://linked.earth/ontology/paleo_variables#Mo",
        "label": "Mo"
      },
      "ppm mo": {
        "id": "http://linked.earth/ontology/paleo_variables#Mo",
        "label": "Mo"
      },
      "no3": {
        "id": "http://linked.earth/ontology/paleo_variables#NO3",
        "label": "NO3"
      },
      "nitrate": {
        "id": "http://linked.earth/ontology/paleo_variables#nitrate",
        "label": "nitrate"
      },
      "no3_": {
        "id": "http://linked.earth/ontology/paleo_variables#NO3",
        "label": "NO3"
      },
      "n/c": {
        "id": "http://linked.earth/ontology/paleo_variables#N_C",
        "label": "N/C"
      },
      "n_c": {
        "id": "http://linked.earth/ontology/paleo_variables#N_C",
        "label": "N/C"
      },
      "nc": {
        "id": "http://linked.earth/ontology/paleo_variables#N_C",
        "label": "N/C"
      },
      "na2o": {
        "id": "http://linked.earth/ontology/paleo_variables#Na2O",
        "label": "Na2O"
      },
      "sodium oxide": {
        "id": "http://linked.earth/ontology/paleo_variables#Na2O",
        "label": "Na2O"
      },
      "ni": {
        "id": "http://linked.earth/ontology/paleo_variables#Ni",
        "label": "Ni"
      },
      "nickel": {
        "id": "http://linked.earth/ontology/paleo_variables#Ni",
        "label": "Ni"
      },
      "ppm ni": {
        "id": "http://linked.earth/ontology/paleo_variables#Ni",
        "label": "Ni"
      },
      "pc1": {
        "id": "http://linked.earth/ontology/paleo_variables#PC1",
        "label": "PC1"
      },
      "empirical orthogonal function": {
        "id": "http://linked.earth/ontology/paleo_variables#PC3",
        "label": "PC3"
      },
      "p1": {
        "id": "http://linked.earth/ontology/paleo_variables#PC1",
        "label": "PC1"
      },
      "pc1gs": {
        "id": "http://linked.earth/ontology/paleo_variables#PC1",
        "label": "PC1"
      },
      "pca1": {
        "id": "http://linked.earth/ontology/paleo_variables#PC1",
        "label": "PC1"
      },
      "droughtindex (pc1)": {
        "id": "http://linked.earth/ontology/paleo_variables#PC1",
        "label": "PC1"
      },
      "pc2": {
        "id": "http://linked.earth/ontology/paleo_variables#PC2",
        "label": "PC2"
      },
      "pca2": {
        "id": "http://linked.earth/ontology/paleo_variables#PC2",
        "label": "PC2"
      },
      "pc3": {
        "id": "http://linked.earth/ontology/paleo_variables#PC3",
        "label": "PC3"
      },
      "paq": {
        "id": "http://linked.earth/ontology/paleo_variables#Paq",
        "label": "Paq"
      },
      "p-aqueous": {
        "id": "http://linked.earth/ontology/paleo_variables#Paq",
        "label": "Paq"
      },
      "pb": {
        "id": "http://linked.earth/ontology/paleo_variables#Pb",
        "label": "Pb"
      },
      "lead": {
        "id": "http://linked.earth/ontology/paleo_variables#Pb",
        "label": "Pb"
      },
      "ppm pb": {
        "id": "http://linked.earth/ontology/paleo_variables#Pb",
        "label": "Pb"
      },
      "picea/artemisia": {
        "id": "http://linked.earth/ontology/paleo_variables#Picea_Artemisia",
        "label": "Picea/Artemisia"
      },
      "picea_artemisia": {
        "id": "http://linked.earth/ontology/paleo_variables#Picea_Artemisia",
        "label": "Picea/Artemisia"
      },
      "picea/artemesia": {
        "id": "http://linked.earth/ontology/paleo_variables#Picea_Artemisia",
        "label": "Picea/Artemisia"
      },
      "picea/pinus": {
        "id": "http://linked.earth/ontology/paleo_variables#Picea_Pinus",
        "label": "Picea/Pinus"
      },
      "picea_pinus": {
        "id": "http://linked.earth/ontology/paleo_variables#Picea_Pinus",
        "label": "Picea/Pinus"
      },
      "pinus/artemisia": {
        "id": "http://linked.earth/ontology/paleo_variables#Pinus_Artemisia",
        "label": "Pinus/Artemisia"
      },
      "pinus_artemisia": {
        "id": "http://linked.earth/ontology/paleo_variables#Pinus_Artemisia",
        "label": "Pinus/Artemisia"
      },
      "poaceae/ephedra": {
        "id": "http://linked.earth/ontology/paleo_variables#Poaceae_Ephedra",
        "label": "Poaceae/Ephedra"
      },
      "poaceae_ephedra": {
        "id": "http://linked.earth/ontology/paleo_variables#Poaceae_Ephedra",
        "label": "Poaceae/Ephedra"
      },
      "r570/r630": {
        "id": "http://linked.earth/ontology/paleo_variables#R570_R630",
        "label": "R570/R630"
      },
      "r570_r630": {
        "id": "http://linked.earth/ontology/paleo_variables#R570_R630",
        "label": "R570/R630"
      },
      "r570_630": {
        "id": "http://linked.earth/ontology/paleo_variables#R570_R630",
        "label": "R570/R630"
      },
      "r650/r700": {
        "id": "http://linked.earth/ontology/paleo_variables#R650_R700",
        "label": "R650/R700"
      },
      "r650_r700": {
        "id": "http://linked.earth/ontology/paleo_variables#R650_R700",
        "label": "R650/R700"
      },
      "r650_700": {
        "id": "http://linked.earth/ontology/paleo_variables#R650_R700",
        "label": "R650/R700"
      },
      "rabd660670": {
        "id": "http://linked.earth/ontology/paleo_variables#RABD660670",
        "label": "RABD660670"
      },
      "r660_670": {
        "id": "http://linked.earth/ontology/paleo_variables#RABD660670",
        "label": "RABD660670"
      },
      "rabd660;670 index": {
        "id": "http://linked.earth/ontology/paleo_variables#RABD660670",
        "label": "RABD660670"
      },
      "rabd660_670": {
        "id": "http://linked.earth/ontology/paleo_variables#RABD660670",
        "label": "RABD660670"
      },
      "ran15": {
        "id": "http://linked.earth/ontology/paleo_variables#RAN15",
        "label": "RAN15"
      },
      "organic compound index": {
        "id": "http://linked.earth/ontology/paleo_variables#RAN15",
        "label": "RAN15"
      },
      "rbar": {
        "id": "http://linked.earth/ontology/paleo_variables#RBAR",
        "label": "RBAR"
      },
      "average correlation coefficient": {
        "id": "http://linked.earth/ontology/paleo_variables#RBAR",
        "label": "RBAR"
      },
      "rb": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb",
        "label": "Rb"
      },
      "rubidium": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb",
        "label": "Rb"
      },
      "rb peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb",
        "label": "Rb"
      },
      "rb87/sr86": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb87_Sr86",
        "label": "Rb87/Sr86"
      },
      "rb87_sr86": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb87_Sr86",
        "label": "Rb87/Sr86"
      },
      "87rb/86sr": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb87_Sr86",
        "label": "Rb87/Sr86"
      },
      "rb/sr": {
        "id": "http://linked.earth/ontology/paleo_variables#Rb87_Sr86",
        "label": "Rb87/Sr86"
      },
      "so4": {
        "id": "http://linked.earth/ontology/paleo_variables#SO4",
        "label": "SO4"
      },
      "sulfate": {
        "id": "http://linked.earth/ontology/paleo_variables#sulfate",
        "label": "sulfate"
      },
      "so4__": {
        "id": "http://linked.earth/ontology/paleo_variables#SO4",
        "label": "SO4"
      },
      "sss": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "sc": {
        "id": "http://linked.earth/ontology/paleo_variables#Sc",
        "label": "Sc"
      },
      "scandium": {
        "id": "http://linked.earth/ontology/paleo_variables#Sc",
        "label": "Sc"
      },
      "ppm sc": {
        "id": "http://linked.earth/ontology/paleo_variables#Sc",
        "label": "Sc"
      },
      "silicon": {
        "id": "http://linked.earth/ontology/paleo_variables#Si",
        "label": "Si"
      },
      "si peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Si",
        "label": "Si"
      },
      "siprop": {
        "id": "http://linked.earth/ontology/paleo_variables#Si",
        "label": "Si"
      },
      "norm silicon": {
        "id": "http://linked.earth/ontology/paleo_variables#Si",
        "label": "Si"
      },
      "si/al": {
        "id": "http://linked.earth/ontology/paleo_variables#Si_Al",
        "label": "Si/Al"
      },
      "si_al": {
        "id": "http://linked.earth/ontology/paleo_variables#Si_Al",
        "label": "Si/Al"
      },
      "silicon/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#Si_Ti",
        "label": "Si/Ti"
      },
      "si/ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Si_Ti",
        "label": "Si/Ti"
      },
      "si_ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Si_Ti",
        "label": "Si/Ti"
      },
      "norm si/ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Si_Ti",
        "label": "Si/Ti"
      },
      "sr": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr",
        "label": "Sr"
      },
      "strontium": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr",
        "label": "Sr"
      },
      "sr (ppm)": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr",
        "label": "Sr"
      },
      "sr peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr",
        "label": "Sr"
      },
      "ppm sr": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr",
        "label": "Sr"
      },
      "sr/ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "sr_ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "strontium/calcium": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "cdr3_srca": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "srca": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "srca_annual": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "wr11_srca": {
        "id": "http://linked.earth/ontology/paleo_variables#Sr_Ca",
        "label": "Sr/Ca"
      },
      "tds": {
        "id": "http://linked.earth/ontology/paleo_variables#TDS",
        "label": "TDS"
      },
      "total dissolved solids": {
        "id": "http://linked.earth/ontology/paleo_variables#TDS",
        "label": "TDS"
      },
      "tex86": {
        "id": "http://linked.earth/ontology/paleo_variables#TEX86",
        "label": "TEX86"
      },
      "tetraether index of 86 carbon atoms": {
        "id": "http://linked.earth/ontology/paleo_variables#TEX86",
        "label": "TEX86"
      },
      "tex86l": {
        "id": "http://linked.earth/ontology/paleo_variables#TEX86",
        "label": "TEX86"
      },
      "tic": {
        "id": "http://linked.earth/ontology/paleo_variables#TIC",
        "label": "TIC"
      },
      "inorganic carbon": {
        "id": "http://linked.earth/ontology/paleo_variables#TIC",
        "label": "TIC"
      },
      "% ic": {
        "id": "http://linked.earth/ontology/paleo_variables#TIC",
        "label": "TIC"
      },
      "toc": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "organic carbon": {
        "id": "http://linked.earth/ontology/paleo_variables#organicCarbon",
        "label": "organicCarbon"
      },
      "% oc": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "% organic carbon": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "corg": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "oc-mar (g)": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "oc-mar (mg)": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "organic carbon concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "toc_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "tocmg": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC",
        "label": "TOC"
      },
      "toc/tn": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC_TN",
        "label": "TOC/TN"
      },
      "toc_tn": {
        "id": "http://linked.earth/ontology/paleo_variables#TOC_TN",
        "label": "TOC/TN"
      },
      "ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "titanium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "% ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "%ti": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "ti peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "tiprop": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "tiash": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti",
        "label": "Ti"
      },
      "tio2": {
        "id": "http://linked.earth/ontology/paleo_variables#TiO2",
        "label": "TiO2"
      },
      "titanium dioxide": {
        "id": "http://linked.earth/ontology/paleo_variables#TiO2",
        "label": "TiO2"
      },
      "ti/al": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Al",
        "label": "Ti/Al"
      },
      "ti_al": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Al",
        "label": "Ti/Al"
      },
      "titanium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Al",
        "label": "Ti/Al"
      },
      "ti_ca": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Ca",
        "label": "Ti/Ca"
      },
      "titanium/calcium": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Ca",
        "label": "Ti/Ca"
      },
      "ln(ti/ca)": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Ca",
        "label": "Ti/Ca"
      },
      "log(ti/ca)": {
        "id": "http://linked.earth/ontology/paleo_variables#Ti_Ca",
        "label": "Ti/Ca"
      },
      "uk37": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37",
        "label": "Uk37"
      },
      "alkenone unsaturation index uk37": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37",
        "label": "Uk37"
      },
      "sumuk37": {
        "id": "http://linked.earth/ontology/paleo_variables#UK37",
        "label": "UK37"
      },
      "uk37-sfs values": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37",
        "label": "Uk37"
      },
      "uk37\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37_",
        "label": "Uk37\u2019"
      },
      "uk37_": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37_",
        "label": "Uk37\u2019"
      },
      "alkenone unsaturation index uk37 prime": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37_",
        "label": "Uk37\u2019"
      },
      "uk\u201937": {
        "id": "http://linked.earth/ontology/paleo_variables#Uk37_",
        "label": "Uk37\u2019"
      },
      "v": {
        "id": "http://linked.earth/ontology/paleo_variables#V",
        "label": "V"
      },
      "vanadium": {
        "id": "http://linked.earth/ontology/paleo_variables#V",
        "label": "V"
      },
      "ppm v": {
        "id": "http://linked.earth/ontology/paleo_variables#V",
        "label": "V"
      },
      "v/al": {
        "id": "http://linked.earth/ontology/paleo_variables#V_Al",
        "label": "V/Al"
      },
      "v_al": {
        "id": "http://linked.earth/ontology/paleo_variables#V_Al",
        "label": "V/Al"
      },
      "vanadium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#V_Al",
        "label": "V/Al"
      },
      "y": {
        "id": "http://linked.earth/ontology/paleo_variables#Y",
        "label": "Y"
      },
      "yttrium": {
        "id": "http://linked.earth/ontology/paleo_variables#Y",
        "label": "Y"
      },
      "ppm y": {
        "id": "http://linked.earth/ontology/paleo_variables#Y",
        "label": "Y"
      },
      "zn": {
        "id": "http://linked.earth/ontology/paleo_variables#Zn",
        "label": "Zn"
      },
      "zinc": {
        "id": "http://linked.earth/ontology/paleo_variables#Zn",
        "label": "Zn"
      },
      "ppm zn": {
        "id": "http://linked.earth/ontology/paleo_variables#Zn",
        "label": "Zn"
      },
      "zr": {
        "id": "http://linked.earth/ontology/paleo_variables#Zr",
        "label": "Zr"
      },
      "zirconium": {
        "id": "http://linked.earth/ontology/paleo_variables#Zr",
        "label": "Zr"
      },
      "ppm zr": {
        "id": "http://linked.earth/ontology/paleo_variables#Zr",
        "label": "Zr"
      },
      "zr/al": {
        "id": "http://linked.earth/ontology/paleo_variables#Zr_Al",
        "label": "Zr/Al"
      },
      "zr_al": {
        "id": "http://linked.earth/ontology/paleo_variables#Zr_Al",
        "label": "Zr/Al"
      },
      "zirconium/aluminum": {
        "id": "http://linked.earth/ontology/paleo_variables#Zr_Al",
        "label": "Zr/Al"
      },
      "accumulation": {
        "id": "http://linked.earth/ontology/paleo_variables#accumulation",
        "label": "accumulation"
      },
      "accumulation rate": {
        "id": "http://linked.earth/ontology/paleo_variables#accumulation",
        "label": "accumulation"
      },
      "accumulation rate ice (kg/m2/yr)": {
        "id": "http://linked.earth/ontology/paleo_variables#accumulation",
        "label": "accumulation"
      },
      "ice accumulation": {
        "id": "http://linked.earth/ontology/paleo_variables#accumulation",
        "label": "accumulation"
      },
      "acc": {
        "id": "http://linked.earth/ontology/paleo_variables#accumulation",
        "label": "accumulation"
      },
      "age": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "age_original": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "intcal09age": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "marine09": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "median cal age": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "shcal04age": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agebacon": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agebchron": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "ageduplicate": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "ageensemble": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agemarine09": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agemedian": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agemedianbacon": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "ageoriginal": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "ageother": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "ageoxcal": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agerounded": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agestalage": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "age_calibrated": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "age_alt": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agecopra": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agelininterp": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "agelinreg": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "medianage": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "varvecountedagead0x2fbc": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "varvecountedageka": {
        "id": "http://linked.earth/ontology/paleo_variables#age",
        "label": "age"
      },
      "age14c": {
        "id": "http://linked.earth/ontology/paleo_variables#age14C",
        "label": "age14C"
      },
      "radiocarbon year": {
        "id": "http://linked.earth/ontology/paleo_variables#age14C",
        "label": "age14C"
      },
      "c14age": {
        "id": "http://linked.earth/ontology/paleo_variables#age14C",
        "label": "age14C"
      },
      "radiocarbondatesad0x2fbc": {
        "id": "http://linked.earth/ontology/paleo_variables#age14C",
        "label": "age14C"
      },
      "ammonium": {
        "id": "http://linked.earth/ontology/paleo_variables#ammonium",
        "label": "ammonium"
      },
      "nh4_": {
        "id": "http://linked.earth/ontology/paleo_variables#ammonium",
        "label": "ammonium"
      },
      "amps": {
        "id": "http://linked.earth/ontology/paleo_variables#amps",
        "label": "amps"
      },
      "ampere": {
        "id": "http://linked.earth/ontology/paleo_variables#amps",
        "label": "amps"
      },
      "aragonite": {
        "id": "http://linked.earth/ontology/paleo_variables#aragonite",
        "label": "aragonite"
      },
      "ash": {
        "id": "http://linked.earth/ontology/paleo_variables#ash",
        "label": "ash"
      },
      "boron": {
        "id": "http://linked.earth/ontology/paleo_variables#boron",
        "label": "boron"
      },
      "b": {
        "id": "http://linked.earth/ontology/paleo_variables#boron",
        "label": "boron"
      },
      "brgdgt-iiia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa",
        "label": "brGDGT-IIIa"
      },
      "branched glycerol dialkyl glycerol tetraether": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Id",
        "label": "brGDGT-Id"
      },
      "br1050": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa",
        "label": "brGDGT-IIIa"
      },
      "iiia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa",
        "label": "brGDGT-IIIa"
      },
      "brgdgtiiia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa",
        "label": "brGDGT-IIIa"
      },
      "brgdgt-iiia\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa_",
        "label": "brGDGT-IIIa\u2019"
      },
      "brgdgt-iiia_": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa_",
        "label": "brGDGT-IIIa\u2019"
      },
      "iiia\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIa_",
        "label": "brGDGT-IIIa\u2019"
      },
      "brgdgt-iiib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb",
        "label": "brGDGT-IIIb"
      },
      "br1048": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb",
        "label": "brGDGT-IIIb"
      },
      "iiib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb",
        "label": "brGDGT-IIIb"
      },
      "brgdgtiiib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb",
        "label": "brGDGT-IIIb"
      },
      "brgdgt-iiib\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb_",
        "label": "brGDGT-IIIb\u2019"
      },
      "brgdgt-iiib_": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb_",
        "label": "brGDGT-IIIb\u2019"
      },
      "iiib\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIb_",
        "label": "brGDGT-IIIb\u2019"
      },
      "brgdgt-iiic": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIc",
        "label": "brGDGT-IIIc"
      },
      "iiic": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIc",
        "label": "brGDGT-IIIc"
      },
      "brgdgt-iiic\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIc_",
        "label": "brGDGT-IIIc\u2019"
      },
      "brgdgt-iiic_": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIc_",
        "label": "brGDGT-IIIc\u2019"
      },
      "iiic\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIIc_",
        "label": "brGDGT-IIIc\u2019"
      },
      "brgdgt-iia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa",
        "label": "brGDGT-IIa"
      },
      "br1036": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa",
        "label": "brGDGT-IIa"
      },
      "iia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa",
        "label": "brGDGT-IIa"
      },
      "brgdgtiia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa",
        "label": "brGDGT-IIa"
      },
      "brgdgt-iia\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa_",
        "label": "brGDGT-IIa\u2019"
      },
      "brgdgt-iia_": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa_",
        "label": "brGDGT-IIa\u2019"
      },
      "iia\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIa_",
        "label": "brGDGT-IIa\u2019"
      },
      "brgdgt-iib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIb",
        "label": "brGDGT-IIb"
      },
      "iib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIb",
        "label": "brGDGT-IIb"
      },
      "brgdgtiib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIb",
        "label": "brGDGT-IIb"
      },
      "brgdgt-iib\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIb_",
        "label": "brGDGT-IIb\u2019"
      },
      "brgdgt-iib_": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIb_",
        "label": "brGDGT-IIb\u2019"
      },
      "iib\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIb_",
        "label": "brGDGT-IIb\u2019"
      },
      "brgdgt-iic": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIc",
        "label": "brGDGT-IIc"
      },
      "iic": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIc",
        "label": "brGDGT-IIc"
      },
      "brgdgt-iic\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIc_",
        "label": "brGDGT-IIc\u2019"
      },
      "brgdgt-iic_": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIc_",
        "label": "brGDGT-IIc\u2019"
      },
      "iic\u2019": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-IIc_",
        "label": "brGDGT-IIc\u2019"
      },
      "brgdgt-ia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ia",
        "label": "brGDGT-Ia"
      },
      "ia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ia",
        "label": "brGDGT-Ia"
      },
      "brgdgtia": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ia",
        "label": "brGDGT-Ia"
      },
      "brgdgt-ib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ib",
        "label": "brGDGT-Ib"
      },
      "br1020": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ib",
        "label": "brGDGT-Ib"
      },
      "ib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ib",
        "label": "brGDGT-Ib"
      },
      "brgdgtib": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ib",
        "label": "brGDGT-Ib"
      },
      "brgdgt-ic": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ic",
        "label": "brGDGT-Ic"
      },
      "ic": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Ic",
        "label": "brGDGT-Ic"
      },
      "brgdgt-id": {
        "id": "http://linked.earth/ontology/paleo_variables#brGDGT-Id",
        "label": "brGDGT-Id"
      },
      "id": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "bubblenumberdensity": {
        "id": "http://linked.earth/ontology/paleo_variables#bubbleNumberDensity",
        "label": "bubbleNumberDensity"
      },
      "bulkdensity": {
        "id": "http://linked.earth/ontology/paleo_variables#bulkDensity",
        "label": "bulkDensity"
      },
      "bulk density": {
        "id": "http://linked.earth/ontology/paleo_variables#bulkDensity",
        "label": "bulkDensity"
      },
      "calcificationrate": {
        "id": "http://linked.earth/ontology/paleo_variables#calcificationRate",
        "label": "calcificationRate"
      },
      "calcification rate": {
        "id": "http://linked.earth/ontology/paleo_variables#calcificationRate",
        "label": "calcificationRate"
      },
      "calcification": {
        "id": "http://linked.earth/ontology/paleo_variables#calcificationRate",
        "label": "calcificationRate"
      },
      "calcite": {
        "id": "http://linked.earth/ontology/paleo_variables#calcite",
        "label": "calcite"
      },
      "carbon": {
        "id": "http://linked.earth/ontology/paleo_variables#carbon",
        "label": "carbon"
      },
      "% tc": {
        "id": "http://linked.earth/ontology/paleo_variables#carbon",
        "label": "carbon"
      },
      "% total c": {
        "id": "http://linked.earth/ontology/paleo_variables#carbon",
        "label": "carbon"
      },
      "%_tc": {
        "id": "http://linked.earth/ontology/paleo_variables#carbon",
        "label": "carbon"
      },
      "c": {
        "id": "http://linked.earth/ontology/paleo_variables#carbon",
        "label": "carbon"
      },
      "x_c": {
        "id": "http://linked.earth/ontology/paleo_variables#carbon",
        "label": "carbon"
      },
      "carbonate": {
        "id": "http://linked.earth/ontology/paleo_variables#carbonate",
        "label": "carbonate"
      },
      "% carbonate": {
        "id": "http://linked.earth/ontology/paleo_variables#carbonate",
        "label": "carbonate"
      },
      "charcoal": {
        "id": "http://linked.earth/ontology/paleo_variables#charcoal",
        "label": "charcoal"
      },
      "chacoal_influx": {
        "id": "http://linked.earth/ontology/paleo_variables#charcoal",
        "label": "charcoal"
      },
      "chloride": {
        "id": "http://linked.earth/ontology/paleo_variables#chloride",
        "label": "chloride"
      },
      "circulationindex": {
        "id": "http://linked.earth/ontology/paleo_variables#circulationIndex",
        "label": "circulationIndex"
      },
      "circulation index": {
        "id": "http://linked.earth/ontology/paleo_variables#circulationIndex",
        "label": "circulationIndex"
      },
      "goe": {
        "id": "http://linked.earth/ontology/paleo_variables#circulationIndex",
        "label": "circulationIndex"
      },
      "gof": {
        "id": "http://linked.earth/ontology/paleo_variables#circulationIndex",
        "label": "circulationIndex"
      },
      "clay": {
        "id": "http://linked.earth/ontology/paleo_variables#clay",
        "label": "clay"
      },
      "%_clay": {
        "id": "http://linked.earth/ontology/paleo_variables#clay",
        "label": "clay"
      },
      "x_clay": {
        "id": "http://linked.earth/ontology/paleo_variables#clay",
        "label": "clay"
      },
      "cluster": {
        "id": "http://linked.earth/ontology/paleo_variables#cluster",
        "label": "cluster"
      },
      "statistical variable": {
        "id": "http://linked.earth/ontology/paleo_variables#index",
        "label": "index"
      },
      "cluster2": {
        "id": "http://linked.earth/ontology/paleo_variables#cluster",
        "label": "cluster"
      },
      "composite": {
        "id": "http://linked.earth/ontology/paleo_variables#composite",
        "label": "composite"
      },
      "proxy composite": {
        "id": "http://linked.earth/ontology/paleo_variables#composite",
        "label": "composite"
      },
      "hybrid": {
        "id": "http://linked.earth/ontology/paleo_variables#composite",
        "label": "composite"
      },
      "concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#concentration",
        "label": "concentration"
      },
      "concentration unit": {
        "id": "http://linked.earth/ontology/paleo_variables#concentration",
        "label": "concentration"
      },
      "concentration (c25-35)": {
        "id": "http://linked.earth/ontology/paleo_variables#concentration",
        "label": "concentration"
      },
      "friedel-3-ene concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#concentration",
        "label": "concentration"
      },
      "hop-17(21)-ene concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#concentration",
        "label": "concentration"
      },
      "core": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "core id": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "core name": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "core section": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "corename": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "coresect1h": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "core_number": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "dune_a": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "stal.id": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "originalcorename": {
        "id": "http://linked.earth/ontology/paleo_variables#core",
        "label": "core"
      },
      "correction": {
        "id": "http://linked.earth/ontology/paleo_variables#correction",
        "label": "correction"
      },
      "corrected": {
        "id": "http://linked.earth/ontology/paleo_variables#correction",
        "label": "correction"
      },
      "iso adjustment for ocean calibration": {
        "id": "http://linked.earth/ontology/paleo_variables#correction",
        "label": "correction"
      },
      "years for ocean correction": {
        "id": "http://linked.earth/ontology/paleo_variables#correction",
        "label": "correction"
      },
      "hasaragonitecorrection": {
        "id": "http://linked.earth/ontology/paleo_variables#correction",
        "label": "correction"
      },
      "hasaragonitecorrectioncomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#correction",
        "label": "correction"
      },
      "correlationcoefficient": {
        "id": "http://linked.earth/ontology/paleo_variables#correlationCoefficient",
        "label": "correlationCoefficient"
      },
      "correlation coefficient": {
        "id": "http://linked.earth/ontology/paleo_variables#correlationCoefficient",
        "label": "correlationCoefficient"
      },
      "corrs": {
        "id": "http://linked.earth/ontology/paleo_variables#correlationCoefficient",
        "label": "correlationCoefficient"
      },
      "count": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleCount",
        "label": "sampleCount"
      },
      "numbe_counted": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "number_counted": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "slide count": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "totalammoniabeccarii": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "total_grains_counted": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "varve_number": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "abundance": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "count_analyses_b3": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "count_analyses_c2": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "count_analyses_c3": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "count_analyses_c5": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "count_analyses_c6": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "numinzone": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "number": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "sampledensity": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "total": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "total_non_chaetoceros_counted": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "total_xount": {
        "id": "http://linked.earth/ontology/paleo_variables#count",
        "label": "count"
      },
      "d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "delta 13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "bulk om d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c13bulk": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c21 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c23 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c25 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c25:2 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c27 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c28 d13c vs.\xA0vpdb": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c29 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c29 \u03B413c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c31 d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c31 \u03B413c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c31d13c_pdb": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "c33 \u03B413c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "cdr3_d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_c28": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "friedel-3-ene d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "hop-17(21)-ene d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "taraxer-14-ene d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13/12c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c18 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c18 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c20 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c20 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c21 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c21 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c22 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c22 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c23 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c23 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c24 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c24 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c25": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c25 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c25 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c26 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c26 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c27": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c27 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c27 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c28 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c28 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c29": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c29 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c29 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c30 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c30 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c31": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c31 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c31 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c32 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c32 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c33 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c33 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c34 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c34 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c35 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c c35 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c vpdb": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c bulk": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c bulk calcite": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c carbonate": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c organic": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c ostracod": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13ccomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cmean": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cpisid": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cprecisioncomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cstandardcomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_c31": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_org": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13ccarb": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc27": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc27err": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc29": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc29err": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc31": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc31err": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc33": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cleafwaxc33err": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13cwax": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_bulloides": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_dutertrei": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_pachyderma": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_pachyderma_d": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_ruber": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_ruber_pink": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d13c_sacculifer": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "planktic.d13c": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "\u03B413c n-alkanes": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "\u03B413c n-alkanes std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#d13C",
        "label": "d13C"
      },
      "d15n": {
        "id": "http://linked.earth/ontology/paleo_variables#d15N",
        "label": "d15N"
      },
      "delta 15n": {
        "id": "http://linked.earth/ontology/paleo_variables#d15N",
        "label": "d15N"
      },
      "bulk om d15n": {
        "id": "http://linked.earth/ontology/paleo_variables#d15N",
        "label": "d15N"
      },
      "d15n/14n": {
        "id": "http://linked.earth/ontology/paleo_variables#d15N",
        "label": "d15N"
      },
      "dn15": {
        "id": "http://linked.earth/ontology/paleo_variables#d15N",
        "label": "d15N"
      },
      "dn15_corrected": {
        "id": "http://linked.earth/ontology/paleo_variables#d15N",
        "label": "d15N"
      },
      "d18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "delta 18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "cdr3_d18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "chironomid d18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "g. ruber w \u03B418o\xA0[\u2030 pdb]": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "gbulloidesd18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "ndutertreid18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "wr11_d18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "bagd18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d180_corrc": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o (sea level corrected)": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o avg": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o chironomid": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o lake water": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o vpdb": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o bulk calcite": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o carbonate": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o carbonate corrected for dolomite": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o encrustation": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o ostracod": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o pore ice": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o pore ice sw corr": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18obsi": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18ocomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18opisid": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18oterrestrialgastropods": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_210yr": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_gb": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_grass_leaf": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_pdb": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_smow": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_sphagnum": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_annual": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_sw": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_sw_annual": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_swcorr": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_vpdb": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_vp\u2013sp": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18ocarb": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18odiatom": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18og.rub": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18omean": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18osw": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18osw-g.rub": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18osw-sl-g.rubw": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18otr": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18otr+": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18otr-": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_acicula": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_bulloides": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_crassaformis": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_dutertrei": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_inflata": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_mabahethi": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_marginata": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_menardii": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_obliquiloculata": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_pachyderma": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_pachyderma_d": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_peregrina": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_quinqueloba": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_ruber": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_ruber_lato": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_ruber_pink": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_ruber_stricto": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_sacculifer": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d18o_tumida": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "dd18o5pt": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "nonreliabled18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "planktic.d18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "ruberd18": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "x18o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "x18orub_": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "\u03B418o": {
        "id": "http://linked.earth/ontology/paleo_variables#d18O",
        "label": "d18O"
      },
      "d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "delta 2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c20 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c20 d2h sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c20d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c21 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c22 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c22 d2h sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c22d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c23 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c23 \u03B4d": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c24 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c24d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c25 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c25 \u03B4d": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c25:2 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c26 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c26 d2h sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c26d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c27 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c28 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c28 d2h sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c28_dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c28_ddiv": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c28d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29 dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29 \u03B4d": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29 \u03B4d corrected": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29 \u03B4d ice volume adjusted": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29 \u03B4d ice volume and vegetation adjusted": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c29-c31 \u03B4d": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c30 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c30 d2h sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c30 dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c30 dd iv corrected (3\xB0c)": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c30 dd iv corrected (7\xB0c)": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c30d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c31 d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c31 dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c31 \u03B4d": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c31dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c31ddsd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c32 dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "c33 \u03B4d": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "friedel-3-ene d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "hop-17(21)-ene d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "long chain n-alkane avg d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "long chain n-acid avg d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "mid-chain n-acid avg d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "midchain n-alkane avg d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "precip d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "taraxer-14-ene d2h": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "bagdd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c20": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c20 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c20 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c21 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c21 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c22": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c22 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c22 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c23": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c23 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c23 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c24 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c24 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c25": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c25 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c25 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c25 error": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c25:2": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c26 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c26 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c27": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c27 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c27 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c27 error": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c28 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c28 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c29": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c29 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c29 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c29 error": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c30": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c30 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c30 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c31": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c31 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c31 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c31 error": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c32 fame": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c32 fame sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c33 alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h c33 alkane sem": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h avg": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h pore ice": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h pore ice sw corr": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h precip": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hc24": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hc26": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hc28": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hc29": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hc30": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h_c16": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h_c26": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h_c28": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2h_c30": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hleafwaxc29": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hleafwaxc29err": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hleafwaxc31": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hleafwaxc31err": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hleafwaxc33": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hleafwaxc33err": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2hsw": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd iv": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddc29": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddc31": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddp": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd_c29": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd_c31": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd_c31_sd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd_ivandbio": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd_ivonly": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "dd_swcorr": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddwax": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddwax corrected": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddwax_corr": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "ddwax_iv": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "nc28_dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "nc30_dd": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "\u03B4daq": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "\u03B4dterr": {
        "id": "http://linked.earth/ontology/paleo_variables#d2H",
        "label": "d2H"
      },
      "d2huncertaintyhigh80": {
        "id": "http://linked.earth/ontology/paleo_variables#d2HUncertaintyHigh80",
        "label": "d2HUncertaintyHigh80"
      },
      "precip dd 90 ci": {
        "id": "http://linked.earth/ontology/paleo_variables#d2HUncertaintyHigh80",
        "label": "d2HUncertaintyHigh80"
      },
      "d2huncertaintylow80": {
        "id": "http://linked.earth/ontology/paleo_variables#d2HUncertaintyLow80",
        "label": "d2HUncertaintyLow80"
      },
      "precip dd 10 ci": {
        "id": "http://linked.earth/ontology/paleo_variables#d2HUncertaintyLow80",
        "label": "d2HUncertaintyLow80"
      },
      "deleteme": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "a": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "cal": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "calibrated": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "imon1953/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "lazerprofiler": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "rcs.ars": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "saug/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "sete/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "sfev/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "shiv/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "tete/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "tfev/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "thiv/3": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "unkowncolumn": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "average c26 c28": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "hobdob": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "interval": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "noid": {
        "id": "http://linked.earth/ontology/paleo_variables#deleteMe",
        "label": "deleteMe"
      },
      "deltarelativehumidity": {
        "id": "http://linked.earth/ontology/paleo_variables#deltaRelativeHumidity",
        "label": "deltaRelativeHumidity"
      },
      "\u2206rh_mid": {
        "id": "http://linked.earth/ontology/paleo_variables#deltaRelativeHumidity",
        "label": "deltaRelativeHumidity"
      },
      "deltatemperature": {
        "id": "http://linked.earth/ontology/paleo_variables#deltaTemperature",
        "label": "deltaTemperature"
      },
      "deltat": {
        "id": "http://linked.earth/ontology/paleo_variables#deltaTemperature",
        "label": "deltaTemperature"
      },
      "density": {
        "id": "http://linked.earth/ontology/paleo_variables#density",
        "label": "density"
      },
      "depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "adjusted depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "composite depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "composite depth in core": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "composite depth mid": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "composite_depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "core depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth blf": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "drillhole depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "midpointdepth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "section depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "compositedepth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "cor_depth_cm": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth corrected": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depthbycore": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depthcomp": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depthcomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth_cmbs": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth_core": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth_core1": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth_corr_cm": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth_merge": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depth_merged": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depthice": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depthwe": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "drive-depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "mean depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "originalcoredepth": {
        "id": "http://linked.earth/ontology/paleo_variables#depth",
        "label": "depth"
      },
      "depthbottom": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "depth at sample start": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "bot": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "bottom depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "bottom_depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "composite depth bottom": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "section depth bottom": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "bottom depth in section": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "bottomdepth": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "depth.bottom": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "depth_bot": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "depth_bottom": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "uncorrected_depth_bot": {
        "id": "http://linked.earth/ontology/paleo_variables#depthBottom",
        "label": "depthBottom"
      },
      "depthtop": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "acetic acid": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "composite depth top": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "section depth top": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "top": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "top depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "top_depth": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "depth.top": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "depth_top": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "depth_top_m": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "logdepthtop": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "logdepthtop-edc99": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "logdepttop": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "top depth in section": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "topdepth": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "uncorrected_depth_top": {
        "id": "http://linked.earth/ontology/paleo_variables#depthTop",
        "label": "depthTop"
      },
      "deuteriumexcess": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "deuterium excess": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "bagdexcess": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "d-excess": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "d-excess pore ice": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "d-excess pore ice sw corr": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "d-excess sw": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "d-excess_swcorr": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "deutex": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "dxs": {
        "id": "http://linked.earth/ontology/paleo_variables#deuteriumExcess",
        "label": "deuteriumExcess"
      },
      "diatom": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%benthic": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%indif.": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%saline": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%benth.dia": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%fresh": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%plank.dia": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "%saline.dia": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "sumdiatoms": {
        "id": "http://linked.earth/ontology/paleo_variables#diatom",
        "label": "diatom"
      },
      "diatomcount": {
        "id": "http://linked.earth/ontology/paleo_variables#diatomCount",
        "label": "diatomCount"
      },
      "diatom index": {
        "id": "http://linked.earth/ontology/paleo_variables#diatomCount",
        "label": "diatomCount"
      },
      "diatoms_per_traverse": {
        "id": "http://linked.earth/ontology/paleo_variables#diatomCount",
        "label": "diatomCount"
      },
      "diatom_abundance": {
        "id": "http://linked.earth/ontology/paleo_variables#diatomCount",
        "label": "diatomCount"
      },
      "seaicediatoms": {
        "id": "http://linked.earth/ontology/paleo_variables#diatomCount",
        "label": "diatomCount"
      },
      "dinocyst": {
        "id": "http://linked.earth/ontology/paleo_variables#dinocyst",
        "label": "dinocyst"
      },
      "total dinocysts": {
        "id": "http://linked.earth/ontology/paleo_variables#dinocyst",
        "label": "dinocyst"
      },
      "flux_dino": {
        "id": "http://linked.earth/ontology/paleo_variables#dinocyst",
        "label": "dinocyst"
      },
      "dolomite": {
        "id": "http://linked.earth/ontology/paleo_variables#dolomite",
        "label": "dolomite"
      },
      "% dolomite": {
        "id": "http://linked.earth/ontology/paleo_variables#dolomite",
        "label": "dolomite"
      },
      "drybulkdensity": {
        "id": "http://linked.earth/ontology/paleo_variables#dryBulkDensity",
        "label": "dryBulkDensity"
      },
      "dbd": {
        "id": "http://linked.earth/ontology/paleo_variables#dryBulkDensity",
        "label": "dryBulkDensity"
      },
      "dry bulk density": {
        "id": "http://linked.earth/ontology/paleo_variables#dryBulkDensity",
        "label": "dryBulkDensity"
      },
      "estdrybd": {
        "id": "http://linked.earth/ontology/paleo_variables#dryBulkDensity",
        "label": "dryBulkDensity"
      },
      "dry_bd": {
        "id": "http://linked.earth/ontology/paleo_variables#dryBulkDensity",
        "label": "dryBulkDensity"
      },
      "duration": {
        "id": "http://linked.earth/ontology/paleo_variables#duration",
        "label": "duration"
      },
      "duration unit": {
        "id": "http://linked.earth/ontology/paleo_variables#duration",
        "label": "duration"
      },
      "yearspersample": {
        "id": "http://linked.earth/ontology/paleo_variables#duration",
        "label": "duration"
      },
      "dust": {
        "id": "http://linked.earth/ontology/paleo_variables#dust",
        "label": "dust"
      },
      "0.50_quantile_dust_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#dust",
        "label": "dust"
      },
      "dmar": {
        "id": "http://linked.earth/ontology/paleo_variables#dust",
        "label": "dust"
      },
      "dustflux": {
        "id": "http://linked.earth/ontology/paleo_variables#dust",
        "label": "dust"
      },
      "effectiveprecipitation": {
        "id": "http://linked.earth/ontology/paleo_variables#effectivePrecipitation",
        "label": "effectivePrecipitation"
      },
      "precipitation minus evaporation": {
        "id": "http://linked.earth/ontology/paleo_variables#effectivePrecipitation",
        "label": "effectivePrecipitation"
      },
      "moisture_index": {
        "id": "http://linked.earth/ontology/paleo_variables#effectivePrecipitation",
        "label": "effectivePrecipitation"
      },
      "effectivemoisture": {
        "id": "http://linked.earth/ontology/paleo_variables#effectivePrecipitation",
        "label": "effectivePrecipitation"
      },
      "waterbalance": {
        "id": "http://linked.earth/ontology/paleo_variables#effectivePrecipitation",
        "label": "effectivePrecipitation"
      },
      "elevation": {
        "id": "http://linked.earth/ontology/paleo_variables#elevation",
        "label": "elevation"
      },
      "collection elevation": {
        "id": "http://linked.earth/ontology/paleo_variables#zscore",
        "label": "zscore"
      },
      "elevation a.s.l.": {
        "id": "http://linked.earth/ontology/paleo_variables#elevation",
        "label": "elevation"
      },
      "elevation sample": {
        "id": "http://linked.earth/ontology/paleo_variables#elevation",
        "label": "elevation"
      },
      "epsilonc28c22": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC28C22",
        "label": "epsilonC28C22"
      },
      "epsilon c28-c22": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC28C22",
        "label": "epsilonC28C22"
      },
      "epsilon28-22": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC28C22",
        "label": "epsilonC28C22"
      },
      "epsilonc28c24": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC28C24",
        "label": "epsilonC28C24"
      },
      "epsilon c28-c24": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC28C24",
        "label": "epsilonC28C24"
      },
      "epsilonc29c23": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC29C23",
        "label": "epsilonC29C23"
      },
      "epsilon c29-c23": {
        "id": "http://linked.earth/ontology/paleo_variables#epsilonC29C23",
        "label": "epsilonC29C23"
      },
      "equilibriumlinealtitude": {
        "id": "http://linked.earth/ontology/paleo_variables#equilibriumLineAltitude",
        "label": "equilibriumLineAltitude"
      },
      "equilibrium line altitude": {
        "id": "http://linked.earth/ontology/paleo_variables#equilibriumLineAltitude",
        "label": "equilibriumLineAltitude"
      },
      "ela": {
        "id": "http://linked.earth/ontology/paleo_variables#equilibriumLineAltitude",
        "label": "equilibriumLineAltitude"
      },
      "ela_alt": {
        "id": "http://linked.earth/ontology/paleo_variables#equilibriumLineAltitude",
        "label": "equilibriumLineAltitude"
      },
      "event": {
        "id": "http://linked.earth/ontology/paleo_variables#event",
        "label": "event"
      },
      "eventlayer": {
        "id": "http://linked.earth/ontology/paleo_variables#eventLayer",
        "label": "eventLayer"
      },
      "event layer": {
        "id": "http://linked.earth/ontology/paleo_variables#eventLayer",
        "label": "eventLayer"
      },
      "layer": {
        "id": "http://linked.earth/ontology/paleo_variables#eventLayer",
        "label": "eventLayer"
      },
      "layer_type": {
        "id": "http://linked.earth/ontology/paleo_variables#eventLayer",
        "label": "eventLayer"
      },
      "facies": {
        "id": "http://linked.earth/ontology/paleo_variables#facies",
        "label": "facies"
      },
      "lithologic unit": {
        "id": "http://linked.earth/ontology/paleo_variables#facies",
        "label": "facies"
      },
      "lithology": {
        "id": "http://linked.earth/ontology/paleo_variables#facies",
        "label": "facies"
      },
      "feldspar": {
        "id": "http://linked.earth/ontology/paleo_variables#feldspar",
        "label": "feldspar"
      },
      "feldspar group": {
        "id": "http://linked.earth/ontology/paleo_variables#feldspar",
        "label": "feldspar"
      },
      "flood": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "m-flood": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "m-flood 200 yr avg": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "m-flood 30 yr sum": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "p-flood": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "p-flood 200 yr avg": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "p-flood 30 yr sum": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "floods": {
        "id": "http://linked.earth/ontology/paleo_variables#flood",
        "label": "flood"
      },
      "fluorine": {
        "id": "http://linked.earth/ontology/paleo_variables#fluorine",
        "label": "fluorine"
      },
      "f": {
        "id": "http://linked.earth/ontology/paleo_variables#fluorine",
        "label": "fluorine"
      },
      "f_": {
        "id": "http://linked.earth/ontology/paleo_variables#fluorine",
        "label": "fluorine"
      },
      "foraminifera": {
        "id": "http://linked.earth/ontology/paleo_variables#foraminifera",
        "label": "foraminifera"
      },
      "foraminifer": {
        "id": "http://linked.earth/ontology/paleo_variables#foraminifera",
        "label": "foraminifera"
      },
      "foram": {
        "id": "http://linked.earth/ontology/paleo_variables#foraminifera",
        "label": "foraminifera"
      },
      "gamma": {
        "id": "http://linked.earth/ontology/paleo_variables#gamma",
        "label": "gamma"
      },
      "gamma radiation": {
        "id": "http://linked.earth/ontology/paleo_variables#gamma",
        "label": "gamma"
      },
      "glaciercoverage": {
        "id": "http://linked.earth/ontology/paleo_variables#glacierCoverage",
        "label": "glacierCoverage"
      },
      "globigerinoidesruber": {
        "id": "http://linked.earth/ontology/paleo_variables#globigerinoidesRuber",
        "label": "globigerinoidesRuber"
      },
      "globigerinoides ruber": {
        "id": "http://linked.earth/ontology/paleo_variables#globigerinoidesRuber",
        "label": "globigerinoidesRuber"
      },
      "gruber": {
        "id": "http://linked.earth/ontology/paleo_variables#globigerinoidesRuber",
        "label": "globigerinoidesRuber"
      },
      "grainsize": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "grain size": {
        "id": "http://linked.earth/ontology/paleo_variables#lithics",
        "label": "lithics"
      },
      "250-31 um": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "63-4 um": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "<16 \u03BCm": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "<2 um": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "<2um": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "<4 um": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      ">63 um": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "d50": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "grain size mean": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "grainsizemode": {
        "id": "http://linked.earth/ontology/paleo_variables#grainSize",
        "label": "grainSize"
      },
      "grayscale": {
        "id": "http://linked.earth/ontology/paleo_variables#grayscale",
        "label": "grayscale"
      },
      "grayscale20lp_detrended": {
        "id": "http://linked.earth/ontology/paleo_variables#grayscale",
        "label": "grayscale"
      },
      "grey_scale": {
        "id": "http://linked.earth/ontology/paleo_variables#grayscale",
        "label": "grayscale"
      },
      "growing degree days": {
        "id": "http://linked.earth/ontology/paleo_variables#growing_degree_days",
        "label": "growing degree days"
      },
      "growing_degree_days": {
        "id": "http://linked.earth/ontology/paleo_variables#growing_degree_days",
        "label": "growing degree days"
      },
      "gdd5": {
        "id": "http://linked.earth/ontology/paleo_variables#growing_degree_days",
        "label": "growing degree days"
      },
      "growthrate": {
        "id": "http://linked.earth/ontology/paleo_variables#growthRate",
        "label": "growthRate"
      },
      "growth rate": {
        "id": "http://linked.earth/ontology/paleo_variables#growthRate",
        "label": "growthRate"
      },
      "hasgap": {
        "id": "http://linked.earth/ontology/paleo_variables#hasGap",
        "label": "hasGap"
      },
      "hashiatus": {
        "id": "http://linked.earth/ontology/paleo_variables#hasHiatus",
        "label": "hasHiatus"
      },
      "hashiatuscomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#hasHiatus",
        "label": "hasHiatus"
      },
      "hole": {
        "id": "http://linked.earth/ontology/paleo_variables#hole",
        "label": "hole"
      },
      "humidificationindex": {
        "id": "http://linked.earth/ontology/paleo_variables#humidificationIndex",
        "label": "humidificationIndex"
      },
      "humification index": {
        "id": "http://linked.earth/ontology/paleo_variables#humidificationIndex",
        "label": "humidificationIndex"
      },
      "hindex": {
        "id": "http://linked.earth/ontology/paleo_variables#humidificationIndex",
        "label": "humidificationIndex"
      },
      "icemelt": {
        "id": "http://linked.earth/ontology/paleo_variables#iceMelt",
        "label": "iceMelt"
      },
      "ice melt": {
        "id": "http://linked.earth/ontology/paleo_variables#iceMelt",
        "label": "iceMelt"
      },
      "ice_melt_fraction": {
        "id": "http://linked.earth/ontology/paleo_variables#iceMelt",
        "label": "iceMelt"
      },
      "melt": {
        "id": "http://linked.earth/ontology/paleo_variables#iceMelt",
        "label": "iceMelt"
      },
      "meltlayerfrequency": {
        "id": "http://linked.earth/ontology/paleo_variables#iceMelt",
        "label": "iceMelt"
      },
      "meltlayers": {
        "id": "http://linked.earth/ontology/paleo_variables#iceMelt",
        "label": "iceMelt"
      },
      "icerafteddebris": {
        "id": "http://linked.earth/ontology/paleo_variables#iceRaftedDebris",
        "label": "iceRaftedDebris"
      },
      "ice rafted debris": {
        "id": "http://linked.earth/ontology/paleo_variables#iceRaftedDebris",
        "label": "iceRaftedDebris"
      },
      "ird": {
        "id": "http://linked.earth/ontology/paleo_variables#iceRaftedDebris",
        "label": "iceRaftedDebris"
      },
      "inc/coh": {
        "id": "http://linked.earth/ontology/paleo_variables#inc_coh",
        "label": "inc/coh"
      },
      "inc_coh": {
        "id": "http://linked.earth/ontology/paleo_variables#inc_coh",
        "label": "inc/coh"
      },
      "incoherent:coherent scattering": {
        "id": "http://linked.earth/ontology/paleo_variables#inc_coh",
        "label": "inc/coh"
      },
      "index": {
        "id": "http://linked.earth/ontology/paleo_variables#index",
        "label": "index"
      },
      "pls-1": {
        "id": "http://linked.earth/ontology/paleo_variables#index",
        "label": "index"
      },
      "pls-2": {
        "id": "http://linked.earth/ontology/paleo_variables#index",
        "label": "index"
      },
      "sm/illitechlorite": {
        "id": "http://linked.earth/ontology/paleo_variables#index",
        "label": "index"
      },
      "isreliable": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliabieyn1": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliabieyn2": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable?": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable 1": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable 2": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable_1": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable_2": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable_3": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "reliable_4": {
        "id": "http://linked.earth/ontology/paleo_variables#isReliable",
        "label": "isReliable"
      },
      "lakearea": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeArea",
        "label": "lakeArea"
      },
      "lake area": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeArea",
        "label": "lakeArea"
      },
      "lakelevel": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "lake level": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "lake level a.s.l.": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "lakedepth": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "lakelevel_cm_": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "depth.lake": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "lakelevelrelative": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "lakestatus": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeLevel",
        "label": "lakeLevel"
      },
      "laketrend": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeTrend",
        "label": "lakeTrend"
      },
      "lakevolume": {
        "id": "http://linked.earth/ontology/paleo_variables#lakeVolume",
        "label": "lakeVolume"
      },
      "landscapecover": {
        "id": "http://linked.earth/ontology/paleo_variables#landscapeCover",
        "label": "landscapeCover"
      },
      "ecosystem quantity": {
        "id": "http://linked.earth/ontology/paleo_variables#percent",
        "label": "percent"
      },
      "openvegetation___": {
        "id": "http://linked.earth/ontology/paleo_variables#landscapeCover",
        "label": "landscapeCover"
      },
      "latitude": {
        "id": "http://linked.earth/ontology/paleo_variables#latitude",
        "label": "latitude"
      },
      "latitude sample": {
        "id": "http://linked.earth/ontology/paleo_variables#latitude",
        "label": "latitude"
      },
      "layerthickness": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "layer thickness": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "fld lay thick": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "flood lay (annual)": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "flood lay (fall)": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "flood lay (spring)": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "flood lay (summer)": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "flood lay (winter)": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "laminathickenss": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "lamina_thickness": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "debrislaythick": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "eventlayerthick": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "floodlaythick": {
        "id": "http://linked.earth/ontology/paleo_variables#layerThickness",
        "label": "layerThickness"
      },
      "lithics": {
        "id": "http://linked.earth/ontology/paleo_variables#lithics",
        "label": "lithics"
      },
      "%_lithics": {
        "id": "http://linked.earth/ontology/paleo_variables#lithics",
        "label": "lithics"
      },
      "lithic flux": {
        "id": "http://linked.earth/ontology/paleo_variables#lithics",
        "label": "lithics"
      },
      "longitude": {
        "id": "http://linked.earth/ontology/paleo_variables#longitude",
        "label": "longitude"
      },
      "longitude sample": {
        "id": "http://linked.earth/ontology/paleo_variables#longitude",
        "label": "longitude"
      },
      "material": {
        "id": "http://linked.earth/ontology/paleo_variables#material",
        "label": "material"
      },
      "reconstruction material": {
        "id": "http://linked.earth/ontology/paleo_variables#material",
        "label": "material"
      },
      "mineralogy": {
        "id": "http://linked.earth/ontology/paleo_variables#mineralogy",
        "label": "mineralogy"
      },
      "identified mineral": {
        "id": "http://linked.earth/ontology/paleo_variables#mineralogy",
        "label": "mineralogy"
      },
      "mineral_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#mineralogy",
        "label": "mineralogy"
      },
      "mineralogycomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#mineralogy",
        "label": "mineralogy"
      },
      "needstobechanged": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "((( null ))) ac ratio? /// pollenratio": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "-": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "10%max": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "10%min": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "100yrsum": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "10yrrun.avg.": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "20%max": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "20%min": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "30%max": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "30%min": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "50%max": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "50%min": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "80%max": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "80%min": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "a odd (25-35)": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "a/c": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "a/c ratio": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "alkenones": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "analogues": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "analogues#": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "bs": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "bs_comx": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "bs_landscape_openness": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "bag": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "benthic": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "c170x2d28": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cast1": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cast2": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ci": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cia": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cmt": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cmt_max": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cmt_min": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cmtmax": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "cmtmin": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ct": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "d": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "dec": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "di": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "dryelements": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "e2hterr-2haq": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "em1": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "em2": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "em3": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "emi": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "eaq-p": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hc/g": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hii (h-set)": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hii (n-set)": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hii std (h-set)": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hii std (n-set)": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "hulunnuur": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "imi": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "intv0x2e": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "jult-esep": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "lorca": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "lsr (cm/ky)": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "laminae": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "lyc.added": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mg0": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mst": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mshellcrn": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mag0x2e": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mark add": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mark found": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mean consensus": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mean_anomaly": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "minidiscus?": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mode": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "moistelements": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ne.ars": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "oep": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ppexp": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "rra": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "reconstructed": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "s52": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "tct": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "totc": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "ts": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "tsar": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "tsar5pt": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "tt": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "taraxer-14-ene concentration": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "th13c": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "u_xs": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "unit": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wacls": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wacls_total": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wainv": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wainv_total": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wapls-2": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "wmt": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "water/relict ice age": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "aridity": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "bagdepth": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "benth": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "d0x2800x2e10x29": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "d0x2800x2e50x29": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "d0x2800x2e90x29": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "d13o_pachyderma": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "distance": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "dln": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "drive-type": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "esep_pls_c2": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "esep_wmat": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "kyryr bp2": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "log[em3/(em1+em2)]": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "lower band": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "mineral": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "n-alkane": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "s": {
        "id": "http://linked.earth/ontology/paleo_variables#sulfur",
        "label": "sulfur"
      },
      "stage": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "tempsource": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "thin-mid": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "thisshouldntbeempty": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "thisshouldntbeempty1": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "unnamed": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "water": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x00x2e020xb5m0x2d30x2e890xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x10000x2e010xb5m0x2d20000x2e000xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x1250x2e000xb5m0x2d2490x2e990xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x150x2e600xb5m0x2d300x2e990xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x2500x2e000xb5m0x2d4990x2e990xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x30x2e900xb5m0x2d70x2e790xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x310x2e000xb5m0x2d620x2e490xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x5000x2e000xb5m0x2d10000x2e000xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x620x2e500xb5m0x2d1240x2e990xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "x70x2e800xb5m0x2d150x2e590xb5m": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeChanged",
        "label": "needsToBeChanged"
      },
      "needstobesplitintomultiplecolumns": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeSplitIntoMultipleColumns",
        "label": "needsToBeSplitIntoMultipleColumns"
      },
      "depth-range": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeSplitIntoMultipleColumns",
        "label": "needsToBeSplitIntoMultipleColumns"
      },
      "depthrange": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeSplitIntoMultipleColumns",
        "label": "needsToBeSplitIntoMultipleColumns"
      },
      "depth_range": {
        "id": "http://linked.earth/ontology/paleo_variables#needsToBeSplitIntoMultipleColumns",
        "label": "needsToBeSplitIntoMultipleColumns"
      },
      "nitrogen": {
        "id": "http://linked.earth/ontology/paleo_variables#nitrogen",
        "label": "nitrogen"
      },
      "n": {
        "id": "http://linked.earth/ontology/paleo_variables#nitrogen",
        "label": "nitrogen"
      },
      "notes": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "bsi_regime": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "codename": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "commentregardingreliability": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "commentregardingreliability1": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "commentregardingreliability2": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "commentregardingreliability3": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "commentregardingreliability4": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "reworked": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "color": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "entityname": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "note": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "notes_c5": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "repeats": {
        "id": "http://linked.earth/ontology/paleo_variables#notes",
        "label": "notes"
      },
      "organiccarbon": {
        "id": "http://linked.earth/ontology/paleo_variables#organicCarbon",
        "label": "organicCarbon"
      },
      "acc rate toc": {
        "id": "http://linked.earth/ontology/paleo_variables#organicCarbon",
        "label": "organicCarbon"
      },
      "c_organic_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#organicCarbon",
        "label": "organicCarbon"
      },
      "corg dens": {
        "id": "http://linked.earth/ontology/paleo_variables#organicCarbon",
        "label": "organicCarbon"
      },
      "organicmatter": {
        "id": "http://linked.earth/ontology/paleo_variables#organicMatter",
        "label": "organicMatter"
      },
      "organic matter": {
        "id": "http://linked.earth/ontology/paleo_variables#organicMatter",
        "label": "organicMatter"
      },
      "%_tom": {
        "id": "http://linked.earth/ontology/paleo_variables#organicMatter",
        "label": "organicMatter"
      },
      "om": {
        "id": "http://linked.earth/ontology/paleo_variables#organicMatter",
        "label": "organicMatter"
      },
      "om dens": {
        "id": "http://linked.earth/ontology/paleo_variables#organicMatter",
        "label": "organicMatter"
      },
      "organic": {
        "id": "http://linked.earth/ontology/paleo_variables#organicMatter",
        "label": "organicMatter"
      },
      "organicnitrogen": {
        "id": "http://linked.earth/ontology/paleo_variables#organicNitrogen",
        "label": "organicNitrogen"
      },
      "norg": {
        "id": "http://linked.earth/ontology/paleo_variables#organicNitrogen",
        "label": "organicNitrogen"
      },
      "oxygen": {
        "id": "http://linked.earth/ontology/paleo_variables#oxygen",
        "label": "oxygen"
      },
      "%o": {
        "id": "http://linked.earth/ontology/paleo_variables#oxygen",
        "label": "oxygen"
      },
      "ph": {
        "id": "http://linked.earth/ontology/paleo_variables#pH",
        "label": "pH"
      },
      "phsoil": {
        "id": "http://linked.earth/ontology/paleo_variables#pH",
        "label": "pH"
      },
      "soilph": {
        "id": "http://linked.earth/ontology/paleo_variables#pH",
        "label": "pH"
      },
      "peat": {
        "id": "http://linked.earth/ontology/paleo_variables#peat",
        "label": "peat"
      },
      "peatflux": {
        "id": "http://linked.earth/ontology/paleo_variables#peat",
        "label": "peat"
      },
      "percent": {
        "id": "http://linked.earth/ontology/paleo_variables#percent",
        "label": "percent"
      },
      "woodycover___": {
        "id": "http://linked.earth/ontology/paleo_variables#percent",
        "label": "percent"
      },
      "phosphorus": {
        "id": "http://linked.earth/ontology/paleo_variables#phosphorus",
        "label": "phosphorus"
      },
      "%p": {
        "id": "http://linked.earth/ontology/paleo_variables#phosphorus",
        "label": "phosphorus"
      },
      "potassium": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "% k": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "%k": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "k": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "k peak area": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "kprop": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "k_": {
        "id": "http://linked.earth/ontology/paleo_variables#potassium",
        "label": "potassium"
      },
      "precipitation": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "annual precipitation": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "map": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "p": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "pannom": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "panom": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "precip": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "summer precipitation": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "winter precipitation": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "precip51yr": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "precip5yr": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "precipitation (with h-set)": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "precipobs": {
        "id": "http://linked.earth/ontology/paleo_variables#precipitation",
        "label": "precipitation"
      },
      "productivity": {
        "id": "http://linked.earth/ontology/paleo_variables#productivity",
        "label": "productivity"
      },
      "pyrite": {
        "id": "http://linked.earth/ontology/paleo_variables#pyrite",
        "label": "pyrite"
      },
      "quartz": {
        "id": "http://linked.earth/ontology/paleo_variables#quartz",
        "label": "quartz"
      },
      "reflectance": {
        "id": "http://linked.earth/ontology/paleo_variables#reflectance",
        "label": "reflectance"
      },
      "brightness": {
        "id": "http://linked.earth/ontology/paleo_variables#reflectance",
        "label": "reflectance"
      },
      "x_radiograph_dark_layer": {
        "id": "http://linked.earth/ontology/paleo_variables#reflectance",
        "label": "reflectance"
      },
      "blueintensity": {
        "id": "http://linked.earth/ontology/paleo_variables#reflectance",
        "label": "reflectance"
      },
      "red_color_intensity_units": {
        "id": "http://linked.earth/ontology/paleo_variables#reflectance",
        "label": "reflectance"
      },
      "redness": {
        "id": "http://linked.earth/ontology/paleo_variables#reflectance",
        "label": "reflectance"
      },
      "relativehumidity": {
        "id": "http://linked.earth/ontology/paleo_variables#relativeHumidity",
        "label": "relativeHumidity"
      },
      "relative humidity": {
        "id": "http://linked.earth/ontology/paleo_variables#relativeHumidity",
        "label": "relativeHumidity"
      },
      "rh": {
        "id": "http://linked.earth/ontology/paleo_variables#relativeHumidity",
        "label": "relativeHumidity"
      },
      "residualchronology": {
        "id": "http://linked.earth/ontology/paleo_variables#residualChronology",
        "label": "residualChronology"
      },
      "residual chronology method": {
        "id": "http://linked.earth/ontology/paleo_variables#residualChronology",
        "label": "residualChronology"
      },
      "residual": {
        "id": "http://linked.earth/ontology/paleo_variables#residualChronology",
        "label": "residualChronology"
      },
      "ringwidth": {
        "id": "http://linked.earth/ontology/paleo_variables#ringWidth",
        "label": "ringWidth"
      },
      "ring width": {
        "id": "http://linked.earth/ontology/paleo_variables#ringWidth",
        "label": "ringWidth"
      },
      "trw": {
        "id": "http://linked.earth/ontology/paleo_variables#ringWidth",
        "label": "ringWidth"
      },
      "trsgi": {
        "id": "http://linked.earth/ontology/paleo_variables#ringWidth",
        "label": "ringWidth"
      },
      "salinity": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "saug": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "sete": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "sfev": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "shiv": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "logsalinity": {
        "id": "http://linked.earth/ontology/paleo_variables#salinity",
        "label": "salinity"
      },
      "samplecount": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleCount",
        "label": "sampleCount"
      },
      "num_samples": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleCount",
        "label": "sampleCount"
      },
      "sampleid": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample identification": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "dateid": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "lab code": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "lab id": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "originalsampleid": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample id": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample label": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample interval": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "label": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "plotname": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sambleid": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample # in section": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sampleida": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sampleidb": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sampleidc": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "samplenumber": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample_code": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sample_number": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "samples": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sisalsampleid": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sisalsampleidcomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "smapleid": {
        "id": "http://linked.earth/ontology/paleo_variables#sampleID",
        "label": "sampleID"
      },
      "sand": {
        "id": "http://linked.earth/ontology/paleo_variables#sand",
        "label": "sand"
      },
      "%_sand": {
        "id": "http://linked.earth/ontology/paleo_variables#sand",
        "label": "sand"
      },
      "x_sand": {
        "id": "http://linked.earth/ontology/paleo_variables#sand",
        "label": "sand"
      },
      "seaice": {
        "id": "http://linked.earth/ontology/paleo_variables#seaIce",
        "label": "seaIce"
      },
      "sea ice cover": {
        "id": "http://linked.earth/ontology/paleo_variables#seaIce",
        "label": "seaIce"
      },
      "imon1953": {
        "id": "http://linked.earth/ontology/paleo_variables#seaIce",
        "label": "seaIce"
      },
      "sea_ice_conc": {
        "id": "http://linked.earth/ontology/paleo_variables#seaIce",
        "label": "seaIce"
      },
      "sea_ice_months": {
        "id": "http://linked.earth/ontology/paleo_variables#seaIce",
        "label": "seaIce"
      },
      "section": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "sec label": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "section #": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "section [#]": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "section number": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "core_section": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "section name": {
        "id": "http://linked.earth/ontology/paleo_variables#section",
        "label": "section"
      },
      "sedimentdry": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "dry sediment": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "clastic": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "clastic_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "dry sample mass": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "mass dry": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "mass dry 106 to 1000 um": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "mass dry 63 to 106 um": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "mass dry >1mm": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "massdry": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "massdry_1mm": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "sedimentweight": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentDry",
        "label": "sedimentDry"
      },
      "sedimentationrate": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentationRate",
        "label": "sedimentationRate"
      },
      "sedimentation rate": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentationRate",
        "label": "sedimentationRate"
      },
      "mean sedim rate": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentationRate",
        "label": "sedimentationRate"
      },
      "sedim rate": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentationRate",
        "label": "sedimentationRate"
      },
      "sed rate": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentationRate",
        "label": "sedimentationRate"
      },
      "sedrate": {
        "id": "http://linked.earth/ontology/paleo_variables#sedimentationRate",
        "label": "sedimentationRate"
      },
      "segmentlength": {
        "id": "http://linked.earth/ontology/paleo_variables#segmentLength",
        "label": "segmentLength"
      },
      "segment": {
        "id": "http://linked.earth/ontology/paleo_variables#segmentLength",
        "label": "segmentLength"
      },
      "sequence": {
        "id": "http://linked.earth/ontology/paleo_variables#sequence",
        "label": "sequence"
      },
      "pollen sequence": {
        "id": "http://linked.earth/ontology/paleo_variables#sequence",
        "label": "sequence"
      },
      "silt": {
        "id": "http://linked.earth/ontology/paleo_variables#silt",
        "label": "silt"
      },
      "%_silt": {
        "id": "http://linked.earth/ontology/paleo_variables#silt",
        "label": "silt"
      },
      "x_silt": {
        "id": "http://linked.earth/ontology/paleo_variables#silt",
        "label": "silt"
      },
      "site": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "coresite": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "drilling project": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "lakename": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "region": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "sitename": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "site/hole": {
        "id": "http://linked.earth/ontology/paleo_variables#site",
        "label": "site"
      },
      "sitecount": {
        "id": "http://linked.earth/ontology/paleo_variables#siteCount",
        "label": "siteCount"
      },
      "#ofsites": {
        "id": "http://linked.earth/ontology/paleo_variables#siteCount",
        "label": "siteCount"
      },
      "sodium": {
        "id": "http://linked.earth/ontology/paleo_variables#sodium",
        "label": "sodium"
      },
      "na": {
        "id": "http://linked.earth/ontology/paleo_variables#sodium",
        "label": "sodium"
      },
      "na_": {
        "id": "http://linked.earth/ontology/paleo_variables#sodium",
        "label": "sodium"
      },
      "solarirradiance": {
        "id": "http://linked.earth/ontology/paleo_variables#solarIrradiance",
        "label": "solarIrradiance"
      },
      "solar irradiance": {
        "id": "http://linked.earth/ontology/paleo_variables#solarIrradiance",
        "label": "solarIrradiance"
      },
      "sunfrac": {
        "id": "http://linked.earth/ontology/paleo_variables#solarIrradiance",
        "label": "solarIrradiance"
      },
      "streamflow": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "aprq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "augq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "decq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "febq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "janq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "julyq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "juneq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "marchq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "mayq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "novq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "octq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "septq": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "discharge": {
        "id": "http://linked.earth/ontology/paleo_variables#streamflow",
        "label": "streamflow"
      },
      "sulfur": {
        "id": "http://linked.earth/ontology/paleo_variables#sulfur",
        "label": "sulfur"
      },
      "sulphur": {
        "id": "http://linked.earth/ontology/paleo_variables#sulfur",
        "label": "sulfur"
      },
      "temperature": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature variable": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "apr": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "aug": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "fra06 air temperature": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "feb": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "ice_core_c": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "jul": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "jun": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "jan": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "jultanom": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "jultanomloess": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "maat": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "mat": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "may": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "msat": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "msat russell 2018": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "meant": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nov": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "oct": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "pls_c2_temp": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "pollen_t": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sbt": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sep": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst-d18o": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst_ldi": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst_amj": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst_from_uk37": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst_from_planktic0x2emgca": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "sst_from_planktic0x2ed18o": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "t anomaly": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tete": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tfev": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "thiv": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tanom": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom 10 ci": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom 25": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom 75": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom 90": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom best": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom for15": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom fra06": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp anom fra06-tr": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tsource": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "deep.temp": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "interpolatedtemperature": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature 1": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature_1": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature_2": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature_3": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature_4": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "nonreliabletemperature 2": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "smoothedtemp": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "soiltemp": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "subt": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "t-source": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp2": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temp2s": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tempav0": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tempav8": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tempk": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tempnoelevcorrection": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tempnosourcecorrection": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temppartialcorrect": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "tempsmooth5": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature 1": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature 2": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperaturecomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature_1": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature_2": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature_3": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperature_4": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "temperaturer2": {
        "id": "http://linked.earth/ontology/paleo_variables#temperature",
        "label": "temperature"
      },
      "thickness": {
        "id": "http://linked.earth/ontology/paleo_variables#thickness",
        "label": "thickness"
      },
      "samp thick": {
        "id": "http://linked.earth/ontology/paleo_variables#thickness",
        "label": "thickness"
      },
      "sample thickness": {
        "id": "http://linked.earth/ontology/paleo_variables#thickness",
        "label": "thickness"
      },
      "sample_thickness": {
        "id": "http://linked.earth/ontology/paleo_variables#thickness",
        "label": "thickness"
      },
      "thicknesscomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#thickness",
        "label": "thickness"
      },
      "totalcarbon": {
        "id": "http://linked.earth/ontology/paleo_variables#totalCarbon",
        "label": "totalCarbon"
      },
      "tc": {
        "id": "http://linked.earth/ontology/paleo_variables#totalCarbon",
        "label": "totalCarbon"
      },
      "totalnitrogen": {
        "id": "http://linked.earth/ontology/paleo_variables#totalNitrogen",
        "label": "totalNitrogen"
      },
      "tn": {
        "id": "http://linked.earth/ontology/paleo_variables#totalNitrogen",
        "label": "totalNitrogen"
      },
      "totalpollen": {
        "id": "http://linked.earth/ontology/paleo_variables#totalPollen",
        "label": "totalPollen"
      },
      "pollen": {
        "id": "http://linked.earth/ontology/paleo_variables#totalPollen",
        "label": "totalPollen"
      },
      "treepollen": {
        "id": "http://linked.earth/ontology/paleo_variables#totalPollen",
        "label": "totalPollen"
      },
      "treecover": {
        "id": "http://linked.earth/ontology/paleo_variables#treeCover",
        "label": "treeCover"
      },
      "uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "unspecified margin of error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "13cleafwaxc29-33err": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "a_site_std": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "age_uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "annual precipitation error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "c20 total unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "c22 total unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "c24 total unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "c26 total unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "c28 total unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "c30 total unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "calibration error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "dmar_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "dmar_uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "epsilon c28-c22 uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "epsilon c28-c24 uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "epsilon uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "epsilon28-22uncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "jas_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "jaserror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "srcauncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "summer precipitation error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "tterror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "t_site_std": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uk37_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uk_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "winter precipitation error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "ageerror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "ageuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "ageuncertaintyother": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "bubblenumberdensityerror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d13c error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d13c std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d13cprecision": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d13cstandard": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d13c_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18o error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18oprecision": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18oprecisioncomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18ostandard": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18ostandardcomposite": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18ouncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18o_grass_leaf_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18o_sphagnum_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d18o_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "d2hleafwaxc28err": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "dd error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "dd unc": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "dduncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "err": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "error1": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "error2": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "error3": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "lakeareaerror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "lakevolumeerror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "nc30_err": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "precipitationuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "range": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "temperror": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "temperatureuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "temperature_error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty (\xB1)": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty.temperature": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty_1": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty_2": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty_3": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty_4": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty_temperature": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty",
        "label": "uncertainty"
      },
      "uncertainty1s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "68% confidence interval margin of error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "2h_dino_1sig": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c23 stdev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c23 \u03B4d std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c24 d2h stdev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c25 stdev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c25 \u03B4d std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c27 stdev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 d13c std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 dd std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 stdev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 \u03B413c std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 \u03B413c std dev\xA0[\xB1]": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 \u03B4d std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c29 \u03B4d std dev\xA0[\xB1]": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c30 dd std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c31 d13c std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c31 dd std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c31 \u03B413c std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c31 \u03B4d std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c31d13csd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c33 \u03B413c std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "c33 \u03B4d std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "cbtsd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "map1-sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "mbtsd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "mg_ca_sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "sd_anomaly": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "se": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdev c28 dd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "u371sigmauncertainty-": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "wmt1-sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "d excess stdev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "d13c_c31_sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "dd std dev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "from_68": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "precipitation std": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "precipitation std (with h-set)": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "std": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stddev": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stddev___": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdev c24": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdev c26": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdev c28": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdev weighted average": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc24": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc25": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc26": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc27": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc28": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc29": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "stdevc31": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "to_68": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty1s",
        "label": "uncertainty1s"
      },
      "uncertainty2s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "95% confidence interval margin of error": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "2 sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "map2-sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "wmt2-sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "from_95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "to_95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertainty2s",
        "label": "uncertainty2s"
      },
      "uncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "unspecified error upper bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "acc max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "ageold": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "age_max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "chironomid d18o max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "imon1953_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "jas+": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "map_max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "mat_max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "matmax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "maxelevm": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "pannommax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "pannommaxuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "panommax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "panommaxuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "pmax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "saug_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "sete_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "sfev_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "shiv_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "sunfracmax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "tete_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "tfev_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "thiv_s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "treecover_max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "uncertaintydust0x5b0x250x5d0x28plus0x29": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "wmt_max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "wmtmax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "age max": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agebaconuncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agebchronuncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agemax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "ageoxcaluncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agestalageuncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "ageuncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "age_old": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agecoprauncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agelininterpuncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "agelinreguncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "cal_age_range_old": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "d18ouncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "errorup": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "errorup2": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "error_older_age": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "lakelevelhi": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "lakelevelmax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "max age": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "max rh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "maxage": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "meltuncertaintyhigh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "precip+": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "temperrorplus": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "temperrorupper": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "temperaturewarm": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "uncertainty_plus": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "upper band": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "uppererr": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "uppererr2": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "year_old": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "\u2206rh_upper": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh",
        "label": "uncertaintyHigh"
      },
      "uncertaintyhigh1s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "68% confidence interval upper bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "p+sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "q0.84": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "t+sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "t.plussd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "temperature 1 sigma range high": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "age_y_bp+1s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "ddp_1s_upper": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "deltat + 1 sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "ice volume adjusted": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "ice volume and vegetation adjusted": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "precip_1s_upper": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "precip_1s_uppper": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s",
        "label": "uncertaintyHigh1s"
      },
      "uncertaintyhigh50": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh50",
        "label": "uncertaintyHigh50"
      },
      "50% confidence interval upper bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh50",
        "label": "uncertaintyHigh50"
      },
      "0.25_quantile_dust_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh50",
        "label": "uncertaintyHigh50"
      },
      "0.75_quantile_dust_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh50",
        "label": "uncertaintyHigh50"
      },
      "precip dd 75 ci": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh50",
        "label": "uncertaintyHigh50"
      },
      "uncertaintyhigh90": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh90",
        "label": "uncertaintyHigh90"
      },
      "90% confidence interval upper bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh90",
        "label": "uncertaintyHigh90"
      },
      "pcpanomci95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh90",
        "label": "uncertaintyHigh90"
      },
      "uncertaintyhigh95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "95% confidence interval upper bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "0.975_quantile_dust_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "95upperage": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "q0.975": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "age95conmax": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "age_97.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "age_calbp95+": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "d13c_97.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "d18o_97.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "maxage95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "max_age_95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "upper95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyHigh95",
        "label": "uncertaintyHigh95"
      },
      "uncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "unspecified error lower bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "acc min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "age_min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "chironomid d18o min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "imon1953_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "jas-": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "map_min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "mat_min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "matmin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "minelevm": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "pannommin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "pannomminuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "panommin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "panomminuncertainty": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "pmin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "saug_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "sete_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "sfev_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "shiv_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "sunfracmin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "tete_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "tfev_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "thiv_i": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "treecover_min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "uncertaintydust0x5b0x250x5d0x28minus0x29": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "wmt_min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "wmtmin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "age min": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agebaconuncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agebchronuncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agemin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "ageoxcaluncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agestalageuncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "ageuncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "ageyoung": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "age_young": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agecoprauncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agelininterpuncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "agelinreguncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "cal_age_range_young": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "d18ouncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "errorlow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "errorlow2": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "error_younger_age": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "lakelevello": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "lakelevelmin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "lowererr": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "meltuncertaintylow": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "min age": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "min rh": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "minage": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "precip-": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "temperrorlower": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "temperaturecold": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "undertainty_minus": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "yearbottom": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "yeartop": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "\u2206rh_lower": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow",
        "label": "uncertaintyLow"
      },
      "uncertaintylow1s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "68% confidence interval lower bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "p-sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "q0.16": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "t-sd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "t.minussd": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "temperature 1 sigma range low": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "age_y_bp-1s": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "ddp_1s_lower": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "deltat - 1 sigma": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "precip_1s_lower": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow1s",
        "label": "uncertaintyLow1s"
      },
      "uncertaintylow90": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow90",
        "label": "uncertaintyLow90"
      },
      "90% confidence interval lower bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow90",
        "label": "uncertaintyLow90"
      },
      "age97.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow90",
        "label": "uncertaintyLow90"
      },
      "age_5thpercentile": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow90",
        "label": "uncertaintyLow90"
      },
      "age_95thpercentile": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow90",
        "label": "uncertaintyLow90"
      },
      "uncertaintylow95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "95% confidence interval lower bound": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "0.025_quantile_dust_flux": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "95lowerage": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "precip dd 25 ci": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "q0.025": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "age2.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "age95confmin": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "age_2.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "age_calbp95-": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "d13c_2.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "d18o_2.5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "lower95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "lowererr2": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "minage95": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "pcpanomci5": {
        "id": "http://linked.earth/ontology/paleo_variables#uncertaintyLow95",
        "label": "uncertaintyLow95"
      },
      "upwelling": {
        "id": "http://linked.earth/ontology/paleo_variables#upwelling",
        "label": "upwelling"
      },
      "upwelling index": {
        "id": "http://linked.earth/ontology/paleo_variables#upwelling",
        "label": "upwelling"
      },
      "uranium": {
        "id": "http://linked.earth/ontology/paleo_variables#uranium",
        "label": "uranium"
      },
      "u": {
        "id": "http://linked.earth/ontology/paleo_variables#uranium",
        "label": "uranium"
      },
      "varvethickness": {
        "id": "http://linked.earth/ontology/paleo_variables#varveThickness",
        "label": "varveThickness"
      },
      "varve thickness": {
        "id": "http://linked.earth/ontology/paleo_variables#varveThickness",
        "label": "varveThickness"
      },
      "varve_width": {
        "id": "http://linked.earth/ontology/paleo_variables#varveThickness",
        "label": "varveThickness"
      },
      "volume": {
        "id": "http://linked.earth/ontology/paleo_variables#volume",
        "label": "volume"
      },
      "samp vol": {
        "id": "http://linked.earth/ontology/paleo_variables#volume",
        "label": "volume"
      },
      "watercontent": {
        "id": "http://linked.earth/ontology/paleo_variables#waterContent",
        "label": "waterContent"
      },
      "water content": {
        "id": "http://linked.earth/ontology/paleo_variables#waterContent",
        "label": "waterContent"
      },
      "watertabledepth": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "water table depth": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "water table": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "water table detrended": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "water_tabledepth": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "water wm": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "water_table_depth": {
        "id": "http://linked.earth/ontology/paleo_variables#waterTableDepth",
        "label": "waterTableDepth"
      },
      "wetbulkdensity": {
        "id": "http://linked.earth/ontology/paleo_variables#wetBulkDensity",
        "label": "wetBulkDensity"
      },
      "wetbd": {
        "id": "http://linked.earth/ontology/paleo_variables#wetBulkDensity",
        "label": "wetBulkDensity"
      },
      "year": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "recon0x2edate": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "year b2k": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "age_ce": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "year start": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "yearensemble": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "yearrounded": {
        "id": "http://linked.earth/ontology/paleo_variables#year",
        "label": "year"
      },
      "zscore": {
        "id": "http://linked.earth/ontology/paleo_variables#zscore",
        "label": "zscore"
      },
      "z_score": {
        "id": "http://linked.earth/ontology/paleo_variables#zscore",
        "label": "zscore"
      }
    }
  }
};
var RSYNONYMS = {};
for (const category in SYNONYMS) {
  for (const className in SYNONYMS[category]) {
    const categoryObj = SYNONYMS[category];
    if (categoryObj) {
      const synonyms = categoryObj[className];
      if (synonyms) {
        for (const synonym in synonyms) {
          const synObj = synonyms[synonym];
          RSYNONYMS[synObj.id] = synObj.label;
        }
      }
    }
  }
}

// src/globals/schema.ts
var SCHEMA = {
  "Dataset": {
    "@id": ["{dataSetName}"],
    "@toJson_pre": [
      "setArchiveTypeLabel"
    ],
    "datasetId": {
      "name": "hasDatasetId"
    },
    "dataSetName": {
      "name": "hasName",
      "alternates": ["paleoArchiveName"]
    },
    "dataSource": {
      "name": "hasDataSource"
    },
    "originalDataURL": {
      "name": "hasOriginalDataUrl",
      "alternates": ["originalDataUrl", "additionalDataUrl", "originalDataSource", "originalDataURL", "originalSourceUrl", "paleoData_WDSPaleoUrl"]
    },
    "dataContributor": {
      "name": "hasContributor",
      "schema": "Person",
      "alternates": ["whoEnteredinDB", "MetadataEnteredByWhom", "contributorName"],
      "fromJson": "parsePersons",
      "multiple": true
    },
    "archiveType": {
      "name": "hasArchiveType",
      "alternates": [
        "archive",
        "paleoDataArchive",
        "paleoData_Archive",
        "Archive"
      ],
      "type": "Individual",
      "synonyms": SYNONYMS["ARCHIVES"]["ArchiveType"],
      "class_range": "ArchiveType",
      "skip_auto_convert_to_json": true
    },
    "changelog": {
      "name": "hasChangeLog",
      "schema": "ChangeLog",
      "multiple": true
    },
    "notes": {
      "name": "hasNotes"
    },
    "collectionName": {
      "name": "hasCollectionName",
      "alternates": ["collectionName1", "collectionName2", "collectionName3"]
    },
    "collectionYear": {
      "name": "hasCollectionYear"
    },
    "investigator": {
      "name": "hasInvestigator",
      "alternates": ["investigators"],
      "schema": "Person",
      "multiple": true,
      "fromJson": "parsePersons"
    },
    "creator": {
      "name": "hasCreator",
      "schema": "Person",
      "multiple": true,
      "fromJson": "parsePersons"
    },
    "funding": {
      "name": "hasFunding",
      "multiple": true,
      "schema": "Funding"
    },
    "pub": {
      "name": "hasPublication",
      "multiple": true,
      "schema": "Publication"
    },
    "geo": {
      "name": "hasLocation",
      "schema": "Location",
      "fromJson": "parseLocation",
      "toJson": "locationToJson"
    },
    "paleoData": {
      "name": "hasPaleoData",
      "multiple": true,
      "schema": "PaleoData"
    },
    "chronData": {
      "name": "hasChronData",
      "multiple": true,
      "schema": "ChronData"
    },
    "googleSpreadSheetKey": {
      "name": "hasSpreadsheetLink",
      "fromJson": "getGoogleSpreadsheetUrl",
      "toJson": "getGoogleSpreadsheetKey"
    },
    "dataSetVersion": {
      "name": "hasVersion"
    },
    "compilation_nest": {
      "name": "hasCompilationNest",
      "alternates": [
        "pages2kRegion",
        "paleoDIVERSiteId",
        "sisalSiteId",
        "LegacyClimateDatasetId",
        "LegacyClimateSiteId",
        "ch2kCoreCode",
        "coralHydro2kGroup",
        "iso2kCertification",
        "iso2kUI",
        "ocean2kID",
        "pages2kId",
        "pages2kID",
        "QCCertification",
        "SISALEntityID"
      ]
    }
  },
  "Compilation": {
    "@id": ["{compilationName}", ".", "{@id}"],
    "compilationName": {
      "name": "hasName"
    },
    "compilationVersion": {
      "name": "hasVersion",
      "multiple": true
    }
  },
  "ChangeLog": {
    "@id": ["{@parent.@id}", ".ChangeLog.", "{@index}"],
    "@category": "ChangeLog",
    "curator": {
      "name": "hasCurator"
    },
    "version": {
      "name": "hasVersion"
    },
    "lastVersion": {
      "name": "hasLastVersion"
    },
    "timestamp": {
      "name": "hasTimestamp"
    },
    "changes": {
      "name": "hasChanges",
      "multiple": true,
      "type": "Individual",
      "schema": "Change",
      "fromJson": "parseChanges",
      "toJson": "changesToJson"
    },
    "notes": {
      "name": "hasNotes"
    }
  },
  "Change": {
    "@id": ["{@parent.@id}", ".Change.", "{@index}"],
    "name": {
      "name": "hasName"
    },
    "notes": {
      "name": "hasNotes",
      "multiple": true
    }
  },
  "Funding": {
    "@id": [
      "{fundingAgency|agency}",
      ".",
      "{fundingGrant|grant}"
    ],
    "agency": {
      "name": "hasFundingAgency",
      "alternates": ["fundingAgency"]
    },
    "grant": {
      "name": "hasGrant",
      "multiple": true,
      "alternates": ["fundingGrant"]
    },
    "country": {
      "name": "hasFundingCountry",
      "alternates": ["fundingCountry"]
    },
    "investigator": {
      "name": "hasInvestigator",
      "schema": "Person",
      "multiple": true,
      "fromJson": "parsePersons"
    }
  },
  "Publication": {
    "@id": [
      "Publication.",
      "{identifier.0.id|@parent.dataSetName}",
      "{index}"
    ],
    "title": {
      "name": "hasTitle"
    },
    "abstract": {
      "name": "hasAbstract"
    },
    "institution": {
      "name": "hasInstitution"
    },
    "issue": {
      "name": "hasIssue"
    },
    "journal": {
      "name": "hasJournal"
    },
    "volume": {
      "name": "hasVolume",
      "type": "string"
    },
    "pages": {
      "name": "hasPages"
    },
    "year": {
      "name": "hasYear",
      "type": "integer",
      "alternates": ["pubYear"]
    },
    "publisher": {
      "name": "hasPublisher"
    },
    "report": {
      "name": "hasReport"
    },
    "type": {
      "name": "hasType"
    },
    "citation": {
      "name": "hasCitation",
      "type": "string"
    },
    "citeKey": {
      "name": "hasCiteKey",
      "type": "string"
    },
    "url": {
      "name": "hasUrl",
      "alternates": ["link"],
      "multiple": true
    },
    "dataUrl": {
      "name": "hasDataUrl",
      "alternates": ["data_Url", "pubDataUrl"],
      "multiple": true
    },
    "doi": {
      "name": "hasDOI",
      "type": "string",
      "alternates": ["DOI"]
    },
    "author": {
      "name": "hasAuthor",
      "alternates": ["authors"],
      "schema": "Person",
      "multiple": true,
      "fromJson": "parsePersons"
    },
    "firstauthor": {
      "name": "hasFirstAuthor",
      "alternates": ["firstAuthor"],
      "schema": "Person",
      "fromJson": "parsePersons"
    }
  },
  "PaleoData": {
    "@id": [
      "{@parent.dataSetName}",
      ".PaleoData",
      "{@index}"
    ],
    "paleoDataName": {
      "name": "hasName"
    },
    "measurementTable": {
      "alternates": ["paleoMeasurementTable"],
      "name": "hasMeasurementTable",
      "multiple": true,
      "schema": "DataTable"
    },
    "model": {
      "alternates": ["paleoModel"],
      "name": "modeledBy",
      "multiple": true,
      "schema": "Model"
    }
  },
  "ChronData": {
    "@id": [
      "{@parent.dataSetName}",
      ".ChronData",
      "{@index}"
    ],
    "measurementTable": {
      "alternates": ["chronMeasurementTable"],
      "name": "hasMeasurementTable",
      "multiple": true,
      "schema": "DataTable"
    },
    "model": {
      "alternates": ["chronModel"],
      "name": "modeledBy",
      "multiple": true,
      "schema": "Model"
    }
  },
  "Model": {
    "@id": ["{@parent.@id}", ".Model", "{@index}"],
    "method": {
      "name": "hasCode"
    },
    "summaryTable": {
      "name": "hasSummaryTable",
      "multiple": true,
      "schema": "DataTable"
    },
    "ensembleTable": {
      "name": "hasEnsembleTable",
      "multiple": true,
      "schema": "DataTable"
    },
    "distributionTable": {
      "name": "hasDistributionTable",
      "multiple": true,
      "schema": "DataTable"
    }
  },
  "DataTable": {
    "@id": ["{filename}", "_trunc(4)"],
    "toJson": ["orderVariables"],
    "fromJson": ["setColumnNumbers"],
    "filename": {
      "name": "hasFileName"
    },
    "columns": {
      "name": "hasVariable",
      "multiple": true,
      "schema": "Variable"
    },
    "missingValue": {
      "name": "hasMissingValue"
    }
  },
  "Variable": {
    "@id": [
      "{foundInTable|@parent.@id}",
      ".",
      "{TSid|tsid|tSid}",
      ".",
      "{variableName|name}"
    ],
    "@fromJson": [
      "wrapUncertainty",
      "addFoundInTable",
      "addFoundInDataset",
      "addVariableValues",
      "addStandardVariable",
      "stringifyColumnNumbersArray"
    ],
    "@toJson_pre": [
      "removeFoundInTable",
      "removeFoundInDataset",
      "setVariableNameFromStandardVariableLabel",
      "setUnitsLabel",
      "setProxyLabel",
      "setArchiveTypeLabel",
      "setProxyGeneralLabel"
    ],
    "@toJson": [
      "unwrapUncertainty",
      "extractVariableValues",
      "unarrayColumnNumber"
    ],
    "number": {
      "name": "hasColumnNumber",
      "type": "integer"
    },
    "TSid": {
      "name": "hasVariableId",
      "alternates": ["tsid", "tSid"]
    },
    "variableName": {
      "name": "hasName"
    },
    "variableType": {
      "name": "hasType"
    },
    "archiveType": {
      "name": "hasArchiveType",
      "alternates": [
        "archive",
        "paleoDataArchive",
        "paleoData_Archive",
        "Archive"
      ],
      "type": "Individual",
      "synonyms": SYNONYMS.ARCHIVES?.ArchiveType,
      "class_range": "ArchiveType",
      "skip_auto_convert_to_json": true
    },
    "units": {
      "name": "hasUnits",
      "type": "Individual",
      "synonyms": SYNONYMS.UNITS?.PaleoUnit,
      "class_range": "PaleoUnit",
      "skip_auto_convert_to_json": true
    },
    "missingValue": {
      "name": "hasMissingValue"
    },
    "hasMaxValue": {
      "name": "hasMaxValue",
      "alternates": ["hasMax"],
      "type": "float"
    },
    "hasMinValue": {
      "name": "hasMinValue",
      "alternates": ["hasMin"],
      "type": "float"
    },
    "hasMeanValue": {
      "name": "hasMeanValue",
      "alternates": ["hasMean"],
      "type": "float"
    },
    "hasMedianValue": {
      "name": "hasMedianValue",
      "alternates": ["hasMedian"],
      "type": "float"
    },
    "description": {
      "name": "hasDescription"
    },
    "isPrimary": {
      "name": "isPrimary",
      "type": "boolean"
    },
    "isComposite": {
      "name": "isComposite",
      "type": "boolean"
    },
    "measurementInstrument": {
      "name": "hasInstrument",
      "type": "Individual",
      "category": "Instrument"
    },
    "calibration": {
      "name": "calibratedVia",
      "schema": "Calibration",
      "type": "Individual",
      "multiple": true
    },
    "interpretation": {
      "name": "hasInterpretation",
      "schema": "Interpretation",
      "category": "Interpretation",
      "type": "Individual",
      "multiple": true
    },
    "resolution": {
      "name": "hasResolution",
      "category": "Resolution",
      "schema": "Resolution",
      "type": "Individual",
      "alternates": ["hasResolution"]
    },
    "physicalSample": {
      "name": "hasPhysicalSample",
      "schema": "PhysicalSample",
      "category": "PhysicalSample",
      "alternates": ["hasPhysicalSample"],
      "type": "Individual",
      "multiple": true
    },
    "uncertainty": {
      "name": "hasUncertainty"
    },
    "uncertaintyAnalytical": {
      "name": "hasUncertaintyAnalytical"
    },
    "uncertaintyReproducibility": {
      "name": "hasUncertaintyReproducibility"
    },
    "proxy": {
      "name": "hasProxy",
      "type": "Individual",
      "synonyms": SYNONYMS.PROXIES?.PaleoProxy,
      "class_range": "PaleoProxy",
      "skip_auto_convert_to_json": true
    },
    "proxyGeneral": {
      "name": "hasProxyGeneral",
      "type": "Individual",
      "synonyms": SYNONYMS.PROXIES?.PaleoProxyGeneral,
      "class_range": "PaleoProxyGeneral",
      "skip_auto_convert_to_json": true
    },
    "inCompilationBeta": {
      "name": "partOfCompilation",
      "schema": "Compilation",
      "category": "Compilation",
      "type": "Individual",
      "multiple": true
    },
    "notes": {
      "name": "hasNotes",
      "alternates": ["qcNotes", "qCNotes", "qCnotes", "qcnotes", "QCnotes", "QCNotes"]
    },
    "hasValues": {
      "type": "string"
    },
    "foundInTable": {
      "type": "Individual"
    },
    "foundInDataset": {
      "type": "Individual"
    },
    "hasStandardVariable": {
      "type": "EnumeratedIndividual",
      "synonyms": SYNONYMS.VARIABLES?.PaleoVariable,
      "class_range": "PaleoVariable",
      "skip_auto_convert_to_json": true
    }
  },
  "PhysicalSample": {
    "hasidentifier": {
      "name": "hasIGSN"
    },
    "hasname": {
      "name": "name"
    },
    "housedat": {
      "name": "housedAt"
    }
  },
  "Resolution": {
    "@id": ["{@parent.@id}", ".Resolution"],
    "@toJson_pre": [
      "setUnitsLabel"
    ],
    "hasMaxValue": { "name": "hasMaxValue", "alternates": ["hasMax"], "type": "float" },
    "hasMinValue": { "name": "hasMinValue", "alternates": ["hasMin"], "type": "float" },
    "hasMeanValue": { "name": "hasMeanValue", "alternates": ["hasMean"], "type": "float" },
    "hasMedianValue": { "name": "hasMedianValue", "alternates": ["hasMedian"], "type": "float" },
    "units": {
      "name": "hasUnits",
      "type": "Individual",
      "synonyms": SYNONYMS.UNITS?.PaleoUnit,
      "class_range": "PaleoUnit",
      "skip_auto_convert_to_json": true
    }
  },
  "Location": {
    "@id": ["{@parent.dataSetName}", ".Location"],
    "coordinates": {
      "type": "Geographic_coordinate",
      "class_type": "string"
    },
    "coordinatesFor": {
      "type": "Individual"
    },
    "type": { "name": "hasType" },
    "continent": { "name": "hasContinent" },
    "country": { "name": "hasCountry" },
    "countryOcean": { "name": "hasCountryOcean" },
    "description": { "name": "hasDescription" },
    "elevation": { "name": "hasElevation" },
    "geometryType": { "name": "hasGeometryType" },
    "latitude": { "name": "hasLatitude" },
    "longitude": { "name": "hasLongitude" },
    "locationName": { "name": "hasLocationName", "alternates": ["secondarySiteName"] },
    "ocean": { "name": "hasOcean", "alternates": ["ocean2"] },
    "siteName": { "name": "hasSiteName" },
    "notes": { "name": "hasNotes" }
  },
  "Interpretation": {
    "@id": [
      "{@parent.@id}",
      ".Interpretation",
      "{@index}"
    ],
    "@fromJson": ["addInterpretationRank"],
    "@toJson_pre": [
      "setUnitsLabel",
      "setSeasonalityLabels",
      "setInterpretationVariableLabel"
    ],
    "variable": {
      "name": "hasVariable",
      "type": "Individual",
      "synonyms": SYNONYMS["INTERPRETATION"]["InterpretationVariable"],
      "class_range": "InterpretationVariable",
      "skip_auto_convert_to_json": true
    },
    "variableGeneral": {
      "name": "hasVariableGeneral",
      "alternates": ["variableGroup"]
    },
    "variableGeneralDirection": {
      "name": "hasVariableGeneralDirection",
      "alternates": ["variableGroupDirection"]
    },
    "variableDetail": {
      "name": "hasVariableDetail",
      "alternates": ["variabledetail"]
    },
    "seasonality": {
      "name": "hasSeasonality",
      "type": "Individual",
      "synonyms": SYNONYMS["INTERPRETATION"]["InterpretationSeasonality"],
      "class_range": "InterpretationSeasonality",
      "skip_auto_convert_to_json": true
    },
    "seasonalityOriginal": {
      "name": "hasSeasonalityOriginal",
      "type": "Individual",
      "synonyms": SYNONYMS["INTERPRETATION"]["InterpretationSeasonality"],
      "class_range": "InterpretationSeasonality",
      "skip_auto_convert_to_json": true
    },
    "seasonalityGeneral": {
      "name": "hasSeasonalityGeneral",
      "type": "Individual",
      "synonyms": SYNONYMS["INTERPRETATION"]["InterpretationSeasonality"],
      "class_range": "InterpretationSeasonality",
      "skip_auto_convert_to_json": true
    },
    "notes": { "name": "hasNotes" },
    "rank": { "name": "hasRank" },
    // TODO: Auto-create if it doesnt exist
    "basis": { "name": "hasBasis" },
    "scope": { "name": "hasScope" },
    "mathematicalRelation": { "name": "hasMathematicalRelation" },
    "direction": {
      "name": "hasDirection",
      "alternates": ["interpDirection"]
    },
    "isLocal": {
      "name": "isLocal",
      "alternates": ["local"]
    }
  },
  "Calibration": {
    "@id": ["{@parent.@id}", ".Calibration"],
    "@fromJson": ["wrapUncertainty"],
    "@toJson": ["unwrapUncertainty"],
    "datasetRange": {
      "name": "hasDatasetRange"
    },
    "doi": {
      "name": "hasDOI",
      "alternates": ["calibrationDOI", "hasDOI", "transferFunctionDOI"]
    },
    "equation": {
      "name": "hasEquation",
      "alternates": ["calibrationEquation"]
    },
    "equationIntercept": {
      "name": "hasEquationIntercept"
    },
    "equationR2": {
      "name": "hasEquationR2"
    },
    "equationSlope": {
      "name": "hasEquationSlope"
    },
    "equationSlopeUncertainty": {
      "name": "hasEquationSlopeUncertainty"
    },
    "method": {
      "name": "hasMethod"
    },
    "methodDetail": {
      "name": "hasMethodDetail"
    },
    "proxyDataset": {
      "name": "hasProxyDataset",
      "alternates": ["transferFunctionTrainingSet"]
    },
    "targetDataset": {
      "name": "hasTargetDataset",
      "alternates": ["target", "dataset"]
    },
    "hasSeasonality": {
      "name": "seasonality",
      "alternates": ["transferFunctionTrainingSet"]
    },
    "notes": {
      "name": "hasNotes",
      "alternates": ["Note"]
    },
    "uncertainty": {
      "name": "hasUncertainty",
      "alternates": ["uncertainty", "calibrationUncertainty", "temperature12kUncertainty", "transferFunctionUncertainty"]
    }
  },
  "Person": {
    "@id": ["{name}"],
    "name": {
      "name": "hasName"
    }
  }
};

// src/globals/blacklist.ts
var BLACKLIST = {
  "metadataMD5": 1,
  "paleoData_paleoDataMD5": 1,
  "paleoData_paleoMeasurementTableMD5": 1,
  "paleoDataMD5": 1,
  "paleoMeasurementTableMD5": 1,
  "tagMD5": 1,
  "chronData_chronDataMD5": 1,
  "chronData_chronMeasurementTableMD5": 1,
  "chronDataMD5": 1,
  "chronMeasurementTableMD5": 1
};
var REVERSE_BLACKLIST = {
  "inferredFrom": 1,
  "foundInTable": 1,
  "foundInDataset": 1
  //'takenAtDepth' : 1
};

// src/utils/utils.ts
import { Writer } from "n3";
import { v4 as uuidv4 } from "uuid";
function uniqid(prefix = "", moreEntropy = false) {
  let theUniqid;
  if (moreEntropy) {
    const uuid1 = uuidv4().replace(/-/g, "");
    const uuid2 = uuidv4().replace(/-/g, "").substring(0, 8);
    theUniqid = uuid1 + uuid2;
  } else {
    theUniqid = uuidv4().replace(/-/g, "");
  }
  return (prefix || "") + theUniqid;
}
function sanitizeId(id) {
  if (!id)
    return "";
  return encodeURIComponent(id.replace(/[^a-zA-Z0-9\-\.]/g, "_"));
}
function ucfirst(str) {
  if (!str)
    return str;
  return str.charAt(0).toUpperCase() + str.slice(1);
}
function lcfirst(str) {
  if (!str)
    return str;
  return str.charAt(0).toLowerCase() + str.slice(1);
}
function camelCase(str) {
  if (!str)
    return str;
  const words = str.split(/[^a-zA-Z0-9]+/);
  return words.map((word, i) => {
    if (i === 0)
      return lcfirst(word);
    return ucfirst(word);
  }).join("");
}
function escape(str) {
  if (!str)
    return str;
  return str.replace(/[\\"']/g, "\\$&").replace(/\u0000/g, "\\0");
}
async function serializeStore(store, type = "turtle", logger9) {
  try {
    const quads = store.getQuads(null, null, null, null);
    const writer = new Writer({ format: type });
    for (const quad of quads) {
      writer.addQuad(quad);
    }
    return new Promise((resolve, reject) => {
      writer.end((error, result) => {
        if (error) {
          reject(error);
        } else {
          resolve(result);
        }
      });
    });
  } catch (error) {
    logger9.error("Error serializing graph: %s", error instanceof Error ? error.message : String(error));
    throw new Error(`Failed to serialize graph: ${error instanceof Error ? error.message : String(error)}`);
  }
}
function parseVariableValues(valuestr) {
  if (Array.isArray(valuestr)) {
    return valuestr;
  }
  let values;
  try {
    values = JSON.parse(valuestr);
  } catch (error) {
    try {
      const cleanedStr = valuestr.replace(/\\"/g, '"');
      const parsedStr = cleanedStr.replace(/NaN/g, "null").replace(/\bNaN\b/g, "null").replace(/\bnan\b/g, "null").replace(/\bNAN\b/g, "null").replace(/"NaN"/g, "null").replace(/"nan"/g, "null").replace(/"NAN"/g, "null");
      values = JSON.parse(parsedStr);
    } catch (innerError) {
      console.error("Failed to parse variable values:", innerError);
      values = valuestr;
    }
  }
  return values;
}

// src/utils/bagit.ts
import * as fs from "fs";
import * as path from "path";
import * as crypto2 from "crypto";
async function createBagitFiles(bagitDir, metadata = {}) {
  const bagitContent = "BagIt-Version: 1.0\nTag-File-Character-Encoding: UTF-8";
  fs.writeFileSync(path.join(bagitDir, "bagit.txt"), bagitContent);
  const bagInfo = {
    "Bagging-Date": (/* @__PURE__ */ new Date()).toISOString(),
    "Bag-Software-Agent": "lipdjs",
    ...metadata
  };
  const bagInfoContent = Object.entries(bagInfo).map(([key, value]) => `${key}: ${value}`).join("\n");
  fs.writeFileSync(path.join(bagitDir, "bag-info.txt"), bagInfoContent);
  await createManifest(bagitDir, "md5");
}
async function createManifest(bagitDir, algorithm) {
  const dataDir = path.join(bagitDir, "data");
  const manifestPath = path.join(bagitDir, `manifest-${algorithm}.txt`);
  const files = getAllFiles(dataDir);
  const checksums = await Promise.all(
    files.map(async (file) => {
      const relativePath = path.relative(bagitDir, file).replace(/\\/g, "/");
      const checksum = await calculateChecksum(file, algorithm);
      return `${checksum} ${relativePath}`;
    })
  );
  fs.writeFileSync(manifestPath, checksums.join("\n"));
}
function getAllFiles(dir) {
  const files = [];
  function processDir(directory) {
    const entries = fs.readdirSync(directory, { withFileTypes: true });
    for (const entry of entries) {
      const fullPath = path.join(directory, entry.name);
      if (entry.isDirectory()) {
        processDir(fullPath);
      } else {
        files.push(fullPath);
      }
    }
  }
  processDir(dir);
  return files;
}
function calculateChecksum(filePath, algorithm) {
  return new Promise((resolve, reject) => {
    const hash = crypto2.createHash(algorithm);
    const stream = fs.createReadStream(filePath);
    stream.on("error", (err) => {
      reject(err);
    });
    stream.on("data", (chunk) => {
      hash.update(chunk);
    });
    stream.on("end", () => {
      resolve(hash.digest("hex"));
    });
  });
}

// src/utils/rdfToLipd.ts
import pako from "pako";
var logger2 = Logger.getInstance();
var DF = DataFactory;
var RDFToLiPD = class {
  /**
   * Constructor for RDFToLiPD class
   * @param store The RDF graph to convert
   */
  constructor(store) {
    this.lipdCsvs = {};
    this.allfacts = {};
    this.store = store;
    this.graphurl = NSURL;
    this.namespace = NSURL + "/";
    this.schema = { ...SCHEMA };
    this.rschema = this.getSchemaReverseMap();
    logger2.debug("RDFToLiPD instance created");
  }
  /**
   * Convert RDF graph to a LiPD file
   * @param dsname Dataset name
   * @param lipdfile Output LiPD file path
   * @returns The converted LiPD data
   */
  async convert(dsname, lipdfile) {
    const lipd = this.convertToJson(dsname);
    const tempDir = fs2.mkdtempSync("rdf_to_lipd_");
    const dsDir = path2.join(tempDir, dsname);
    const dataDir = path2.join(dsDir, "data");
    try {
      fs2.mkdirSync(dataDir, { recursive: true });
      this.createCsvs(lipd, dataDir);
      fs2.writeFileSync(
        path2.join(dataDir, "metadata.jsonld"),
        JSON.stringify(lipd, null, 4)
      );
      await this.createBagitFiles(dsDir);
      await this.zipDirectory(dsDir, lipdfile);
      logger2.debug("Successfully converted RDF to LiPD file: %s", lipdfile);
      return lipd;
    } catch (error) {
      logger2.error("Error converting RDF to LiPD: %s", error instanceof Error ? error.message : String(error));
      throw error;
    } finally {
      fs2.rmSync(tempDir, { recursive: true, force: true });
    }
  }
  /**
   * Convert RDF graph to LiPD JSON format
   * @param dsname Dataset name
   * @returns The converted LiPD JSON data
   */
  convertToJson(dsname) {
    this.schema = { ...SCHEMA };
    this.rschema = this.getSchemaReverseMap();
    this.allfacts = {};
    this.indexFacts(this.namespace + dsname);
    const lipd = this._convertToLipd(this.namespace + dsname, "Dataset", "Dataset", {});
    return this.postProcessing(lipd);
  }
  /**
   * Post-process the converted LiPD object
   * @param obj Object to process
   * @param parent Parent object
   * @returns Processed object
   */
  postProcessing(obj, parent = null) {
    if (!obj || typeof obj !== "object") {
      return obj;
    }
    if (!("@schema" in obj)) {
      return obj;
    }
    const schemaname = obj["@schema"];
    const tschema = this.schema[schemaname] || null;
    if (tschema && "@toJson_pre" in tschema) {
      for (const func of tschema["@toJson_pre"]) {
        const fn = this[func];
        if (fn) {
          obj = fn.call(this, obj, parent);
        }
      }
    }
    for (const [key, value] of Object.entries(obj)) {
      if (Array.isArray(value)) {
        for (let i = 0; i < value.length; i++) {
          obj[key][i] = this.postProcessing(value[i], obj);
        }
      } else {
        obj[key] = this.postProcessing(value, obj);
      }
    }
    if (tschema && "@toJson" in tschema) {
      for (const func of tschema["@toJson"]) {
        const fn = this[func];
        if (fn) {
          obj = fn.call(this, obj, parent);
        }
      }
    }
    if ("hasValues" in obj) {
      const valuestr = obj["hasValues"];
      obj["values"] = parseVariableValues(valuestr);
      delete obj["hasValues"];
    }
    delete obj["@id"];
    delete obj["@schema"];
    delete obj["@category"];
    if ("type" in obj) {
      delete obj["type"];
    }
    return obj;
  }
  /**
   * Get property details from schema
   * @param pname Property name
   * @param schema Schema object
   * @returns Property details
   */
  getPropertyDetails(pname, schema) {
    const details = { name: pname };
    if (schema && pname in schema) {
      for (const [key, value] of Object.entries(schema[pname])) {
        details[key] = value;
      }
    }
    return details;
  }
  /**
   * Get RDF property details from schema
   * @param pname Property name
   * @param fullkey Full property key
   * @param schema Schema object
   * @returns Property details
   */
  getRdfPropertyDetails(pname, fullkey, schema) {
    const key = pname;
    pname = lcfirst(pname);
    const details = { name: pname };
    if (schema && fullkey in schema) {
      for (const [key2, value] of Object.entries(schema[fullkey])) {
        details[key2] = value;
      }
    }
    return details;
  }
  /**
   * Get schema reverse map
   * @returns Reverse schema map
   */
  getSchemaReverseMap() {
    const newschema = {};
    for (const [schid, sch] of Object.entries(this.schema)) {
      const newsch = {};
      for (const [prop, details] of Object.entries(sch)) {
        if (prop[0] === "@") {
          continue;
        }
        if ("skip_auto_convert_to_json" in details) {
          continue;
        }
        const pdetails = this.getPropertyDetails(prop, sch);
        const pname = pdetails.name;
        pdetails.name = prop;
        newsch[pname] = pdetails;
        if ("category" in pdetails) {
          const catpname = pname + "." + ucfirst(pdetails.category);
          newsch[catpname] = pdetails;
        }
        if ("schema" in pdetails) {
          const schpname = pname + "." + ucfirst(pdetails.schema);
          newsch[schpname] = pdetails;
        }
      }
      newschema[schid] = newsch;
    }
    return newschema;
  }
  /**
   * Extract local name from URL
   * @param url URL to extract from
   * @returns Local name
   */
  localName(url) {
    return url.replace(/^.*[#/]/, "");
  }
  /**
   * Convert RDF to LiPD format
   * @param id ID to convert
   * @param category Category of the item
   * @param schemaname Schema name
   * @param pagesdone Map of processed pages
   * @returns Converted LiPD object
   */
  convertToLipd(id, category, schemaname, pagesdone) {
    if (pagesdone.has(id))
      return null;
    pagesdone.set(id, true);
    const facts = this.allfacts[id];
    if (!facts)
      return null;
    const obj = {};
    const schema = this.schema[schemaname];
    for (const [pname, values] of Object.entries(facts)) {
      if (pname === "type")
        continue;
      const details = this.getRdfPropertyDetails(pname, pname, schema);
      const propname = details.name;
      if (Array.isArray(REVERSE_BLACKLIST) && REVERSE_BLACKLIST.includes(propname))
        continue;
      const converted = [];
      for (const value of values) {
        if (value["@type"] === "uri" && value["@id"]) {
          const subid = value["@id"];
          const subobj = this.convertToLipd(subid, category, schemaname, pagesdone);
          if (subobj)
            converted.push(subobj);
        } else if (value["@value"] !== void 0) {
          converted.push(value["@value"]);
        }
      }
      if (converted.length > 0) {
        if (details.multiple) {
          obj[propname] = converted;
        } else {
          obj[propname] = converted[0];
        }
      }
    }
    return obj;
  }
  /**
   * Order variables in a datatable
   * @param datatable Datatable object
   * @param parent Parent object
   * @returns Datatable object with ordered variables
   */
  orderVariables(datatable, parent = null) {
    datatable.variables = datatable.variables.sort((a, b) => (a.columnNumber ?? 0) - (b.columnNumber ?? 0));
    console.log("orderVariables", datatable.variables);
    return datatable;
  }
  changesToJson(change, parent = null) {
    let newChange = {};
    if (change.name) {
      newChange[change.name] = change.notes || [];
      return newChange;
    }
    return null;
  }
  /**
   * Convert location to GeoJSON format
   * @param geo Location object
   * @param parent Parent object
   * @returns GeoJSON object
   */
  locationToJson(geo, parent = null) {
    const geojson = {
      type: "Feature",
      geometry: {
        type: "Point",
        coordinates: [0, 0, 0]
      },
      properties: {}
    };
    if ("coordinates" in geo) {
      const latlong = geo["coordinates"].split(",");
      geojson.geometry.coordinates = [
        parseFloat(latlong[1]),
        parseFloat(latlong[0]),
        latlong.length > 2 ? parseFloat(latlong[2]) : 0
      ];
    }
    if ("long" in geo) {
      geojson.geometry.coordinates[0] = parseFloat(geo["long"]);
    }
    if ("longitude" in geo) {
      geojson.geometry.coordinates[0] = parseFloat(geo["longitude"]);
    }
    if ("lat" in geo) {
      geojson.geometry.coordinates[1] = parseFloat(geo["lat"]);
    }
    if ("latitude" in geo) {
      geojson.geometry.coordinates[1] = parseFloat(geo["latitude"]);
    }
    if ("alt" in geo && geo["alt"] !== "NA") {
      geojson.geometry.coordinates[2] = parseFloat(geo["alt"]);
    }
    if ("elevation" in geo && geo["elevation"] !== "NA") {
      geojson.geometry.coordinates[2] = parseFloat(geo["elevation"]);
    }
    for (const [prop, value] of Object.entries(geo)) {
      if (prop.startsWith("@"))
        continue;
      if (prop === "locationType") {
        geojson.type = geo["locationType"];
      } else if (prop !== "coordinates" && prop !== "coordinatesFor") {
        if (!prop.match(/^(geo|wgs84):/)) {
          if (!["long", "lat", "alt"].includes(prop)) {
            geojson.properties[prop] = value;
          }
        }
      }
    }
    return geojson;
  }
  /**
   * Unarray column number
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with unarrayed number
   */
  unarrayColumnNumber(variable, parent = null) {
    if (!variable)
      return variable;
    if ("number" in variable) {
      if (Array.isArray(variable["number"]) && variable["number"].length === 1) {
        variable["number"] = variable["number"][0];
      }
      if (typeof variable["number"] === "string") {
        variable["number"] = JSON.parse(variable["number"]);
      }
    }
    return variable;
  }
  /**
   * Extract table data from columns
   * @param table The table containing columns with data
   * @returns Array of row data
   */
  getTableData(table) {
    const data = [];
    if (!table.columns)
      return data;
    const maxLength = Math.max(...table.columns.map((col) => col.values?.length || 0));
    for (let i = 0; i < maxLength; i++) {
      const row = table.columns.map((col) => col.values[i] ?? null);
      data.push(row);
    }
    return data;
  }
  /**
   * Create CSV files from table data
   * @param lipd The LiPD data containing tables
   * @param dataDir Directory to write CSV files
   */
  createCsvs(lipd, dataDir) {
    const csvs = {};
    const datakeys = ["paleoData", "chronData"];
    for (const datakey of datakeys) {
      const data = lipd[datakey];
      if (!data)
        continue;
      for (const item of data) {
        if (item.measurementTable) {
          for (const table of item.measurementTable) {
            csvs[table.filename] = this.getTableData(table);
          }
        }
        if (item.model) {
          for (const model of item.model) {
            if (model.ensembleTable) {
              for (const table of model.ensembleTable) {
                csvs[table.filename] = this.getTableData(table);
              }
            }
            if (model.summaryTable) {
              for (const table of model.summaryTable) {
                csvs[table.filename] = this.getTableData(table);
              }
            }
            if (model.distributionTable) {
              for (const table of model.distributionTable) {
                csvs[table.filename] = this.getTableData(table);
              }
            }
          }
        }
      }
    }
    for (const [csvname, csvdata] of Object.entries(csvs)) {
      const csvContent = csvdata.map((row) => row.join(",")).join("\n");
      fs2.writeFileSync(path2.join(dataDir, csvname), csvContent);
    }
  }
  /**
   * Create bagit files in the data directory
   * @param dataDir Directory to create bagit files in
   * @returns Promise that resolves when bagit files are created
   */
  createBagitFiles(dataDir) {
    const bagInfo = {
      "Bag-Software-Agent": "lipdjs",
      "Bagging-Date": (/* @__PURE__ */ new Date()).toISOString()
    };
    return createBagitFiles(dataDir, bagInfo);
  }
  /**
   * Zip a directory into a LiPD file
   * @param dataDir Directory to zip
   * @param lipdfile Output LiPD file path
   * @returns Promise that resolves when the zip file is created
   */
  zipDirectory(dataDir, lipdfile) {
    return new Promise((resolve, reject) => {
      const zip = new AdmZip();
      const addFilesToZip = (currentPath, relativePath = "") => {
        const files = fs2.readdirSync(currentPath);
        for (const file of files) {
          const filePath = path2.join(currentPath, file);
          const zipPath = path2.join(relativePath, file);
          if (fs2.statSync(filePath).isDirectory()) {
            addFilesToZip(filePath, zipPath);
          } else {
            zip.addLocalFile(filePath, path2.dirname(zipPath));
          }
        }
      };
      addFilesToZip(dataDir);
      zip.writeZip(lipdfile, (error) => {
        if (error) {
          reject(error);
        } else {
          resolve();
        }
      });
    });
  }
  /**
   * Get property values from query result
   * @param qres Query result containing predicate and object
   * @returns Object with property names and their values
   */
  _getPropValuesFromQueryResultPO(qres) {
    const result = {};
    for (const row of qres) {
      const pname = this.localName(row.predicate.id);
      if (!(pname in result)) {
        result[pname] = [];
      }
      const value = {};
      if (row.object.termType === "NamedNode") {
        value["@type"] = "uri";
        value["@id"] = row.object.id;
      } else if (row.object.termType === "Literal") {
        value["@type"] = "literal";
        value["@value"] = row.object.value;
        value["@datatype"] = null;
      }
      result[pname].push(value);
    }
    return result;
  }
  /**
   * Get facts for a specific ID
   * @param id The ID to query facts for
   * @returns Object containing all properties and values for the ID
   */
  _getFacts(id) {
    const qres = this.store.getQuads(DF.namedNode(id), null, null, null);
    return this._getPropValuesFromQueryResultPO(qres);
  }
  /**
   * Get and index facts for an ID and all related resources
   * @param id The ID to index facts for
   */
  indexFacts(id) {
    if (id in this.allfacts) {
      return;
    }
    const facts = this._getFacts(id);
    this.allfacts[id] = facts;
    for (const [pname, pfacts] of Object.entries(facts)) {
      for (const pfact of pfacts) {
        if (pfact["@type"] === "uri") {
          if (pname !== "type") {
            this.indexFacts(pfact["@id"]);
          }
        }
      }
    }
  }
  _convertToLipd(id, category, schemaname, pagesdone = {}) {
    if (id in this.allfacts) {
      const facts = this.allfacts[id];
      if (id in pagesdone) {
        return pagesdone[id];
      }
      const schema = schemaname && this.rschema[schemaname] ? this.rschema[schemaname] : null;
      if (schemaname && !category) {
        category = schemaname;
      }
      if ("type" in facts) {
        const cats = facts["type"];
        for (const cat of cats) {
          if (cat["@type"] === "uri") {
            category = this.localName(cat["@id"]);
            break;
          }
        }
      }
      const obj = {
        "@id": id,
        "@category": category,
        "@schema": schemaname
      };
      pagesdone[id] = obj;
      for (const [pname, pfacts] of Object.entries(facts)) {
        if (pname in REVERSE_BLACKLIST) {
          continue;
        }
        let prop = pname;
        prop = prop.replace(/\s/g, "_");
        let propkey = prop;
        for (const value of pfacts) {
          if (value["@type"] === "uri") {
            if (value["@id"] && value["@id"] in this.allfacts) {
              const pfact = this.allfacts[value["@id"]];
              if ("type" in pfact) {
                const valcats = pfact["type"];
                for (const valcat of valcats) {
                  if (valcat["@type"] === "uri") {
                    const valcatname = this.localName(valcat["@id"]);
                    propkey = prop + "." + valcatname;
                    break;
                  }
                }
              }
            }
          }
        }
        const details = this.getRdfPropertyDetails(prop, propkey, schema);
        const name = details.name;
        const ptype = details.type || null;
        let cat = details.category || null;
        let sch = details.schema || null;
        if (cat && !sch) {
          sch = cat;
        }
        const toJson = details.toJson || null;
        let multiple = details.multiple || false;
        if (pfacts.length > 0) {
          if (multiple) {
            obj[name] = [];
          }
          for (const pfact of pfacts) {
            let val;
            if (pfact["@type"] === "uri") {
              val = this._convertToLipd(pfact["@id"], cat, sch, pagesdone);
            } else {
              val = pfact["@value"];
            }
            if (toJson) {
              val = this[toJson](val);
            }
            if (!multiple && name in obj && !Array.isArray(obj[name])) {
              multiple = true;
              obj[name] = [obj[name]];
            }
            if (multiple) {
              obj[name].push(val);
            } else {
              obj[name] = val;
            }
          }
        }
      }
      return obj;
    } else {
      return id.replace(/_/g, " ");
    }
  }
  /**
   * Convert location to GeoJSON format
   * @param geo Location object
   * @param parent Parent object
   * @returns GeoJSON object
   */
  _location_to_json(geo, parent = null) {
    const geojson = {
      type: "Feature",
      geometry: {
        type: "Point",
        coordinates: [0, 0, 0]
      },
      properties: {}
    };
    if ("coordinates" in geo) {
      const latlong = geo["coordinates"].split(",");
      geojson.geometry.coordinates = [
        parseFloat(latlong[1]),
        parseFloat(latlong[0]),
        latlong.length > 2 ? parseFloat(latlong[2]) : 0
      ];
    }
    if ("long" in geo) {
      geojson.geometry.coordinates[0] = parseFloat(geo["long"]);
    }
    if ("longitude" in geo) {
      geojson.geometry.coordinates[0] = parseFloat(geo["longitude"]);
    }
    if ("lat" in geo) {
      geojson.geometry.coordinates[1] = parseFloat(geo["lat"]);
    }
    if ("latitude" in geo) {
      geojson.geometry.coordinates[1] = parseFloat(geo["latitude"]);
    }
    if ("alt" in geo && geo["alt"] !== "NA") {
      geojson.geometry.coordinates[2] = parseFloat(geo["alt"]);
    }
    if ("elevation" in geo && geo["elevation"] !== "NA") {
      geojson.geometry.coordinates[2] = parseFloat(geo["elevation"]);
    }
    for (const [prop, value] of Object.entries(geo)) {
      if (prop[0] === "@") {
        continue;
      }
      if (prop === "locationType") {
        geojson.type = geo["locationType"];
      } else {
        if (prop === "coordinates" || prop === "coordinatesFor") {
        } else if (/^(geo|wgs84):/.test(prop)) {
        } else if (["long", "lat", "alt"].includes(prop)) {
        } else {
          geojson.properties[prop] = value;
        }
      }
    }
    return geojson;
  }
  /**
   * Extract Google Spreadsheet key from URL
   * @param url Google Spreadsheet URL
   * @param parent Parent object
   * @returns Google Spreadsheet key
   */
  getGoogleSpreadsheetKey(url, parent = null) {
    return url.replace("https://docs.google.com/spreadsheets/d/", "");
  }
  /**
   * Remove foundInTable property
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object without foundInTable
   */
  removeFoundInTable(variable, parent = null) {
    if ("foundInTable" in variable) {
      delete variable["foundInTable"];
    }
    return variable;
  }
  /**
   * Remove foundInDataset property
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object without foundInDataset
   */
  removeFoundInDataset(variable, parent = null) {
    if ("foundInDataset" in variable) {
      delete variable["foundInDataset"];
    }
    return variable;
  }
  /**
   * Unwrap uncertainty values
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with unwrapped uncertainty
   */
  unwrapUncertainty(variable, parent = null) {
    if ("hasUncertainty" in variable) {
      const unc = variable["hasUncertainty"];
      if ("hasValue" in unc) {
        variable["uncertainty"] = parseFloat(unc["hasValue"]);
        delete unc["hasValue"];
      }
      for (const [key, value] of Object.entries(unc)) {
        if (key[0] !== "@") {
          variable[key] = value;
        }
      }
      delete variable["hasUncertainty"];
    }
    return variable;
  }
  /**
   * Unwrap integration time
   * @param interp Interpretation object
   * @param parent Parent object
   * @returns Interpretation object with unwrapped integration time
   */
  unwrapIntegrationTime(interp, parent = null) {
    if ("integrationTime" in interp) {
      const intime = interp["integrationTime"];
      if ("hasValue" in intime) {
        interp["integrationTime"] = parseFloat(intime["hasValue"]);
        delete intime["hasValue"];
      }
      for (const [key, value] of Object.entries(intime)) {
        if (key[0] !== "@") {
          interp["integrationTime" + ucfirst(key)] = value;
        }
      }
      delete interp["hasIntegrationTime"];
    }
    return interp;
  }
  /**
   * Collect variables by ID
   * @param item Item to process
   * @param arr Array of collected variables
   * @returns Updated array of collected variables
   */
  collectVariablesById(item, arr) {
    if (typeof item !== "object" || item === null) {
      return arr;
    }
    if ("@category" in item && "@id" in item && /Variable$/.test(item["@category"])) {
      arr[item["@id"]] = item;
    } else {
      for (const [key, value] of Object.entries(item)) {
        if (key[0] !== "@") {
          arr = this.collectVariablesById(item[key], arr);
        }
      }
    }
    return arr;
  }
  /**
   * Set archive type label
   * @param ds Dataset object
   * @param parent Parent object
   * @returns Dataset object with archive type label
   */
  setArchiveTypeLabel(ds, parent = null) {
    if ("hasArchiveType" in ds) {
      if ("@id" in ds["hasArchiveType"]) {
        const id = ds["hasArchiveType"]["@id"];
        if (RSYNONYMS && id in RSYNONYMS) {
          ds["archiveType"] = RSYNONYMS[id];
        } else {
          ds["archiveType"] = ds["hasArchiveType"]["label"];
        }
      }
      delete ds["hasArchiveType"];
    }
    return ds;
  }
  /**
   * Set variable name from standard variable label
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with variable name
   */
  setVariableNameFromStandardVariableLabel(variable, parent = null) {
    if ("hasStandardVariable" in variable) {
      if ("@id" in variable["hasStandardVariable"]) {
        const id = variable["hasStandardVariable"]["@id"];
        if (RSYNONYMS && id in RSYNONYMS) {
          variable["variableName"] = RSYNONYMS[id];
        } else {
          variable["variableName"] = variable["hasStandardVariable"]["label"];
        }
      }
      delete variable["hasStandardVariable"];
    }
    return variable;
  }
  /**
   * Set units label
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with units label
   */
  setUnitsLabel(variable, parent = null) {
    if ("hasUnits" in variable) {
      if ("@id" in variable["hasUnits"]) {
        const id = variable["hasUnits"]["@id"];
        if (RSYNONYMS && id in RSYNONYMS) {
          variable["units"] = RSYNONYMS[id];
        } else {
          variable["units"] = variable["hasUnits"]["label"];
        }
      }
      delete variable["hasUnits"];
    }
    return variable;
  }
  /**
   * Set proxy label
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with proxy label
   */
  setProxyLabel(variable, parent = null) {
    if ("hasProxy" in variable) {
      if ("@id" in variable["hasProxy"]) {
        const id = variable["hasProxy"]["@id"];
        if (RSYNONYMS && id in RSYNONYMS) {
          variable["proxy"] = RSYNONYMS[id];
        } else {
          variable["proxy"] = variable["hasProxy"]["label"];
        }
      }
      delete variable["hasProxy"];
    }
    return variable;
  }
  /**
   * Set proxy general label
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with proxy general label
   */
  setProxyGeneralLabel(variable, parent = null) {
    if ("hasProxyGeneral" in variable) {
      if ("@id" in variable["hasProxyGeneral"]) {
        const id = variable["hasProxyGeneral"]["@id"];
        if (RSYNONYMS && id in RSYNONYMS) {
          variable["proxyGeneral"] = RSYNONYMS[id];
        } else {
          variable["proxyGeneral"] = variable["hasProxyGeneral"]["label"];
        }
      }
      delete variable["hasProxyGeneral"];
    }
    return variable;
  }
  /**
   * Set interpretation variable label
   * @param interp Interpretation object
   * @param parent Parent object
   * @returns Interpretation object with variable label
   */
  setInterpretationVariableLabel(interp, parent = null) {
    if ("hasVariable" in interp) {
      if ("@id" in interp["hasVariable"]) {
        const id = interp["hasVariable"]["@id"];
        if (RSYNONYMS && id in RSYNONYMS) {
          interp["variable"] = RSYNONYMS[id];
        } else {
          interp["variable"] = interp["hasVariable"]["label"];
        }
      }
      delete interp["hasVariable"];
    }
    return interp;
  }
  /**
   * Set seasonality labels
   * @param interp Interpretation object
   * @param parent Parent object
   * @returns Interpretation object with seasonality labels
   */
  setSeasonalityLabels(interp, parent = null) {
    const convs = {
      "hasSeasonality": "seasonality",
      "hasSeasonalityGeneral": "seasonalityGeneral",
      "hasSeasonalityOriginal": "seasonalityOriginal"
    };
    for (const [pid, nid] of Object.entries(convs)) {
      if (pid in interp) {
        if ("@id" in interp[pid]) {
          const id = interp[pid]["@id"];
          if (RSYNONYMS && id in RSYNONYMS) {
            interp[nid] = RSYNONYMS[id];
          } else {
            interp[nid] = interp[pid]["label"];
          }
        }
        delete interp[pid];
      }
    }
    return interp;
  }
  /**
   * Create publication identifier
   * @param pub Publication object
   * @param parent Parent object
   * @returns Publication object with identifier
   */
  createPublicationIdentifier(pub, parent = null) {
    const identifiers = [];
    if ("hasDOI" in pub) {
      const identifier = {
        "type": "doi",
        "id": pub["hasDOI"]
      };
      if ("link" in pub) {
        for (const link of Object.values(pub["link"])) {
          if (typeof link === "string" && /dx\.doi\.org/.test(link)) {
            identifier["url"] = link;
          }
        }
        delete pub["link"];
      }
      delete pub["hasDOI"];
      identifiers.push(identifier);
    }
    pub["identifier"] = identifiers;
    return pub;
  }
  /**
   * Convert values to array
   * @param resolution Resolution object
   * @param parent Parent object
   * @returns Array of values
   */
  valuesToArray(resolution, parent = null) {
    if ("values" in resolution) {
      return resolution["values"].split(",");
    }
    return resolution;
  }
  /**
   * Unarray column number
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with unarrayed number
   */
  unArrayColumnNumber(variable, parent = null) {
    if (!variable)
      return variable;
    if ("number" in variable) {
      if (Array.isArray(variable["number"]) && variable["number"].length === 1) {
        variable["number"] = variable["number"][0];
      }
      if (typeof variable["number"] === "string") {
        variable["number"] = JSON.parse(variable["number"]);
      }
    }
    return variable;
  }
  /**
   * Extract variable values
   * @param variable Variable object
   * @param parent Parent object
   * @returns Variable object with extracted values
   */
  extractVariableValues(variable, parent = null) {
    if ("hasValues" in variable) {
      const valuestr = variable["hasValues"];
      const values = parseVariableValues(valuestr);
      if (typeof values === "object" && values !== null && "base64_zlib" in values) {
        variable["hasValues"] = this.unzipString(values["base64_zlib"]);
      } else {
        variable["hasValues"] = values;
      }
    }
    return variable;
  }
  /**
   * Unzip a base64 encoded and zlib compressed string
   * @param str The base64 encoded and zlib compressed string
   * @returns The uncompressed string
   */
  unzipString(str) {
    try {
      let binary;
      if (typeof Buffer !== "undefined" && Buffer.from) {
        binary = Uint8Array.from(Buffer.from(str, "base64"));
      } else {
        const decoded = atob(str);
        binary = Uint8Array.from(decoded, (c) => c.charCodeAt(0));
      }
      const text = new TextDecoder().decode(pako.inflate(binary));
      return text;
    } catch (e) {
      logger2.error("Could not decode/unzip the contents", e);
      throw e;
    }
  }
};

// src/utils/lipdToRdf.ts
import * as fs3 from "fs";
import * as path3 from "path";
import * as os from "os";
import AdmZip2 from "adm-zip";
import * as Papa from "papaparse";
import { Store as Store2 } from "n3";
import { DataFactory as DataFactory2 } from "n3";
import JSZip from "jszip";
var logger3 = Logger.getInstance();
var DF2 = DataFactory2;
function expandSchema(schema) {
  const expandedSchema = JSON.parse(JSON.stringify(schema));
  for (const key in expandedSchema) {
    for (const lipdKey in expandedSchema[key]) {
      const pdetails = expandedSchema[key][lipdKey];
      if (typeof pdetails !== "object" || pdetails === null) {
        continue;
      }
      if (pdetails.alternates && Array.isArray(pdetails.alternates)) {
        for (const altKey of pdetails.alternates) {
          expandedSchema[key][altKey] = { ...pdetails };
        }
      }
    }
  }
  expandedSchema.__expanded = true;
  return expandedSchema;
}
var LipdToRDF = class {
  constructor(standardize = true, addLabels = true) {
    this.lipdCsvs = {};
    this.store = new Store2();
    this.graphUrl = NSURL;
    this.namespace = NSURL + "/";
    this.namespaces = {
      ont: DF2.namedNode(ONTONS),
      rdf: DF2.namedNode(NAMESPACES.rdf),
      rdfs: DF2.namedNode(NAMESPACES.rdfs),
      xsd: DF2.namedNode(NAMESPACES.xsd),
      owl: DF2.namedNode(NAMESPACES.owl),
      wgs84: DF2.namedNode(NAMESPACES.wgs84)
    };
    this.standardize = standardize;
    this.addLabels = addLabels;
    this.schema = expandSchema(JSON.parse(JSON.stringify(SCHEMA)));
    logger3.debug("LipdToRDF instance created with standardize=%s, addLabels=%s", standardize, addLabels);
  }
  /**
   * Convert LiPD file to RDF Graph
   * @param lipdPath Path to LiPD file (can be a local file or URL)
   */
  async convert(lipdPath) {
    logger3.debug("Starting conversion of LiPD file: %s", lipdPath);
    if (isBrowser()) {
      await this._convertBrowser(lipdPath);
      logger3.debug("Browser conversion completed");
      return;
    }
    for (const quad of this.store.getQuads(null, null, null, null)) {
      this.store.removeQuad(quad);
    }
    const lpdName = path3.basename(lipdPath).replace(".lpd", "").replace(/\?.+$/, "");
    this.graphUrl = NSURL + "/" + lpdName;
    logger3.debug("Set graph URL to: %s", this.graphUrl);
    const tmpDir = fs3.mkdtempSync(path3.join(os.tmpdir(), "lipd_to_rdf_"));
    logger3.debug("Created temporary directory: %s", tmpDir);
    try {
      logger3.debug("Unzipping LiPD file to temporary directory");
      this._unzipLipdFile(lipdPath, tmpDir);
      logger3.debug("Looking for JSON-LD files in the extracted content");
      const jsons = this._findFilesWithExtension(tmpDir, "jsonld");
      logger3.debug("Found %d JSON-LD files", jsons.length);
      for (const [jsonPath, jsonName] of jsons) {
        logger3.debug("Processing JSON-LD file: %s", jsonName);
        const jsonDir = path3.dirname(jsonPath);
        logger3.debug("Looking for CSV files in %s", jsonDir);
        const csvs = this._findFilesWithExtension(jsonDir, "csv");
        logger3.debug("Found %d CSV files", csvs.length);
        this.lipdCsvs = {};
        for (const [csvPath, csvName] of csvs) {
          try {
            logger3.debug("Processing CSV file: %s", csvName);
            const csvData = fs3.readFileSync(csvPath, "utf8");
            const parsedCsv = Papa.parse(csvData, { header: false });
            if (parsedCsv.data && Array.isArray(parsedCsv.data)) {
              this.lipdCsvs[csvName] = parsedCsv.data;
              logger3.debug("Successfully loaded CSV file: %s", csvName);
            }
          } catch (error) {
            logger3.warn("CSV file %s might have inconsistent columns: %s", csvName, error instanceof Error ? error.message : String(error));
            this.lipdCsvs[csvName] = this._detectColumnsAndLoad(csvPath);
          }
        }
        logger3.debug("Loading JSON-LD data into RDF graph");
        this._loadLipdJsonToGraph(jsonPath);
      }
      logger3.debug("Conversion completed successfully");
    } catch (error) {
      logger3.error("Error during conversion: %s", error instanceof Error ? error.message : String(error));
      throw error;
    } finally {
      try {
        logger3.debug("Cleaning up temporary directory: %s", tmpDir);
        fs3.rmSync(tmpDir, { recursive: true });
      } catch (error) {
        logger3.error("Error cleaning up temporary directory: %s", error instanceof Error ? error.message : String(error));
      }
    }
  }
  /**
   * Load LiPD file from a File object (for browser file input)
   * @param file File object from HTML5 file input
   */
  async loadFromFile(file) {
    if (!isBrowser()) {
      throw new Error("loadFromFile() is only available in browser environments");
    }
    logger3.debug("Loading LiPD file from File object: %s", file.name);
    try {
      for (const quad of this.store.getQuads(null, null, null, null)) {
        this.store.removeQuad(quad);
      }
      const arrayBuffer = await file.arrayBuffer();
      const zip = await JSZip.loadAsync(arrayBuffer);
      const lpdName = file.name.replace(".lpd", "").replace(/\?.+$/, "");
      this.graphUrl = NSURL + "/" + sanitizeId(lpdName);
      logger3.debug("Set graph URL to: %s", this.graphUrl);
      this.lipdCsvs = {};
      const csvEntries = [];
      const jsonEntries = [];
      for (const fileName of Object.keys(zip.files)) {
        const zipFile = zip.files[fileName];
        if (zipFile.dir)
          continue;
        if (fileName.endsWith(".csv")) {
          csvEntries.push([fileName, zipFile]);
        } else if (fileName.endsWith(".jsonld")) {
          jsonEntries.push(zipFile);
        }
      }
      for (const [fileName, zipFile] of csvEntries) {
        const csvContent = await zipFile.async("string");
        const parsedCsv = Papa.parse(csvContent, { header: false });
        this.lipdCsvs[fileName] = parsedCsv.data;
        const baseName = fileName.split("/").pop();
        if (baseName) {
          this.lipdCsvs[baseName] = parsedCsv.data;
        }
        logger3.debug(`Loaded CSV '${fileName}' (${parsedCsv.data.length}\xD7${parsedCsv.data[0].length || 0})`);
      }
      for (const zipFile of jsonEntries) {
        const jsonContent = await zipFile.async("string");
        this._loadLipdJsonString(jsonContent);
      }
      logger3.debug("File loading completed successfully");
    } catch (error) {
      logger3.error("Error loading LiPD file from File object: %s", error instanceof Error ? error.message : String(error));
      throw error;
    }
  }
  /**
   * Detect the number of columns in a CSV and load it
   * @param filePath Path to the CSV file
   * @returns Parsed CSV data as array of arrays
   */
  _detectColumnsAndLoad(filePath) {
    let numColumns = 0;
    const lines = fs3.readFileSync(filePath, "utf8").split("\n");
    for (const line of lines) {
      const num = line.split(",").length;
      if (num > numColumns) {
        numColumns = num;
      }
    }
    const csvData = fs3.readFileSync(filePath, "utf8");
    const parsedCsv = Papa.parse(csvData, { header: false });
    return parsedCsv.data;
  }
  /**
   * Write LiPD RDF Graph to a file
   * @param toPath Path to output file
   * @param type Output format ('json', 'turtle', 'n3', 'ntriples', etc.)
   */
  async serialize(toPath, type = "turtle") {
    logger3.debug("Serializing graph to %s in %s format", toPath, type);
    if (this.store) {
      try {
        const serialized = await serializeStore(this.store, type, logger3);
        fs3.writeFileSync(toPath, serialized);
        logger3.debug("Successfully wrote graph to: %s", toPath);
      } catch (error) {
        logger3.error("Error serializing graph: %s", error instanceof Error ? error.message : String(error));
        throw new Error(`Failed to serialize graph: ${error instanceof Error ? error.message : String(error)}`);
      }
    } else {
      logger3.error("Cannot serialize: Graph is null or undefined");
      throw new Error("Cannot serialize: Graph is null or undefined");
    }
  }
  /**
   * Write LiPD RDF Graph to a file
   * @param toPath Path to output file
   * @param type Output format ('json', 'turtle', 'n3', 'ntriples', etc.)
   */
  async toString(type = "turtle") {
    if (this.store) {
      try {
        let serialized;
        serialized = await serializeStore(this.store, type, logger3);
        return serialized || "";
      } catch (error) {
        logger3.error("Error serializing graph:", error);
        throw new Error(`Failed to serialize graph: ${error instanceof Error ? error.message : String(error)}`);
      }
    }
    return "";
  }
  /**
   * Unzip a LiPD file to a directory
   * @param lipdFile Path to the LiPD file
   * @param unzipDir Directory to extract to
   */
  _unzipLipdFile(lipdFile, unzipDir) {
    try {
      if (lipdFile.startsWith("http")) {
        throw new Error("URL-based LiPD files not yet supported in this implementation");
      } else {
        logger3.debug("Unzipping local file: %s to %s", lipdFile, unzipDir);
        const zip = new AdmZip2(lipdFile);
        zip.extractAllTo(unzipDir, true);
        logger3.debug("Unzipping completed successfully");
      }
    } catch (error) {
      logger3.error("Error unzipping LiPD file: %s", error instanceof Error ? error.message : String(error));
      throw new Error(`Failed to unzip LiPD file: ${error instanceof Error ? error.message : String(error)}`);
    }
  }
  /**
   * Find files with a specific extension in a directory (recursively)
   * @param directory Directory to search in
   * @param extension File extension to look for
   * @returns Array of [filePath, fileName] tuples
   */
  _findFilesWithExtension(directory, extension) {
    const regex = new RegExp(`\\.${extension}$`);
    const results = [];
    try {
      const entries = fs3.readdirSync(directory, { withFileTypes: true });
      for (const entry of entries) {
        const entryPath = path3.join(directory, entry.name);
        if (entry.isFile() && regex.test(entry.name)) {
          results.push([entryPath, entry.name]);
        } else if (entry.isDirectory()) {
          const subResults = this._findFilesWithExtension(entryPath, extension);
          results.push(...subResults);
        }
      }
    } catch (error) {
      logger3.error(`Cannot access ${directory}. Probably a permissions error:`, error);
    }
    return results;
  }
  /**
   * Load LiPD JSON data into the RDF graph
   * @param jsonPath Path to the JSON file
   * @param url Optional URL of the LiPD file
   */
  _loadLipdJsonToGraph(jsonPath, url) {
    logger3.debug("Loading JSON file to graph: %s", jsonPath);
    for (const quad of this.store.getQuads(null, null, null, null)) {
      this.store.removeQuad(quad);
    }
    try {
      const jsonContent = fs3.readFileSync(jsonPath, "utf8");
      const obj = JSON.parse(jsonContent);
      logger3.debug("JSON file parsed successfully");
      if (obj.dataSetName) {
        this.graphUrl = NSURL + "/" + sanitizeId(obj.dataSetName);
        logger3.debug("Updated graph URL based on dataset name: %s", this.graphUrl);
      }
      logger3.debug("Mapping LiPD data to RDF structure");
      const objHash = {};
      this._mapLipdToJson(obj, null, null, "Dataset", "Dataset", objHash);
      if (url) {
        objHash[obj["@id"]].hasUrl = url;
        logger3.debug("Set URL from parameter: %s", url);
      } else if (obj["@id"]) {
        objHash[obj["@id"]].hasUrl = DATAURL + "/" + obj["@id"] + ".lpd";
        logger3.debug("Set derived URL: %s", DATAURL + "/" + obj["@id"] + ".lpd");
      }
      logger3.debug("Creating RDF individuals for %d objects", Object.keys(objHash).length);
      for (const [key, item] of Object.entries(objHash)) {
        this._createIndividualFull(item);
      }
      logger3.debug("Successfully loaded JSON data into RDF graph");
    } catch (error) {
      logger3.error("Error loading JSON to graph: %s", error instanceof Error ? error.message : String(error));
      throw new Error(`Failed to load JSON to graph: ${error instanceof Error ? error.message : String(error)}`);
    }
  }
  /**
   * Map LiPD JSON data to a structured format suitable for RDF conversion
   * @param obj The JSON object to map
   * @param parent Parent object
   * @param index Index in parent's array
   * @param category Category of the object
   * @param schemaName Schema name to use
   * @param hash Object hash for storing objects by ID
   * @returns ID of the created object
   */
  _mapLipdToJson(obj, parent, index, category, schemaName, hash) {
    const schema = this.schema[schemaName] ? this.schema[schemaName] : {};
    if (typeof obj !== "object" || obj === null) {
      return obj;
    }
    obj["@parent"] = parent;
    obj["@index"] = index;
    obj["@schema"] = schemaName;
    let objId = this.getObjectId(obj, category, schema);
    if ("@id" in obj) {
      objId = obj["@id"];
    }
    if (objId in hash) {
      return objId;
    }
    obj["@id"] = objId;
    [obj, hash] = this.modifyStructureIfNeeded(obj, hash, schema);
    if ("@category" in obj) {
      category = obj["@category"];
    }
    hash[objId] = {
      "@id": objId,
      "@category": category,
      "@schema": schemaName
    };
    const item = hash[objId];
    if (typeof obj === "object") {
      for (const [propKey, value] of Object.entries(obj)) {
        if (propKey[0] === "@") {
          continue;
        }
        if (propKey in BLACKLIST) {
          continue;
        }
        let details = {};
        let pname = propKey;
        if (propKey in schema) {
          details = schema[propKey];
          pname = details["name"] ? details["name"] : propKey;
        }
        const dtype = details["type"] ? details["type"] : null;
        let cat = details["category"] ? details["category"] : null;
        let sch = details["schema"] ? details["schema"] : null;
        const fromJson = details["fromJson"] ? details["fromJson"] : null;
        if (sch && !cat) {
          cat = sch;
        }
        if (fromJson) {
          const fn = this[fromJson];
          const processedValue = fn.call(this, value, obj);
          if (!processedValue) {
            continue;
          }
          if (pname) {
            if (Array.isArray(processedValue)) {
              let idx = 1;
              for (const subValue of processedValue) {
                if (typeof subValue === "object") {
                  if (!(propKey in item)) {
                    item[propKey] = [];
                  }
                  item[propKey].push(this._mapLipdToJson(subValue, obj, idx, cat, sch, hash));
                  idx++;
                }
              }
            } else if (typeof processedValue === "object") {
              item[propKey] = this._mapLipdToJson(processedValue, obj, null, cat, sch, hash);
            } else {
              item[propKey] = processedValue;
            }
          } else if (typeof processedValue === "object") {
            for (const [subPropKey, subValue] of Object.entries(processedValue)) {
              item[subPropKey] = subValue;
            }
          }
          continue;
        }
        if (!pname) {
          continue;
        }
        if (Array.isArray(value)) {
          let idx = 1;
          for (const subValue of value) {
            if (!(propKey in item)) {
              item[propKey] = [];
            }
            item[propKey].push(this._mapLipdToJson(subValue, obj, idx, cat, sch, hash));
            idx++;
          }
        } else if (typeof value === "object") {
          if (!(propKey in item)) {
            item[propKey] = [];
          }
          item[propKey].push(this._mapLipdToJson(value, obj, null, cat, sch, hash));
        } else {
          if (dtype === "Individual") {
            item[propKey] = value;
            if (!(String(value) in hash)) {
              hash[String(value)] = {
                "@id": value,
                "@category": cat,
                "@schema": sch
              };
            }
          } else {
            item[propKey] = value;
          }
        }
      }
    }
    hash[objId] = item;
    return objId;
  }
  /**
   * Get compound key ID from an object
   * @param compoundKey Array of keys to traverse the object
   * @param obj Object to extract value from
   * @returns The value at the end of the key path or null if not found
   */
  getCompoundKeyId(compoundKey, obj) {
    let tobj = obj;
    for (const key of compoundKey) {
      if (typeof tobj === "object" && tobj !== null && key in tobj) {
        tobj = tobj[key];
      } else {
        return null;
      }
    }
    if (typeof tobj !== "object" || tobj === null) {
      return tobj;
    }
    return null;
  }
  /**
   * Get binding key ID from an object
   * @param key Key or compound key (separated by dots) or alternative keys (separated by pipes)
   * @param obj Object to extract value from
   * @returns The value found or a unique ID if not found
   */
  getBindingKeyId(key, obj) {
    const keyOptions = key.split("|");
    for (const optKey of keyOptions) {
      const compoundKey = optKey.split(".");
      const keyId = this.getCompoundKeyId(compoundKey, obj);
      if (keyId) {
        return String(keyId);
      }
    }
    return uniqid();
  }
  /**
   * Apply a function to a key ID
   * @param fn Function name to apply
   * @param arg Argument for the function
   * @param curObjId Current object ID
   * @returns Modified object ID
   */
  getFunctionKeyId(fn, arg, curObjId) {
    if (fn === "trunc") {
      return curObjId.substring(0, curObjId.length - parseInt(arg));
    } else if (fn === "uniqid") {
      return String(curObjId) + uniqid(arg);
    }
    return curObjId;
  }
  /**
   * Create an ID from a pattern
   * @param pattern Array of pattern parts
   * @param obj Object to extract values from
   * @returns Generated ID string
   */
  createIdFromPattern(pattern, obj) {
    let objId = "";
    for (const key of pattern) {
      const bindingMatch = key.match(/{(.+)}/);
      if (bindingMatch && bindingMatch.length > 1) {
        objId += String(this.getBindingKeyId(bindingMatch[1], obj));
      } else {
        const funcMatch = key.match(/_(.+)\((.*)\)/);
        if (funcMatch && funcMatch.length > 2) {
          const fn = funcMatch[1];
          const arg = funcMatch[2];
          objId = String(this.getFunctionKeyId(fn, arg, objId));
        } else {
          objId += String(key);
        }
      }
    }
    return objId;
  }
  /**
   * Fix title by replacing problematic characters
   * @param titleId Title ID to fix
   * @returns Fixed title ID
   */
  fixTitle(titleId) {
    return titleId.replace(/@\\x{FFFD}@u/g, "_");
  }
  /**
   * Get object ID based on schema and category
   * @param obj Object to generate ID for
   * @param category Category of the object
   * @param schema Schema definition
   * @returns Generated object ID
   */
  getObjectId(obj, category, schema) {
    let objId;
    if (typeof obj === "object" && obj !== null) {
      objId = "Unknown." + uniqid(category);
    } else {
      objId = ucfirst(String(obj)).replace(/\s/g, "_");
    }
    if (schema && "@id" in schema) {
      objId = this.createIdFromPattern(schema["@id"], obj);
    }
    return this.fixTitle(objId);
  }
  /**
   * Modify the object structure if needed based on schema
   * @param obj Object to modify
   * @param hash Object hash
   * @param schema Schema definition
   * @returns [modified object, modified hash]
   */
  modifyStructureIfNeeded(obj, hash, schema) {
    if (schema["@fromJson"]) {
      for (const func of schema["@fromJson"]) {
        if (func in this) {
          const fn = this[func];
          if (typeof fn === "function") {
            const result = fn.call(this, obj, hash);
            if (Array.isArray(result) && result.length >= 2) {
              [obj, hash] = result;
            }
          }
        }
      }
    }
    return [obj, hash];
  }
  /**
   * Guess the data value type based on string pattern
   * @param val Value to analyze
   * @returns Detected data type
   */
  _guessDataValueType(val) {
    const value = String(val);
    if (/^-?\d+$/.test(value)) {
      return "float";
    }
    if (/^-?\d+\.\d+$/.test(value)) {
      return "float";
    }
    if (/^[2][0-9]{3}[-][0-1][0-9][-][0-3][0-9]( |T)[0-9]{2}:[0-9]{2}:[0-9]{2}/.test(value)) {
      return "datetime";
    }
    if (/^[2][0-9]{3}[-][0-1][0-9][-][0-3][0-9]/.test(value)) {
      return "date";
    }
    if (/^(true|false)$/i.test(value)) {
      return "boolean";
    }
    if (/^http/.test(value)) {
      return "url";
    }
    if (/^".+"$/.test(value)) {
      return "string";
    }
    if (/^'.+'$/.test(value)) {
      return "string";
    }
    return "string";
  }
  /**
   * Guess the value type for any kind of value
   * @param value Value to analyze
   * @returns Detected data type
   */
  _guessValueType(value) {
    if (value) {
      if (Array.isArray(value)) {
        for (const subvalue of value) {
          return this._guessValueType(subvalue);
        }
      } else if (typeof value === "object" && value !== null) {
        return "Individual";
      } else {
        const valtype = this._guessDataValueType(value);
        return valtype;
      }
    }
    return "string";
  }
  /**
   * Get property details from schema and value
   * @param key Property key
   * @param schema Schema definition
   * @param value Property value
   * @returns Property details object
   */
  getPropertyDetails(key, schema, value) {
    let pname = key;
    const details = {
      "name": pname
    };
    if (key in schema && "@@processed" in schema[key]) {
      return schema[key];
    }
    if (key in schema) {
      for (const [skey, svalue] of Object.entries(schema[key])) {
        details[skey] = svalue;
      }
    }
    if ("schema" in details) {
      details["type"] = "Individual";
    }
    pname = lcfirst(details["name"]);
    if (!("type" in details)) {
      details["type"] = this._guessValueType(value);
      if (!("type" in details)) {
        details["type"] = "string";
      }
    }
    details["@@processed"] = true;
    schema[key] = details;
    return details;
  }
  /**
   * Create an individual
   * @param objId ID of the individual
   * @returns Fully qualified URI for the individual
   */
  createIndividual(objId) {
    return this.namespace + sanitizeId(objId);
  }
  /**
   * Create a class
   * @param category Category name
   * @returns Fully qualified URI for the class
   */
  createClass(category) {
    return ONTONS + sanitizeId(category);
  }
  /**
   * Create a property
   * @param prop Property name
   * @param dtype Data type
   * @param cat Category
   * @param multiple Whether the property can have multiple values
   * @returns [property URI, data type, category, multiple flag]
   */
  createProperty(prop, dtype, cat, multiple) {
    const nsProp = prop.split(":", 2);
    let ns = ONTONS;
    if (nsProp.length > 1) {
      const prefix = nsProp[0];
      if (prefix in NAMESPACES) {
        ns = NAMESPACES[prefix];
      }
      prop = nsProp[1];
    }
    return [ns + lcfirst(sanitizeId(prop)), dtype, cat, multiple];
  }
  /**
   * Set individual classes
   * @param objId ID of the individual
   * @param category Primary category
   * @param extraCats Additional categories
   */
  setIndividualClasses(objId, category, extraCats) {
    if (objId && category) {
      this.store.addQuad(
        DF2.quad(
          DF2.namedNode(objId),
          DF2.namedNode(NAMESPACES.rdf + "type"),
          DF2.namedNode(category),
          DF2.namedNode(this.graphUrl)
        )
      );
    }
    for (const ecat of extraCats) {
      if (objId && ecat) {
        this.store.addQuad(
          DF2.quad(
            DF2.namedNode(objId),
            DF2.namedNode(NAMESPACES.rdf + "type"),
            DF2.namedNode(this.createClass(ecat)),
            DF2.namedNode(this.graphUrl)
          )
        );
      }
    }
  }
  /**
   * Set object label
   * @param objId ID of the object
   * @param label Label to set
   */
  setObjectLabel(objId, label) {
    if (objId && label) {
      DF2.quad;
      this.store.addQuad(
        DF2.quad(
          DF2.namedNode(objId),
          DF2.namedNode(NAMESPACES.rdfs + "label"),
          DF2.literal(label),
          DF2.namedNode(this.graphUrl)
        )
      );
    }
  }
  /**
   * Set property value
   * @param objId ID of the object
   * @param prop Property details (from _createProperty)
   * @param value Value to set
   */
  setPropertyValue(objId, prop, value) {
    if (Array.isArray(value)) {
      for (const subValue of value) {
        this.setPropertyValue(objId, prop, subValue);
      }
      return;
    }
    const [propId, dtype, cat, multiple] = prop;
    if (!objId || value === null || value === void 0) {
      return;
    }
    let objItem = null;
    if (dtype === "float" || dtype === "integer") {
      if (String(value).toLowerCase().includes("nan"))
        return;
      if (String(value).toLowerCase().includes("na"))
        return;
    }
    if (typeof value === "string") {
      value = escape(value);
    }
    if (dtype === "boolean") {
      value = String(value).toLowerCase();
      if (value !== "true") {
        value = "false";
      }
    } else if (dtype === "float") {
      const match = String(value).match(/(-?\d+\.?\d*)/);
      if (match) {
        value = match[1];
      } else {
        value = 0;
      }
    } else if (dtype === "integer") {
      const match = String(value).match(/(-?\d+)/);
      if (match) {
        value = match[1];
      } else {
        value = 0;
      }
    }
    if (dtype === "Individual") {
      value = this.createIndividual(value);
      objItem = DF2.namedNode(value);
    } else if (dtype === "EnumeratedIndividual") {
      objItem = DF2.namedNode(value);
    } else if (dtype === "List") {
      objItem = value;
    } else {
      let datatype = void 0;
      if (dtype === "float")
        datatype = DF2.namedNode(NAMESPACES.xsd + "float");
      else if (dtype === "integer")
        datatype = DF2.namedNode(NAMESPACES.xsd + "integer");
      else if (dtype === "boolean")
        datatype = DF2.namedNode(NAMESPACES.xsd + "boolean");
      else if (dtype === "date")
        datatype = DF2.namedNode(NAMESPACES.xsd + "date");
      else if (dtype === "dateTime")
        datatype = DF2.namedNode(NAMESPACES.xsd + "dateTime");
      else if (dtype === "string")
        datatype = DF2.namedNode(NAMESPACES.xsd + "string");
      objItem = DF2.literal(String(value), datatype);
    }
    if (!multiple) {
      const existing = this.store.getQuads(
        DF2.namedNode(objId),
        DF2.namedNode(propId),
        null,
        null
      );
      if (existing.length > 0) {
        return;
      }
    }
    this.store.addQuad(
      DF2.quad(
        DF2.namedNode(objId),
        DF2.namedNode(propId),
        objItem,
        DF2.namedNode(this.graphUrl)
      )
    );
  }
  /**
   * Create a full individual with all its properties
   * @param obj Object to create
   */
  _createIndividualFull(obj) {
    const category = obj["@category"];
    const extraCats = obj["@extracats"] || [];
    const schemaName = obj["@schema"] || category;
    const schema = this.schema[schemaName] || {};
    const objId = obj["@id"];
    if (!objId) {
      return;
    }
    let categoryUri = null;
    if (category) {
      categoryUri = this.createClass(category);
    }
    const objUri = this.createIndividual(objId);
    this.setIndividualClasses(objUri, categoryUri, extraCats);
    for (const [key, value] of Object.entries(obj)) {
      if (key[0] === "@") {
        continue;
      }
      const details = this.getPropertyDetails(key, schema, value);
      const prop = details.name;
      const dtype = details.type;
      const synonyms = details.synonyms || {};
      let cat = details.category || null;
      const sch = details.schema || null;
      const fromJson = details.fromJson || null;
      const multiple = details.multiple || false;
      if (!prop) {
        continue;
      }
      if (sch && !cat) {
        cat = sch;
      }
      const propDI = this.createProperty(prop, dtype, cat, multiple);
      if (dtype === "Individual") {
        if (typeof value === "string" && Object.keys(synonyms).length > 0) {
          const lowerValue = value.toLowerCase();
          if (synonyms[lowerValue]) {
            propDI[1] = "EnumeratedIndividual";
            let synId = synonyms[lowerValue].id;
            if (!this.standardize) {
              synId += "." + uniqid();
            }
            this.setPropertyValue(objUri, propDI, synId);
            if (this.addLabels) {
              let label;
              if (this.standardize) {
                label = synonyms[lowerValue].label;
              } else {
                label = value;
              }
              this.setObjectLabel(synId, label);
            }
          } else {
            propDI[1] = "EnumeratedIndividual";
            const synId = this.createIndividual(value) + "." + uniqid();
            this.setPropertyValue(objUri, propDI, synId);
            this.setObjectLabel(synId, value);
          }
        } else {
          this.setPropertyValue(objUri, propDI, value);
        }
      } else if (typeof value === "object" && value !== null && !Array.isArray(value)) {
        this.setPropertyValue(objUri, propDI, value);
      } else {
        if (dtype === "File") {
        } else {
          this.setPropertyValue(objUri, propDI, value);
        }
      }
    }
  }
  /**
   * Parse persons string into array of person objects
   * @param authorString String containing author names
   * @param parent Optional parent object
   * @returns Array of parsed author names
   */
  parsePersonsString(authorString, parent) {
    if (authorString.includes(";")) {
      const authorSplit = authorString.split(/\s*;\s*/);
      const authorList = [];
      for (const author of authorSplit) {
        if (author.includes(",")) {
          const lastFirst = author.split(/\s*,\s*/);
          authorList.push(`${lastFirst[1]} ${lastFirst[0]}`);
        } else {
          authorList.push(author);
        }
      }
      return authorList;
    } else {
      const authorList = [];
      const authorSplit = authorString.split(/\s*,\s*/);
      if (authorSplit.length % 2 === 0) {
        for (let i = 0; i < authorSplit.length; i += 2) {
          authorList.push(`${authorSplit[i + 1]} ${authorSplit[i]}`);
        }
      } else {
        for (const author of authorSplit) {
          authorList.push(author);
        }
      }
      return authorList;
    }
  }
  /**
   * Parse persons object into standardized format
   * @param auths Author string or array of authors
   * @param parent Optional parent object
   * @returns Array of parsed person objects
   */
  parsePersons(auths, parent) {
    const authors = [];
    if (!Array.isArray(auths)) {
      auths = [auths];
    }
    for (const authstr of auths) {
      let authname = null;
      if (typeof authstr === "object" && authstr !== null) {
        if ("name" in authstr) {
          authname = authstr.name;
        }
      } else {
        authname = authstr;
      }
      if (authname) {
        const auth = this.parsePersonsString(authname, parent);
        if (Array.isArray(auth)) {
          authors.push(...auth);
        } else {
          authors.push(auth);
        }
      }
    }
    return authors.map((auth) => ({ name: auth }));
  }
  /**
   * Flatten array recursively (browser-compatible alternative to Array.flat())
   * @param arr Array to flatten
   * @returns Flattened array
   */
  _flattenArray(arr) {
    const result = [];
    for (const item of arr) {
      if (Array.isArray(item)) {
        result.push(...this._flattenArray(item));
      } else {
        result.push(item);
      }
    }
    return result;
  }
  /**
   * Set column numbers for variables
   * @param datatable Datatable object
   * @param parent Parent object
   * @returns Datatable object with ordered variables
   */
  setColumnNumbers(datatable, parent = null) {
    for (const [index, variable] of datatable.variables.entries()) {
      variable.columnNumber = index + 1;
      console.log("setColumnNumbers", variable);
    }
    return datatable;
  }
  /**
   * Parse changeLog object into standardized format
   * @param changes Change list
   * @param parent Optional parent object
   * @returns Array of parsed person objects
   */
  parseChanges(changes, parent) {
    const newChanges = [];
    if (!Array.isArray(changes)) {
      changes = [changes];
    }
    for (const change of changes) {
      for (const name of Object.keys(change)) {
        let notes = change[name] || [];
        notes = Array.isArray(notes) ? this._flattenArray(notes) : [notes];
        const newChange = {
          name,
          notes
        };
        newChanges.push(newChange);
      }
    }
    return newChanges;
  }
  /**
   * Parse location object
   * @param geo Location object
   * @param parent Parent object
   * @returns Processed location object
   */
  parseLocation(geo, parent) {
    const ngeo = {};
    ngeo.locationType = geo.type || null;
    if (parent && parent["@id"]) {
      ngeo.coordinatesFor = parent["@id"];
    }
    if (geo.geometry && geo.geometry.coordinates) {
      const coords = geo.geometry.coordinates;
      if (coords && coords.length > 0) {
        ngeo.coordinates = `${coords[1]},${coords[0]}`;
        ngeo["wgs84:lat"] = coords[1];
        ngeo.hasLatitude = coords[1];
        ngeo.latitude = coords[1];
        ngeo["wgs84:long"] = coords[0];
        ngeo.longitude = coords[0];
        ngeo.hasLongitude = coords[0];
        if (coords.length > 2) {
          ngeo["wgs84:alt"] = coords[2];
          ngeo.elevation = coords[2];
          ngeo.hasElevation = coords[2];
        }
      }
    }
    if (geo.properties && typeof geo.properties === "object") {
      for (const [key, value] of Object.entries(geo.properties)) {
        ngeo[key] = value;
      }
    } else if (typeof geo === "object") {
      for (const [key, value] of Object.entries(geo)) {
        if (key !== "geometry") {
          if (!(`wgs84:${key}` in ngeo)) {
            ngeo[key] = value;
          }
        }
      }
    }
    return ngeo;
  }
  /**
   * Process uncertainty values
   * @param val Uncertainty value
   * @param parent Parent object
   * @returns Uncertainty object
   */
  getUncertainty(val, parent) {
    const uncertainty = {};
    uncertainty.hasValue = val;
    uncertainty.analytical = val;
    uncertainty.reproducibility = val;
    return uncertainty;
  }
  /**
   * Get Google Spreadsheet URL from key
   * @param key Spreadsheet key
   * @param parent Parent object
   * @returns Spreadsheet URL
   */
  getGoogleSpreadsheetUrl(key, parent) {
    return `https://docs.google.com/spreadsheets/d/${key}`;
  }
  /**
   * Get a property from a parent object
   * @param obj Object with parent reference
   * @param prop Property to find
   * @returns Property value or null
   */
  getParentProperty(obj, prop) {
    let parent = obj["@parent"];
    while (parent) {
      if (prop in parent) {
        return parent[prop];
      }
      parent = parent["@parent"];
    }
    return null;
  }
  /**
   * Get a parent with a specific property value
   * @param obj Object with parent reference
   * @param prop Property to check
   * @param val Value to match
   * @returns Parent object or null
   */
  getParentWithPropertyValue(obj, prop, val) {
    let parent = obj["@parent"];
    while (parent) {
      if (prop in parent && parent[prop] === val) {
        return parent;
      }
      parent = parent["@parent"];
    }
    return null;
  }
  /**
   * Set identifier properties for publications
   * @param pub Publication object
   * @param objHash Object hash
   * @returns [modified publication, modified hash, added objects]
   */
  setIdentifierProperties(pub, objHash) {
    if ("identifier" in pub) {
      for (const identifier of pub.identifier) {
        if (identifier.type === "doi") {
          if (!("hasDOI" in pub)) {
            pub.hasDOI = [];
          }
          pub.hasDOI.push(identifier.id);
        } else if (identifier.type === "issn") {
          if (!("hasISSN" in pub)) {
            pub.hasISSN = [];
          }
          pub.hasISSN.push(identifier.id);
        } else if (identifier.type === "isbn") {
          if (!("hasISBN" in pub)) {
            pub.hasISBN = [];
          }
          pub.hasISBN.push(identifier.id);
        }
        if ("url" in identifier) {
          if (!("hasLink" in pub)) {
            pub.hasLink = [];
          }
          pub.hasLink.push(identifier.url);
        }
      }
      delete pub.identifier;
    }
    return [pub, objHash, []];
  }
  /**
   * Convert values array to string
   * @param obj Object with values
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  valuesToString(obj, objHash) {
    if ("values" in obj && Array.isArray(obj.values)) {
      obj.values = obj.values.join(", ");
    }
    return [obj, objHash, []];
  }
  /**
   * Guess sensor type based on archive, observation, and sensor
   * @param archive Archive type
   * @param observation Observation type
   * @param sensor Sensor data
   * @returns Guessed sensor type
   */
  guessSensorType(archive, observation, sensor) {
    if ("sensorGenus" in sensor || "sensorSpecies" in sensor) {
      if (archive === "MarineSediment") {
        return "Foraminifera";
      } else if (archive === "Coral") {
        return "Polyp";
      } else if (archive === "Wood") {
        return "Vegetation";
      } else if (archive === "MolluskShell") {
        return "Bivalves";
      } else if (archive === "Sclerosponge") {
        return "Sponge";
      }
      return "OrganicSensor";
    } else {
      if (archive === "MarineSediment" && (observation === "Uk37" || observation === "Alkenone")) {
        return "Coccolithophores";
      } else if (archive === "MarineSediment" && observation === "TEX86") {
        return "Archea";
      } else if (archive === "MarineSediment" && observation === "D18O") {
        return "Foraminifera";
      } else if (archive === "MarineSediment" && observation === "Mg/Ca") {
        return "Foraminifera";
      } else if (archive === "LakeSediment" && (observation === "Uk37" || observation === "Alkenone")) {
        return "Coccolithophores";
      } else if (archive === "LakeSediment" && observation === "TEX86") {
        return "Archea";
      } else if (archive === "LakeSediment" && observation === "Midge") {
        return "Chironomids";
      } else if (archive === "LakeSediment" && observation === "BSi") {
        return "Diatoms";
      } else if (archive === "LakeSediment" && observation === "Chironomid") {
        return "Chironomids";
      } else if (archive === "LakeSediment" && observation === "Reflectance") {
        return "PhotosyntheticAlgae";
      } else if (archive === "LakeSediment" && observation === "Pollen") {
        return "Watershed";
      } else if (archive === "Coral") {
        return "Polyp";
      } else if (archive === "Wood") {
        return "Vegetation";
      } else if (archive === "MolluskShell") {
        return "Bivalves";
      } else if (archive === "Sclerosponge") {
        return "Sponge";
      } else if (archive === "Speleothem") {
        return "Karst";
      } else if (archive === "GlacierIce") {
        return "Snow";
      } else if (archive === "LakeSediment" && observation === "VarveThickness") {
        return "Catchment";
      } else if (archive === "GlacierIce" && observation === "Melt") {
        return "IceSurface";
      } else if (archive === "Borehole") {
        return "Soil";
      } else {
        return "InorganicSensor";
      }
    }
  }
  /**
   * Standardize observation names
   * @param observation Observation name
   * @returns Standardized observation name
   */
  getObservation(observation) {
    if (observation === null || observation === void 0) {
      return null;
    }
    if (observation.toLowerCase() === "alkenone") {
      return "Uk37";
    }
    return camelCase(observation);
  }
  /**
   * Generate a variable ID
   * @param obj Variable object
   * @param parentId Parent ID
   * @returns Generated variable ID
   */
  getVariableId(obj, parentId) {
    const iobj = {};
    for (const [key, value] of Object.entries(obj)) {
      iobj[key.toLowerCase()] = value;
    }
    if (!("tsid" in iobj)) {
      iobj.tsid = uniqid();
    }
    let id = `${parentId}.${iobj.tsid}`;
    id += `.${iobj.variablename || ""}`;
    return id;
  }
  /**
   * Wrap integration time data
   * @param obj Object with integration time data
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  wrapIntegrationTime(obj, objHash) {
    const objId = obj["@id"];
    const pvals = {};
    const keysToDelete = [];
    for (const [key, value] of Object.entries(obj)) {
      if (/^integrationTime$/i.test(key)) {
        pvals.hasValue = value;
        keysToDelete.push(key);
      } else {
        const match = key.match(/^integrationTime(.+)/);
        if (match) {
          const nkey = match[1];
          const nkeyLcfirst = lcfirst(nkey);
          pvals[nkeyLcfirst] = value;
          keysToDelete.push(key);
        }
      }
    }
    for (const key of keysToDelete) {
      delete obj[key];
    }
    if (Object.keys(pvals).length > 0) {
      const inTimeId = `${objId}.IntegrationTime`;
      obj.integrationTime = inTimeId;
      const inTime = {
        "@id": inTimeId,
        "@category": "IntegrationTime",
        "@schema": "IntegrationTime"
      };
      Object.assign(inTime, pvals);
      objHash[inTimeId] = inTime;
      return [obj, objHash, [inTimeId]];
    }
    return [obj, objHash, []];
  }
  /**
   * Add interpretation rank
   * @param obj Interpretation object
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  addInterpretationRank(obj, objHash) {
    if (!("rank" in obj) || typeof obj.rank !== "number") {
      const rank = obj["@index"] - 1;
      obj.rank = rank;
    }
    return [obj, objHash, []];
  }
  /**
   * Wrap uncertainty data
   * @param obj Object with uncertainty data
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  wrapUncertainty(obj, objHash) {
    const objId = obj["@id"];
    const pvals = {};
    const keysToBeDeleted = [];
    for (const [key, value] of Object.entries(obj)) {
      if (/^uncertainty$/i.test(key)) {
        pvals.hasValue = value;
        keysToBeDeleted.push(key);
      } else if (/^uncertainty/i.test(key)) {
        pvals[key] = value;
        keysToBeDeleted.push(key);
      }
    }
    for (const key of keysToBeDeleted) {
      delete obj[key];
    }
    if (Object.keys(pvals).length > 0) {
      const uncId = `${objId}.Uncertainty`;
      obj.hasUncertainty = uncId;
      const uncertainty = {
        "@id": uncId,
        "@category": "Uncertainty"
      };
      for (const [prop, value] of Object.entries(pvals)) {
        uncertainty[prop] = value;
      }
      objHash[uncId] = uncertainty;
      return [obj, objHash, [uncId]];
    }
    return [obj, objHash, []];
  }
  /**
   * Add found in table reference
   * @param obj Object to modify
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  addFoundInTable(obj, objHash) {
    if (obj["@parent"] && obj["@parent"]["@id"]) {
      obj.foundInTable = obj["@parent"]["@id"];
    }
    return [obj, objHash, []];
  }
  /**
   * Add found in dataset reference
   * @param obj Object to modify
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  addFoundInDataset(obj, objHash) {
    let parent = obj["@parent"];
    let top = parent;
    while (parent) {
      top = parent;
      parent = parent["@parent"];
    }
    if (top && top["@id"]) {
      obj.foundInDataset = top["@id"];
    }
    return [obj, objHash, []];
  }
  /**
   * Add variable values from CSV data
   * @param obj Variable object
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  addVariableValues(obj, objHash) {
    if (!obj["@parent"] || !obj["@parent"]["@id"]) {
      return [obj, objHash, []];
    }
    const csvName = `${obj["@parent"]["@id"]}.csv`;
    if (!("number" in obj)) {
      obj.number = obj["@index"];
    }
    if (typeof obj.number === "string") {
      obj.number = parseInt(obj.number, 10);
    }
    if (!Array.isArray(obj.number)) {
      obj.number = [obj.number];
    }
    const indices = obj.number.map((col) => parseInt(col, 10) - 1);
    let csvData = null;
    const lookupKeys = [
      csvName,
      // e.g., "tableId.csv"
      csvName.split("/").pop()
      // basename only
    ];
    const availableCsvs = Object.keys(this.lipdCsvs);
    for (const availableCsv of availableCsvs) {
      if (availableCsv.endsWith(csvName)) {
        lookupKeys.push(availableCsv);
      }
    }
    logger3.debug(`Looking for CSV with keys: ${lookupKeys.join(", ")}`);
    logger3.debug(`Available CSVs: ${availableCsvs.join(", ")}`);
    for (const key of lookupKeys) {
      if (key && key in this.lipdCsvs) {
        csvData = this.lipdCsvs[key];
        logger3.debug(`Found CSV data with key: ${key}`);
        break;
      }
    }
    if (csvData) {
      let values = [];
      if (indices.length === 1) {
        if (indices[0] >= 0 && csvData.length > 0 && indices[0] < csvData[0].length) {
          values = csvData.map((row) => row[indices[0]]);
        }
      } else {
        values = indices.map((index) => {
          return csvData.map((row) => row[index]);
        });
      }
      const valString = JSON.stringify(values);
      obj.hasValues = valString;
      logger3.debug(`Added ${values.length} values for variable`);
      return [obj, objHash, []];
    } else {
      logger3.debug(`CSV '${csvName}' not found in zip \u2014 cannot fill hasValues. Available: ${availableCsvs.join(", ")}`);
    }
    return [obj, objHash, []];
  }
  /**
   * Add standard variable reference
   * @param obj Variable object
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  addStandardVariable(obj, objHash) {
    if ("variableName" in obj) {
      const name = obj.variableName;
      const synonyms = SYNONYMS.VARIABLES?.PaleoVariable;
      if (typeof name === "string" && synonyms && name.toLowerCase() in synonyms) {
        obj.hasStandardVariable = synonyms[name.toLowerCase()].id;
        if (this.addLabels) {
          const label = synonyms[name.toLowerCase()].label;
          this.setObjectLabel(obj.hasStandardVariable, label);
        }
      }
    }
    return [obj, objHash, []];
  }
  /**
   * Stringify column numbers array
   * @param obj Variable object
   * @param objHash Object hash
   * @returns [modified object, modified hash, added objects]
   */
  stringifyColumnNumbersArray(obj, objHash) {
    if ("number" in obj && Array.isArray(obj.number) && obj.number.length > 1) {
      obj.hasColumnNumber = JSON.stringify(obj.number);
      delete obj.number;
    }
    return [obj, objHash, []];
  }
  async _convertBrowser(lipdPath) {
    try {
      const response = await fetch(lipdPath);
      if (!response.ok) {
        throw new Error(`Failed to fetch LiPD file: ${response.statusText}`);
      }
      const arrayBuffer = await response.arrayBuffer();
      const zip = await JSZip.loadAsync(arrayBuffer);
      const csvEntries = [];
      const jsonEntries = [];
      for (const fileName of Object.keys(zip.files)) {
        const file = zip.files[fileName];
        if (file.dir)
          continue;
        if (fileName.endsWith(".csv")) {
          csvEntries.push([fileName, file]);
        } else if (fileName.endsWith(".jsonld")) {
          jsonEntries.push(file);
        }
      }
      for (const [fileName, file] of csvEntries) {
        const csvContent = await file.async("string");
        const parsedCsv = Papa.parse(csvContent, { header: false });
        this.lipdCsvs[fileName] = parsedCsv.data;
        const baseName = fileName.split("/").pop();
        if (baseName) {
          this.lipdCsvs[baseName] = parsedCsv.data;
        }
        logger3.debug(`Loaded CSV '${fileName}' (${parsedCsv.data.length}\xD7${parsedCsv.data[0].length || 0})`);
      }
      for (const file of jsonEntries) {
        const jsonContent = await file.async("string");
        this._loadLipdJsonString(jsonContent);
      }
    } catch (error) {
      logger3.error("Error converting LiPD in browser: %s", error instanceof Error ? error.message : String(error));
      throw error;
    }
  }
  /**
   * Load LiPD JSON content that is already available as a string (used in browser flow)
   * @param jsonContent Raw JSON-LD content
   */
  _loadLipdJsonString(jsonContent) {
    try {
      const obj = JSON.parse(jsonContent);
      if (obj.dataSetName) {
        this.graphUrl = NSURL + "/" + sanitizeId(obj.dataSetName);
      }
      const objHash = {};
      this._mapLipdToJson(obj, null, null, "Dataset", "Dataset", objHash);
      if (obj["@id"]) {
        objHash[obj["@id"]].hasUrl = DATAURL + "/" + obj["@id"] + ".lpd";
      }
      for (const item of Object.values(objHash)) {
        this._createIndividualFull(item);
      }
    } catch (error) {
      logger3.error("Error loading JSON content in browser: %s", error instanceof Error ? error.message : String(error));
      throw error;
    }
  }
};

// src/lipdSeries.ts
var logger4 = Logger.getInstance();
var LiPDSeries = class extends RDFGraph {
  constructor(graph) {
    super(graph);
    this.lipds = {};
  }
  /**
   * Load LiPD data into the series
   * @param lipd LiPD object to load
   */
  load(lipd) {
  }
};

// src/globals/queries.ts
var QUERY_DSNAME = `
    PREFIX le: <http://linked.earth/ontology#>

    SELECT ?dsname WHERE {
        GRAPH ?g {
            ?ds a le:Dataset .
            ?ds le:hasName ?dsname
        }
    }
`;
var QUERY_DSID = `
    PREFIX le: <http://linked.earth/ontology#>

    SELECT ?dsid WHERE {
        GRAPH ?g {
            ?ds a le:Dataset .
            OPTIONAL{?ds le:hasDatasetId ?dsid}
        }
    }
`;
var QUERY_UNIQUE_ARCHIVE_TYPE = `
    PREFIX le: <http://linked.earth/ontology#>

    SELECT DISTINCT ?archiveType WHERE {
        GRAPH ?g {
            ?ds a le:Dataset .
            ?ds le:hasArchiveType ?archiveType
        }
    }
`;
var QUERY_FILTER_DATASET_NAME = `
    PREFIX le: <http://linked.earth/ontology#>

    SELECT ?dsname WHERE {
        ?ds a le:Dataset .
        ?ds le:hasName ?dsname .
        FILTER regex(str(?dsname), "[datasetName].*", "i")
    }
`;
var QUERY_FILTER_TIME = `
    PREFIX le: <http://linked.earth/ontology#>

    SELECT ?dsname ?minage ?maxage WHERE {
        ?ds a le:Dataset .
        ?ds le:hasName ?dsname .
        
        ?ds le:hasPaleoData ?data .
        ?data le:hasMeasurementTable ?table .
        ?table le:hasVariable ?var .
        ?table le:hasVariable ?timevar .
        ?timevar le:hasName ?time_variableName .
        FILTER (regex(str(?time_variableName), "year.*") || regex(str(?time_variableName), "age.*")) .
        ?timevar le:hasMinValue ?minage .
        ?timevar le:hasMaxValue ?maxage .
}
`;
var QUERY_FILTER_COMPILATION = `
    PREFIX le: <http://linked.earth/ontology#>

    SELECT DISTINCT ?dataSetName WHERE {
        ?ds a le:Dataset .
        ?ds le:hasName ?dataSetName .
    
        ?ds le:hasPaleoData ?data .
        ?data le:hasMeasurementTable ?table .
        ?table le:hasVariable ?var .
        
        ?var le:partOfCompilation ?compilation . 
        ?compilation le:hasName ?compilationName .
        FILTER regex(str(?compilationName), "[compilationName].*", "i")}
            
    `;

// src/utils/multiProcessing.ts
var logger5 = Logger.getInstance();
async function convertLipdToGraph(args) {
  const [lipdfile, standardize, addLabels] = args;
  try {
    const converter = new LipdToRDF(standardize, addLabels);
    await converter.convert(lipdfile);
    return converter.store;
  } catch (error) {
    logger5.error("Error converting LiPD file %s to RDF: %s", lipdfile, error instanceof Error ? error.message : String(error));
    throw error;
  }
}
async function multiLoadLipd(store, lipdFiles, parallel = true, standardize = true, addLabels = true) {
  const args = lipdFiles.map((file) => [file, standardize, addLabels]);
  if (parallel) {
    const promises = args.map((arg) => convertLipdToGraph(arg));
    const subgraphs = await Promise.all(promises);
    for (const subgraph of subgraphs) {
      const quads = subgraph.getQuads(null, null, null, null);
      for (const quad of quads) {
        if (store.getQuads(quad.subject, quad.predicate, quad.object, quad.graph).length === 0) {
          store.addQuad(quad);
        }
      }
    }
  } else {
    for (const arg of args) {
      const subgraph = await convertLipdToGraph(arg);
      const quads = subgraph.getQuads(null, null, null, null);
      for (const quad of quads) {
        if (store.getQuads(quad.subject, quad.predicate, quad.object, quad.graph).length === 0) {
          store.addQuad(quad);
        }
      }
    }
  }
  return store;
}

// src/classes/archivetype.ts
var _ArchiveType = class _ArchiveType {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _ArchiveType.synonyms) {
      const synobj = _ArchiveType.synonyms[lowerSynonym];
      return new _ArchiveType(synobj.id, synobj.label);
    }
    return null;
  }
};
_ArchiveType.synonyms = SYNONYMS.ARCHIVES?.ArchiveType;
var ArchiveType = _ArchiveType;
var ArchiveTypeConstants = class {
};
ArchiveTypeConstants.Borehole = new ArchiveType("http://linked.earth/ontology/archive#Borehole", "Borehole");
ArchiveTypeConstants.Coral = new ArchiveType("http://linked.earth/ontology/archive#Coral", "Coral");
ArchiveTypeConstants.FluvialSediment = new ArchiveType("http://linked.earth/ontology/archive#FluvialSediment", "Fluvial sediment");
ArchiveTypeConstants.GlacierIce = new ArchiveType("http://linked.earth/ontology/archive#GlacierIce", "Glacier ice");
ArchiveTypeConstants.GroundIce = new ArchiveType("http://linked.earth/ontology/archive#GroundIce", "Ground ice");
ArchiveTypeConstants.LakeSediment = new ArchiveType("http://linked.earth/ontology/archive#LakeSediment", "Lake sediment");
ArchiveTypeConstants.MarineSediment = new ArchiveType("http://linked.earth/ontology/archive#MarineSediment", "Marine sediment");
ArchiveTypeConstants.Midden = new ArchiveType("http://linked.earth/ontology/archive#Midden", "Midden");
ArchiveTypeConstants.MolluskShell = new ArchiveType("http://linked.earth/ontology/archive#MolluskShell", "Mollusk shell");
ArchiveTypeConstants.Peat = new ArchiveType("http://linked.earth/ontology/archive#Peat", "Peat");
ArchiveTypeConstants.Sclerosponge = new ArchiveType("http://linked.earth/ontology/archive#Sclerosponge", "Sclerosponge");
ArchiveTypeConstants.Shoreline = new ArchiveType("http://linked.earth/ontology/archive#Shoreline", "Shoreline");
ArchiveTypeConstants.Speleothem = new ArchiveType("http://linked.earth/ontology/archive#Speleothem", "Speleothem");
ArchiveTypeConstants.TerrestrialSediment = new ArchiveType("http://linked.earth/ontology/archive#TerrestrialSediment", "Terrestrial sediment");
ArchiveTypeConstants.Wood = new ArchiveType("http://linked.earth/ontology/archive#Wood", "Wood");
ArchiveTypeConstants.Documents = new ArchiveType("http://linked.earth/ontology/archive#Documents", "Documents");
ArchiveTypeConstants.Other = new ArchiveType("http://linked.earth/ontology/archive#Other", "Other");

// src/classes/change.ts
var Change = class _Change {
  constructor() {
    this.name = null;
    this.notes = [];
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Change";
    this._id = this._ns + "/" + uniqid("Change");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Change();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    thisObj.notes = [];
    for (const value of data.notes || []) {
      thisObj.notes.push(value);
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Change();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else if (key === "hasNotes") {
        thisObj.notes = [];
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasName"] = [obj];
    }
    if (this.notes.length > 0) {
      data[this._id]["hasNotes"] = [];
      for (const valueObj of this.notes) {
        const obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
        data[this._id]["hasNotes"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["name"] = obj;
    }
    if (this.notes.length > 0) {
      data["notes"] = [];
      for (const valueObj of this.notes) {
        const obj = valueObj;
        data["notes"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Change();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "name") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      if (key === "notes") {
        let obj = null;
        thisObj.notes = [];
        for (const value of pvalue) {
          obj = value;
          thisObj.notes.push(obj);
        }
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  addNotes(notes) {
    this.notes.push(notes);
  }
};

// src/classes/changelog.ts
var ChangeLog = class _ChangeLog {
  constructor() {
    this.changes = [];
    this.curator = null;
    this.lastVersion = null;
    this.notes = null;
    this.timestamp = null;
    this.version = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#ChangeLog";
    this._id = this._ns + "/" + uniqid("ChangeLog");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _ChangeLog();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.curator !== null) {
      thisObj.curator = data.curator;
    }
    if (data.lastVersion !== null) {
      thisObj.lastVersion = data.lastVersion;
    }
    if (data.notes !== null) {
      thisObj.notes = data.notes;
    }
    if (data.timestamp !== null) {
      thisObj.timestamp = data.timestamp;
    }
    if (data.version !== null) {
      thisObj.version = data.version;
    }
    thisObj.changes = [];
    for (const value of data.changes || []) {
      thisObj.changes.push(Change.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _ChangeLog();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasChanges") {
        thisObj.changes = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Change.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.changes.push(obj);
        }
      } else if (key === "hasCurator") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.curator = obj;
        }
      } else if (key === "hasLastVersion") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.lastVersion = obj;
        }
      } else if (key === "hasNotes") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes = obj;
        }
      } else if (key === "hasTimestamp") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.timestamp = obj;
        }
      } else if (key === "hasVersion") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.version = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.changes.length > 0) {
      data[this._id]["hasChanges"] = [];
      for (const valueObj of this.changes) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasChanges"].push(obj);
      }
    }
    if (this.curator !== null) {
      const valueObj = this.curator;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCurator"] = [obj];
    }
    if (this.lastVersion !== null) {
      const valueObj = this.lastVersion;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasLastVersion"] = [obj];
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasNotes"] = [obj];
    }
    if (this.timestamp !== null) {
      const valueObj = this.timestamp;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasTimestamp"] = [obj];
    }
    if (this.version !== null) {
      const valueObj = this.version;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVersion"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.changes.length > 0) {
      data["changes"] = [];
      for (const valueObj of this.changes) {
        const obj = valueObj.toJson();
        data["changes"].push(obj);
      }
    }
    if (this.curator !== null) {
      const valueObj = this.curator;
      const obj = valueObj;
      data["curator"] = obj;
    }
    if (this.lastVersion !== null) {
      const valueObj = this.lastVersion;
      const obj = valueObj;
      data["lastVersion"] = obj;
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = valueObj;
      data["notes"] = obj;
    }
    if (this.timestamp !== null) {
      const valueObj = this.timestamp;
      const obj = valueObj;
      data["timestamp"] = obj;
    }
    if (this.version !== null) {
      const valueObj = this.version;
      const obj = valueObj;
      data["version"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _ChangeLog();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "changes") {
        let obj = null;
        thisObj.changes = [];
        for (const value of pvalue) {
          obj = Change.fromJson(value);
          thisObj.changes.push(obj);
        }
        continue;
      }
      if (key === "curator") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.curator = obj;
        continue;
      }
      if (key === "lastVersion") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.lastVersion = obj;
        continue;
      }
      if (key === "notes") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.notes = obj;
        continue;
      }
      if (key === "timestamp") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.timestamp = obj;
        continue;
      }
      if (key === "version") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.version = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getChanges() {
    return this.changes;
  }
  setChanges(changes) {
    this.changes = changes;
  }
  addChanges(changes) {
    this.changes.push(changes);
  }
  getCurator() {
    return this.curator;
  }
  setCurator(curator) {
    this.curator = curator;
  }
  getLastVersion() {
    return this.lastVersion;
  }
  setLastVersion(lastVersion) {
    this.lastVersion = lastVersion;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  getTimestamp() {
    return this.timestamp;
  }
  setTimestamp(timestamp) {
    this.timestamp = timestamp;
  }
  getVersion() {
    return this.version;
  }
  setVersion(version) {
    this.version = version;
  }
};

// src/classes/calibration.ts
var Calibration = class _Calibration {
  constructor() {
    this.dOI = null;
    this.datasetRange = null;
    this.equation = null;
    this.equationIntercept = null;
    this.equationR2 = null;
    this.equationSlope = null;
    this.equationSlopeUncertainty = null;
    this.method = null;
    this.methodDetail = null;
    this.notes = null;
    this.proxyDataset = null;
    this.seasonality = null;
    this.targetDataset = null;
    this.uncertainty = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Calibration";
    this._id = this._ns + "/" + uniqid("Calibration");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Calibration();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.dOI !== null) {
      thisObj.dOI = data.dOI;
    }
    if (data.datasetRange !== null) {
      thisObj.datasetRange = data.datasetRange;
    }
    if (data.equation !== null) {
      thisObj.equation = data.equation;
    }
    if (data.equationIntercept !== null) {
      thisObj.equationIntercept = data.equationIntercept;
    }
    if (data.equationR2 !== null) {
      thisObj.equationR2 = data.equationR2;
    }
    if (data.equationSlope !== null) {
      thisObj.equationSlope = data.equationSlope;
    }
    if (data.equationSlopeUncertainty !== null) {
      thisObj.equationSlopeUncertainty = data.equationSlopeUncertainty;
    }
    if (data.method !== null) {
      thisObj.method = data.method;
    }
    if (data.methodDetail !== null) {
      thisObj.methodDetail = data.methodDetail;
    }
    if (data.notes !== null) {
      thisObj.notes = data.notes;
    }
    if (data.proxyDataset !== null) {
      thisObj.proxyDataset = data.proxyDataset;
    }
    if (data.seasonality !== null) {
      thisObj.seasonality = data.seasonality;
    }
    if (data.targetDataset !== null) {
      thisObj.targetDataset = data.targetDataset;
    }
    if (data.uncertainty !== null) {
      thisObj.uncertainty = data.uncertainty;
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Calibration();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasDOI") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.dOI = obj;
        }
      } else if (key === "hasDatasetRange") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.datasetRange = obj;
        }
      } else if (key === "hasEquation") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.equation = obj;
        }
      } else if (key === "hasEquationIntercept") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.equationIntercept = obj;
        }
      } else if (key === "hasEquationR2") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.equationR2 = obj;
        }
      } else if (key === "hasEquationSlope") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.equationSlope = obj;
        }
      } else if (key === "hasEquationSlopeUncertainty") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.equationSlopeUncertainty = obj;
        }
      } else if (key === "hasMethod") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.method = obj;
        }
      } else if (key === "hasMethodDetail") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.methodDetail = obj;
        }
      } else if (key === "hasNotes") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes = obj;
        }
      } else if (key === "hasProxyDataset") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.proxyDataset = obj;
        }
      } else if (key === "hasTargetDataset") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.targetDataset = obj;
        }
      } else if (key === "hasUncertainty") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.uncertainty = obj;
        }
      } else if (key === "seasonality") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.seasonality = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.dOI !== null) {
      const valueObj = this.dOI;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDOI"] = [obj];
    }
    if (this.datasetRange !== null) {
      const valueObj = this.datasetRange;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDatasetRange"] = [obj];
    }
    if (this.equation !== null) {
      const valueObj = this.equation;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasEquation"] = [obj];
    }
    if (this.equationIntercept !== null) {
      const valueObj = this.equationIntercept;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasEquationIntercept"] = [obj];
    }
    if (this.equationR2 !== null) {
      const valueObj = this.equationR2;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasEquationR2"] = [obj];
    }
    if (this.equationSlope !== null) {
      const valueObj = this.equationSlope;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasEquationSlope"] = [obj];
    }
    if (this.equationSlopeUncertainty !== null) {
      const valueObj = this.equationSlopeUncertainty;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasEquationSlopeUncertainty"] = [obj];
    }
    if (this.method !== null) {
      const valueObj = this.method;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasMethod"] = [obj];
    }
    if (this.methodDetail !== null) {
      const valueObj = this.methodDetail;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasMethodDetail"] = [obj];
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasNotes"] = [obj];
    }
    if (this.proxyDataset !== null) {
      const valueObj = this.proxyDataset;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasProxyDataset"] = [obj];
    }
    if (this.seasonality !== null) {
      const valueObj = this.seasonality;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["seasonality"] = [obj];
    }
    if (this.targetDataset !== null) {
      const valueObj = this.targetDataset;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasTargetDataset"] = [obj];
    }
    if (this.uncertainty !== null) {
      const valueObj = this.uncertainty;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasUncertainty"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.dOI !== null) {
      const valueObj = this.dOI;
      const obj = valueObj;
      data["doi"] = obj;
    }
    if (this.datasetRange !== null) {
      const valueObj = this.datasetRange;
      const obj = valueObj;
      data["datasetRange"] = obj;
    }
    if (this.equation !== null) {
      const valueObj = this.equation;
      const obj = valueObj;
      data["equation"] = obj;
    }
    if (this.equationIntercept !== null) {
      const valueObj = this.equationIntercept;
      const obj = valueObj;
      data["equationIntercept"] = obj;
    }
    if (this.equationR2 !== null) {
      const valueObj = this.equationR2;
      const obj = valueObj;
      data["equationR2"] = obj;
    }
    if (this.equationSlope !== null) {
      const valueObj = this.equationSlope;
      const obj = valueObj;
      data["equationSlope"] = obj;
    }
    if (this.equationSlopeUncertainty !== null) {
      const valueObj = this.equationSlopeUncertainty;
      const obj = valueObj;
      data["equationSlopeUncertainty"] = obj;
    }
    if (this.method !== null) {
      const valueObj = this.method;
      const obj = valueObj;
      data["method"] = obj;
    }
    if (this.methodDetail !== null) {
      const valueObj = this.methodDetail;
      const obj = valueObj;
      data["methodDetail"] = obj;
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = valueObj;
      data["notes"] = obj;
    }
    if (this.proxyDataset !== null) {
      const valueObj = this.proxyDataset;
      const obj = valueObj;
      data["proxyDataset"] = obj;
    }
    if (this.seasonality !== null) {
      const valueObj = this.seasonality;
      const obj = valueObj;
      data["hasSeasonality"] = obj;
    }
    if (this.targetDataset !== null) {
      const valueObj = this.targetDataset;
      const obj = valueObj;
      data["targetDataset"] = obj;
    }
    if (this.uncertainty !== null) {
      const valueObj = this.uncertainty;
      const obj = valueObj;
      data["uncertainty"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Calibration();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "datasetRange") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.datasetRange = obj;
        continue;
      }
      if (key === "doi") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.dOI = obj;
        continue;
      }
      if (key === "equation") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.equation = obj;
        continue;
      }
      if (key === "equationIntercept") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.equationIntercept = obj;
        continue;
      }
      if (key === "equationR2") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.equationR2 = obj;
        continue;
      }
      if (key === "equationSlope") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.equationSlope = obj;
        continue;
      }
      if (key === "equationSlopeUncertainty") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.equationSlopeUncertainty = obj;
        continue;
      }
      if (key === "hasSeasonality") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.seasonality = obj;
        continue;
      }
      if (key === "method") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.method = obj;
        continue;
      }
      if (key === "methodDetail") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.methodDetail = obj;
        continue;
      }
      if (key === "notes") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.notes = obj;
        continue;
      }
      if (key === "proxyDataset") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.proxyDataset = obj;
        continue;
      }
      if (key === "targetDataset") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.targetDataset = obj;
        continue;
      }
      if (key === "uncertainty") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.uncertainty = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getDOI() {
    return this.dOI;
  }
  setDOI(dOI) {
    this.dOI = dOI;
  }
  getDatasetRange() {
    return this.datasetRange;
  }
  setDatasetRange(datasetRange) {
    this.datasetRange = datasetRange;
  }
  getEquation() {
    return this.equation;
  }
  setEquation(equation) {
    this.equation = equation;
  }
  getEquationIntercept() {
    return this.equationIntercept;
  }
  setEquationIntercept(equationIntercept) {
    this.equationIntercept = equationIntercept;
  }
  getEquationR2() {
    return this.equationR2;
  }
  setEquationR2(equationR2) {
    this.equationR2 = equationR2;
  }
  getEquationSlope() {
    return this.equationSlope;
  }
  setEquationSlope(equationSlope) {
    this.equationSlope = equationSlope;
  }
  getEquationSlopeUncertainty() {
    return this.equationSlopeUncertainty;
  }
  setEquationSlopeUncertainty(equationSlopeUncertainty) {
    this.equationSlopeUncertainty = equationSlopeUncertainty;
  }
  getMethod() {
    return this.method;
  }
  setMethod(method) {
    this.method = method;
  }
  getMethodDetail() {
    return this.methodDetail;
  }
  setMethodDetail(methodDetail) {
    this.methodDetail = methodDetail;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  getProxyDataset() {
    return this.proxyDataset;
  }
  setProxyDataset(proxyDataset) {
    this.proxyDataset = proxyDataset;
  }
  getSeasonality() {
    return this.seasonality;
  }
  setSeasonality(seasonality) {
    this.seasonality = seasonality;
  }
  getTargetDataset() {
    return this.targetDataset;
  }
  setTargetDataset(targetDataset) {
    this.targetDataset = targetDataset;
  }
  getUncertainty() {
    return this.uncertainty;
  }
  setUncertainty(uncertainty) {
    this.uncertainty = uncertainty;
  }
};

// src/classes/compilation.ts
var Compilation = class _Compilation {
  constructor() {
    this.name = null;
    this.versions = [];
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Compilation";
    this._id = this._ns + "/" + uniqid("Compilation");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Compilation();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    thisObj.versions = [];
    for (const value of data.versions || []) {
      thisObj.versions.push(value);
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Compilation();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else if (key === "hasVersion") {
        thisObj.versions = [];
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.versions.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasName"] = [obj];
    }
    if (this.versions.length > 0) {
      data[this._id]["hasVersion"] = [];
      for (const valueObj of this.versions) {
        const obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
        data[this._id]["hasVersion"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["compilationName"] = obj;
    }
    if (this.versions.length > 0) {
      data["compilationVersion"] = [];
      for (const valueObj of this.versions) {
        const obj = valueObj;
        data["compilationVersion"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Compilation();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "compilationName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      if (key === "compilationVersion") {
        let obj = null;
        thisObj.versions = [];
        for (const value of pvalue) {
          obj = value;
          thisObj.versions.push(obj);
        }
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
  }
  getVersions() {
    return this.versions;
  }
  setVersions(versions) {
    this.versions = versions;
  }
  addVersion(versions) {
    this.versions.push(versions);
  }
};

// src/classes/interpretationseasonality.ts
var _InterpretationSeasonality = class _InterpretationSeasonality {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _InterpretationSeasonality.synonyms) {
      const synobj = _InterpretationSeasonality.synonyms[lowerSynonym];
      return new _InterpretationSeasonality(synobj.id, synobj.label);
    }
    return null;
  }
};
_InterpretationSeasonality.synonyms = SYNONYMS.INTERPRETATION?.InterpretationSeasonality;
var InterpretationSeasonality = _InterpretationSeasonality;
var InterpretationSeasonalityConstants = class {
};
InterpretationSeasonalityConstants.Oct_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-May", "Oct-May");
InterpretationSeasonalityConstants.Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun", "Jun");
InterpretationSeasonalityConstants.Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul", "Jul");
InterpretationSeasonalityConstants.Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug", "Aug");
InterpretationSeasonalityConstants.Annual = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Annual", "Annual");
InterpretationSeasonalityConstants.Winter = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Winter", "Winter");
InterpretationSeasonalityConstants.Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr", "Apr");
InterpretationSeasonalityConstants.Apr_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Aug", "Apr-Aug");
InterpretationSeasonalityConstants.Apr_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Dec", "Apr-Dec");
InterpretationSeasonalityConstants.Apr_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Feb", "Apr-Feb");
InterpretationSeasonalityConstants.Apr_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Jan", "Apr-Jan");
InterpretationSeasonalityConstants.Apr_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Jul", "Apr-Jul");
InterpretationSeasonalityConstants.Apr_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Jun", "Apr-Jun");
InterpretationSeasonalityConstants.Apr_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Mar", "Apr-Mar");
InterpretationSeasonalityConstants.Apr_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-May", "Apr-May");
InterpretationSeasonalityConstants.Apr_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Nov", "Apr-Nov");
InterpretationSeasonalityConstants.Apr_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Oct", "Apr-Oct");
InterpretationSeasonalityConstants.Apr_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Apr-Sep", "Apr-Sep");
InterpretationSeasonalityConstants.Summer = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Summer", "Summer");
InterpretationSeasonalityConstants.Aug_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Apr", "Aug-Apr");
InterpretationSeasonalityConstants.Aug_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Dec", "Aug-Dec");
InterpretationSeasonalityConstants.Aug_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Feb", "Aug-Feb");
InterpretationSeasonalityConstants.Aug_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Jan", "Aug-Jan");
InterpretationSeasonalityConstants.Aug_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Jul", "Aug-Jul");
InterpretationSeasonalityConstants.Aug_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Jun", "Aug-Jun");
InterpretationSeasonalityConstants.Aug_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Mar", "Aug-Mar");
InterpretationSeasonalityConstants.Aug_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-May", "Aug-May");
InterpretationSeasonalityConstants.Aug_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Nov", "Aug-Nov");
InterpretationSeasonalityConstants.Aug_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Oct", "Aug-Oct");
InterpretationSeasonalityConstants.Aug_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Aug-Sep", "Aug-Sep");
InterpretationSeasonalityConstants.Growing_Season = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Growing_Season", "Growing Season");
InterpretationSeasonalityConstants.Coldest_Month = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Coldest_Month", "Coldest Month");
InterpretationSeasonalityConstants.Dec_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Apr", "Dec-Apr");
InterpretationSeasonalityConstants.Dec_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Aug", "Dec-Aug");
InterpretationSeasonalityConstants.Dec_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Feb", "Dec-Feb");
InterpretationSeasonalityConstants.Dec_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Jan", "Dec-Jan");
InterpretationSeasonalityConstants.Dec_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Jul", "Dec-Jul");
InterpretationSeasonalityConstants.Dec_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Jun", "Dec-Jun");
InterpretationSeasonalityConstants.Dec_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Mar", "Dec-Mar");
InterpretationSeasonalityConstants.Dec_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-May", "Dec-May");
InterpretationSeasonalityConstants.Dec_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Oct", "Dec-Oct");
InterpretationSeasonalityConstants.Dec_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Dec-Sep", "Dec-Sep");
InterpretationSeasonalityConstants.Fall = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Fall", "Fall");
InterpretationSeasonalityConstants.Feb_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Aug", "Feb-Aug");
InterpretationSeasonalityConstants.Feb_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Apr", "Feb-Apr");
InterpretationSeasonalityConstants.Feb_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Dec", "Feb-Dec");
InterpretationSeasonalityConstants.Feb_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Jul", "Feb-Jul");
InterpretationSeasonalityConstants.Feb_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Jun", "Feb-Jun");
InterpretationSeasonalityConstants.Feb_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Mar", "Feb-Mar");
InterpretationSeasonalityConstants.Feb_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-May", "Feb-May");
InterpretationSeasonalityConstants.Feb_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Nov", "Feb-Nov");
InterpretationSeasonalityConstants.Feb_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Oct", "Feb-Oct");
InterpretationSeasonalityConstants.Feb_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Feb-Sep", "Feb-Sep");
InterpretationSeasonalityConstants.Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan", "Jan");
InterpretationSeasonalityConstants.Jan_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Apr", "Jan-Apr");
InterpretationSeasonalityConstants.Jan_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Aug", "Jan-Aug");
InterpretationSeasonalityConstants.Jan_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Feb", "Jan-Feb");
InterpretationSeasonalityConstants.Jan_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Jul", "Jan-Jul");
InterpretationSeasonalityConstants.Jan_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Jun", "Jan-Jun");
InterpretationSeasonalityConstants.Jan_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Mar", "Jan-Mar");
InterpretationSeasonalityConstants.Jan_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-May", "Jan-May");
InterpretationSeasonalityConstants.Jan_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Nov", "Jan-Nov");
InterpretationSeasonalityConstants.Jan_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Oct", "Jan-Oct");
InterpretationSeasonalityConstants.Jan_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jan-Sep", "Jan-Sep");
InterpretationSeasonalityConstants.May_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Sep", "May-Sep");
InterpretationSeasonalityConstants.Jul_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Apr", "Jul-Apr");
InterpretationSeasonalityConstants.Jul_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Aug", "Jul-Aug");
InterpretationSeasonalityConstants.Jul_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Dec", "Jul-Dec");
InterpretationSeasonalityConstants.Jul_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Feb", "Jul-Feb");
InterpretationSeasonalityConstants.Jul_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Jan", "Jul-Jan");
InterpretationSeasonalityConstants.Jul_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Jun", "Jul-Jun");
InterpretationSeasonalityConstants.Jul_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Mar", "Jul-Mar");
InterpretationSeasonalityConstants.Jul_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-May", "Jul-May");
InterpretationSeasonalityConstants.Jul_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Nov", "Jul-Nov");
InterpretationSeasonalityConstants.Jul_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Oct", "Jul-Oct");
InterpretationSeasonalityConstants.Jul_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jul-Sep", "Jul-Sep");
InterpretationSeasonalityConstants.Jun_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Apr", "Jun-Apr");
InterpretationSeasonalityConstants.Jun_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Aug", "Jun-Aug");
InterpretationSeasonalityConstants.Jun_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Sep", "Jun-Sep");
InterpretationSeasonalityConstants.Jun_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Dec", "Jun-Dec");
InterpretationSeasonalityConstants.Jun_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Feb", "Jun-Feb");
InterpretationSeasonalityConstants.Jun_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Jan", "Jun-Jan");
InterpretationSeasonalityConstants.Jun_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Jul", "Jun-Jul");
InterpretationSeasonalityConstants.Jun_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Mar", "Jun-Mar");
InterpretationSeasonalityConstants.Jun_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Nov", "Jun-Nov");
InterpretationSeasonalityConstants.Jun_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Jun-Oct", "Jun-Oct");
InterpretationSeasonalityConstants.Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar", "Mar");
InterpretationSeasonalityConstants.Mar_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Apr", "Mar-Apr");
InterpretationSeasonalityConstants.Mar_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Aug", "Mar-Aug");
InterpretationSeasonalityConstants.Mar_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Dec", "Mar-Dec");
InterpretationSeasonalityConstants.Mar_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Jan", "Mar-Jan");
InterpretationSeasonalityConstants.Mar_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Jul", "Mar-Jul");
InterpretationSeasonalityConstants.Mar_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Jun", "Mar-Jun");
InterpretationSeasonalityConstants.Mar_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-May", "Mar-May");
InterpretationSeasonalityConstants.Mar_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Nov", "Mar-Nov");
InterpretationSeasonalityConstants.Mar_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Oct", "Mar-Oct");
InterpretationSeasonalityConstants.Mar_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Mar-Sep", "Mar-Sep");
InterpretationSeasonalityConstants.May_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Apr", "May-Apr");
InterpretationSeasonalityConstants.May_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Aug", "May-Aug");
InterpretationSeasonalityConstants.May_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Dec", "May-Dec");
InterpretationSeasonalityConstants.May_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Oct", "May-Oct");
InterpretationSeasonalityConstants.May_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Feb", "May-Feb");
InterpretationSeasonalityConstants.May_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Jan", "May-Jan");
InterpretationSeasonalityConstants.May_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Jul", "May-Jul");
InterpretationSeasonalityConstants.May_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Jun", "May-Jun");
InterpretationSeasonalityConstants.May_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Mar", "May-Mar");
InterpretationSeasonalityConstants.May_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#May-Nov", "May-Nov");
InterpretationSeasonalityConstants.needsToBeChanged = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#needsToBeChanged", "needsToBeChanged");
InterpretationSeasonalityConstants.Nov_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Apr", "Nov-Apr");
InterpretationSeasonalityConstants.Nov_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Aug", "Nov-Aug");
InterpretationSeasonalityConstants.Nov_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Dec", "Nov-Dec");
InterpretationSeasonalityConstants.Nov_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Feb", "Nov-Feb");
InterpretationSeasonalityConstants.Nov_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Jan", "Nov-Jan");
InterpretationSeasonalityConstants.Nov_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Jul", "Nov-Jul");
InterpretationSeasonalityConstants.Nov_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Jun", "Nov-Jun");
InterpretationSeasonalityConstants.Nov_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Mar", "Nov-Mar");
InterpretationSeasonalityConstants.Nov_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-May", "Nov-May");
InterpretationSeasonalityConstants.Nov_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Oct", "Nov-Oct");
InterpretationSeasonalityConstants.Nov_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Nov-Sep", "Nov-Sep");
InterpretationSeasonalityConstants.Oct_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Apr", "Oct-Apr");
InterpretationSeasonalityConstants.Oct_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Aug", "Oct-Aug");
InterpretationSeasonalityConstants.Oct_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Dec", "Oct-Dec");
InterpretationSeasonalityConstants.Oct_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Feb", "Oct-Feb");
InterpretationSeasonalityConstants.Oct_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Jan", "Oct-Jan");
InterpretationSeasonalityConstants.Oct_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Jul", "Oct-Jul");
InterpretationSeasonalityConstants.Oct_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Jun", "Oct-Jun");
InterpretationSeasonalityConstants.Oct_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Mar", "Oct-Mar");
InterpretationSeasonalityConstants.Oct_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Nov", "Oct-Nov");
InterpretationSeasonalityConstants.Oct_Sep = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Oct-Sep", "Oct-Sep");
InterpretationSeasonalityConstants.Sep_Apr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Apr", "Sep-Apr");
InterpretationSeasonalityConstants.Sep_Aug = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Aug", "Sep-Aug");
InterpretationSeasonalityConstants.Sep_Dec = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Dec", "Sep-Dec");
InterpretationSeasonalityConstants.Sep_Feb = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Feb", "Sep-Feb");
InterpretationSeasonalityConstants.Sep_Jan = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Jan", "Sep-Jan");
InterpretationSeasonalityConstants.Sep_Jul = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Jul", "Sep-Jul");
InterpretationSeasonalityConstants.Sep_Jun = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Jun", "Sep-Jun");
InterpretationSeasonalityConstants.Sep_Mar = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Mar", "Sep-Mar");
InterpretationSeasonalityConstants.Sep_May = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-May", "Sep-May");
InterpretationSeasonalityConstants.Sep_Nov = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Nov", "Sep-Nov");
InterpretationSeasonalityConstants.Sep_Oct = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Sep-Oct", "Sep-Oct");
InterpretationSeasonalityConstants.Spr_Sum = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Spr-Sum", "Spr-Sum");
InterpretationSeasonalityConstants.Spring = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Spring", "Spring");
InterpretationSeasonalityConstants.subannual = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#subannual", "subannual");
InterpretationSeasonalityConstants.Warmest_Month = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Warmest_Month", "Warmest Month");
InterpretationSeasonalityConstants.Wet_Season = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Wet_Season", "Wet Season");
InterpretationSeasonalityConstants.Win_Spr = new InterpretationSeasonality("http://linked.earth/ontology/interpretation#Win-Spr", "Win-Spr");

// src/classes/interpretationvariable.ts
var _InterpretationVariable = class _InterpretationVariable {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _InterpretationVariable.synonyms) {
      const synobj = _InterpretationVariable.synonyms[lowerSynonym];
      return new _InterpretationVariable(synobj.id, synobj.label);
    }
    return null;
  }
};
_InterpretationVariable.synonyms = SYNONYMS.INTERPRETATION?.InterpretationVariable;
var InterpretationVariable = _InterpretationVariable;
var InterpretationVariableConstants = class {
};
InterpretationVariableConstants.C3C4Ratio = new InterpretationVariable("http://linked.earth/ontology/interpretation#C3C4Ratio", "C3C4Ratio");
InterpretationVariableConstants.circulationIndex = new InterpretationVariable("http://linked.earth/ontology/interpretation#circulationIndex", "circulationIndex");
InterpretationVariableConstants.circulationVariable = new InterpretationVariable("http://linked.earth/ontology/interpretation#circulationVariable", "circulationVariable");
InterpretationVariableConstants.dissolvedOxygen = new InterpretationVariable("http://linked.earth/ontology/interpretation#dissolvedOxygen", "dissolvedOxygen");
InterpretationVariableConstants.dust = new InterpretationVariable("http://linked.earth/ontology/interpretation#dust", "dust");
InterpretationVariableConstants.ELA = new InterpretationVariable("http://linked.earth/ontology/interpretation#ELA", "ELA");
InterpretationVariableConstants.evaporation = new InterpretationVariable("http://linked.earth/ontology/interpretation#evaporation", "evaporation");
InterpretationVariableConstants.fire = new InterpretationVariable("http://linked.earth/ontology/interpretation#fire", "fire");
InterpretationVariableConstants.growingDegreeDays = new InterpretationVariable("http://linked.earth/ontology/interpretation#growingDegreeDays", "growingDegreeDays");
InterpretationVariableConstants.hydrologicBalance = new InterpretationVariable("http://linked.earth/ontology/interpretation#hydrologicBalance", "hydrologicBalance");
InterpretationVariableConstants.lakeWaterIsotope = new InterpretationVariable("http://linked.earth/ontology/interpretation#lakeWaterIsotope", "lakeWaterIsotope");
InterpretationVariableConstants.meltwater = new InterpretationVariable("http://linked.earth/ontology/interpretation#meltwater", "meltwater");
InterpretationVariableConstants.needsToBeReplaced = new InterpretationVariable("http://linked.earth/ontology/interpretation#needsToBeReplaced", "needsToBeReplaced");
InterpretationVariableConstants.P_E = new InterpretationVariable("http://linked.earth/ontology/interpretation#P-E", "P-E");
InterpretationVariableConstants.precipitation = new InterpretationVariable("http://linked.earth/ontology/interpretation#precipitation", "precipitation");
InterpretationVariableConstants.precipitationDeuteriumExcess = new InterpretationVariable("http://linked.earth/ontology/interpretation#precipitationDeuteriumExcess", "precipitationDeuteriumExcess");
InterpretationVariableConstants.precipitationIsotope = new InterpretationVariable("http://linked.earth/ontology/interpretation#precipitationIsotope", "precipitationIsotope");
InterpretationVariableConstants.productivity = new InterpretationVariable("http://linked.earth/ontology/interpretation#productivity", "productivity");
InterpretationVariableConstants.relativeHumidity = new InterpretationVariable("http://linked.earth/ontology/interpretation#relativeHumidity", "relativeHumidity");
InterpretationVariableConstants.salinity = new InterpretationVariable("http://linked.earth/ontology/interpretation#salinity", "salinity");
InterpretationVariableConstants.seaIce = new InterpretationVariable("http://linked.earth/ontology/interpretation#seaIce", "seaIce");
InterpretationVariableConstants.seasonality = new InterpretationVariable("http://linked.earth/ontology/interpretation#seasonality", "seasonality");
InterpretationVariableConstants.seawaterIsotope = new InterpretationVariable("http://linked.earth/ontology/interpretation#seawaterIsotope", "seawaterIsotope");
InterpretationVariableConstants.streamflow = new InterpretationVariable("http://linked.earth/ontology/interpretation#streamflow", "streamflow");
InterpretationVariableConstants.sunlight = new InterpretationVariable("http://linked.earth/ontology/interpretation#sunlight", "sunlight");
InterpretationVariableConstants.surfacePressure = new InterpretationVariable("http://linked.earth/ontology/interpretation#surfacePressure", "surfacePressure");
InterpretationVariableConstants.temperature = new InterpretationVariable("http://linked.earth/ontology/interpretation#temperature", "temperature");
InterpretationVariableConstants.upwelling = new InterpretationVariable("http://linked.earth/ontology/interpretation#upwelling", "upwelling");
InterpretationVariableConstants.windSpeed = new InterpretationVariable("http://linked.earth/ontology/interpretation#windSpeed", "windSpeed");

// src/classes/interpretation.ts
var Interpretation = class _Interpretation {
  constructor() {
    this.basis = null;
    this.direction = null;
    this.local = null;
    this.mathematicalRelation = null;
    this.notes = null;
    this.rank = null;
    this.scope = null;
    this.seasonality = null;
    this.seasonalityGeneral = null;
    this.seasonalityOriginal = null;
    this.variable = null;
    this.variableDetail = null;
    this.variableGeneral = null;
    this.variableGeneralDirection = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Interpretation";
    this._id = this._ns + "/" + uniqid("Interpretation");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Interpretation();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.basis !== null) {
      thisObj.basis = data.basis;
    }
    if (data.direction !== null) {
      thisObj.direction = data.direction;
    }
    if (data.local !== null) {
      thisObj.local = data.local;
    }
    if (data.mathematicalRelation !== null) {
      thisObj.mathematicalRelation = data.mathematicalRelation;
    }
    if (data.notes !== null) {
      thisObj.notes = data.notes;
    }
    if (data.rank !== null) {
      thisObj.rank = data.rank;
    }
    if (data.scope !== null) {
      thisObj.scope = data.scope;
    }
    if (data.seasonality !== null) {
      thisObj.seasonality = new InterpretationSeasonality(data.seasonality.id, data.seasonality.label);
    }
    if (data.seasonalityGeneral !== null) {
      thisObj.seasonalityGeneral = new InterpretationSeasonality(data.seasonalityGeneral.id, data.seasonalityGeneral.label);
    }
    if (data.seasonalityOriginal !== null) {
      thisObj.seasonalityOriginal = new InterpretationSeasonality(data.seasonalityOriginal.id, data.seasonalityOriginal.label);
    }
    if (data.variable !== null) {
      thisObj.variable = new InterpretationVariable(data.variable.id, data.variable.label);
    }
    if (data.variableDetail !== null) {
      thisObj.variableDetail = data.variableDetail;
    }
    if (data.variableGeneral !== null) {
      thisObj.variableGeneral = data.variableGeneral;
    }
    if (data.variableGeneralDirection !== null) {
      thisObj.variableGeneralDirection = data.variableGeneralDirection;
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Interpretation();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasBasis") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.basis = obj;
        }
      } else if (key === "hasDirection") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.direction = obj;
        }
      } else if (key === "hasMathematicalRelation") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.mathematicalRelation = obj;
        }
      } else if (key === "hasNotes") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes = obj;
        }
      } else if (key === "hasRank") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.rank = obj;
        }
      } else if (key === "hasScope") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.scope = obj;
        }
      } else if (key === "hasSeasonality") {
        for (const val of value) {
          let obj = null;
          obj = InterpretationSeasonality.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.seasonality = obj;
        }
      } else if (key === "hasSeasonalityGeneral") {
        for (const val of value) {
          let obj = null;
          obj = InterpretationSeasonality.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.seasonalityGeneral = obj;
        }
      } else if (key === "hasSeasonalityOriginal") {
        for (const val of value) {
          let obj = null;
          obj = InterpretationSeasonality.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.seasonalityOriginal = obj;
        }
      } else if (key === "hasVariable") {
        for (const val of value) {
          let obj = null;
          obj = InterpretationVariable.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.variable = obj;
        }
      } else if (key === "hasVariableDetail") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.variableDetail = obj;
        }
      } else if (key === "hasVariableGeneral") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.variableGeneral = obj;
        }
      } else if (key === "hasVariableGeneralDirection") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.variableGeneralDirection = obj;
        }
      } else if (key === "isLocal") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.local = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.basis !== null) {
      const valueObj = this.basis;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasBasis"] = [obj];
    }
    if (this.direction !== null) {
      const valueObj = this.direction;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDirection"] = [obj];
    }
    if (this.local !== null) {
      const valueObj = this.local;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["isLocal"] = [obj];
    }
    if (this.mathematicalRelation !== null) {
      const valueObj = this.mathematicalRelation;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasMathematicalRelation"] = [obj];
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasNotes"] = [obj];
    }
    if (this.rank !== null) {
      const valueObj = this.rank;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasRank"] = [obj];
    }
    if (this.scope !== null) {
      const valueObj = this.scope;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasScope"] = [obj];
    }
    if (this.seasonality !== null) {
      const valueObj = this.seasonality;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasSeasonality"] = [obj];
    }
    if (this.seasonalityGeneral !== null) {
      const valueObj = this.seasonalityGeneral;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasSeasonalityGeneral"] = [obj];
    }
    if (this.seasonalityOriginal !== null) {
      const valueObj = this.seasonalityOriginal;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasSeasonalityOriginal"] = [obj];
    }
    if (this.variable !== null) {
      const valueObj = this.variable;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasVariable"] = [obj];
    }
    if (this.variableDetail !== null) {
      const valueObj = this.variableDetail;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVariableDetail"] = [obj];
    }
    if (this.variableGeneral !== null) {
      const valueObj = this.variableGeneral;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVariableGeneral"] = [obj];
    }
    if (this.variableGeneralDirection !== null) {
      const valueObj = this.variableGeneralDirection;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVariableGeneralDirection"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.basis !== null) {
      const valueObj = this.basis;
      const obj = valueObj;
      data["basis"] = obj;
    }
    if (this.direction !== null) {
      const valueObj = this.direction;
      const obj = valueObj;
      data["direction"] = obj;
    }
    if (this.local !== null) {
      const valueObj = this.local;
      const obj = valueObj;
      data["isLocal"] = obj;
    }
    if (this.mathematicalRelation !== null) {
      const valueObj = this.mathematicalRelation;
      const obj = valueObj;
      data["mathematicalRelation"] = obj;
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = valueObj;
      data["notes"] = obj;
    }
    if (this.rank !== null) {
      const valueObj = this.rank;
      const obj = valueObj;
      data["rank"] = obj;
    }
    if (this.scope !== null) {
      const valueObj = this.scope;
      const obj = valueObj;
      data["scope"] = obj;
    }
    if (this.seasonality !== null) {
      const valueObj = this.seasonality;
      const obj = valueObj.toJson();
      data["seasonality"] = obj;
    }
    if (this.seasonalityGeneral !== null) {
      const valueObj = this.seasonalityGeneral;
      const obj = valueObj.toJson();
      data["seasonalityGeneral"] = obj;
    }
    if (this.seasonalityOriginal !== null) {
      const valueObj = this.seasonalityOriginal;
      const obj = valueObj.toJson();
      data["seasonalityOriginal"] = obj;
    }
    if (this.variable !== null) {
      const valueObj = this.variable;
      const obj = valueObj.toJson();
      data["variable"] = obj;
    }
    if (this.variableDetail !== null) {
      const valueObj = this.variableDetail;
      const obj = valueObj;
      data["variableDetail"] = obj;
    }
    if (this.variableGeneral !== null) {
      const valueObj = this.variableGeneral;
      const obj = valueObj;
      data["variableGeneral"] = obj;
    }
    if (this.variableGeneralDirection !== null) {
      const valueObj = this.variableGeneralDirection;
      const obj = valueObj;
      data["variableGeneralDirection"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Interpretation();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "basis") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.basis = obj;
        continue;
      }
      if (key === "direction") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.direction = obj;
        continue;
      }
      if (key === "isLocal") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.local = obj;
        continue;
      }
      if (key === "mathematicalRelation") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.mathematicalRelation = obj;
        continue;
      }
      if (key === "notes") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.notes = obj;
        continue;
      }
      if (key === "rank") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.rank = obj;
        continue;
      }
      if (key === "scope") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.scope = obj;
        continue;
      }
      if (key === "seasonality") {
        let obj = null;
        let value = pvalue;
        obj = InterpretationSeasonality.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.seasonality = obj;
        continue;
      }
      if (key === "seasonalityGeneral") {
        let obj = null;
        let value = pvalue;
        obj = InterpretationSeasonality.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.seasonalityGeneral = obj;
        continue;
      }
      if (key === "seasonalityOriginal") {
        let obj = null;
        let value = pvalue;
        obj = InterpretationSeasonality.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.seasonalityOriginal = obj;
        continue;
      }
      if (key === "variable") {
        let obj = null;
        let value = pvalue;
        obj = InterpretationVariable.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.variable = obj;
        continue;
      }
      if (key === "variableDetail") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.variableDetail = obj;
        continue;
      }
      if (key === "variableGeneral") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.variableGeneral = obj;
        continue;
      }
      if (key === "variableGeneralDirection") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.variableGeneralDirection = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getBasis() {
    return this.basis;
  }
  setBasis(basis) {
    this.basis = basis;
  }
  getDirection() {
    return this.direction;
  }
  setDirection(direction) {
    this.direction = direction;
  }
  getMathematicalRelation() {
    return this.mathematicalRelation;
  }
  setMathematicalRelation(mathematicalRelation) {
    this.mathematicalRelation = mathematicalRelation;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  getRank() {
    return this.rank;
  }
  setRank(rank) {
    this.rank = rank;
  }
  getScope() {
    return this.scope;
  }
  setScope(scope) {
    this.scope = scope;
  }
  getSeasonality() {
    return this.seasonality;
  }
  setSeasonality(seasonality) {
    this.seasonality = seasonality;
  }
  getSeasonalityGeneral() {
    return this.seasonalityGeneral;
  }
  setSeasonalityGeneral(seasonalityGeneral) {
    this.seasonalityGeneral = seasonalityGeneral;
  }
  getSeasonalityOriginal() {
    return this.seasonalityOriginal;
  }
  setSeasonalityOriginal(seasonalityOriginal) {
    this.seasonalityOriginal = seasonalityOriginal;
  }
  getVariable() {
    return this.variable;
  }
  setVariable(variable) {
    this.variable = variable;
  }
  getVariableDetail() {
    return this.variableDetail;
  }
  setVariableDetail(variableDetail) {
    this.variableDetail = variableDetail;
  }
  getVariableGeneral() {
    return this.variableGeneral;
  }
  setVariableGeneral(variableGeneral) {
    this.variableGeneral = variableGeneral;
  }
  getVariableGeneralDirection() {
    return this.variableGeneralDirection;
  }
  setVariableGeneralDirection(variableGeneralDirection) {
    this.variableGeneralDirection = variableGeneralDirection;
  }
  isLocal() {
    return this.local;
  }
  setLocal(local) {
    this.local = local;
  }
};

// src/classes/paleoproxy.ts
var _PaleoProxy = class _PaleoProxy {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _PaleoProxy.synonyms) {
      const synobj = _PaleoProxy.synonyms[lowerSynonym];
      return new _PaleoProxy(synobj.id, synobj.label);
    }
    return null;
  }
};
_PaleoProxy.synonyms = SYNONYMS.PROXIES?.PaleoProxy;
var PaleoProxy = _PaleoProxy;
var PaleoProxyConstants = class {
};
PaleoProxyConstants.accumulation_rate = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#accumulation_rate", "accumulation rate");
PaleoProxyConstants.ACL = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#ACL", "ACL");
PaleoProxyConstants.Al2O3 = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Al2O3", "Al2O3");
PaleoProxyConstants.alkenone = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#alkenone", "alkenone");
PaleoProxyConstants.amoeba = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#amoeba", "amoeba");
PaleoProxyConstants.Ba_Al = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ba_Al", "Ba/Al");
PaleoProxyConstants.Ba_Ca = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ba_Ca", "Ba/Ca");
PaleoProxyConstants.biomarker = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#biomarker", "biomarker");
PaleoProxyConstants.BIT = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#BIT", "BIT");
PaleoProxyConstants.borehole = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#borehole", "borehole");
PaleoProxyConstants.BSi = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#BSi", "BSi");
PaleoProxyConstants.bubble_frequency = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#bubble_frequency", "bubble frequency");
PaleoProxyConstants.bulk_density = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#bulk_density", "bulk density");
PaleoProxyConstants.bulk_sediment = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#bulk_sediment", "bulk sediment");
PaleoProxyConstants.C_N = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#C_N", "C/N");
PaleoProxyConstants.Ca_K = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ca_K", "Ca/K");
PaleoProxyConstants.Ca_Ti = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ca_Ti", "Ca/Ti");
PaleoProxyConstants.CaCO3 = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#CaCO3", "CaCO3");
PaleoProxyConstants.calcification_rate = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#calcification_rate", "calcification rate");
PaleoProxyConstants.calcite = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#calcite", "calcite");
PaleoProxyConstants.carbonate = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#carbonate", "carbonate");
PaleoProxyConstants.cellulose = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#cellulose", "cellulose");
PaleoProxyConstants.charcoal = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#charcoal", "charcoal");
PaleoProxyConstants.chironomid = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#chironomid", "chironomid");
PaleoProxyConstants.chlorophyll = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#chlorophyll", "chlorophyll");
PaleoProxyConstants.chrysophyte_assemblage = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#chrysophyte_assemblage", "chrysophyte assemblage");
PaleoProxyConstants.cladoceran = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#cladoceran", "cladoceran");
PaleoProxyConstants.coccolithophore = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#coccolithophore", "coccolithophore");
PaleoProxyConstants.d13C = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#d13C", "d13C");
PaleoProxyConstants.d15N = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#d15N", "d15N");
PaleoProxyConstants.d15N_d40Ar = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#d15N_d40Ar", "d15N/d40Ar");
PaleoProxyConstants.d18O = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#d18O", "d18O");
PaleoProxyConstants.dD = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#dD", "dD");
PaleoProxyConstants.deuterium_excess = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#deuterium_excess", "deuterium excess");
PaleoProxyConstants.diatom = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#diatom", "diatom");
PaleoProxyConstants.dinocyst = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#dinocyst", "dinocyst");
PaleoProxyConstants.dry_bulk_density = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#dry_bulk_density", "dry bulk density");
PaleoProxyConstants.Eu_Zr = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Eu_Zr", "Eu/Zr");
PaleoProxyConstants.Fe = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Fe", "Fe");
PaleoProxyConstants.Fe_Al = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Fe_Al", "Fe/Al");
PaleoProxyConstants.foraminifera = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#foraminifera", "foraminifera");
PaleoProxyConstants.GDGT = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#GDGT", "GDGT");
PaleoProxyConstants.grain_size = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#grain_size", "grain size");
PaleoProxyConstants.HBI = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#HBI", "HBI");
PaleoProxyConstants.historical = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#historical", "historical");
PaleoProxyConstants.humification = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#humification", "humification");
PaleoProxyConstants.ice_accumulation = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#ice_accumulation", "ice accumulation");
PaleoProxyConstants.ice_melt = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#ice_melt", "ice melt");
PaleoProxyConstants.inorganic_carbon = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#inorganic_carbon", "inorganic carbon");
PaleoProxyConstants.IP25 = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#IP25", "IP25");
PaleoProxyConstants.lake_level = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#lake_level", "lake level");
PaleoProxyConstants.latewood_cellulose = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#latewood_cellulose", "latewood cellulose");
PaleoProxyConstants.LDI = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#LDI", "LDI");
PaleoProxyConstants.macrofossils = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#macrofossils", "macrofossils");
PaleoProxyConstants.magnetic = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#magnetic", "magnetic");
PaleoProxyConstants.magnetic_susceptibility = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#magnetic_susceptibility", "magnetic susceptibility");
PaleoProxyConstants.mass_accumulation_rate = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#mass_accumulation_rate", "mass accumulation rate");
PaleoProxyConstants.maximum_latewood_density = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#maximum_latewood_density", "maximum latewood density");
PaleoProxyConstants.Mg = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Mg", "Mg");
PaleoProxyConstants.Mg_Ca = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Mg_Ca", "Mg/Ca");
PaleoProxyConstants.multiproxy = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#multiproxy", "multiproxy");
PaleoProxyConstants.Ti = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ti", "Ti");
PaleoProxyConstants.needs_to_be_changed = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#needs_to_be_changed", "needs to be changed");
PaleoProxyConstants.needsToBeChanged = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#needsToBeChanged", "needsToBeChanged");
PaleoProxyConstants.ostracod = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#ostracod", "ostracod");
PaleoProxyConstants.P_aqueous = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#P-aqueous", "P-aqueous");
PaleoProxyConstants.peat_ash = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#peat_ash", "peat ash");
PaleoProxyConstants.pH = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#pH", "pH");
PaleoProxyConstants.pollen = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#pollen", "pollen");
PaleoProxyConstants.radiolaria = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#radiolaria", "radiolaria");
PaleoProxyConstants.Rb = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Rb", "Rb");
PaleoProxyConstants.Rb_Sr = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Rb_Sr", "Rb/Sr");
PaleoProxyConstants.reflectance = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#reflectance", "reflectance");
PaleoProxyConstants.ring_width = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#ring_width", "ring width");
PaleoProxyConstants.Sr = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Sr", "Sr");
PaleoProxyConstants.Sr_Ca = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Sr_Ca", "Sr/Ca");
PaleoProxyConstants.stratigraphy = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#stratigraphy", "stratigraphy");
PaleoProxyConstants.sulfur = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#sulfur", "sulfur");
PaleoProxyConstants.TEX86 = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#TEX86", "TEX86");
PaleoProxyConstants.Ti_Al = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ti_Al", "Ti/Al");
PaleoProxyConstants.Ti_Ca = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#Ti_Ca", "Ti/Ca");
PaleoProxyConstants.TOC = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#TOC", "TOC");
PaleoProxyConstants.total_nitrogen = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#total_nitrogen", "total nitrogen");
PaleoProxyConstants.varve_thickness = new PaleoProxy("http://linked.earth/ontology/paleo_proxy#varve_thickness", "varve thickness");

// src/classes/paleoproxygeneral.ts
var _PaleoProxyGeneral = class _PaleoProxyGeneral {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _PaleoProxyGeneral.synonyms) {
      const synobj = _PaleoProxyGeneral.synonyms[lowerSynonym];
      return new _PaleoProxyGeneral(synobj.id, synobj.label);
    }
    return null;
  }
};
_PaleoProxyGeneral.synonyms = SYNONYMS.PROXIES?.PaleoProxyGeneral;
var PaleoProxyGeneral = _PaleoProxyGeneral;
var PaleoProxyGeneralConstants = class {
};
PaleoProxyGeneralConstants.biogenic = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#biogenic", "biogenic");
PaleoProxyGeneralConstants.cryophysical = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#cryophysical", "cryophysical");
PaleoProxyGeneralConstants.dendrophysical = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#dendrophysical", "dendrophysical");
PaleoProxyGeneralConstants.elemental = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#elemental", "elemental");
PaleoProxyGeneralConstants.faunal_assemblage = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#faunal_assemblage", "faunal assemblage");
PaleoProxyGeneralConstants.floral_assemblage = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#floral_assemblage", "floral assemblage");
PaleoProxyGeneralConstants.isotopic = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#isotopic", "isotopic");
PaleoProxyGeneralConstants.mineral = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#mineral", "mineral");
PaleoProxyGeneralConstants.pyrogenic = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#pyrogenic", "pyrogenic");
PaleoProxyGeneralConstants.sedimentology = new PaleoProxyGeneral("http://linked.earth/ontology/paleo_proxy#sedimentology", "sedimentology");

// src/classes/paleounit.ts
var _PaleoUnit = class _PaleoUnit {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _PaleoUnit.synonyms) {
      const synobj = _PaleoUnit.synonyms[lowerSynonym];
      return new _PaleoUnit(synobj.id, synobj.label);
    }
    return null;
  }
};
_PaleoUnit.synonyms = SYNONYMS.UNITS?.PaleoUnit;
var PaleoUnit = _PaleoUnit;
var PaleoUnitConstants = class {
};
PaleoUnitConstants.atomic_ratio = new PaleoUnit("http://linked.earth/ontology/paleo_units#atomic_ratio", "atomic ratio");
PaleoUnitConstants.cgs = new PaleoUnit("http://linked.earth/ontology/paleo_units#cgs", "cgs");
PaleoUnitConstants.cm = new PaleoUnit("http://linked.earth/ontology/paleo_units#cm", "cm");
PaleoUnitConstants.cm_kyr = new PaleoUnit("http://linked.earth/ontology/paleo_units#cm_kyr", "cm/kyr");
PaleoUnitConstants.cm_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#cm_yr", "cm/yr");
PaleoUnitConstants.cm3 = new PaleoUnit("http://linked.earth/ontology/paleo_units#cm3", "cm3");
PaleoUnitConstants.count = new PaleoUnit("http://linked.earth/ontology/paleo_units#count", "count");
PaleoUnitConstants.count_century = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_century", "count/century");
PaleoUnitConstants.count_cm2 = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_cm2", "count/cm2");
PaleoUnitConstants.count_cm2_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_cm2_yr", "count/cm2/yr");
PaleoUnitConstants.count_cm3 = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_cm3", "count/cm3");
PaleoUnitConstants.count_g = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_g", "count/g");
PaleoUnitConstants.count_kyr = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_kyr", "count/kyr");
PaleoUnitConstants.count_mL = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_mL", "count/mL");
PaleoUnitConstants.count_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#count_yr", "count/yr");
PaleoUnitConstants.cps = new PaleoUnit("http://linked.earth/ontology/paleo_units#cps", "cps");
PaleoUnitConstants.day = new PaleoUnit("http://linked.earth/ontology/paleo_units#day", "day");
PaleoUnitConstants.degC = new PaleoUnit("http://linked.earth/ontology/paleo_units#degC", "degC");
PaleoUnitConstants.degree = new PaleoUnit("http://linked.earth/ontology/paleo_units#degree", "degree");
PaleoUnitConstants.fraction = new PaleoUnit("http://linked.earth/ontology/paleo_units#fraction", "fraction");
PaleoUnitConstants.g = new PaleoUnit("http://linked.earth/ontology/paleo_units#g", "g");
PaleoUnitConstants.g_cm_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_cm_yr", "g/cm/yr");
PaleoUnitConstants.g_cm2 = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_cm2", "g/cm2");
PaleoUnitConstants.g_cm2_kyr = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_cm2_kyr", "g/cm2/kyr");
PaleoUnitConstants.g_cm2_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_cm2_yr", "g/cm2/yr");
PaleoUnitConstants.g_cm3 = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_cm3", "g/cm3");
PaleoUnitConstants.g_L = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_L", "g/L");
PaleoUnitConstants.g_m2 = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_m2", "g/m2");
PaleoUnitConstants.g_m2_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#g_m2_yr", "g/m2/yr");
PaleoUnitConstants.grayscale = new PaleoUnit("http://linked.earth/ontology/paleo_units#grayscale", "grayscale");
PaleoUnitConstants.kg_m2_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#kg_m2_yr", "kg/m2/yr");
PaleoUnitConstants.kg_m3 = new PaleoUnit("http://linked.earth/ontology/paleo_units#kg_m3", "kg/m3");
PaleoUnitConstants.km2 = new PaleoUnit("http://linked.earth/ontology/paleo_units#km2", "km2");
PaleoUnitConstants.km3 = new PaleoUnit("http://linked.earth/ontology/paleo_units#km3", "km3");
PaleoUnitConstants.log_mg_L_ = new PaleoUnit("http://linked.earth/ontology/paleo_units#log_mg_L_", "log(mg/L)");
PaleoUnitConstants.m = new PaleoUnit("http://linked.earth/ontology/paleo_units#m", "m");
PaleoUnitConstants.m3_kg = new PaleoUnit("http://linked.earth/ontology/paleo_units#m3_kg", "m3/kg");
PaleoUnitConstants.mg = new PaleoUnit("http://linked.earth/ontology/paleo_units#mg", "mg");
PaleoUnitConstants.mg_cm2_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#mg_cm2_yr", "mg/cm2/yr");
PaleoUnitConstants.mg_g = new PaleoUnit("http://linked.earth/ontology/paleo_units#mg_g", "mg/g");
PaleoUnitConstants.mg_kg = new PaleoUnit("http://linked.earth/ontology/paleo_units#mg_kg", "mg/kg");
PaleoUnitConstants.mg_L = new PaleoUnit("http://linked.earth/ontology/paleo_units#mg_L", "mg/L");
PaleoUnitConstants.mm = new PaleoUnit("http://linked.earth/ontology/paleo_units#mm", "mm");
PaleoUnitConstants.mm_day = new PaleoUnit("http://linked.earth/ontology/paleo_units#mm_day", "mm/day");
PaleoUnitConstants.mm_season = new PaleoUnit("http://linked.earth/ontology/paleo_units#mm_season", "mm/season");
PaleoUnitConstants.mm_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#mm_yr", "mm/yr");
PaleoUnitConstants.mmol_mol = new PaleoUnit("http://linked.earth/ontology/paleo_units#mmol_mol", "mmol/mol");
PaleoUnitConstants.months_year = new PaleoUnit("http://linked.earth/ontology/paleo_units#months_year", "months/year");
PaleoUnitConstants.needsToBeChanged = new PaleoUnit("http://linked.earth/ontology/paleo_units#needsToBeChanged", "needsToBeChanged");
PaleoUnitConstants.ng = new PaleoUnit("http://linked.earth/ontology/paleo_units#ng", "ng");
PaleoUnitConstants.ng_g = new PaleoUnit("http://linked.earth/ontology/paleo_units#ng_g", "ng/g");
PaleoUnitConstants.peak_area = new PaleoUnit("http://linked.earth/ontology/paleo_units#peak_area", "peak area");
PaleoUnitConstants.percent = new PaleoUnit("http://linked.earth/ontology/paleo_units#percent", "percent");
PaleoUnitConstants.permil = new PaleoUnit("http://linked.earth/ontology/paleo_units#permil", "permil");
PaleoUnitConstants.pH = new PaleoUnit("http://linked.earth/ontology/paleo_units#pH", "pH");
PaleoUnitConstants.ppb = new PaleoUnit("http://linked.earth/ontology/paleo_units#ppb", "ppb");
PaleoUnitConstants.ppm = new PaleoUnit("http://linked.earth/ontology/paleo_units#ppm", "ppm");
PaleoUnitConstants.practical_salinity_unit = new PaleoUnit("http://linked.earth/ontology/paleo_units#practical_salinity_unit", "practical salinity unit");
PaleoUnitConstants.ratio = new PaleoUnit("http://linked.earth/ontology/paleo_units#ratio", "ratio");
PaleoUnitConstants.SI = new PaleoUnit("http://linked.earth/ontology/paleo_units#SI", "SI");
PaleoUnitConstants.ug_cm2_yr = new PaleoUnit("http://linked.earth/ontology/paleo_units#ug_cm2_yr", "ug/cm2/yr");
PaleoUnitConstants.ug_g = new PaleoUnit("http://linked.earth/ontology/paleo_units#ug_g", "ug/g");
PaleoUnitConstants.um = new PaleoUnit("http://linked.earth/ontology/paleo_units#um", "um");
PaleoUnitConstants.umol_mol = new PaleoUnit("http://linked.earth/ontology/paleo_units#umol_mol", "umol/mol");
PaleoUnitConstants.unitless = new PaleoUnit("http://linked.earth/ontology/paleo_units#unitless", "unitless");
PaleoUnitConstants.yr_14C_BP = new PaleoUnit("http://linked.earth/ontology/paleo_units#yr_14C_BP", "yr 14C BP");
PaleoUnitConstants.yr_AD = new PaleoUnit("http://linked.earth/ontology/paleo_units#yr_AD", "yr AD");
PaleoUnitConstants.yr_b2k = new PaleoUnit("http://linked.earth/ontology/paleo_units#yr_b2k", "yr b2k");
PaleoUnitConstants.yr_BP = new PaleoUnit("http://linked.earth/ontology/paleo_units#yr_BP", "yr BP");
PaleoUnitConstants.yr_ka = new PaleoUnit("http://linked.earth/ontology/paleo_units#yr_ka", "yr ka");
PaleoUnitConstants.z_score = new PaleoUnit("http://linked.earth/ontology/paleo_units#z_score", "z score");

// src/classes/paleovariable.ts
var _PaleoVariable = class _PaleoVariable {
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
  equals(value) {
    return this.id === value.id;
  }
  getLabel() {
    return this.label;
  }
  getId() {
    return this.id;
  }
  toData(data = {}) {
    data[this.id] = {
      "label": [
        {
          "@datatype": null,
          "@type": "literal",
          "@value": this.label
        }
      ]
    };
    return data;
  }
  toJson() {
    return this.label;
  }
  static fromSynonym(synonym) {
    const lowerSynonym = synonym.toLowerCase();
    if (lowerSynonym in _PaleoVariable.synonyms) {
      const synobj = _PaleoVariable.synonyms[lowerSynonym];
      return new _PaleoVariable(synobj.id, synobj.label);
    }
    return null;
  }
};
_PaleoVariable.synonyms = SYNONYMS.VARIABLES?.PaleoVariable;
var PaleoVariable = _PaleoVariable;
var PaleoVariableConstants = class {
};
PaleoVariableConstants.ACL = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ACL", "ACL");
PaleoVariableConstants.AET_PET = new PaleoVariable("http://linked.earth/ontology/paleo_variables#AET_PET", "AET/PET");
PaleoVariableConstants.ARM_IRM = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ARM_IRM", "ARM/IRM");
PaleoVariableConstants.ARSTAN = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ARSTAN", "ARSTAN");
PaleoVariableConstants.Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Al", "Al");
PaleoVariableConstants.Al2O3 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Al2O3", "Al2O3");
PaleoVariableConstants.As = new PaleoVariable("http://linked.earth/ontology/paleo_variables#As", "As");
PaleoVariableConstants.BIT = new PaleoVariable("http://linked.earth/ontology/paleo_variables#BIT", "BIT");
PaleoVariableConstants.BSi = new PaleoVariable("http://linked.earth/ontology/paleo_variables#BSi", "BSi");
PaleoVariableConstants.Ba = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ba", "Ba");
PaleoVariableConstants.Ba_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ba_Al", "Ba/Al");
PaleoVariableConstants.Ba_Ca = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ba_Ca", "Ba/Ca");
PaleoVariableConstants.Be = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Be", "Be");
PaleoVariableConstants.Br = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Br", "Br");
PaleoVariableConstants.C20n_alkenoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C20n-alkenoicAcid", "C20n-alkenoicAcid");
PaleoVariableConstants.C21n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C21n-alkanoicAcid", "C21n-alkanoicAcid");
PaleoVariableConstants.C22n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C22n-alkanoicAcid", "C22n-alkanoicAcid");
PaleoVariableConstants.C23n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C23n-alkanoicAcid", "C23n-alkanoicAcid");
PaleoVariableConstants.C24n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C24n-alkanoicAcid", "C24n-alkanoicAcid");
PaleoVariableConstants.C25_2n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C25_2n-alkanoicAcid", "C25_2n-alkanoicAcid");
PaleoVariableConstants.C25n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C25n-alkanoicAcid", "C25n-alkanoicAcid");
PaleoVariableConstants.C26n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C26n-alkanoicAcid", "C26n-alkanoicAcid");
PaleoVariableConstants.C27n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C27n-alkanoicAcid", "C27n-alkanoicAcid");
PaleoVariableConstants.C28n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C28n-alkanoicAcid", "C28n-alkanoicAcid");
PaleoVariableConstants.C29n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C29n-alkanoicAcid", "C29n-alkanoicAcid");
PaleoVariableConstants.C30n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C30n-alkanoicAcid", "C30n-alkanoicAcid");
PaleoVariableConstants.C31n_alkanoicAcid = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C31n-alkanoicAcid", "C31n-alkanoicAcid");
PaleoVariableConstants.C37Alkenone = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C37Alkenone", "C37Alkenone");
PaleoVariableConstants.C37_2Alkenone = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C37_2Alkenone", "C37:2Alkenone");
PaleoVariableConstants.C37_3aAlkenone = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C37_3aAlkenone", "C37:3aAlkenone");
PaleoVariableConstants.C37_3bAlkenone = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C37_3bAlkenone", "C37:3bAlkenone");
PaleoVariableConstants.C37_4Alkenone = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C37_4Alkenone", "C37:4Alkenone");
PaleoVariableConstants.CBT = new PaleoVariable("http://linked.earth/ontology/paleo_variables#CBT", "CBT");
PaleoVariableConstants.CCA1 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#CCA1", "CCA1");
PaleoVariableConstants.CCA2 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#CCA2", "CCA2");
PaleoVariableConstants.CPI = new PaleoVariable("http://linked.earth/ontology/paleo_variables#CPI", "CPI");
PaleoVariableConstants.C_N = new PaleoVariable("http://linked.earth/ontology/paleo_variables#C_N", "C/N");
PaleoVariableConstants.Ca = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ca", "Ca");
PaleoVariableConstants.CaCO3 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#CaCO3", "CaCO3");
PaleoVariableConstants.CaO = new PaleoVariable("http://linked.earth/ontology/paleo_variables#CaO", "CaO");
PaleoVariableConstants.Ca_K = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ca_K", "Ca/K");
PaleoVariableConstants.Ca_Sr = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ca_Sr", "Ca/Sr");
PaleoVariableConstants.Ca_Ti = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ca_Ti", "Ca/Ti");
PaleoVariableConstants.Ti_Ca = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ti_Ca", "Ti/Ca");
PaleoVariableConstants.Cd = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Cd", "Cd");
PaleoVariableConstants.Cd_Mn = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Cd_Mn", "Cd/Mn");
PaleoVariableConstants.Cl = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Cl", "Cl");
PaleoVariableConstants.Co = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Co", "Co");
PaleoVariableConstants.Cr = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Cr", "Cr");
PaleoVariableConstants.Cu = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Cu", "Cu");
PaleoVariableConstants.DWHI = new PaleoVariable("http://linked.earth/ontology/paleo_variables#DWHI", "DWHI");
PaleoVariableConstants.Dd2H = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Dd2H", "Dd2H");
PaleoVariableConstants.EPS = new PaleoVariable("http://linked.earth/ontology/paleo_variables#EPS", "EPS");
PaleoVariableConstants.ElNinoEvent = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ElNinoEvent", "ElNinoEvent");
PaleoVariableConstants.Eu_Zr = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Eu_Zr", "Eu/Zr");
PaleoVariableConstants.Fe = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Fe", "Fe");
PaleoVariableConstants.Fe2O3 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Fe2O3", "Fe2O3");
PaleoVariableConstants.Fe_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Fe_Al", "Fe/Al");
PaleoVariableConstants.Fe_Ca = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Fe_Ca", "Fe/Ca");
PaleoVariableConstants.Fe_K = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Fe_K", "Fe/K");
PaleoVariableConstants.Fe_Mn = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Fe_Mn", "Fe/Mn");
PaleoVariableConstants.GDGT = new PaleoVariable("http://linked.earth/ontology/paleo_variables#GDGT", "GDGT");
PaleoVariableConstants.GDGT_0_Cren = new PaleoVariable("http://linked.earth/ontology/paleo_variables#GDGT-0_Cren", "GDGT-0/Cren");
PaleoVariableConstants.IP25 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#IP25", "IP25");
PaleoVariableConstants.IRM = new PaleoVariable("http://linked.earth/ontology/paleo_variables#IRM", "IRM");
PaleoVariableConstants.ITCZ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ITCZ", "ITCZ");
PaleoVariableConstants.JulianDay = new PaleoVariable("http://linked.earth/ontology/paleo_variables#JulianDay", "JulianDay");
PaleoVariableConstants.K2O = new PaleoVariable("http://linked.earth/ontology/paleo_variables#K2O", "K2O");
PaleoVariableConstants.K37 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#K37", "K37");
PaleoVariableConstants.K_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#K_Al", "K/Al");
PaleoVariableConstants.LDI = new PaleoVariable("http://linked.earth/ontology/paleo_variables#LDI", "LDI");
PaleoVariableConstants.LOI = new PaleoVariable("http://linked.earth/ontology/paleo_variables#LOI", "LOI");
PaleoVariableConstants.La = new PaleoVariable("http://linked.earth/ontology/paleo_variables#La", "La");
PaleoVariableConstants.MAR = new PaleoVariable("http://linked.earth/ontology/paleo_variables#MAR", "MAR");
PaleoVariableConstants.MBT = new PaleoVariable("http://linked.earth/ontology/paleo_variables#MBT", "MBT");
PaleoVariableConstants.MS = new PaleoVariable("http://linked.earth/ontology/paleo_variables#MS", "MS");
PaleoVariableConstants.Si = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Si", "Si");
PaleoVariableConstants.MXD = new PaleoVariable("http://linked.earth/ontology/paleo_variables#MXD", "MXD");
PaleoVariableConstants.Mg = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Mg", "Mg");
PaleoVariableConstants.MgO = new PaleoVariable("http://linked.earth/ontology/paleo_variables#MgO", "MgO");
PaleoVariableConstants.Mg_Ca = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Mg_Ca", "Mg/Ca");
PaleoVariableConstants.Mn = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Mn", "Mn");
PaleoVariableConstants.MnO = new PaleoVariable("http://linked.earth/ontology/paleo_variables#MnO", "MnO");
PaleoVariableConstants.Mn_Fe = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Mn_Fe", "Mn/Fe");
PaleoVariableConstants.Mn_Mo = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Mn_Mo", "Mn/Mo");
PaleoVariableConstants.Mo = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Mo", "Mo");
PaleoVariableConstants.NO3 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#NO3", "NO3");
PaleoVariableConstants.nitrate = new PaleoVariable("http://linked.earth/ontology/paleo_variables#nitrate", "nitrate");
PaleoVariableConstants.N_C = new PaleoVariable("http://linked.earth/ontology/paleo_variables#N_C", "N/C");
PaleoVariableConstants.Na2O = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Na2O", "Na2O");
PaleoVariableConstants.Ni = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ni", "Ni");
PaleoVariableConstants.PC1 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#PC1", "PC1");
PaleoVariableConstants.PC3 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#PC3", "PC3");
PaleoVariableConstants.PC2 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#PC2", "PC2");
PaleoVariableConstants.Paq = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Paq", "Paq");
PaleoVariableConstants.Pb = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Pb", "Pb");
PaleoVariableConstants.Picea_Artemisia = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Picea_Artemisia", "Picea/Artemisia");
PaleoVariableConstants.Picea_Pinus = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Picea_Pinus", "Picea/Pinus");
PaleoVariableConstants.Pinus_Artemisia = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Pinus_Artemisia", "Pinus/Artemisia");
PaleoVariableConstants.Poaceae_Ephedra = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Poaceae_Ephedra", "Poaceae/Ephedra");
PaleoVariableConstants.R570_R630 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#R570_R630", "R570/R630");
PaleoVariableConstants.R650_R700 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#R650_R700", "R650/R700");
PaleoVariableConstants.RABD660670 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#RABD660670", "RABD660670");
PaleoVariableConstants.RAN15 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#RAN15", "RAN15");
PaleoVariableConstants.RBAR = new PaleoVariable("http://linked.earth/ontology/paleo_variables#RBAR", "RBAR");
PaleoVariableConstants.Rb = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Rb", "Rb");
PaleoVariableConstants.Rb87_Sr86 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Rb87_Sr86", "Rb87/Sr86");
PaleoVariableConstants.SO4 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#SO4", "SO4");
PaleoVariableConstants.sulfate = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sulfate", "sulfate");
PaleoVariableConstants.salinity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#salinity", "salinity");
PaleoVariableConstants.Sc = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Sc", "Sc");
PaleoVariableConstants.Si_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Si_Al", "Si/Al");
PaleoVariableConstants.Si_Ti = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Si_Ti", "Si/Ti");
PaleoVariableConstants.Sr = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Sr", "Sr");
PaleoVariableConstants.Sr_Ca = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Sr_Ca", "Sr/Ca");
PaleoVariableConstants.TDS = new PaleoVariable("http://linked.earth/ontology/paleo_variables#TDS", "TDS");
PaleoVariableConstants.TEX86 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#TEX86", "TEX86");
PaleoVariableConstants.TIC = new PaleoVariable("http://linked.earth/ontology/paleo_variables#TIC", "TIC");
PaleoVariableConstants.TOC = new PaleoVariable("http://linked.earth/ontology/paleo_variables#TOC", "TOC");
PaleoVariableConstants.organicCarbon = new PaleoVariable("http://linked.earth/ontology/paleo_variables#organicCarbon", "organicCarbon");
PaleoVariableConstants.TOC_TN = new PaleoVariable("http://linked.earth/ontology/paleo_variables#TOC_TN", "TOC/TN");
PaleoVariableConstants.Ti = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ti", "Ti");
PaleoVariableConstants.TiO2 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#TiO2", "TiO2");
PaleoVariableConstants.Ti_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Ti_Al", "Ti/Al");
PaleoVariableConstants.Uk37 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Uk37", "Uk37");
PaleoVariableConstants.UK37 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#UK37", "UK37");
PaleoVariableConstants.Uk37_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Uk37_", "Uk37\u2019");
PaleoVariableConstants.V = new PaleoVariable("http://linked.earth/ontology/paleo_variables#V", "V");
PaleoVariableConstants.V_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#V_Al", "V/Al");
PaleoVariableConstants.Y = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Y", "Y");
PaleoVariableConstants.Zn = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Zn", "Zn");
PaleoVariableConstants.Zr = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Zr", "Zr");
PaleoVariableConstants.Zr_Al = new PaleoVariable("http://linked.earth/ontology/paleo_variables#Zr_Al", "Zr/Al");
PaleoVariableConstants.accumulation = new PaleoVariable("http://linked.earth/ontology/paleo_variables#accumulation", "accumulation");
PaleoVariableConstants.age = new PaleoVariable("http://linked.earth/ontology/paleo_variables#age", "age");
PaleoVariableConstants.age14C = new PaleoVariable("http://linked.earth/ontology/paleo_variables#age14C", "age14C");
PaleoVariableConstants.ammonium = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ammonium", "ammonium");
PaleoVariableConstants.amps = new PaleoVariable("http://linked.earth/ontology/paleo_variables#amps", "amps");
PaleoVariableConstants.aragonite = new PaleoVariable("http://linked.earth/ontology/paleo_variables#aragonite", "aragonite");
PaleoVariableConstants.ash = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ash", "ash");
PaleoVariableConstants.boron = new PaleoVariable("http://linked.earth/ontology/paleo_variables#boron", "boron");
PaleoVariableConstants.brGDGT_IIIa = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIIa", "brGDGT-IIIa");
PaleoVariableConstants.brGDGT_Id = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-Id", "brGDGT-Id");
PaleoVariableConstants.brGDGT_IIIa_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIIa_", "brGDGT-IIIa\u2019");
PaleoVariableConstants.brGDGT_IIIb = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIIb", "brGDGT-IIIb");
PaleoVariableConstants.brGDGT_IIIb_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIIb_", "brGDGT-IIIb\u2019");
PaleoVariableConstants.brGDGT_IIIc = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIIc", "brGDGT-IIIc");
PaleoVariableConstants.brGDGT_IIIc_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIIc_", "brGDGT-IIIc\u2019");
PaleoVariableConstants.brGDGT_IIa = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIa", "brGDGT-IIa");
PaleoVariableConstants.brGDGT_IIa_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIa_", "brGDGT-IIa\u2019");
PaleoVariableConstants.brGDGT_IIb = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIb", "brGDGT-IIb");
PaleoVariableConstants.brGDGT_IIb_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIb_", "brGDGT-IIb\u2019");
PaleoVariableConstants.brGDGT_IIc = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIc", "brGDGT-IIc");
PaleoVariableConstants.brGDGT_IIc_ = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-IIc_", "brGDGT-IIc\u2019");
PaleoVariableConstants.brGDGT_Ia = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-Ia", "brGDGT-Ia");
PaleoVariableConstants.brGDGT_Ib = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-Ib", "brGDGT-Ib");
PaleoVariableConstants.brGDGT_Ic = new PaleoVariable("http://linked.earth/ontology/paleo_variables#brGDGT-Ic", "brGDGT-Ic");
PaleoVariableConstants.sampleID = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sampleID", "sampleID");
PaleoVariableConstants.bubbleNumberDensity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#bubbleNumberDensity", "bubbleNumberDensity");
PaleoVariableConstants.bulkDensity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#bulkDensity", "bulkDensity");
PaleoVariableConstants.calcificationRate = new PaleoVariable("http://linked.earth/ontology/paleo_variables#calcificationRate", "calcificationRate");
PaleoVariableConstants.calcite = new PaleoVariable("http://linked.earth/ontology/paleo_variables#calcite", "calcite");
PaleoVariableConstants.carbon = new PaleoVariable("http://linked.earth/ontology/paleo_variables#carbon", "carbon");
PaleoVariableConstants.carbonate = new PaleoVariable("http://linked.earth/ontology/paleo_variables#carbonate", "carbonate");
PaleoVariableConstants.charcoal = new PaleoVariable("http://linked.earth/ontology/paleo_variables#charcoal", "charcoal");
PaleoVariableConstants.chloride = new PaleoVariable("http://linked.earth/ontology/paleo_variables#chloride", "chloride");
PaleoVariableConstants.circulationIndex = new PaleoVariable("http://linked.earth/ontology/paleo_variables#circulationIndex", "circulationIndex");
PaleoVariableConstants.clay = new PaleoVariable("http://linked.earth/ontology/paleo_variables#clay", "clay");
PaleoVariableConstants.cluster = new PaleoVariable("http://linked.earth/ontology/paleo_variables#cluster", "cluster");
PaleoVariableConstants.index = new PaleoVariable("http://linked.earth/ontology/paleo_variables#index", "index");
PaleoVariableConstants.composite = new PaleoVariable("http://linked.earth/ontology/paleo_variables#composite", "composite");
PaleoVariableConstants.concentration = new PaleoVariable("http://linked.earth/ontology/paleo_variables#concentration", "concentration");
PaleoVariableConstants.core = new PaleoVariable("http://linked.earth/ontology/paleo_variables#core", "core");
PaleoVariableConstants.correction = new PaleoVariable("http://linked.earth/ontology/paleo_variables#correction", "correction");
PaleoVariableConstants.correlationCoefficient = new PaleoVariable("http://linked.earth/ontology/paleo_variables#correlationCoefficient", "correlationCoefficient");
PaleoVariableConstants.sampleCount = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sampleCount", "sampleCount");
PaleoVariableConstants.count = new PaleoVariable("http://linked.earth/ontology/paleo_variables#count", "count");
PaleoVariableConstants.d13C = new PaleoVariable("http://linked.earth/ontology/paleo_variables#d13C", "d13C");
PaleoVariableConstants.d15N = new PaleoVariable("http://linked.earth/ontology/paleo_variables#d15N", "d15N");
PaleoVariableConstants.d18O = new PaleoVariable("http://linked.earth/ontology/paleo_variables#d18O", "d18O");
PaleoVariableConstants.d2H = new PaleoVariable("http://linked.earth/ontology/paleo_variables#d2H", "d2H");
PaleoVariableConstants.d2HUncertaintyHigh80 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#d2HUncertaintyHigh80", "d2HUncertaintyHigh80");
PaleoVariableConstants.d2HUncertaintyLow80 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#d2HUncertaintyLow80", "d2HUncertaintyLow80");
PaleoVariableConstants.deleteMe = new PaleoVariable("http://linked.earth/ontology/paleo_variables#deleteMe", "deleteMe");
PaleoVariableConstants.needsToBeChanged = new PaleoVariable("http://linked.earth/ontology/paleo_variables#needsToBeChanged", "needsToBeChanged");
PaleoVariableConstants.deltaRelativeHumidity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#deltaRelativeHumidity", "deltaRelativeHumidity");
PaleoVariableConstants.deltaTemperature = new PaleoVariable("http://linked.earth/ontology/paleo_variables#deltaTemperature", "deltaTemperature");
PaleoVariableConstants.density = new PaleoVariable("http://linked.earth/ontology/paleo_variables#density", "density");
PaleoVariableConstants.depth = new PaleoVariable("http://linked.earth/ontology/paleo_variables#depth", "depth");
PaleoVariableConstants.depthBottom = new PaleoVariable("http://linked.earth/ontology/paleo_variables#depthBottom", "depthBottom");
PaleoVariableConstants.depthTop = new PaleoVariable("http://linked.earth/ontology/paleo_variables#depthTop", "depthTop");
PaleoVariableConstants.deuteriumExcess = new PaleoVariable("http://linked.earth/ontology/paleo_variables#deuteriumExcess", "deuteriumExcess");
PaleoVariableConstants.diatom = new PaleoVariable("http://linked.earth/ontology/paleo_variables#diatom", "diatom");
PaleoVariableConstants.diatomCount = new PaleoVariable("http://linked.earth/ontology/paleo_variables#diatomCount", "diatomCount");
PaleoVariableConstants.dinocyst = new PaleoVariable("http://linked.earth/ontology/paleo_variables#dinocyst", "dinocyst");
PaleoVariableConstants.dolomite = new PaleoVariable("http://linked.earth/ontology/paleo_variables#dolomite", "dolomite");
PaleoVariableConstants.dryBulkDensity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#dryBulkDensity", "dryBulkDensity");
PaleoVariableConstants.duration = new PaleoVariable("http://linked.earth/ontology/paleo_variables#duration", "duration");
PaleoVariableConstants.dust = new PaleoVariable("http://linked.earth/ontology/paleo_variables#dust", "dust");
PaleoVariableConstants.effectivePrecipitation = new PaleoVariable("http://linked.earth/ontology/paleo_variables#effectivePrecipitation", "effectivePrecipitation");
PaleoVariableConstants.elevation = new PaleoVariable("http://linked.earth/ontology/paleo_variables#elevation", "elevation");
PaleoVariableConstants.zscore = new PaleoVariable("http://linked.earth/ontology/paleo_variables#zscore", "zscore");
PaleoVariableConstants.epsilonC28C22 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#epsilonC28C22", "epsilonC28C22");
PaleoVariableConstants.epsilonC28C24 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#epsilonC28C24", "epsilonC28C24");
PaleoVariableConstants.epsilonC29C23 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#epsilonC29C23", "epsilonC29C23");
PaleoVariableConstants.equilibriumLineAltitude = new PaleoVariable("http://linked.earth/ontology/paleo_variables#equilibriumLineAltitude", "equilibriumLineAltitude");
PaleoVariableConstants.event = new PaleoVariable("http://linked.earth/ontology/paleo_variables#event", "event");
PaleoVariableConstants.eventLayer = new PaleoVariable("http://linked.earth/ontology/paleo_variables#eventLayer", "eventLayer");
PaleoVariableConstants.facies = new PaleoVariable("http://linked.earth/ontology/paleo_variables#facies", "facies");
PaleoVariableConstants.feldspar = new PaleoVariable("http://linked.earth/ontology/paleo_variables#feldspar", "feldspar");
PaleoVariableConstants.flood = new PaleoVariable("http://linked.earth/ontology/paleo_variables#flood", "flood");
PaleoVariableConstants.fluorine = new PaleoVariable("http://linked.earth/ontology/paleo_variables#fluorine", "fluorine");
PaleoVariableConstants.foraminifera = new PaleoVariable("http://linked.earth/ontology/paleo_variables#foraminifera", "foraminifera");
PaleoVariableConstants.gamma = new PaleoVariable("http://linked.earth/ontology/paleo_variables#gamma", "gamma");
PaleoVariableConstants.glacierCoverage = new PaleoVariable("http://linked.earth/ontology/paleo_variables#glacierCoverage", "glacierCoverage");
PaleoVariableConstants.globigerinoidesRuber = new PaleoVariable("http://linked.earth/ontology/paleo_variables#globigerinoidesRuber", "globigerinoidesRuber");
PaleoVariableConstants.grainSize = new PaleoVariable("http://linked.earth/ontology/paleo_variables#grainSize", "grainSize");
PaleoVariableConstants.lithics = new PaleoVariable("http://linked.earth/ontology/paleo_variables#lithics", "lithics");
PaleoVariableConstants.grayscale = new PaleoVariable("http://linked.earth/ontology/paleo_variables#grayscale", "grayscale");
PaleoVariableConstants.growing_degree_days = new PaleoVariable("http://linked.earth/ontology/paleo_variables#growing_degree_days", "growing degree days");
PaleoVariableConstants.growthRate = new PaleoVariable("http://linked.earth/ontology/paleo_variables#growthRate", "growthRate");
PaleoVariableConstants.hasGap = new PaleoVariable("http://linked.earth/ontology/paleo_variables#hasGap", "hasGap");
PaleoVariableConstants.hasHiatus = new PaleoVariable("http://linked.earth/ontology/paleo_variables#hasHiatus", "hasHiatus");
PaleoVariableConstants.hole = new PaleoVariable("http://linked.earth/ontology/paleo_variables#hole", "hole");
PaleoVariableConstants.humidificationIndex = new PaleoVariable("http://linked.earth/ontology/paleo_variables#humidificationIndex", "humidificationIndex");
PaleoVariableConstants.iceMelt = new PaleoVariable("http://linked.earth/ontology/paleo_variables#iceMelt", "iceMelt");
PaleoVariableConstants.iceRaftedDebris = new PaleoVariable("http://linked.earth/ontology/paleo_variables#iceRaftedDebris", "iceRaftedDebris");
PaleoVariableConstants.inc_coh = new PaleoVariable("http://linked.earth/ontology/paleo_variables#inc_coh", "inc/coh");
PaleoVariableConstants.isReliable = new PaleoVariable("http://linked.earth/ontology/paleo_variables#isReliable", "isReliable");
PaleoVariableConstants.lakeArea = new PaleoVariable("http://linked.earth/ontology/paleo_variables#lakeArea", "lakeArea");
PaleoVariableConstants.lakeLevel = new PaleoVariable("http://linked.earth/ontology/paleo_variables#lakeLevel", "lakeLevel");
PaleoVariableConstants.lakeTrend = new PaleoVariable("http://linked.earth/ontology/paleo_variables#lakeTrend", "lakeTrend");
PaleoVariableConstants.lakeVolume = new PaleoVariable("http://linked.earth/ontology/paleo_variables#lakeVolume", "lakeVolume");
PaleoVariableConstants.landscapeCover = new PaleoVariable("http://linked.earth/ontology/paleo_variables#landscapeCover", "landscapeCover");
PaleoVariableConstants.percent = new PaleoVariable("http://linked.earth/ontology/paleo_variables#percent", "percent");
PaleoVariableConstants.latitude = new PaleoVariable("http://linked.earth/ontology/paleo_variables#latitude", "latitude");
PaleoVariableConstants.layerThickness = new PaleoVariable("http://linked.earth/ontology/paleo_variables#layerThickness", "layerThickness");
PaleoVariableConstants.longitude = new PaleoVariable("http://linked.earth/ontology/paleo_variables#longitude", "longitude");
PaleoVariableConstants.material = new PaleoVariable("http://linked.earth/ontology/paleo_variables#material", "material");
PaleoVariableConstants.mineralogy = new PaleoVariable("http://linked.earth/ontology/paleo_variables#mineralogy", "mineralogy");
PaleoVariableConstants.sulfur = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sulfur", "sulfur");
PaleoVariableConstants.needsToBeSplitIntoMultipleColumns = new PaleoVariable("http://linked.earth/ontology/paleo_variables#needsToBeSplitIntoMultipleColumns", "needsToBeSplitIntoMultipleColumns");
PaleoVariableConstants.nitrogen = new PaleoVariable("http://linked.earth/ontology/paleo_variables#nitrogen", "nitrogen");
PaleoVariableConstants.notes = new PaleoVariable("http://linked.earth/ontology/paleo_variables#notes", "notes");
PaleoVariableConstants.organicMatter = new PaleoVariable("http://linked.earth/ontology/paleo_variables#organicMatter", "organicMatter");
PaleoVariableConstants.organicNitrogen = new PaleoVariable("http://linked.earth/ontology/paleo_variables#organicNitrogen", "organicNitrogen");
PaleoVariableConstants.oxygen = new PaleoVariable("http://linked.earth/ontology/paleo_variables#oxygen", "oxygen");
PaleoVariableConstants.pH = new PaleoVariable("http://linked.earth/ontology/paleo_variables#pH", "pH");
PaleoVariableConstants.peat = new PaleoVariable("http://linked.earth/ontology/paleo_variables#peat", "peat");
PaleoVariableConstants.phosphorus = new PaleoVariable("http://linked.earth/ontology/paleo_variables#phosphorus", "phosphorus");
PaleoVariableConstants.potassium = new PaleoVariable("http://linked.earth/ontology/paleo_variables#potassium", "potassium");
PaleoVariableConstants.precipitation = new PaleoVariable("http://linked.earth/ontology/paleo_variables#precipitation", "precipitation");
PaleoVariableConstants.productivity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#productivity", "productivity");
PaleoVariableConstants.pyrite = new PaleoVariable("http://linked.earth/ontology/paleo_variables#pyrite", "pyrite");
PaleoVariableConstants.quartz = new PaleoVariable("http://linked.earth/ontology/paleo_variables#quartz", "quartz");
PaleoVariableConstants.reflectance = new PaleoVariable("http://linked.earth/ontology/paleo_variables#reflectance", "reflectance");
PaleoVariableConstants.relativeHumidity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#relativeHumidity", "relativeHumidity");
PaleoVariableConstants.residualChronology = new PaleoVariable("http://linked.earth/ontology/paleo_variables#residualChronology", "residualChronology");
PaleoVariableConstants.ringWidth = new PaleoVariable("http://linked.earth/ontology/paleo_variables#ringWidth", "ringWidth");
PaleoVariableConstants.sand = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sand", "sand");
PaleoVariableConstants.seaIce = new PaleoVariable("http://linked.earth/ontology/paleo_variables#seaIce", "seaIce");
PaleoVariableConstants.section = new PaleoVariable("http://linked.earth/ontology/paleo_variables#section", "section");
PaleoVariableConstants.sedimentDry = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sedimentDry", "sedimentDry");
PaleoVariableConstants.sedimentationRate = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sedimentationRate", "sedimentationRate");
PaleoVariableConstants.segmentLength = new PaleoVariable("http://linked.earth/ontology/paleo_variables#segmentLength", "segmentLength");
PaleoVariableConstants.sequence = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sequence", "sequence");
PaleoVariableConstants.silt = new PaleoVariable("http://linked.earth/ontology/paleo_variables#silt", "silt");
PaleoVariableConstants.site = new PaleoVariable("http://linked.earth/ontology/paleo_variables#site", "site");
PaleoVariableConstants.siteCount = new PaleoVariable("http://linked.earth/ontology/paleo_variables#siteCount", "siteCount");
PaleoVariableConstants.sodium = new PaleoVariable("http://linked.earth/ontology/paleo_variables#sodium", "sodium");
PaleoVariableConstants.solarIrradiance = new PaleoVariable("http://linked.earth/ontology/paleo_variables#solarIrradiance", "solarIrradiance");
PaleoVariableConstants.streamflow = new PaleoVariable("http://linked.earth/ontology/paleo_variables#streamflow", "streamflow");
PaleoVariableConstants.temperature = new PaleoVariable("http://linked.earth/ontology/paleo_variables#temperature", "temperature");
PaleoVariableConstants.thickness = new PaleoVariable("http://linked.earth/ontology/paleo_variables#thickness", "thickness");
PaleoVariableConstants.totalCarbon = new PaleoVariable("http://linked.earth/ontology/paleo_variables#totalCarbon", "totalCarbon");
PaleoVariableConstants.totalNitrogen = new PaleoVariable("http://linked.earth/ontology/paleo_variables#totalNitrogen", "totalNitrogen");
PaleoVariableConstants.totalPollen = new PaleoVariable("http://linked.earth/ontology/paleo_variables#totalPollen", "totalPollen");
PaleoVariableConstants.treeCover = new PaleoVariable("http://linked.earth/ontology/paleo_variables#treeCover", "treeCover");
PaleoVariableConstants.uncertainty = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertainty", "uncertainty");
PaleoVariableConstants.uncertainty1s = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertainty1s", "uncertainty1s");
PaleoVariableConstants.uncertainty2s = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertainty2s", "uncertainty2s");
PaleoVariableConstants.uncertaintyHigh = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyHigh", "uncertaintyHigh");
PaleoVariableConstants.uncertaintyHigh1s = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyHigh1s", "uncertaintyHigh1s");
PaleoVariableConstants.uncertaintyLow95 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyLow95", "uncertaintyLow95");
PaleoVariableConstants.uncertaintyHigh50 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyHigh50", "uncertaintyHigh50");
PaleoVariableConstants.uncertaintyHigh90 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyHigh90", "uncertaintyHigh90");
PaleoVariableConstants.uncertaintyHigh95 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyHigh95", "uncertaintyHigh95");
PaleoVariableConstants.uncertaintyLow = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyLow", "uncertaintyLow");
PaleoVariableConstants.uncertaintyLow1s = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyLow1s", "uncertaintyLow1s");
PaleoVariableConstants.uncertaintyLow90 = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uncertaintyLow90", "uncertaintyLow90");
PaleoVariableConstants.upwelling = new PaleoVariable("http://linked.earth/ontology/paleo_variables#upwelling", "upwelling");
PaleoVariableConstants.uranium = new PaleoVariable("http://linked.earth/ontology/paleo_variables#uranium", "uranium");
PaleoVariableConstants.varveThickness = new PaleoVariable("http://linked.earth/ontology/paleo_variables#varveThickness", "varveThickness");
PaleoVariableConstants.volume = new PaleoVariable("http://linked.earth/ontology/paleo_variables#volume", "volume");
PaleoVariableConstants.waterContent = new PaleoVariable("http://linked.earth/ontology/paleo_variables#waterContent", "waterContent");
PaleoVariableConstants.waterTableDepth = new PaleoVariable("http://linked.earth/ontology/paleo_variables#waterTableDepth", "waterTableDepth");
PaleoVariableConstants.wetBulkDensity = new PaleoVariable("http://linked.earth/ontology/paleo_variables#wetBulkDensity", "wetBulkDensity");
PaleoVariableConstants.year = new PaleoVariable("http://linked.earth/ontology/paleo_variables#year", "year");

// src/classes/physicalsample.ts
var PhysicalSample = class _PhysicalSample {
  constructor() {
    this.housedAt = null;
    this.iGSN = null;
    this.name = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#PhysicalSample";
    this._id = this._ns + "/" + uniqid("PhysicalSample");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _PhysicalSample();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.housedAt !== null) {
      thisObj.housedAt = data.housedAt;
    }
    if (data.iGSN !== null) {
      thisObj.iGSN = data.iGSN;
    }
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _PhysicalSample();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasIGSN") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.iGSN = obj;
        }
      } else if (key === "housedAt") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.housedAt = obj;
        }
      } else if (key === "name") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.housedAt !== null) {
      const valueObj = this.housedAt;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["housedAt"] = [obj];
    }
    if (this.iGSN !== null) {
      const valueObj = this.iGSN;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasIGSN"] = [obj];
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["name"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.housedAt !== null) {
      const valueObj = this.housedAt;
      const obj = valueObj;
      data["housedat"] = obj;
    }
    if (this.iGSN !== null) {
      const valueObj = this.iGSN;
      const obj = valueObj;
      data["hasidentifier"] = obj;
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["hasname"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _PhysicalSample();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "hasidentifier") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.iGSN = obj;
        continue;
      }
      if (key === "hasname") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      if (key === "housedat") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.housedAt = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getHousedAt() {
    return this.housedAt;
  }
  setHousedAt(housedAt) {
    this.housedAt = housedAt;
  }
  getIGSN() {
    return this.iGSN;
  }
  setIGSN(iGSN) {
    this.iGSN = iGSN;
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
  }
};

// src/classes/resolution.ts
var Resolution = class _Resolution {
  constructor() {
    this.maxValue = null;
    this.meanValue = null;
    this.medianValue = null;
    this.minValue = null;
    this.units = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Resolution";
    this._id = this._ns + "/" + uniqid("Resolution");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Resolution();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.maxValue !== null) {
      thisObj.maxValue = data.maxValue;
    }
    if (data.meanValue !== null) {
      thisObj.meanValue = data.meanValue;
    }
    if (data.medianValue !== null) {
      thisObj.medianValue = data.medianValue;
    }
    if (data.minValue !== null) {
      thisObj.minValue = data.minValue;
    }
    if (data.units !== null) {
      thisObj.units = new PaleoUnit(data.units.id, data.units.label);
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Resolution();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasMaxValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.maxValue = obj;
        }
      } else if (key === "hasMeanValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.meanValue = obj;
        }
      } else if (key === "hasMedianValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.medianValue = obj;
        }
      } else if (key === "hasMinValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.minValue = obj;
        }
      } else if (key === "hasUnits") {
        for (const val of value) {
          let obj = null;
          obj = PaleoUnit.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.units = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.maxValue !== null) {
      const valueObj = this.maxValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMaxValue"] = [obj];
    }
    if (this.meanValue !== null) {
      const valueObj = this.meanValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMeanValue"] = [obj];
    }
    if (this.medianValue !== null) {
      const valueObj = this.medianValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMedianValue"] = [obj];
    }
    if (this.minValue !== null) {
      const valueObj = this.minValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMinValue"] = [obj];
    }
    if (this.units !== null) {
      const valueObj = this.units;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasUnits"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.maxValue !== null) {
      const valueObj = this.maxValue;
      const obj = valueObj;
      data["hasMaxValue"] = obj;
    }
    if (this.meanValue !== null) {
      const valueObj = this.meanValue;
      const obj = valueObj;
      data["hasMeanValue"] = obj;
    }
    if (this.medianValue !== null) {
      const valueObj = this.medianValue;
      const obj = valueObj;
      data["hasMedianValue"] = obj;
    }
    if (this.minValue !== null) {
      const valueObj = this.minValue;
      const obj = valueObj;
      data["hasMinValue"] = obj;
    }
    if (this.units !== null) {
      const valueObj = this.units;
      const obj = valueObj.toJson();
      data["units"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Resolution();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "hasMaxValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.maxValue = obj;
        continue;
      }
      if (key === "hasMeanValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.meanValue = obj;
        continue;
      }
      if (key === "hasMedianValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.medianValue = obj;
        continue;
      }
      if (key === "hasMinValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.minValue = obj;
        continue;
      }
      if (key === "units") {
        let obj = null;
        let value = pvalue;
        obj = PaleoUnit.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.units = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getMaxValue() {
    return this.maxValue;
  }
  setMaxValue(maxValue) {
    this.maxValue = maxValue;
  }
  getMeanValue() {
    return this.meanValue;
  }
  setMeanValue(meanValue) {
    this.meanValue = meanValue;
  }
  getMedianValue() {
    return this.medianValue;
  }
  setMedianValue(medianValue) {
    this.medianValue = medianValue;
  }
  getMinValue() {
    return this.minValue;
  }
  setMinValue(minValue) {
    this.minValue = minValue;
  }
  getUnits() {
    return this.units;
  }
  setUnits(units) {
    this.units = units;
  }
};

// src/classes/variable.ts
var Variable = class _Variable {
  constructor() {
    this.archiveType = null;
    this.calibratedVias = [];
    this.columnNumber = null;
    this.composite = null;
    this.description = null;
    this.foundInDataset = null;
    this.foundInTable = null;
    this.instrument = null;
    this.interpretations = [];
    this.maxValue = null;
    this.meanValue = null;
    this.medianValue = null;
    this.minValue = null;
    this.missingValue = null;
    this.name = null;
    this.notes = null;
    this.partOfCompilations = [];
    this.physicalSamples = [];
    this.primary = null;
    this.proxy = null;
    this.proxyGeneral = null;
    this.resolution = null;
    this.standardVariable = null;
    this.uncertainty = null;
    this.uncertaintyAnalytical = null;
    this.uncertaintyReproducibility = null;
    this.units = null;
    this.values = null;
    this.variableId = null;
    this.variableType = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Variable";
    this._id = this._ns + "/" + uniqid("Variable");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Variable();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.archiveType !== null) {
      thisObj.archiveType = new ArchiveType(data.archiveType.id, data.archiveType.label);
    }
    if (data.columnNumber !== null) {
      thisObj.columnNumber = data.columnNumber;
    }
    if (data.composite !== null) {
      thisObj.composite = data.composite;
    }
    if (data.description !== null) {
      thisObj.description = data.description;
    }
    if (data.foundInDataset !== null) {
      thisObj.foundInDataset = data.foundInDataset;
    }
    if (data.foundInTable !== null) {
      thisObj.foundInTable = data.foundInTable;
    }
    if (data.instrument !== null) {
      thisObj.instrument = data.instrument;
    }
    if (data.maxValue !== null) {
      thisObj.maxValue = data.maxValue;
    }
    if (data.meanValue !== null) {
      thisObj.meanValue = data.meanValue;
    }
    if (data.medianValue !== null) {
      thisObj.medianValue = data.medianValue;
    }
    if (data.minValue !== null) {
      thisObj.minValue = data.minValue;
    }
    if (data.missingValue !== null) {
      thisObj.missingValue = data.missingValue;
    }
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    if (data.notes !== null) {
      thisObj.notes = data.notes;
    }
    if (data.primary !== null) {
      thisObj.primary = data.primary;
    }
    if (data.proxy !== null) {
      thisObj.proxy = new PaleoProxy(data.proxy.id, data.proxy.label);
    }
    if (data.proxyGeneral !== null) {
      thisObj.proxyGeneral = new PaleoProxyGeneral(data.proxyGeneral.id, data.proxyGeneral.label);
    }
    if (data.resolution !== null) {
      thisObj.resolution = Resolution.fromDictionary(data.resolution);
    }
    if (data.standardVariable !== null) {
      thisObj.standardVariable = new PaleoVariable(data.standardVariable.id, data.standardVariable.label);
    }
    if (data.uncertainty !== null) {
      thisObj.uncertainty = data.uncertainty;
    }
    if (data.uncertaintyAnalytical !== null) {
      thisObj.uncertaintyAnalytical = data.uncertaintyAnalytical;
    }
    if (data.uncertaintyReproducibility !== null) {
      thisObj.uncertaintyReproducibility = data.uncertaintyReproducibility;
    }
    if (data.units !== null) {
      thisObj.units = new PaleoUnit(data.units.id, data.units.label);
    }
    if (data.values !== null) {
      thisObj.values = data.values;
    }
    if (data.variableId !== null) {
      thisObj.variableId = data.variableId;
    }
    if (data.variableType !== null) {
      thisObj.variableType = data.variableType;
    }
    thisObj.calibratedVias = [];
    for (const value of data.calibratedVias || []) {
      thisObj.calibratedVias.push(Calibration.fromDictionary(value));
    }
    thisObj.interpretations = [];
    for (const value of data.interpretations || []) {
      thisObj.interpretations.push(Interpretation.fromDictionary(value));
    }
    thisObj.partOfCompilations = [];
    for (const value of data.partOfCompilations || []) {
      thisObj.partOfCompilations.push(Compilation.fromDictionary(value));
    }
    thisObj.physicalSamples = [];
    for (const value of data.physicalSamples || []) {
      thisObj.physicalSamples.push(PhysicalSample.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Variable();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "calibratedVia") {
        thisObj.calibratedVias = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Calibration.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.calibratedVias.push(obj);
        }
      } else if (key === "foundInDataset") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.foundInDataset = obj;
        }
      } else if (key === "foundInTable") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.foundInTable = obj;
        }
      } else if (key === "hasArchiveType") {
        for (const val of value) {
          let obj = null;
          obj = ArchiveType.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.archiveType = obj;
        }
      } else if (key === "hasColumnNumber") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.columnNumber = obj;
        }
      } else if (key === "hasDescription") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.description = obj;
        }
      } else if (key === "hasInstrument") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.instrument = obj;
        }
      } else if (key === "hasInterpretation") {
        thisObj.interpretations = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Interpretation.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.interpretations.push(obj);
        }
      } else if (key === "hasMaxValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.maxValue = obj;
        }
      } else if (key === "hasMeanValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.meanValue = obj;
        }
      } else if (key === "hasMedianValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.medianValue = obj;
        }
      } else if (key === "hasMinValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.minValue = obj;
        }
      } else if (key === "hasMissingValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.missingValue = obj;
        }
      } else if (key === "hasName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else if (key === "hasNotes") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes = obj;
        }
      } else if (key === "hasPhysicalSample") {
        thisObj.physicalSamples = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = PhysicalSample.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.physicalSamples.push(obj);
        }
      } else if (key === "hasProxy") {
        for (const val of value) {
          let obj = null;
          obj = PaleoProxy.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.proxy = obj;
        }
      } else if (key === "hasProxyGeneral") {
        for (const val of value) {
          let obj = null;
          obj = PaleoProxyGeneral.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.proxyGeneral = obj;
        }
      } else if (key === "hasResolution") {
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Resolution.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.resolution = obj;
        }
      } else if (key === "hasStandardVariable") {
        for (const val of value) {
          let obj = null;
          obj = PaleoVariable.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.standardVariable = obj;
        }
      } else if (key === "hasType") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.variableType = obj;
        }
      } else if (key === "hasUncertainty") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.uncertainty = obj;
        }
      } else if (key === "hasUncertaintyAnalytical") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.uncertaintyAnalytical = obj;
        }
      } else if (key === "hasUncertaintyReproducibility") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.uncertaintyReproducibility = obj;
        }
      } else if (key === "hasUnits") {
        for (const val of value) {
          let obj = null;
          obj = PaleoUnit.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.units = obj;
        }
      } else if (key === "hasValues") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.values = obj;
        }
      } else if (key === "hasVariableId") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.variableId = obj;
        }
      } else if (key === "isComposite") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.composite = obj;
        }
      } else if (key === "isPrimary") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.primary = obj;
        }
      } else if (key === "partOfCompilation") {
        thisObj.partOfCompilations = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Compilation.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.partOfCompilations.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.archiveType !== null) {
      const valueObj = this.archiveType;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasArchiveType"] = [obj];
    }
    if (this.calibratedVias.length > 0) {
      data[this._id]["calibratedVia"] = [];
      for (const valueObj of this.calibratedVias) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["calibratedVia"].push(obj);
      }
    }
    if (this.columnNumber !== null) {
      const valueObj = this.columnNumber;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#integer"
      };
      data[this._id]["hasColumnNumber"] = [obj];
    }
    if (this.composite !== null) {
      const valueObj = this.composite;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#boolean"
      };
      data[this._id]["isComposite"] = [obj];
    }
    if (this.description !== null) {
      const valueObj = this.description;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDescription"] = [obj];
    }
    if (this.foundInDataset !== null) {
      const valueObj = this.foundInDataset;
      const obj = {
        "@id": valueObj,
        "@type": "uri"
      };
      data[this._id]["foundInDataset"] = [obj];
    }
    if (this.foundInTable !== null) {
      const valueObj = this.foundInTable;
      const obj = {
        "@id": valueObj,
        "@type": "uri"
      };
      data[this._id]["foundInTable"] = [obj];
    }
    if (this.instrument !== null) {
      const valueObj = this.instrument;
      const obj = {
        "@id": valueObj,
        "@type": "uri"
      };
      data[this._id]["hasInstrument"] = [obj];
    }
    if (this.interpretations.length > 0) {
      data[this._id]["hasInterpretation"] = [];
      for (const valueObj of this.interpretations) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasInterpretation"].push(obj);
      }
    }
    if (this.maxValue !== null) {
      const valueObj = this.maxValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMaxValue"] = [obj];
    }
    if (this.meanValue !== null) {
      const valueObj = this.meanValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMeanValue"] = [obj];
    }
    if (this.medianValue !== null) {
      const valueObj = this.medianValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMedianValue"] = [obj];
    }
    if (this.minValue !== null) {
      const valueObj = this.minValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#float"
      };
      data[this._id]["hasMinValue"] = [obj];
    }
    if (this.missingValue !== null) {
      const valueObj = this.missingValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasMissingValue"] = [obj];
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasName"] = [obj];
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasNotes"] = [obj];
    }
    if (this.partOfCompilations.length > 0) {
      data[this._id]["partOfCompilation"] = [];
      for (const valueObj of this.partOfCompilations) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["partOfCompilation"].push(obj);
      }
    }
    if (this.physicalSamples.length > 0) {
      data[this._id]["hasPhysicalSample"] = [];
      for (const valueObj of this.physicalSamples) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasPhysicalSample"].push(obj);
      }
    }
    if (this.primary !== null) {
      const valueObj = this.primary;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#boolean"
      };
      data[this._id]["isPrimary"] = [obj];
    }
    if (this.proxy !== null) {
      const valueObj = this.proxy;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasProxy"] = [obj];
    }
    if (this.proxyGeneral !== null) {
      const valueObj = this.proxyGeneral;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasProxyGeneral"] = [obj];
    }
    if (this.resolution !== null) {
      const valueObj = this.resolution;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasResolution"] = [obj];
    }
    if (this.standardVariable !== null) {
      const valueObj = this.standardVariable;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasStandardVariable"] = [obj];
    }
    if (this.uncertainty !== null) {
      const valueObj = this.uncertainty;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasUncertainty"] = [obj];
    }
    if (this.uncertaintyAnalytical !== null) {
      const valueObj = this.uncertaintyAnalytical;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasUncertaintyAnalytical"] = [obj];
    }
    if (this.uncertaintyReproducibility !== null) {
      const valueObj = this.uncertaintyReproducibility;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasUncertaintyReproducibility"] = [obj];
    }
    if (this.units !== null) {
      const valueObj = this.units;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasUnits"] = [obj];
    }
    if (this.values !== null) {
      const valueObj = this.values;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasValues"] = [obj];
    }
    if (this.variableId !== null) {
      const valueObj = this.variableId;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVariableId"] = [obj];
    }
    if (this.variableType !== null) {
      const valueObj = this.variableType;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasType"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.archiveType !== null) {
      const valueObj = this.archiveType;
      const obj = valueObj.toJson();
      data["archiveType"] = obj;
    }
    if (this.calibratedVias.length > 0) {
      data["calibration"] = [];
      for (const valueObj of this.calibratedVias) {
        const obj = valueObj.toJson();
        data["calibration"].push(obj);
      }
    }
    if (this.columnNumber !== null) {
      const valueObj = this.columnNumber;
      const obj = valueObj;
      data["number"] = obj;
    }
    if (this.composite !== null) {
      const valueObj = this.composite;
      const obj = valueObj;
      data["isComposite"] = obj;
    }
    if (this.description !== null) {
      const valueObj = this.description;
      const obj = valueObj;
      data["description"] = obj;
    }
    if (this.instrument !== null) {
      const valueObj = this.instrument;
      const obj = valueObj;
      data["measurementInstrument"] = obj;
    }
    if (this.interpretations.length > 0) {
      data["interpretation"] = [];
      for (const valueObj of this.interpretations) {
        const obj = valueObj.toJson();
        data["interpretation"].push(obj);
      }
    }
    if (this.maxValue !== null) {
      const valueObj = this.maxValue;
      const obj = valueObj;
      data["hasMaxValue"] = obj;
    }
    if (this.meanValue !== null) {
      const valueObj = this.meanValue;
      const obj = valueObj;
      data["hasMeanValue"] = obj;
    }
    if (this.medianValue !== null) {
      const valueObj = this.medianValue;
      const obj = valueObj;
      data["hasMedianValue"] = obj;
    }
    if (this.minValue !== null) {
      const valueObj = this.minValue;
      const obj = valueObj;
      data["hasMinValue"] = obj;
    }
    if (this.missingValue !== null) {
      const valueObj = this.missingValue;
      const obj = valueObj;
      data["missingValue"] = obj;
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["variableName"] = obj;
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = valueObj;
      data["notes"] = obj;
    }
    if (this.partOfCompilations.length > 0) {
      data["inCompilationBeta"] = [];
      for (const valueObj of this.partOfCompilations) {
        const obj = valueObj.toJson();
        data["inCompilationBeta"].push(obj);
      }
    }
    if (this.physicalSamples.length > 0) {
      data["physicalSample"] = [];
      for (const valueObj of this.physicalSamples) {
        const obj = valueObj.toJson();
        data["physicalSample"].push(obj);
      }
    }
    if (this.primary !== null) {
      const valueObj = this.primary;
      const obj = valueObj;
      data["isPrimary"] = obj;
    }
    if (this.proxy !== null) {
      const valueObj = this.proxy;
      const obj = valueObj.toJson();
      data["proxy"] = obj;
    }
    if (this.proxyGeneral !== null) {
      const valueObj = this.proxyGeneral;
      const obj = valueObj.toJson();
      data["proxyGeneral"] = obj;
    }
    if (this.resolution !== null) {
      const valueObj = this.resolution;
      const obj = valueObj.toJson();
      data["resolution"] = obj;
    }
    if (this.standardVariable !== null) {
      const valueObj = this.standardVariable;
      const obj = valueObj.toJson();
      data["hasStandardVariable"] = obj;
    }
    if (this.uncertainty !== null) {
      const valueObj = this.uncertainty;
      const obj = valueObj;
      data["uncertainty"] = obj;
    }
    if (this.uncertaintyAnalytical !== null) {
      const valueObj = this.uncertaintyAnalytical;
      const obj = valueObj;
      data["uncertaintyAnalytical"] = obj;
    }
    if (this.uncertaintyReproducibility !== null) {
      const valueObj = this.uncertaintyReproducibility;
      const obj = valueObj;
      data["uncertaintyReproducibility"] = obj;
    }
    if (this.units !== null) {
      const valueObj = this.units;
      const obj = valueObj.toJson();
      data["units"] = obj;
    }
    if (this.values !== null) {
      const valueObj = this.values;
      const obj = valueObj;
      data["hasValues"] = obj;
    }
    if (this.variableId !== null) {
      const valueObj = this.variableId;
      const obj = valueObj;
      data["TSid"] = obj;
    }
    if (this.variableType !== null) {
      const valueObj = this.variableType;
      const obj = valueObj;
      data["variableType"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Variable();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "TSid") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.variableId = obj;
        continue;
      }
      if (key === "archiveType") {
        let obj = null;
        let value = pvalue;
        obj = ArchiveType.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.archiveType = obj;
        continue;
      }
      if (key === "calibration") {
        let obj = null;
        thisObj.calibratedVias = [];
        for (const value of pvalue) {
          obj = Calibration.fromJson(value);
          thisObj.calibratedVias.push(obj);
        }
        continue;
      }
      if (key === "description") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.description = obj;
        continue;
      }
      if (key === "foundInDataset") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.foundInDataset = obj;
        continue;
      }
      if (key === "foundInTable") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.foundInTable = obj;
        continue;
      }
      if (key === "hasMaxValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.maxValue = obj;
        continue;
      }
      if (key === "hasMeanValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.meanValue = obj;
        continue;
      }
      if (key === "hasMedianValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.medianValue = obj;
        continue;
      }
      if (key === "hasMinValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.minValue = obj;
        continue;
      }
      if (key === "hasStandardVariable") {
        let obj = null;
        let value = pvalue;
        obj = PaleoVariable.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.standardVariable = obj;
        continue;
      }
      if (key === "hasValues") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.values = obj;
        continue;
      }
      if (key === "inCompilationBeta") {
        let obj = null;
        thisObj.partOfCompilations = [];
        for (const value of pvalue) {
          obj = Compilation.fromJson(value);
          thisObj.partOfCompilations.push(obj);
        }
        continue;
      }
      if (key === "interpretation") {
        let obj = null;
        thisObj.interpretations = [];
        for (const value of pvalue) {
          obj = Interpretation.fromJson(value);
          thisObj.interpretations.push(obj);
        }
        continue;
      }
      if (key === "isComposite") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.composite = obj;
        continue;
      }
      if (key === "isPrimary") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.primary = obj;
        continue;
      }
      if (key === "measurementInstrument") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.instrument = obj;
        continue;
      }
      if (key === "missingValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.missingValue = obj;
        continue;
      }
      if (key === "notes") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.notes = obj;
        continue;
      }
      if (key === "number") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.columnNumber = obj;
        continue;
      }
      if (key === "physicalSample") {
        let obj = null;
        thisObj.physicalSamples = [];
        for (const value of pvalue) {
          obj = PhysicalSample.fromJson(value);
          thisObj.physicalSamples.push(obj);
        }
        continue;
      }
      if (key === "proxy") {
        let obj = null;
        let value = pvalue;
        obj = PaleoProxy.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.proxy = obj;
        continue;
      }
      if (key === "proxyGeneral") {
        let obj = null;
        let value = pvalue;
        obj = PaleoProxyGeneral.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.proxyGeneral = obj;
        continue;
      }
      if (key === "resolution") {
        let obj = null;
        let value = pvalue;
        obj = Resolution.fromJson(value);
        thisObj.resolution = obj;
        continue;
      }
      if (key === "uncertainty") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.uncertainty = obj;
        continue;
      }
      if (key === "uncertaintyAnalytical") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.uncertaintyAnalytical = obj;
        continue;
      }
      if (key === "uncertaintyReproducibility") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.uncertaintyReproducibility = obj;
        continue;
      }
      if (key === "units") {
        let obj = null;
        let value = pvalue;
        obj = PaleoUnit.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.units = obj;
        continue;
      }
      if (key === "variableName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      if (key === "variableType") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.variableType = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getArchiveType() {
    return this.archiveType;
  }
  setArchiveType(archiveType) {
    this.archiveType = archiveType;
  }
  getCalibratedVias() {
    return this.calibratedVias;
  }
  setCalibratedVias(calibratedVias) {
    this.calibratedVias = calibratedVias;
  }
  addCalibratedVia(calibratedVias) {
    this.calibratedVias.push(calibratedVias);
  }
  getColumnNumber() {
    return this.columnNumber;
  }
  setColumnNumber(columnNumber) {
    this.columnNumber = columnNumber;
  }
  getDescription() {
    return this.description;
  }
  setDescription(description) {
    this.description = description;
  }
  getFoundInDataset() {
    return this.foundInDataset;
  }
  setFoundInDataset(foundInDataset) {
    this.foundInDataset = foundInDataset;
  }
  getFoundInTable() {
    return this.foundInTable;
  }
  setFoundInTable(foundInTable) {
    this.foundInTable = foundInTable;
  }
  getInstrument() {
    return this.instrument;
  }
  setInstrument(instrument) {
    this.instrument = instrument;
  }
  getInterpretations() {
    return this.interpretations;
  }
  setInterpretations(interpretations) {
    this.interpretations = interpretations;
  }
  addInterpretation(interpretations) {
    this.interpretations.push(interpretations);
  }
  getMaxValue() {
    return this.maxValue;
  }
  setMaxValue(maxValue) {
    this.maxValue = maxValue;
  }
  getMeanValue() {
    return this.meanValue;
  }
  setMeanValue(meanValue) {
    this.meanValue = meanValue;
  }
  getMedianValue() {
    return this.medianValue;
  }
  setMedianValue(medianValue) {
    this.medianValue = medianValue;
  }
  getMinValue() {
    return this.minValue;
  }
  setMinValue(minValue) {
    this.minValue = minValue;
  }
  getMissingValue() {
    return this.missingValue;
  }
  setMissingValue(missingValue) {
    this.missingValue = missingValue;
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  getPartOfCompilations() {
    return this.partOfCompilations;
  }
  setPartOfCompilations(partOfCompilations) {
    this.partOfCompilations = partOfCompilations;
  }
  addPartOfCompilation(partOfCompilations) {
    this.partOfCompilations.push(partOfCompilations);
  }
  getPhysicalSamples() {
    return this.physicalSamples;
  }
  setPhysicalSamples(physicalSamples) {
    this.physicalSamples = physicalSamples;
  }
  addPhysicalSample(physicalSamples) {
    this.physicalSamples.push(physicalSamples);
  }
  getProxy() {
    return this.proxy;
  }
  setProxy(proxy) {
    this.proxy = proxy;
  }
  getProxyGeneral() {
    return this.proxyGeneral;
  }
  setProxyGeneral(proxyGeneral) {
    this.proxyGeneral = proxyGeneral;
  }
  getResolution() {
    return this.resolution;
  }
  setResolution(resolution) {
    this.resolution = resolution;
  }
  getStandardVariable() {
    return this.standardVariable;
  }
  setStandardVariable(standardVariable) {
    this.standardVariable = standardVariable;
  }
  getUncertainty() {
    return this.uncertainty;
  }
  setUncertainty(uncertainty) {
    this.uncertainty = uncertainty;
  }
  getUncertaintyAnalytical() {
    return this.uncertaintyAnalytical;
  }
  setUncertaintyAnalytical(uncertaintyAnalytical) {
    this.uncertaintyAnalytical = uncertaintyAnalytical;
  }
  getUncertaintyReproducibility() {
    return this.uncertaintyReproducibility;
  }
  setUncertaintyReproducibility(uncertaintyReproducibility) {
    this.uncertaintyReproducibility = uncertaintyReproducibility;
  }
  getUnits() {
    return this.units;
  }
  setUnits(units) {
    this.units = units;
  }
  getValues() {
    return this.values;
  }
  setValues(values) {
    this.values = values;
  }
  getVariableId() {
    return this.variableId;
  }
  setVariableId(variableId) {
    this.variableId = variableId;
  }
  getVariableType() {
    return this.variableType;
  }
  setVariableType(variableType) {
    this.variableType = variableType;
  }
  isComposite() {
    return this.composite;
  }
  setComposite(composite) {
    this.composite = composite;
  }
  isPrimary() {
    return this.primary;
  }
  setPrimary(primary) {
    this.primary = primary;
  }
};

// src/classes/datatable.ts
var DataTable = class _DataTable {
  constructor() {
    this.fileName = null;
    this.missingValue = null;
    this.variables = [];
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#DataTable";
    this._id = this._ns + "/" + uniqid("DataTable");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _DataTable();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.fileName !== null) {
      thisObj.fileName = data.fileName;
    }
    if (data.missingValue !== null) {
      thisObj.missingValue = data.missingValue;
    }
    thisObj.variables = [];
    for (const value of data.variables || []) {
      thisObj.variables.push(Variable.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _DataTable();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasFileName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.fileName = obj;
        }
      } else if (key === "hasMissingValue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.missingValue = obj;
        }
      } else if (key === "hasVariable") {
        thisObj.variables = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Variable.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.variables.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.fileName !== null) {
      const valueObj = this.fileName;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasFileName"] = [obj];
    }
    if (this.missingValue !== null) {
      const valueObj = this.missingValue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasMissingValue"] = [obj];
    }
    if (this.variables.length > 0) {
      data[this._id]["hasVariable"] = [];
      for (const valueObj of this.variables) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasVariable"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.fileName !== null) {
      const valueObj = this.fileName;
      const obj = valueObj;
      data["filename"] = obj;
    }
    if (this.missingValue !== null) {
      const valueObj = this.missingValue;
      const obj = valueObj;
      data["missingValue"] = obj;
    }
    if (this.variables.length > 0) {
      data["columns"] = [];
      for (const valueObj of this.variables) {
        const obj = valueObj.toJson();
        data["columns"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _DataTable();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "columns") {
        let obj = null;
        thisObj.variables = [];
        for (const value of pvalue) {
          obj = Variable.fromJson(value);
          thisObj.variables.push(obj);
        }
        continue;
      }
      if (key === "filename") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.fileName = obj;
        continue;
      }
      if (key === "missingValue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.missingValue = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getFileName() {
    return this.fileName;
  }
  setFileName(fileName) {
    this.fileName = fileName;
  }
  getMissingValue() {
    return this.missingValue;
  }
  setMissingValue(missingValue) {
    this.missingValue = missingValue;
  }
  getVariables() {
    return this.variables;
  }
  setVariables(variables) {
    this.variables = variables;
  }
  addVariable(variables) {
    this.variables.push(variables);
  }
  /**
   * Get data as a DataFrame-like structure
   * @param useStandardNames Whether to use standard variable names instead of custom names
   * @returns Object containing data and metadata
  */
  getDataFrame(useStandardNames = false) {
    const result = {
      data: {},
      metadata: {}
    };
    for (const v of this.variables) {
      const name = v.getName();
      if (!name)
        continue;
      let colname = name;
      const standardVar = v.getStandardVariable();
      if (useStandardNames && standardVar !== null) {
        const label = standardVar.getLabel();
        if (label)
          colname = label;
      }
      const values = v.getValues();
      if (values) {
        result.data[colname] = parseVariableValues(values);
      }
      const varMetadata = v.toJson();
      if (varMetadata) {
        result.metadata[colname] = varMetadata;
        delete result.metadata[colname].hasValues;
        delete result.metadata[colname].values;
      }
    }
    return result;
  }
  getDataList() {
    const result = {
      data: [],
      metadata: []
    };
    for (const v of this.variables) {
      const values = v.getValues();
      if (values) {
        result.data.push(parseVariableValues(values));
      }
      const varMetadata = v.toJson();
      if (varMetadata) {
        delete varMetadata.hasValues;
        delete varMetadata.values;
        result.metadata.push(varMetadata);
      }
    }
    return result;
  }
  /**
   * Set data from a DataFrame-like structure
   * @param data Object containing data and metadata
   */
  setDataFrame(data) {
    this.variables = [];
    for (const [colname, values] of Object.entries(data.data)) {
      const metadata = data.metadata[colname];
      if (!metadata)
        continue;
      const v = Variable.fromJson(metadata);
      if (v) {
        v.setValues(JSON.stringify(values));
        this.addVariable(v);
      }
    }
  }
  /**
   * Set data from a DataFrame-like structure
   * @param data Object containing data and metadata
   */
  setDataList(data) {
    this.variables = [];
    const transposedData = [];
    for (let i = 0; i < data.metadata.length; i++) {
      transposedData[i] = [];
    }
    for (let rowIndex = 0; rowIndex < data.data.length; rowIndex++) {
      const row = data.data[rowIndex];
      for (let colIndex = 0; colIndex < row.length; colIndex++) {
        if (colIndex < transposedData.length) {
          transposedData[colIndex].push(row[colIndex]);
        }
      }
    }
    for (let i = 0; i < data.metadata.length; i++) {
      const values = transposedData[i];
      const metadata = data.metadata[i];
      if (!metadata)
        continue;
      const v = Variable.fromJson(metadata);
      if (v) {
        v.setValues(JSON.stringify(values));
        this.addVariable(v);
      }
    }
  }
};

// src/classes/model.ts
var Model = class _Model {
  constructor() {
    this.code = null;
    this.distributionTables = [];
    this.ensembleTables = [];
    this.summaryTables = [];
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Model";
    this._id = this._ns + "/" + uniqid("Model");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Model();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.code !== null) {
      thisObj.code = data.code;
    }
    thisObj.distributionTables = [];
    for (const value of data.distributionTables || []) {
      thisObj.distributionTables.push(DataTable.fromDictionary(value));
    }
    thisObj.ensembleTables = [];
    for (const value of data.ensembleTables || []) {
      thisObj.ensembleTables.push(DataTable.fromDictionary(value));
    }
    thisObj.summaryTables = [];
    for (const value of data.summaryTables || []) {
      thisObj.summaryTables.push(DataTable.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Model();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasCode") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.code = obj;
        }
      } else if (key === "hasDistributionTable") {
        thisObj.distributionTables = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = DataTable.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.distributionTables.push(obj);
        }
      } else if (key === "hasEnsembleTable") {
        thisObj.ensembleTables = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = DataTable.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.ensembleTables.push(obj);
        }
      } else if (key === "hasSummaryTable") {
        thisObj.summaryTables = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = DataTable.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.summaryTables.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.code !== null) {
      const valueObj = this.code;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCode"] = [obj];
    }
    if (this.distributionTables.length > 0) {
      data[this._id]["hasDistributionTable"] = [];
      for (const valueObj of this.distributionTables) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasDistributionTable"].push(obj);
      }
    }
    if (this.ensembleTables.length > 0) {
      data[this._id]["hasEnsembleTable"] = [];
      for (const valueObj of this.ensembleTables) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasEnsembleTable"].push(obj);
      }
    }
    if (this.summaryTables.length > 0) {
      data[this._id]["hasSummaryTable"] = [];
      for (const valueObj of this.summaryTables) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasSummaryTable"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.code !== null) {
      const valueObj = this.code;
      const obj = valueObj;
      data["method"] = obj;
    }
    if (this.distributionTables.length > 0) {
      data["distributionTable"] = [];
      for (const valueObj of this.distributionTables) {
        const obj = valueObj.toJson();
        data["distributionTable"].push(obj);
      }
    }
    if (this.ensembleTables.length > 0) {
      data["ensembleTable"] = [];
      for (const valueObj of this.ensembleTables) {
        const obj = valueObj.toJson();
        data["ensembleTable"].push(obj);
      }
    }
    if (this.summaryTables.length > 0) {
      data["summaryTable"] = [];
      for (const valueObj of this.summaryTables) {
        const obj = valueObj.toJson();
        data["summaryTable"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Model();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "distributionTable") {
        let obj = null;
        thisObj.distributionTables = [];
        for (const value of pvalue) {
          obj = DataTable.fromJson(value);
          thisObj.distributionTables.push(obj);
        }
        continue;
      }
      if (key === "ensembleTable") {
        let obj = null;
        thisObj.ensembleTables = [];
        for (const value of pvalue) {
          obj = DataTable.fromJson(value);
          thisObj.ensembleTables.push(obj);
        }
        continue;
      }
      if (key === "method") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.code = obj;
        continue;
      }
      if (key === "summaryTable") {
        let obj = null;
        thisObj.summaryTables = [];
        for (const value of pvalue) {
          obj = DataTable.fromJson(value);
          thisObj.summaryTables.push(obj);
        }
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getCode() {
    return this.code;
  }
  setCode(code) {
    this.code = code;
  }
  getDistributionTables() {
    return this.distributionTables;
  }
  setDistributionTables(distributionTables) {
    this.distributionTables = distributionTables;
  }
  addDistributionTable(distributionTables) {
    this.distributionTables.push(distributionTables);
  }
  getEnsembleTables() {
    return this.ensembleTables;
  }
  setEnsembleTables(ensembleTables) {
    this.ensembleTables = ensembleTables;
  }
  addEnsembleTable(ensembleTables) {
    this.ensembleTables.push(ensembleTables);
  }
  getSummaryTables() {
    return this.summaryTables;
  }
  setSummaryTables(summaryTables) {
    this.summaryTables = summaryTables;
  }
  addSummaryTable(summaryTables) {
    this.summaryTables.push(summaryTables);
  }
};

// src/classes/chrondata.ts
var ChronData = class _ChronData {
  constructor() {
    this.measurementTables = [];
    this.modeledBy = [];
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#ChronData";
    this._id = this._ns + "/" + uniqid("ChronData");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _ChronData();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    thisObj.measurementTables = [];
    for (const value of data.measurementTables || []) {
      thisObj.measurementTables.push(DataTable.fromDictionary(value));
    }
    thisObj.modeledBy = [];
    for (const value of data.modeledBy || []) {
      thisObj.modeledBy.push(Model.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _ChronData();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasMeasurementTable") {
        thisObj.measurementTables = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = DataTable.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.measurementTables.push(obj);
        }
      } else if (key === "modeledBy") {
        thisObj.modeledBy = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Model.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.modeledBy.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.measurementTables.length > 0) {
      data[this._id]["hasMeasurementTable"] = [];
      for (const valueObj of this.measurementTables) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasMeasurementTable"].push(obj);
      }
    }
    if (this.modeledBy.length > 0) {
      data[this._id]["modeledBy"] = [];
      for (const valueObj of this.modeledBy) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["modeledBy"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.measurementTables.length > 0) {
      data["measurementTable"] = [];
      for (const valueObj of this.measurementTables) {
        const obj = valueObj.toJson();
        data["measurementTable"].push(obj);
      }
    }
    if (this.modeledBy.length > 0) {
      data["model"] = [];
      for (const valueObj of this.modeledBy) {
        const obj = valueObj.toJson();
        data["model"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _ChronData();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "measurementTable") {
        let obj = null;
        thisObj.measurementTables = [];
        for (const value of pvalue) {
          obj = DataTable.fromJson(value);
          thisObj.measurementTables.push(obj);
        }
        continue;
      }
      if (key === "model") {
        let obj = null;
        thisObj.modeledBy = [];
        for (const value of pvalue) {
          obj = Model.fromJson(value);
          thisObj.modeledBy.push(obj);
        }
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getMeasurementTables() {
    return this.measurementTables;
  }
  setMeasurementTables(measurementTables) {
    this.measurementTables = measurementTables;
  }
  addMeasurementTable(measurementTables) {
    this.measurementTables.push(measurementTables);
  }
  getModeledBy() {
    return this.modeledBy;
  }
  setModeledBy(modeledBy) {
    this.modeledBy = modeledBy;
  }
  addModeledBy(modeledBy) {
    this.modeledBy.push(modeledBy);
  }
};

// src/classes/person.ts
var Person = class _Person {
  constructor() {
    this.name = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Person";
    this._id = this._ns + "/" + uniqid("Person");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Person();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Person();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasName"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["name"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Person();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "name") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
  }
};

// src/classes/funding.ts
var Funding = class _Funding {
  constructor() {
    this.fundingAgency = null;
    this.fundingCountry = null;
    this.grants = [];
    this.investigators = [];
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Funding";
    this._id = this._ns + "/" + uniqid("Funding");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Funding();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.fundingAgency !== null) {
      thisObj.fundingAgency = data.fundingAgency;
    }
    if (data.fundingCountry !== null) {
      thisObj.fundingCountry = data.fundingCountry;
    }
    thisObj.grants = [];
    for (const value of data.grants || []) {
      thisObj.grants.push(value);
    }
    thisObj.investigators = [];
    for (const value of data.investigators || []) {
      thisObj.investigators.push(Person.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Funding();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasFundingAgency") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.fundingAgency = obj;
        }
      } else if (key === "hasFundingCountry") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.fundingCountry = obj;
        }
      } else if (key === "hasGrant") {
        thisObj.grants = [];
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.grants.push(obj);
        }
      } else if (key === "hasInvestigator") {
        thisObj.investigators = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Person.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.investigators.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.fundingAgency !== null) {
      const valueObj = this.fundingAgency;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasFundingAgency"] = [obj];
    }
    if (this.fundingCountry !== null) {
      const valueObj = this.fundingCountry;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasFundingCountry"] = [obj];
    }
    if (this.grants.length > 0) {
      data[this._id]["hasGrant"] = [];
      for (const valueObj of this.grants) {
        const obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
        data[this._id]["hasGrant"].push(obj);
      }
    }
    if (this.investigators.length > 0) {
      data[this._id]["hasInvestigator"] = [];
      for (const valueObj of this.investigators) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasInvestigator"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.fundingAgency !== null) {
      const valueObj = this.fundingAgency;
      const obj = valueObj;
      data["agency"] = obj;
    }
    if (this.fundingCountry !== null) {
      const valueObj = this.fundingCountry;
      const obj = valueObj;
      data["country"] = obj;
    }
    if (this.grants.length > 0) {
      data["grant"] = [];
      for (const valueObj of this.grants) {
        const obj = valueObj;
        data["grant"].push(obj);
      }
    }
    if (this.investigators.length > 0) {
      data["investigator"] = [];
      for (const valueObj of this.investigators) {
        const obj = valueObj.toJson();
        data["investigator"].push(obj);
      }
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Funding();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "agency") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.fundingAgency = obj;
        continue;
      }
      if (key === "country") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.fundingCountry = obj;
        continue;
      }
      if (key === "grant") {
        let obj = null;
        thisObj.grants = [];
        for (const value of pvalue) {
          obj = value;
          thisObj.grants.push(obj);
        }
        continue;
      }
      if (key === "investigator") {
        let obj = null;
        thisObj.investigators = [];
        for (const value of pvalue) {
          obj = Person.fromJson(value);
          thisObj.investigators.push(obj);
        }
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getFundingAgency() {
    return this.fundingAgency;
  }
  setFundingAgency(fundingAgency) {
    this.fundingAgency = fundingAgency;
  }
  getFundingCountry() {
    return this.fundingCountry;
  }
  setFundingCountry(fundingCountry) {
    this.fundingCountry = fundingCountry;
  }
  getGrants() {
    return this.grants;
  }
  setGrants(grants) {
    this.grants = grants;
  }
  addGrant(grants) {
    this.grants.push(grants);
  }
  getInvestigators() {
    return this.investigators;
  }
  setInvestigators(investigators) {
    this.investigators = investigators;
  }
  addInvestigator(investigators) {
    this.investigators.push(investigators);
  }
};

// src/classes/location.ts
var Location = class _Location {
  constructor() {
    this.continent = null;
    this.coordinates = null;
    this.coordinatesFor = null;
    this.country = null;
    this.countryOcean = null;
    this.description = null;
    this.elevation = null;
    this.geometryType = null;
    this.latitude = null;
    this.locationName = null;
    this.locationType = null;
    this.longitude = null;
    this.notes = null;
    this.ocean = null;
    this.siteName = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Location";
    this._id = this._ns + "/" + uniqid("Location");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Location();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.continent !== null) {
      thisObj.continent = data.continent;
    }
    if (data.coordinates !== null) {
      thisObj.coordinates = data.coordinates;
    }
    if (data.coordinatesFor !== null) {
      thisObj.coordinatesFor = data.coordinatesFor;
    }
    if (data.country !== null) {
      thisObj.country = data.country;
    }
    if (data.countryOcean !== null) {
      thisObj.countryOcean = data.countryOcean;
    }
    if (data.description !== null) {
      thisObj.description = data.description;
    }
    if (data.elevation !== null) {
      thisObj.elevation = data.elevation;
    }
    if (data.geometryType !== null) {
      thisObj.geometryType = data.geometryType;
    }
    if (data.latitude !== null) {
      thisObj.latitude = data.latitude;
    }
    if (data.locationName !== null) {
      thisObj.locationName = data.locationName;
    }
    if (data.locationType !== null) {
      thisObj.locationType = data.locationType;
    }
    if (data.longitude !== null) {
      thisObj.longitude = data.longitude;
    }
    if (data.notes !== null) {
      thisObj.notes = data.notes;
    }
    if (data.ocean !== null) {
      thisObj.ocean = data.ocean;
    }
    if (data.siteName !== null) {
      thisObj.siteName = data.siteName;
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Location();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "coordinates") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.coordinates = obj;
        }
      } else if (key === "coordinatesFor") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.coordinatesFor = obj;
        }
      } else if (key === "hasContinent") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.continent = obj;
        }
      } else if (key === "hasCountry") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.country = obj;
        }
      } else if (key === "hasCountryOcean") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.countryOcean = obj;
        }
      } else if (key === "hasDescription") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.description = obj;
        }
      } else if (key === "hasElevation") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.elevation = obj;
        }
      } else if (key === "hasGeometryType") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.geometryType = obj;
        }
      } else if (key === "hasLatitude") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.latitude = obj;
        }
      } else if (key === "hasLocationName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.locationName = obj;
        }
      } else if (key === "hasLongitude") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.longitude = obj;
        }
      } else if (key === "hasNotes") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes = obj;
        }
      } else if (key === "hasOcean") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.ocean = obj;
        }
      } else if (key === "hasSiteName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.siteName = obj;
        }
      } else if (key === "hasType") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.locationType = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.continent !== null) {
      const valueObj = this.continent;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasContinent"] = [obj];
    }
    if (this.coordinates !== null) {
      const valueObj = this.coordinates;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["coordinates"] = [obj];
    }
    if (this.coordinatesFor !== null) {
      const valueObj = this.coordinatesFor;
      const obj = {
        "@id": valueObj,
        "@type": "uri"
      };
      data[this._id]["coordinatesFor"] = [obj];
    }
    if (this.country !== null) {
      const valueObj = this.country;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCountry"] = [obj];
    }
    if (this.countryOcean !== null) {
      const valueObj = this.countryOcean;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCountryOcean"] = [obj];
    }
    if (this.description !== null) {
      const valueObj = this.description;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDescription"] = [obj];
    }
    if (this.elevation !== null) {
      const valueObj = this.elevation;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasElevation"] = [obj];
    }
    if (this.geometryType !== null) {
      const valueObj = this.geometryType;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasGeometryType"] = [obj];
    }
    if (this.latitude !== null) {
      const valueObj = this.latitude;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasLatitude"] = [obj];
    }
    if (this.locationName !== null) {
      const valueObj = this.locationName;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasLocationName"] = [obj];
    }
    if (this.locationType !== null) {
      const valueObj = this.locationType;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasType"] = [obj];
    }
    if (this.longitude !== null) {
      const valueObj = this.longitude;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasLongitude"] = [obj];
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasNotes"] = [obj];
    }
    if (this.ocean !== null) {
      const valueObj = this.ocean;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasOcean"] = [obj];
    }
    if (this.siteName !== null) {
      const valueObj = this.siteName;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasSiteName"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.continent !== null) {
      const valueObj = this.continent;
      const obj = valueObj;
      data["continent"] = obj;
    }
    if (this.coordinates !== null) {
      const valueObj = this.coordinates;
      const obj = valueObj;
      data["coordinates"] = obj;
    }
    if (this.coordinatesFor !== null) {
      const valueObj = this.coordinatesFor;
      const obj = valueObj;
      data["coordinatesFor"] = obj;
    }
    if (this.country !== null) {
      const valueObj = this.country;
      const obj = valueObj;
      data["country"] = obj;
    }
    if (this.countryOcean !== null) {
      const valueObj = this.countryOcean;
      const obj = valueObj;
      data["countryOcean"] = obj;
    }
    if (this.description !== null) {
      const valueObj = this.description;
      const obj = valueObj;
      data["description"] = obj;
    }
    if (this.elevation !== null) {
      const valueObj = this.elevation;
      const obj = valueObj;
      data["elevation"] = obj;
    }
    if (this.geometryType !== null) {
      const valueObj = this.geometryType;
      const obj = valueObj;
      data["geometryType"] = obj;
    }
    if (this.latitude !== null) {
      const valueObj = this.latitude;
      const obj = valueObj;
      data["latitude"] = obj;
    }
    if (this.locationName !== null) {
      const valueObj = this.locationName;
      const obj = valueObj;
      data["locationName"] = obj;
    }
    if (this.locationType !== null) {
      const valueObj = this.locationType;
      const obj = valueObj;
      data["type"] = obj;
    }
    if (this.longitude !== null) {
      const valueObj = this.longitude;
      const obj = valueObj;
      data["longitude"] = obj;
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = valueObj;
      data["notes"] = obj;
    }
    if (this.ocean !== null) {
      const valueObj = this.ocean;
      const obj = valueObj;
      data["ocean"] = obj;
    }
    if (this.siteName !== null) {
      const valueObj = this.siteName;
      const obj = valueObj;
      data["siteName"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Location();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "continent") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.continent = obj;
        continue;
      }
      if (key === "coordinates") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.coordinates = obj;
        continue;
      }
      if (key === "coordinatesFor") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.coordinatesFor = obj;
        continue;
      }
      if (key === "country") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.country = obj;
        continue;
      }
      if (key === "countryOcean") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.countryOcean = obj;
        continue;
      }
      if (key === "description") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.description = obj;
        continue;
      }
      if (key === "elevation") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.elevation = obj;
        continue;
      }
      if (key === "geometryType") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.geometryType = obj;
        continue;
      }
      if (key === "latitude") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.latitude = obj;
        continue;
      }
      if (key === "locationName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.locationName = obj;
        continue;
      }
      if (key === "longitude") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.longitude = obj;
        continue;
      }
      if (key === "notes") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.notes = obj;
        continue;
      }
      if (key === "ocean") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.ocean = obj;
        continue;
      }
      if (key === "siteName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.siteName = obj;
        continue;
      }
      if (key === "type") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.locationType = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getContinent() {
    return this.continent;
  }
  setContinent(continent) {
    this.continent = continent;
  }
  getCoordinates() {
    return this.coordinates;
  }
  setCoordinates(coordinates) {
    this.coordinates = coordinates;
  }
  getCoordinatesFor() {
    return this.coordinatesFor;
  }
  setCoordinatesFor(coordinatesFor) {
    this.coordinatesFor = coordinatesFor;
  }
  getCountry() {
    return this.country;
  }
  setCountry(country) {
    this.country = country;
  }
  getCountryOcean() {
    return this.countryOcean;
  }
  setCountryOcean(countryOcean) {
    this.countryOcean = countryOcean;
  }
  getDescription() {
    return this.description;
  }
  setDescription(description) {
    this.description = description;
  }
  getElevation() {
    return this.elevation;
  }
  setElevation(elevation) {
    this.elevation = elevation;
  }
  getGeometryType() {
    return this.geometryType;
  }
  setGeometryType(geometryType) {
    this.geometryType = geometryType;
  }
  getLatitude() {
    return this.latitude;
  }
  setLatitude(latitude) {
    this.latitude = latitude;
  }
  getLocationName() {
    return this.locationName;
  }
  setLocationName(locationName) {
    this.locationName = locationName;
  }
  getLocationType() {
    return this.locationType;
  }
  setLocationType(locationType) {
    this.locationType = locationType;
  }
  getLongitude() {
    return this.longitude;
  }
  setLongitude(longitude) {
    this.longitude = longitude;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  getOcean() {
    return this.ocean;
  }
  setOcean(ocean) {
    this.ocean = ocean;
  }
  getSiteName() {
    return this.siteName;
  }
  setSiteName(siteName) {
    this.siteName = siteName;
  }
};

// src/classes/paleodata.ts
var PaleoData = class _PaleoData {
  constructor() {
    this.measurementTables = [];
    this.modeledBy = [];
    this.name = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#PaleoData";
    this._id = this._ns + "/" + uniqid("PaleoData");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _PaleoData();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    thisObj.measurementTables = [];
    for (const value of data.measurementTables || []) {
      thisObj.measurementTables.push(DataTable.fromDictionary(value));
    }
    thisObj.modeledBy = [];
    for (const value of data.modeledBy || []) {
      thisObj.modeledBy.push(Model.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _PaleoData();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasMeasurementTable") {
        thisObj.measurementTables = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = DataTable.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.measurementTables.push(obj);
        }
      } else if (key === "hasName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else if (key === "modeledBy") {
        thisObj.modeledBy = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Model.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.modeledBy.push(obj);
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.measurementTables.length > 0) {
      data[this._id]["hasMeasurementTable"] = [];
      for (const valueObj of this.measurementTables) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasMeasurementTable"].push(obj);
      }
    }
    if (this.modeledBy.length > 0) {
      data[this._id]["modeledBy"] = [];
      for (const valueObj of this.modeledBy) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["modeledBy"].push(obj);
      }
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasName"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.measurementTables.length > 0) {
      data["measurementTable"] = [];
      for (const valueObj of this.measurementTables) {
        const obj = valueObj.toJson();
        data["measurementTable"].push(obj);
      }
    }
    if (this.modeledBy.length > 0) {
      data["model"] = [];
      for (const valueObj of this.modeledBy) {
        const obj = valueObj.toJson();
        data["model"].push(obj);
      }
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["paleoDataName"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _PaleoData();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "measurementTable") {
        let obj = null;
        thisObj.measurementTables = [];
        for (const value of pvalue) {
          obj = DataTable.fromJson(value);
          thisObj.measurementTables.push(obj);
        }
        continue;
      }
      if (key === "model") {
        let obj = null;
        thisObj.modeledBy = [];
        for (const value of pvalue) {
          obj = Model.fromJson(value);
          thisObj.modeledBy.push(obj);
        }
        continue;
      }
      if (key === "paleoDataName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getMeasurementTables() {
    return this.measurementTables;
  }
  setMeasurementTables(measurementTables) {
    this.measurementTables = measurementTables;
  }
  addMeasurementTable(measurementTables) {
    this.measurementTables.push(measurementTables);
  }
  getModeledBy() {
    return this.modeledBy;
  }
  setModeledBy(modeledBy) {
    this.modeledBy = modeledBy;
  }
  addModeledBy(modeledBy) {
    this.modeledBy.push(modeledBy);
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
  }
};

// src/classes/publication.ts
var Publication = class _Publication {
  constructor() {
    this.abstract = null;
    this.authors = [];
    this.citation = null;
    this.citeKey = null;
    this.dOI = null;
    this.dataUrls = [];
    this.firstAuthor = null;
    this.institution = null;
    this.issue = null;
    this.journal = null;
    this.pages = null;
    this.publicationType = null;
    this.publisher = null;
    this.report = null;
    this.title = null;
    this.urls = [];
    this.volume = null;
    this.year = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Publication";
    this._id = this._ns + "/" + uniqid("Publication");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Publication();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.abstract !== null) {
      thisObj.abstract = data.abstract;
    }
    if (data.citation !== null) {
      thisObj.citation = data.citation;
    }
    if (data.citeKey !== null) {
      thisObj.citeKey = data.citeKey;
    }
    if (data.dOI !== null) {
      thisObj.dOI = data.dOI;
    }
    if (data.firstAuthor !== null) {
      thisObj.firstAuthor = Person.fromDictionary(data.firstAuthor);
    }
    if (data.institution !== null) {
      thisObj.institution = data.institution;
    }
    if (data.issue !== null) {
      thisObj.issue = data.issue;
    }
    if (data.journal !== null) {
      thisObj.journal = data.journal;
    }
    if (data.pages !== null) {
      thisObj.pages = data.pages;
    }
    if (data.publicationType !== null) {
      thisObj.publicationType = data.publicationType;
    }
    if (data.publisher !== null) {
      thisObj.publisher = data.publisher;
    }
    if (data.report !== null) {
      thisObj.report = data.report;
    }
    if (data.title !== null) {
      thisObj.title = data.title;
    }
    if (data.volume !== null) {
      thisObj.volume = data.volume;
    }
    if (data.year !== null) {
      thisObj.year = data.year;
    }
    thisObj.authors = [];
    for (const value of data.authors || []) {
      thisObj.authors.push(Person.fromDictionary(value));
    }
    thisObj.dataUrls = [];
    for (const value of data.dataUrls || []) {
      thisObj.dataUrls.push(value);
    }
    thisObj.urls = [];
    for (const value of data.urls || []) {
      thisObj.urls.push(value);
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Publication();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasAbstract") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.abstract = obj;
        }
      } else if (key === "hasAuthor") {
        thisObj.authors = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Person.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.authors.push(obj);
        }
      } else if (key === "hasCitation") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.citation = obj;
        }
      } else if (key === "hasCiteKey") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.citeKey = obj;
        }
      } else if (key === "hasDOI") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.dOI = obj;
        }
      } else if (key === "hasDataUrl") {
        thisObj.dataUrls = [];
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.dataUrls.push(obj);
        }
      } else if (key === "hasFirstAuthor") {
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Person.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.firstAuthor = obj;
        }
      } else if (key === "hasInstitution") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.institution = obj;
        }
      } else if (key === "hasIssue") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.issue = obj;
        }
      } else if (key === "hasJournal") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.journal = obj;
        }
      } else if (key === "hasPages") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.pages = obj;
        }
      } else if (key === "hasPublisher") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.publisher = obj;
        }
      } else if (key === "hasReport") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.report = obj;
        }
      } else if (key === "hasTitle") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.title = obj;
        }
      } else if (key === "hasType") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.publicationType = obj;
        }
      } else if (key === "hasUrl") {
        thisObj.urls = [];
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.urls.push(obj);
        }
      } else if (key === "hasVolume") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.volume = obj;
        }
      } else if (key === "hasYear") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.year = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.abstract !== null) {
      const valueObj = this.abstract;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasAbstract"] = [obj];
    }
    if (this.authors.length > 0) {
      data[this._id]["hasAuthor"] = [];
      for (const valueObj of this.authors) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasAuthor"].push(obj);
      }
    }
    if (this.citation !== null) {
      const valueObj = this.citation;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCitation"] = [obj];
    }
    if (this.citeKey !== null) {
      const valueObj = this.citeKey;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCiteKey"] = [obj];
    }
    if (this.dOI !== null) {
      const valueObj = this.dOI;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDOI"] = [obj];
    }
    if (this.dataUrls.length > 0) {
      data[this._id]["hasDataUrl"] = [];
      for (const valueObj of this.dataUrls) {
        const obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
        data[this._id]["hasDataUrl"].push(obj);
      }
    }
    if (this.firstAuthor !== null) {
      const valueObj = this.firstAuthor;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasFirstAuthor"] = [obj];
    }
    if (this.institution !== null) {
      const valueObj = this.institution;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasInstitution"] = [obj];
    }
    if (this.issue !== null) {
      const valueObj = this.issue;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasIssue"] = [obj];
    }
    if (this.journal !== null) {
      const valueObj = this.journal;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasJournal"] = [obj];
    }
    if (this.pages !== null) {
      const valueObj = this.pages;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasPages"] = [obj];
    }
    if (this.publicationType !== null) {
      const valueObj = this.publicationType;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasType"] = [obj];
    }
    if (this.publisher !== null) {
      const valueObj = this.publisher;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasPublisher"] = [obj];
    }
    if (this.report !== null) {
      const valueObj = this.report;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasReport"] = [obj];
    }
    if (this.title !== null) {
      const valueObj = this.title;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasTitle"] = [obj];
    }
    if (this.urls.length > 0) {
      data[this._id]["hasUrl"] = [];
      for (const valueObj of this.urls) {
        const obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
        data[this._id]["hasUrl"].push(obj);
      }
    }
    if (this.volume !== null) {
      const valueObj = this.volume;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVolume"] = [obj];
    }
    if (this.year !== null) {
      const valueObj = this.year;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#integer"
      };
      data[this._id]["hasYear"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.abstract !== null) {
      const valueObj = this.abstract;
      const obj = valueObj;
      data["abstract"] = obj;
    }
    if (this.authors.length > 0) {
      data["author"] = [];
      for (const valueObj of this.authors) {
        const obj = valueObj.toJson();
        data["author"].push(obj);
      }
    }
    if (this.citation !== null) {
      const valueObj = this.citation;
      const obj = valueObj;
      data["citation"] = obj;
    }
    if (this.citeKey !== null) {
      const valueObj = this.citeKey;
      const obj = valueObj;
      data["citeKey"] = obj;
    }
    if (this.dOI !== null) {
      const valueObj = this.dOI;
      const obj = valueObj;
      data["doi"] = obj;
    }
    if (this.dataUrls.length > 0) {
      data["dataUrl"] = [];
      for (const valueObj of this.dataUrls) {
        const obj = valueObj;
        data["dataUrl"].push(obj);
      }
    }
    if (this.firstAuthor !== null) {
      const valueObj = this.firstAuthor;
      const obj = valueObj.toJson();
      data["firstauthor"] = obj;
    }
    if (this.institution !== null) {
      const valueObj = this.institution;
      const obj = valueObj;
      data["institution"] = obj;
    }
    if (this.issue !== null) {
      const valueObj = this.issue;
      const obj = valueObj;
      data["issue"] = obj;
    }
    if (this.journal !== null) {
      const valueObj = this.journal;
      const obj = valueObj;
      data["journal"] = obj;
    }
    if (this.pages !== null) {
      const valueObj = this.pages;
      const obj = valueObj;
      data["pages"] = obj;
    }
    if (this.publicationType !== null) {
      const valueObj = this.publicationType;
      const obj = valueObj;
      data["type"] = obj;
    }
    if (this.publisher !== null) {
      const valueObj = this.publisher;
      const obj = valueObj;
      data["publisher"] = obj;
    }
    if (this.report !== null) {
      const valueObj = this.report;
      const obj = valueObj;
      data["report"] = obj;
    }
    if (this.title !== null) {
      const valueObj = this.title;
      const obj = valueObj;
      data["title"] = obj;
    }
    if (this.urls.length > 0) {
      data["url"] = [];
      for (const valueObj of this.urls) {
        const obj = valueObj;
        data["url"].push(obj);
      }
    }
    if (this.volume !== null) {
      const valueObj = this.volume;
      const obj = valueObj;
      data["volume"] = obj;
    }
    if (this.year !== null) {
      const valueObj = this.year;
      const obj = valueObj;
      data["year"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Publication();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "abstract") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.abstract = obj;
        continue;
      }
      if (key === "author") {
        let obj = null;
        thisObj.authors = [];
        for (const value of pvalue) {
          obj = Person.fromJson(value);
          thisObj.authors.push(obj);
        }
        continue;
      }
      if (key === "citation") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.citation = obj;
        continue;
      }
      if (key === "citeKey") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.citeKey = obj;
        continue;
      }
      if (key === "dataUrl") {
        let obj = null;
        thisObj.dataUrls = [];
        for (const value of pvalue) {
          obj = value;
          thisObj.dataUrls.push(obj);
        }
        continue;
      }
      if (key === "doi") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.dOI = obj;
        continue;
      }
      if (key === "firstauthor") {
        let obj = null;
        let value = pvalue;
        obj = Person.fromJson(value);
        thisObj.firstAuthor = obj;
        continue;
      }
      if (key === "institution") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.institution = obj;
        continue;
      }
      if (key === "issue") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.issue = obj;
        continue;
      }
      if (key === "journal") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.journal = obj;
        continue;
      }
      if (key === "pages") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.pages = obj;
        continue;
      }
      if (key === "publisher") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.publisher = obj;
        continue;
      }
      if (key === "report") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.report = obj;
        continue;
      }
      if (key === "title") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.title = obj;
        continue;
      }
      if (key === "type") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.publicationType = obj;
        continue;
      }
      if (key === "url") {
        let obj = null;
        thisObj.urls = [];
        for (const value of pvalue) {
          obj = value;
          thisObj.urls.push(obj);
        }
        continue;
      }
      if (key === "volume") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.volume = obj;
        continue;
      }
      if (key === "year") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.year = obj;
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getAbstract() {
    return this.abstract;
  }
  setAbstract(abstract) {
    this.abstract = abstract;
  }
  getAuthors() {
    return this.authors;
  }
  setAuthors(authors) {
    this.authors = authors;
  }
  addAuthor(authors) {
    this.authors.push(authors);
  }
  getCitation() {
    return this.citation;
  }
  setCitation(citation) {
    this.citation = citation;
  }
  getCiteKey() {
    return this.citeKey;
  }
  setCiteKey(citeKey) {
    this.citeKey = citeKey;
  }
  getDOI() {
    return this.dOI;
  }
  setDOI(dOI) {
    this.dOI = dOI;
  }
  getDataUrls() {
    return this.dataUrls;
  }
  setDataUrls(dataUrls) {
    this.dataUrls = dataUrls;
  }
  addDataUrl(dataUrls) {
    this.dataUrls.push(dataUrls);
  }
  getFirstAuthor() {
    return this.firstAuthor;
  }
  setFirstAuthor(firstAuthor) {
    this.firstAuthor = firstAuthor;
  }
  getInstitution() {
    return this.institution;
  }
  setInstitution(institution) {
    this.institution = institution;
  }
  getIssue() {
    return this.issue;
  }
  setIssue(issue) {
    this.issue = issue;
  }
  getJournal() {
    return this.journal;
  }
  setJournal(journal) {
    this.journal = journal;
  }
  getPages() {
    return this.pages;
  }
  setPages(pages) {
    this.pages = pages;
  }
  getPublicationType() {
    return this.publicationType;
  }
  setPublicationType(publicationType) {
    this.publicationType = publicationType;
  }
  getPublisher() {
    return this.publisher;
  }
  setPublisher(publisher) {
    this.publisher = publisher;
  }
  getReport() {
    return this.report;
  }
  setReport(report) {
    this.report = report;
  }
  getTitle() {
    return this.title;
  }
  setTitle(title) {
    this.title = title;
  }
  getUrls() {
    return this.urls;
  }
  setUrls(urls) {
    this.urls = urls;
  }
  addUrl(urls) {
    this.urls.push(urls);
  }
  getVolume() {
    return this.volume;
  }
  setVolume(volume) {
    this.volume = volume;
  }
  getYear() {
    return this.year;
  }
  setYear(year) {
    this.year = year;
  }
};

// src/classes/dataset.ts
var Dataset = class _Dataset {
  constructor() {
    this.archiveType = null;
    this.changeLogs = [];
    this.chronData = [];
    this.collectionName = null;
    this.collectionYear = null;
    this.compilationNest = null;
    this.contributors = [];
    this.creators = [];
    this.dataSource = null;
    this.datasetId = null;
    this.fundings = [];
    this.investigators = [];
    this.location = null;
    this.name = null;
    this.notes = null;
    this.originalDataUrl = null;
    this.paleoData = [];
    this.publications = [];
    this.spreadsheetLink = null;
    this.version = null;
    this._misc = {};
    this._ontns = "http://linked.earth/ontology#";
    this._ns = "http://linked.earth/lipd";
    this._type = "http://linked.earth/ontology#Dataset";
    this._id = this._ns + "/" + uniqid("Dataset");
  }
  getId() {
    return this._id;
  }
  getType() {
    return this._type;
  }
  getMisc() {
    return this._misc;
  }
  static fromDictionary(data) {
    const thisObj = new _Dataset();
    thisObj._id = data._id;
    thisObj._type = data._type;
    thisObj._misc = data._misc;
    thisObj._ontns = data._ontns;
    thisObj._ns = data._ns;
    if (data.archiveType !== null) {
      thisObj.archiveType = new ArchiveType(data.archiveType.id, data.archiveType.label);
    }
    if (data.collectionName !== null) {
      thisObj.collectionName = data.collectionName;
    }
    if (data.collectionYear !== null) {
      thisObj.collectionYear = data.collectionYear;
    }
    if (data.compilationNest !== null) {
      thisObj.compilationNest = data.compilationNest;
    }
    if (data.dataSource !== null) {
      thisObj.dataSource = data.dataSource;
    }
    if (data.datasetId !== null) {
      thisObj.datasetId = data.datasetId;
    }
    if (data.location !== null) {
      thisObj.location = Location.fromDictionary(data.location);
    }
    if (data.name !== null) {
      thisObj.name = data.name;
    }
    if (data.notes !== null) {
      thisObj.notes = data.notes;
    }
    if (data.originalDataUrl !== null) {
      thisObj.originalDataUrl = data.originalDataUrl;
    }
    if (data.spreadsheetLink !== null) {
      thisObj.spreadsheetLink = data.spreadsheetLink;
    }
    if (data.version !== null) {
      thisObj.version = data.version;
    }
    thisObj.changeLogs = [];
    for (const value of data.changeLogs || []) {
      thisObj.changeLogs.push(ChangeLog.fromDictionary(value));
    }
    thisObj.chronData = [];
    for (const value of data.chronData || []) {
      thisObj.chronData.push(ChronData.fromDictionary(value));
    }
    thisObj.contributors = [];
    for (const value of data.contributors || []) {
      thisObj.contributors.push(Person.fromDictionary(value));
    }
    thisObj.creators = [];
    for (const value of data.creators || []) {
      thisObj.creators.push(Person.fromDictionary(value));
    }
    thisObj.fundings = [];
    for (const value of data.fundings || []) {
      thisObj.fundings.push(Funding.fromDictionary(value));
    }
    thisObj.investigators = [];
    for (const value of data.investigators || []) {
      thisObj.investigators.push(Person.fromDictionary(value));
    }
    thisObj.paleoData = [];
    for (const value of data.paleoData || []) {
      thisObj.paleoData.push(PaleoData.fromDictionary(value));
    }
    thisObj.publications = [];
    for (const value of data.publications || []) {
      thisObj.publications.push(Publication.fromDictionary(value));
    }
    return thisObj;
  }
  static fromData(id, data) {
    const thisObj = new _Dataset();
    thisObj._id = id;
    const mydata = data[id];
    for (const [key, value] of Object.entries(mydata)) {
      if (key === "type") {
        for (const val of value) {
          thisObj._type = val["@id"];
        }
        continue;
      } else if (key === "hasArchiveType") {
        for (const val of value) {
          let obj = null;
          obj = ArchiveType.fromSynonym(val["@id"].replace(/^.*?#/, ""));
          thisObj.archiveType = obj;
        }
      } else if (key === "hasChangeLog") {
        thisObj.changeLogs = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = ChangeLog.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.changeLogs.push(obj);
        }
      } else if (key === "hasChronData") {
        thisObj.chronData = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = ChronData.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.chronData.push(obj);
        }
      } else if (key === "hasCollectionName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.collectionName = obj;
        }
      } else if (key === "hasCollectionYear") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.collectionYear = obj;
        }
      } else if (key === "hasCompilationNest") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.compilationNest = obj;
        }
      } else if (key === "hasContributor") {
        thisObj.contributors = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Person.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.contributors.push(obj);
        }
      } else if (key === "hasCreator") {
        thisObj.creators = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Person.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.creators.push(obj);
        }
      } else if (key === "hasDataSource") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.dataSource = obj;
        }
      } else if (key === "hasDatasetId") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.datasetId = obj;
        }
      } else if (key === "hasFunding") {
        thisObj.fundings = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Funding.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.fundings.push(obj);
        }
      } else if (key === "hasInvestigator") {
        thisObj.investigators = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Person.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.investigators.push(obj);
        }
      } else if (key === "hasLocation") {
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Location.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.location = obj;
        }
      } else if (key === "hasName") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.name = obj;
        }
      } else if (key === "hasNotes") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.notes = obj;
        }
      } else if (key === "hasOriginalDataUrl") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.originalDataUrl = obj;
        }
      } else if (key === "hasPaleoData") {
        thisObj.paleoData = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = PaleoData.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.paleoData.push(obj);
        }
      } else if (key === "hasPublication") {
        thisObj.publications = [];
        for (const val of value) {
          let obj = null;
          if ("@id" in val) {
            obj = Publication.fromData(val["@id"], data);
          } else {
            obj = val["@value"];
          }
          thisObj.publications.push(obj);
        }
      } else if (key === "hasSpreadsheetLink") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.spreadsheetLink = obj;
        }
      } else if (key === "hasVersion") {
        for (const val of value) {
          let obj = null;
          if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj.version = obj;
        }
      } else {
        for (const val of value) {
          let obj;
          if ("@id" in val) {
            obj = data[val["@id"]];
          } else if ("@value" in val) {
            obj = val["@value"];
          }
          thisObj._misc[key] = obj;
        }
      }
    }
    return thisObj;
  }
  toData(data = {}) {
    data[this._id] = {};
    data[this._id]["type"] = [
      {
        "@id": this._type,
        "@type": "uri"
      }
    ];
    if (this.archiveType !== null) {
      const valueObj = this.archiveType;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasArchiveType"] = [obj];
    }
    if (this.changeLogs.length > 0) {
      data[this._id]["hasChangeLog"] = [];
      for (const valueObj of this.changeLogs) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasChangeLog"].push(obj);
      }
    }
    if (this.chronData.length > 0) {
      data[this._id]["hasChronData"] = [];
      for (const valueObj of this.chronData) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasChronData"].push(obj);
      }
    }
    if (this.collectionName !== null) {
      const valueObj = this.collectionName;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCollectionName"] = [obj];
    }
    if (this.collectionYear !== null) {
      const valueObj = this.collectionYear;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCollectionYear"] = [obj];
    }
    if (this.compilationNest !== null) {
      const valueObj = this.compilationNest;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasCompilationNest"] = [obj];
    }
    if (this.contributors.length > 0) {
      data[this._id]["hasContributor"] = [];
      for (const valueObj of this.contributors) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasContributor"].push(obj);
      }
    }
    if (this.creators.length > 0) {
      data[this._id]["hasCreator"] = [];
      for (const valueObj of this.creators) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasCreator"].push(obj);
      }
    }
    if (this.dataSource !== null) {
      const valueObj = this.dataSource;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDataSource"] = [obj];
    }
    if (this.datasetId !== null) {
      const valueObj = this.datasetId;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasDatasetId"] = [obj];
    }
    if (this.fundings.length > 0) {
      data[this._id]["hasFunding"] = [];
      for (const valueObj of this.fundings) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasFunding"].push(obj);
      }
    }
    if (this.investigators.length > 0) {
      data[this._id]["hasInvestigator"] = [];
      for (const valueObj of this.investigators) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasInvestigator"].push(obj);
      }
    }
    if (this.location !== null) {
      const valueObj = this.location;
      let obj = null;
      if (typeof valueObj === "string") {
        obj = {
          "@value": valueObj,
          "@type": "literal",
          "@datatype": "http://www.w3.org/2001/XMLSchema#string"
        };
      } else {
        obj = {
          "@id": valueObj.getId(),
          "@type": "uri"
        };
        data = valueObj.toData(data);
      }
      data[this._id]["hasLocation"] = [obj];
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasName"] = [obj];
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasNotes"] = [obj];
    }
    if (this.originalDataUrl !== null) {
      const valueObj = this.originalDataUrl;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasOriginalDataUrl"] = [obj];
    }
    if (this.paleoData.length > 0) {
      data[this._id]["hasPaleoData"] = [];
      for (const valueObj of this.paleoData) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasPaleoData"].push(obj);
      }
    }
    if (this.publications.length > 0) {
      data[this._id]["hasPublication"] = [];
      for (const valueObj of this.publications) {
        let obj = null;
        if (typeof valueObj === "string") {
          obj = {
            "@value": valueObj,
            "@type": "literal",
            "@datatype": "http://www.w3.org/2001/XMLSchema#string"
          };
        } else {
          obj = {
            "@id": valueObj.getId(),
            "@type": "uri"
          };
          data = valueObj.toData(data);
        }
        data[this._id]["hasPublication"].push(obj);
      }
    }
    if (this.spreadsheetLink !== null) {
      const valueObj = this.spreadsheetLink;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasSpreadsheetLink"] = [obj];
    }
    if (this.version !== null) {
      const valueObj = this.version;
      const obj = {
        "@value": valueObj,
        "@type": "literal",
        "@datatype": "http://www.w3.org/2001/XMLSchema#string"
      };
      data[this._id]["hasVersion"] = [obj];
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[this._id][key] = [];
      let ptype = null;
      const tp = typeof value;
      if (tp === "number") {
        if (Number.isInteger(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#integer";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#float";
        }
      } else if (tp === "string") {
        if (/\d{4}-\d{2}-\d{2}( |T)\d{2}:\d{2}:\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#datetime";
        } else if (/\d{4}-\d{2}-\d{2}/.test(value)) {
          ptype = "http://www.w3.org/2001/XMLSchema#date";
        } else {
          ptype = "http://www.w3.org/2001/XMLSchema#string";
        }
      } else if (tp === "boolean") {
        ptype = "http://www.w3.org/2001/XMLSchema#boolean";
      }
      data[this._id][key].push({
        "@value": value,
        "@type": "literal",
        "@datatype": ptype
      });
    }
    return data;
  }
  toJson() {
    const data = {
      "@id": this._id
    };
    if (this.archiveType !== null) {
      const valueObj = this.archiveType;
      const obj = valueObj.toJson();
      data["archiveType"] = obj;
    }
    if (this.changeLogs.length > 0) {
      data["changelog"] = [];
      for (const valueObj of this.changeLogs) {
        const obj = valueObj.toJson();
        data["changelog"].push(obj);
      }
    }
    if (this.chronData.length > 0) {
      data["chronData"] = [];
      for (const valueObj of this.chronData) {
        const obj = valueObj.toJson();
        data["chronData"].push(obj);
      }
    }
    if (this.collectionName !== null) {
      const valueObj = this.collectionName;
      const obj = valueObj;
      data["collectionName"] = obj;
    }
    if (this.collectionYear !== null) {
      const valueObj = this.collectionYear;
      const obj = valueObj;
      data["collectionYear"] = obj;
    }
    if (this.compilationNest !== null) {
      const valueObj = this.compilationNest;
      const obj = valueObj;
      data["compilation_nest"] = obj;
    }
    if (this.contributors.length > 0) {
      data["dataContributor"] = [];
      for (const valueObj of this.contributors) {
        const obj = valueObj.toJson();
        data["dataContributor"].push(obj);
      }
    }
    if (this.creators.length > 0) {
      data["creator"] = [];
      for (const valueObj of this.creators) {
        const obj = valueObj.toJson();
        data["creator"].push(obj);
      }
    }
    if (this.dataSource !== null) {
      const valueObj = this.dataSource;
      const obj = valueObj;
      data["dataSource"] = obj;
    }
    if (this.datasetId !== null) {
      const valueObj = this.datasetId;
      const obj = valueObj;
      data["datasetId"] = obj;
    }
    if (this.fundings.length > 0) {
      data["funding"] = [];
      for (const valueObj of this.fundings) {
        const obj = valueObj.toJson();
        data["funding"].push(obj);
      }
    }
    if (this.investigators.length > 0) {
      data["investigator"] = [];
      for (const valueObj of this.investigators) {
        const obj = valueObj.toJson();
        data["investigator"].push(obj);
      }
    }
    if (this.location !== null) {
      const valueObj = this.location;
      const obj = valueObj.toJson();
      data["geo"] = obj;
    }
    if (this.name !== null) {
      const valueObj = this.name;
      const obj = valueObj;
      data["dataSetName"] = obj;
    }
    if (this.notes !== null) {
      const valueObj = this.notes;
      const obj = valueObj;
      data["notes"] = obj;
    }
    if (this.originalDataUrl !== null) {
      const valueObj = this.originalDataUrl;
      const obj = valueObj;
      data["originalDataURL"] = obj;
    }
    if (this.paleoData.length > 0) {
      data["paleoData"] = [];
      for (const valueObj of this.paleoData) {
        const obj = valueObj.toJson();
        data["paleoData"].push(obj);
      }
    }
    if (this.publications.length > 0) {
      data["pub"] = [];
      for (const valueObj of this.publications) {
        const obj = valueObj.toJson();
        data["pub"].push(obj);
      }
    }
    if (this.spreadsheetLink !== null) {
      const valueObj = this.spreadsheetLink;
      const obj = valueObj;
      data["googleSpreadSheetKey"] = obj;
    }
    if (this.version !== null) {
      const valueObj = this.version;
      const obj = valueObj;
      data["dataSetVersion"] = obj;
    }
    for (const [key, value] of Object.entries(this._misc)) {
      data[key] = value;
    }
    return data;
  }
  static fromJson(data) {
    const thisObj = new _Dataset();
    for (const [key, pvalue] of Object.entries(data)) {
      if (key === "@id") {
        thisObj._id = pvalue;
        continue;
      }
      if (key === "archiveType") {
        let obj = null;
        let value = pvalue;
        obj = ArchiveType.fromSynonym(value.replace(/^.*?#/, ""));
        thisObj.archiveType = obj;
        continue;
      }
      if (key === "changelog") {
        let obj = null;
        thisObj.changeLogs = [];
        for (const value of pvalue) {
          obj = ChangeLog.fromJson(value);
          thisObj.changeLogs.push(obj);
        }
        continue;
      }
      if (key === "chronData") {
        let obj = null;
        thisObj.chronData = [];
        for (const value of pvalue) {
          obj = ChronData.fromJson(value);
          thisObj.chronData.push(obj);
        }
        continue;
      }
      if (key === "collectionName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.collectionName = obj;
        continue;
      }
      if (key === "collectionYear") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.collectionYear = obj;
        continue;
      }
      if (key === "compilation_nest") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.compilationNest = obj;
        continue;
      }
      if (key === "creator") {
        let obj = null;
        thisObj.creators = [];
        for (const value of pvalue) {
          obj = Person.fromJson(value);
          thisObj.creators.push(obj);
        }
        continue;
      }
      if (key === "dataContributor") {
        let obj = null;
        thisObj.contributors = [];
        for (const value of pvalue) {
          obj = Person.fromJson(value);
          thisObj.contributors.push(obj);
        }
        continue;
      }
      if (key === "dataSetName") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.name = obj;
        continue;
      }
      if (key === "dataSetVersion") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.version = obj;
        continue;
      }
      if (key === "dataSource") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.dataSource = obj;
        continue;
      }
      if (key === "datasetId") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.datasetId = obj;
        continue;
      }
      if (key === "funding") {
        let obj = null;
        thisObj.fundings = [];
        for (const value of pvalue) {
          obj = Funding.fromJson(value);
          thisObj.fundings.push(obj);
        }
        continue;
      }
      if (key === "geo") {
        let obj = null;
        let value = pvalue;
        obj = Location.fromJson(value);
        thisObj.location = obj;
        continue;
      }
      if (key === "googleSpreadSheetKey") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.spreadsheetLink = obj;
        continue;
      }
      if (key === "investigator") {
        let obj = null;
        thisObj.investigators = [];
        for (const value of pvalue) {
          obj = Person.fromJson(value);
          thisObj.investigators.push(obj);
        }
        continue;
      }
      if (key === "notes") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.notes = obj;
        continue;
      }
      if (key === "originalDataURL") {
        let obj = null;
        let value = pvalue;
        obj = value;
        thisObj.originalDataUrl = obj;
        continue;
      }
      if (key === "paleoData") {
        let obj = null;
        thisObj.paleoData = [];
        for (const value of pvalue) {
          obj = PaleoData.fromJson(value);
          thisObj.paleoData.push(obj);
        }
        continue;
      }
      if (key === "pub") {
        let obj = null;
        thisObj.publications = [];
        for (const value of pvalue) {
          obj = Publication.fromJson(value);
          thisObj.publications.push(obj);
        }
        continue;
      }
      thisObj._misc[key] = pvalue;
    }
    return thisObj;
  }
  setNonStandardProperty(key, value) {
    this._misc[key] = value;
  }
  getNonStandardProperty(key) {
    return this._misc[key];
  }
  getAllNonStandardProperties() {
    return this._misc;
  }
  addNonStandardProperty(key, value) {
    if (!(key in this._misc)) {
      this._misc[key] = [];
    }
    this._misc[key].push(value);
  }
  getArchiveType() {
    return this.archiveType;
  }
  setArchiveType(archiveType) {
    this.archiveType = archiveType;
  }
  getChangeLogs() {
    return this.changeLogs;
  }
  setChangeLogs(changeLogs) {
    this.changeLogs = changeLogs;
  }
  addChangeLog(changeLogs) {
    this.changeLogs.push(changeLogs);
  }
  getChronData() {
    return this.chronData;
  }
  setChronData(chronData) {
    this.chronData = chronData;
  }
  addChronData(chronData) {
    this.chronData.push(chronData);
  }
  getCollectionName() {
    return this.collectionName;
  }
  setCollectionName(collectionName) {
    this.collectionName = collectionName;
  }
  getCollectionYear() {
    return this.collectionYear;
  }
  setCollectionYear(collectionYear) {
    this.collectionYear = collectionYear;
  }
  getCompilationNest() {
    return this.compilationNest;
  }
  setCompilationNest(compilationNest) {
    this.compilationNest = compilationNest;
  }
  getContributors() {
    return this.contributors;
  }
  setContributors(contributors) {
    this.contributors = contributors;
  }
  addContributor(contributors) {
    this.contributors.push(contributors);
  }
  getCreators() {
    return this.creators;
  }
  setCreators(creators) {
    this.creators = creators;
  }
  addCreator(creators) {
    this.creators.push(creators);
  }
  getDataSource() {
    return this.dataSource;
  }
  setDataSource(dataSource) {
    this.dataSource = dataSource;
  }
  getDatasetId() {
    return this.datasetId;
  }
  setDatasetId(datasetId) {
    this.datasetId = datasetId;
  }
  getFundings() {
    return this.fundings;
  }
  setFundings(fundings) {
    this.fundings = fundings;
  }
  addFunding(fundings) {
    this.fundings.push(fundings);
  }
  getInvestigators() {
    return this.investigators;
  }
  setInvestigators(investigators) {
    this.investigators = investigators;
  }
  addInvestigator(investigators) {
    this.investigators.push(investigators);
  }
  getLocation() {
    return this.location;
  }
  setLocation(location) {
    this.location = location;
  }
  getName() {
    return this.name;
  }
  setName(name) {
    this.name = name;
    this._id = this._ns + "/" + name;
  }
  getNotes() {
    return this.notes;
  }
  setNotes(notes) {
    this.notes = notes;
  }
  getOriginalDataUrl() {
    return this.originalDataUrl;
  }
  setOriginalDataUrl(originalDataUrl) {
    this.originalDataUrl = originalDataUrl;
  }
  getPaleoData() {
    return this.paleoData;
  }
  setPaleoData(paleoData) {
    this.paleoData = paleoData;
  }
  addPaleoData(paleoData) {
    this.paleoData.push(paleoData);
  }
  getPublications() {
    return this.publications;
  }
  setPublications(publications) {
    this.publications = publications;
  }
  addPublication(publications) {
    this.publications.push(publications);
  }
  getSpreadsheetLink() {
    return this.spreadsheetLink;
  }
  setSpreadsheetLink(spreadsheetLink) {
    this.spreadsheetLink = spreadsheetLink;
  }
  getVersion() {
    return this.version;
  }
  setVersion(version) {
    this.version = version;
  }
};

// src/utils/rdfToJson.ts
import { DataFactory as DataFactory3, NamedNode as NamedNode2, Literal as Literal2 } from "n3";
var logger6 = Logger.getInstance();
var DF3 = DataFactory3;
var RDFToJSON = class {
  /**
   * Constructor for RDFToJSON class
   * @param id The ID of the root node to start conversion from
   * @param store The RDF graph to convert
   */
  constructor(id, store) {
    this.facts = {};
    this.id = id;
    this.store = store;
    this._getIndexedFacts(id);
    logger6.debug("RDFToJSON instance created with id: %s", id);
  }
  /**
   * Get property values from query results
   * @param qres Query results from RDF graph
   * @returns Object containing property values
   */
  _getPropValuesFromQueryResultPO(quads) {
    const facts = {};
    for (const quad of quads) {
      const pname = this._localName(quad.predicate);
      if (!facts[pname]) {
        facts[pname] = [];
      }
      const value = {
        "@type": quad.object instanceof NamedNode2 ? "uri" : "literal"
      };
      if (quad.object instanceof NamedNode2) {
        value["@id"] = quad.object.value;
      } else if (quad.object instanceof Literal2) {
        value["@value"] = quad.object.value;
        if (quad.object.datatype) {
          value["@datatype"] = quad.object.datatype.value;
        }
      }
      facts[pname].push(value);
    }
    return facts;
  }
  /**
   * Get facts for a given ID from the RDF graph
   * @param id The ID to get facts for
   * @returns Object containing facts
   */
  _getFacts(id) {
    const subject = DF3.namedNode(id);
    const quads = this.store.getQuads(subject, null, null, null);
    return this._getPropValuesFromQueryResultPO(quads);
  }
  /**
   * Get the local name from a URI
   * @param url The URI to get the local name from
   * @returns The local name
   */
  _localName(url) {
    const parts = url.value.split("#");
    return parts[parts.length - 1];
  }
  /**
   * Get indexed facts for a given ID and its related objects
   * Recursively retrieves facts for all related objects
   * @param id The ID to get indexed facts for
   */
  _getIndexedFacts(id) {
    if (id in this.facts) {
      return;
    }
    const facts = this._getFacts(id);
    this.facts[id] = facts;
    for (const [pname, pfacts] of Object.entries(facts)) {
      for (const pfact of pfacts) {
        if (pfact["@type"] === "uri" && pname !== "type") {
          this._getIndexedFacts(pfact["@id"]);
        }
      }
    }
  }
  /**
   * Convert the RDF graph to JSON string
   * @returns JSON string representation of the RDF graph
   */
  toJson() {
    return JSON.stringify(this.facts, null, 3);
  }
};

// src/utils/jsonToRdf.ts
import { DataFactory as DataFactory4 } from "n3";
var logger7 = Logger.getInstance();
var DF4 = DataFactory4;
var JSONToRDF = class {
  /**
   * Constructor for JSONToRDF class
   * @param store The RDF graph to add triples to
   * @param graphurl The URL of the graph
   */
  constructor(store, graphurl) {
    this.store = store;
    this.graphurl = graphurl;
    logger7.debug("JSONToRDF instance created with graphurl: %s", graphurl);
  }
  /**
   * Load a triple into the RDF graph
   * @param subject The subject of the triple
   * @param prop The predicate of the triple
   * @param value The object of the triple
   */
  _loadTripleIntoGraph(subject, prop, value) {
    for (const val of value) {
      let valitem = null;
      if (val["@type"] === "uri" && val["@id"]) {
        valitem = DF4.namedNode(val["@id"]);
      } else if (val["@type"] === "literal" && val["@value"] !== void 0) {
        const dtype = val["@datatype"];
        if (dtype) {
          const finalDtype = typeof val["@value"] === "string" && !dtype ? "http://www.w3.org/2001/XMLSchema#string" : dtype;
          valitem = DF4.literal(val["@value"], DF4.namedNode(finalDtype));
        } else {
          valitem = DF4.literal(val["@value"]);
        }
      }
      if (valitem) {
        const stmt = DF4.quad(
          DF4.namedNode(subject),
          DF4.namedNode(prop),
          valitem,
          DF4.namedNode(this.graphurl)
        );
        this.store.addQuad(stmt);
      }
    }
  }
  /**
   * Clear all triples from the current graph context
   */
  _clearSubgraph() {
    const graphUri = DF4.namedNode(this.graphurl);
    const quads = this.store.getQuads(null, null, null, graphUri);
    for (const quad of quads) {
      this.store.removeQuad(quad);
    }
  }
  /**
   * Load JSON data into the RDF graph
   * @param data The JSON data to load
   */
  loadJson(data) {
    this._clearSubgraph();
    for (const [subject, predicates] of Object.entries(data)) {
      for (const [prop, value] of Object.entries(predicates)) {
        let propUri;
        if (prop === "type") {
          propUri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
        } else if (prop === "label") {
          propUri = "http://www.w3.org/2000/01/rdf-schema#label";
        } else {
          propUri = ONTONS + prop;
        }
        this._loadTripleIntoGraph(subject, propUri, value);
      }
    }
    logger7.debug("Loaded %d subjects into RDF graph", Object.keys(data).length);
  }
  getGraphUrl() {
    return this.graphurl;
  }
  getStore() {
    return this.store;
  }
};

// src/lipd.ts
import { v4 as uuidv42 } from "uuid";
import * as pako2 from "pako";
var logger8 = Logger.getInstance();
var LiPD = class _LiPD extends RDFGraph {
  /**
   * The LiPD class describes a LiPD (Linked Paleo Data) object. It contains an RDF Graph which is serialization 
   * of the LiPD data into an RDF graph containing terms from the LiPD Ontology.
   * @param store Optional N3 store to initialize with
   * @param quiet Whether to suppress log messages
   * @param endpoint Optional SPARQL endpoint URL
   * @param auth Optional authentication credentials for the SPARQL endpoint
   */
  constructor(store, quiet = false, endpoint, auth) {
    super(store, quiet, endpoint, auth);
  }
  /**
   * Load LiPD files from a directory
   * @param dirPath Path to the directory containing LiPD files
   * @param standardize Whether to standardize the data
   * @param addLabels Whether to add labels
   */
  async loadFromDir(dirPath, standardize = true, addLabels = true) {
    if (!fs4.existsSync(dirPath)) {
      throw new Error(`Directory ${dirPath} does not exist`);
    }
    const lipdFiles = [];
    const files = fs4.readdirSync(dirPath);
    for (const file of files) {
      const filePath = path4.join(dirPath, file);
      if (fs4.statSync(filePath).isFile() && file.endsWith(".lpd")) {
        lipdFiles.push(filePath);
      }
    }
    await this.load(lipdFiles, standardize, addLabels);
  }
  /**
   * Load LiPD files
   * @param lipdFiles Array of paths to LiPD files (can also be URLs)
   * @param standardize Whether to standardize the data
   * @param addLabels Whether to add labels
   */
  async load(lipdFiles, standardize = true, addLabels = true) {
    logger8.debug("Loading LiPD files..." + lipdFiles);
    const files = Array.isArray(lipdFiles) ? lipdFiles : [lipdFiles];
    const numFiles = files.length;
    if (!this.quiet) {
      logger8.debug(`Loading ${numFiles} LiPD files`);
    }
    this.store = await multiLoadLipd(this.store, files, true, standardize, addLabels);
    logger8.debug("Multi-loading done");
    logger8.debug(`Number of quads in LiPD: ${this.store.size}`);
    if (!this.quiet) {
      logger8.debug("Loaded..");
    }
  }
  /**
   * Load LiPD file from a File object (for browser file input)
   * @param file File object from HTML5 file input
   * @param standardize Whether to standardize the data
   * @param addLabels Whether to add labels
   */
  async loadFromFile(file, standardize = true, addLabels = true) {
    logger8.debug("Loading LiPD file from File object: %s", file.name);
    if (!this.quiet) {
      logger8.debug(`Loading LiPD file: ${file.name}`);
    }
    const converter = new LipdToRDF(standardize, addLabels);
    await converter.loadFromFile(file);
    const quads = converter.store.getQuads(null, null, null, null);
    for (const quad of quads) {
      if (this.store.getQuads(quad.subject, quad.predicate, quad.object, quad.graph).length === 0) {
        this.store.addQuad(quad);
      }
    }
    logger8.debug(`Number of quads in LiPD: ${this.store.size}`);
    if (!this.quiet) {
      logger8.debug("File loaded successfully");
    }
  }
  /**
   * Get LiPD JSON for a dataset
   * @param dsname Dataset ID
   * @returns LiPD JSON
   */
  getLipd(dsname) {
    const converter = new RDFToLiPD(this.store);
    return converter.convertToJson(dsname);
  }
  /**
   * Create LiPD file for a dataset
   * @param dsname Dataset ID
   * @param lipdFile Path to LiPD file
   * @returns LiPD JSON
   */
  async createLipd(dsname, lipdFile) {
    const converter = new RDFToLiPD(this.store);
    const lipdJson = await converter.convert(dsname, lipdFile);
    return this._removeValuesFromVariables(lipdJson);
  }
  /**
   * Get dataset(s) from the graph and returns the popped LiPD object
   * @param dsnames Dataset name(s) to get
   * @returns LiPD object with the retrieved dataset(s)
   */
  get(dsnames) {
    const names = Array.isArray(dsnames) ? dsnames : [dsnames];
    const dsids = names.map(
      (name) => name.startsWith(NSURL) ? name : `${NSURL}/${name}`
    );
    const ds = super.get(dsids);
    return new _LiPD(ds.getStore(), this.quiet, this.getEndpoint(), this.auth);
  }
  /**
   * Pop dataset(s) from the graph and returns the popped LiPD object
   * @param dsnames Dataset name(s) to be popped
   * @returns LiPD object with the popped dataset(s)
   */
  pop(dsnames) {
    const names = Array.isArray(dsnames) ? dsnames : [dsnames];
    const dsids = names.map(
      (name) => name.startsWith(NSURL) ? name : `${NSURL}/${name}`
    );
    const popped = super.pop(dsids);
    return new _LiPD(popped.getStore(), this.quiet, this.getEndpoint(), this.auth);
  }
  /**
   * Remove dataset(s) from the graph
   * @param dsnames Dataset name(s) to be removed
   */
  remove(dsnames) {
    const names = Array.isArray(dsnames) ? dsnames : [dsnames];
    const dsids = names.map(
      (name) => name.startsWith(NSURL) ? name : `${NSURL}/${name}`
    );
    super.remove(dsids);
  }
  /**
   * Get all dataset names
   * @returns List of dataset names
   */
  async getAllDatasetNames() {
    const [qres] = await this.query(QUERY_DSNAME);
    return qres.map((row) => sanitizeId(row.dsname.value));
  }
  /**
   * Get all dataset IDs
   * @returns List of dataset IDs
   */
  async getAllDatasetIds() {
    const [qres] = await this.query(QUERY_DSID);
    return qres.map((row) => sanitizeId(row.dsid));
  }
  /**
   * Get all archive types
   * @returns List of archive types
   */
  async getAllArchiveTypes() {
    const [qres] = await this.query(QUERY_UNIQUE_ARCHIVE_TYPE);
    return qres.map((row) => String(row.archiveType));
  }
  /**
   * Get all datasets as Dataset class instances
   * @returns List of Dataset objects
   * 
   * @example
   * ```typescript
   * const lipd = new LiPD();
   * lipd.load('path/to/file.lpd').then(() => {
   *   lipd.getDatasets().then(datasets => {
   *     // Work with dataset objects
   *     console.log(datasets[0].getName());
   *   });
   * });
   * ```
   */
  async getDatasets() {
    const datasets = [];
    const datasetNames = await this.getAllDatasetNames();
    for (const dsname of datasetNames) {
      let dsuri = NSURL + "/" + dsname;
      let r2j = new RDFToJSON(dsuri, this.store);
      let data = JSON.parse(r2j.toJson());
      let ds = Dataset.fromData(dsuri, data);
      for (const pd of ds.getPaleoData()) {
        for (const table of pd.getMeasurementTables()) {
          table.variables = table.variables.sort((a, b) => (a.columnNumber ?? 0) - (b.columnNumber ?? 0));
        }
      }
      datasets.push(ds);
    }
    return datasets;
  }
  /**
   * Loads instances of Dataset class into the LiPD graph
   * @param datasets List of Dataset objects
   * 
   * @example
   * ```typescript
   * // Load datasets from one LiPD object to another
   * const lipd1 = new LiPD();
   * lipd1.load('path/to/file.lpd').then(() => {
   *   lipd1.getDatasets().then(datasets => {
   *     // Modify datasets if needed
   *     
   *     // Create a new LiPD instance and load the datasets
   *     const lipd2 = new LiPD();
   *     lipd2.loadDatasets(datasets);
   *   });
   * });
   * ```
   */
  loadDatasets(datasets) {
    for (const ds of datasets) {
      this._fixMissingIds(ds);
      const dsuri = ds.getId() || NSURL + "/" + ds.getName();
      const j2r = new JSONToRDF(this.store, dsuri);
      j2r.loadJson(ds.toData());
    }
  }
  /**
   * Generate a unique ID with a given prefix
   * @param prefix Prefix for the ID (default: 'PYD')
   * @returns Unique formatted ID
   * @private
   */
  _generateUniqueId(prefix = "PYD") {
    const randomUuid = uuidv42();
    const idStr = randomUuid;
    const formattedId = `${prefix}-${idStr.substring(0, 5)}-${idStr.substring(9, 13)}-${idStr.substring(14, 18)}-${idStr.substring(19, 23)}-${idStr.substring(24, 28)}`;
    return formattedId;
  }
  /**
   * Fix missing IDs in a dataset
   * @param ds Dataset to fix
   * @private
   */
  _fixMissingIds(ds) {
    let pdCounter = 0;
    for (const pd of ds.getPaleoData()) {
      let tableCounter = 0;
      for (const table of pd.getMeasurementTables()) {
        if (!table.getFileName()) {
          table.setFileName(`paleo${pdCounter}measurement${tableCounter}.csv`);
        }
        for (const v of table.getVariables()) {
          if (!v.getVariableId()) {
            v.setVariableId(this._generateUniqueId("TS"));
          }
        }
        tableCounter++;
      }
      pdCounter++;
    }
    let chronCounter = 0;
    for (const chron of ds.getChronData()) {
      let tableCounter = 0;
      for (const table of chron.getMeasurementTables()) {
        if (!table.getFileName()) {
          table.setFileName(`chron${chronCounter}measurement${tableCounter}.csv`);
        }
        for (const v of table.getVariables()) {
          if (!v.getVariableId()) {
            v.setVariableId(this._generateUniqueId("TS"));
          }
        }
        tableCounter++;
      }
      let modelCounter = 0;
      for (const model of chron.getModeledBy()) {
        let tableCounter2 = 0;
        for (const table of model.getEnsembleTables()) {
          if (!table.getFileName()) {
            table.setFileName(`chron${chronCounter}model${modelCounter}ensemble${tableCounter2}.csv`);
          }
          for (const v of table.getVariables()) {
            if (!v.getVariableId()) {
              v.setVariableId(this._generateUniqueId("TS"));
            }
          }
          tableCounter2++;
        }
        modelCounter++;
      }
      chronCounter++;
    }
  }
  /**
   * Convert the LiPD object to a LiPDSeries object
   * @returns LiPDSeries object
   */
  toLipdSeries() {
    const series = new LiPDSeries();
    series.load(this);
    return series;
  }
  /**
   * Filter datasets by name
   * @param datasetName Dataset name to filter by
   * @returns New LiPD object with filtered datasets
   */
  async filterByDatasetName(datasetName) {
    const query = QUERY_FILTER_DATASET_NAME.replace("[datasetName]", datasetName);
    const [qres] = await this.query(query);
    const dsnames = qres.map((row) => sanitizeId(row.dsname));
    return this.get(dsnames);
  }
  /**
   * Filter datasets by compilation name
   * @param compilationName Compilation name to filter by
   * @returns New LiPD object with filtered datasets
   */
  async filterByCompilationName(compilationName) {
    const query = QUERY_FILTER_COMPILATION.replace("[compilationName]", compilationName);
    const [qres] = await this.query(query);
    const dsnames = qres.map((row) => sanitizeId(row.dataSetName));
    return this.get(dsnames);
  }
  async serialize(type = "turtle") {
    return await serializeStore(this.store, type, logger8);
  }
  /**
   * Filter datasets by time interval
   * @param timeBound Minimum and maximum age values
   * @param timeBoundType Type of querying to perform
   * @param recordLength Minimum record length
   * @returns New LiPD object with filtered datasets
   */
  async filterByTime(timeBound, timeBoundType = "any", recordLength) {
    if (timeBound[0] > timeBound[1]) {
      timeBound = [timeBound[1], timeBound[0]];
    }
    const query = QUERY_FILTER_TIME;
    const [, df] = await this.query(query);
    let filterDf;
    if (recordLength === void 0) {
      switch (timeBoundType) {
        case "entirely":
          filterDf = df.filter(
            (row) => row.minage <= timeBound[0] && row.maxage >= timeBound[1]
          );
          break;
        case "entire":
          filterDf = df.filter(
            (row) => row.minage >= timeBound[0] && row.maxage <= timeBound[1]
          );
          break;
        case "any":
          filterDf = df.filter((row) => row.minage <= timeBound[1]);
          break;
        default:
          throw new Error("timeBoundType must be in ['any', 'entirely', 'entire']");
      }
    } else {
      switch (timeBoundType) {
        case "entirely":
          filterDf = df.filter(
            (row) => row.minage <= timeBound[0] && row.maxage >= timeBound[1] && Math.abs(row.maxage - row.minage) >= recordLength
          );
          break;
        case "entire":
          filterDf = df.filter(
            (row) => row.minage >= timeBound[0] && row.maxage <= timeBound[1] && Math.abs(row.maxage - row.minage) >= recordLength
          );
          break;
        case "any":
          filterDf = df.filter(
            (row) => row.minage <= timeBound[1] && Math.abs(row.minage - timeBound[1]) >= recordLength
          );
          break;
        default:
          throw new Error("timeBoundType must be in ['any', 'entirely', 'entire']");
      }
    }
    const dsnames = filterDf.map((row) => row.dsname);
    return this.get(dsnames);
  }
  /**
   * Updates local LiPD Graph for datasets to remote endpoint
   * @param dsnames Array of dataset names
   * @param batchSize Number of quads to include in each update batch (default: 100)
   * 
   * @example
   * ```typescript
   * // Update datasets to remote endpoint
   * const lipd = new LiPD();
   * lipd.setEndpoint("https://linkedearth.graphdb.mint.isi.edu/repositories/LiPDVerse-dynamic");
   * // Set authentication if needed
   * lipd.setAuth({ username: "user", password: "pass" });
   * lipd.updateRemoteDatasets(["MyDataset1", "MyDataset2"], 100);
   * ```
   */
  async updateRemoteDatasets(dsnames, batchSize = 100) {
    if (!this.endpoint) {
      throw new Error("No remote endpoint set");
    }
    const namesList = Array.isArray(dsnames) ? dsnames : [dsnames];
    if (namesList.length === 0) {
      throw new Error("No dataset names provided");
    }
    for (const dsname of namesList) {
      const graphUri = `${NSURL}/${dsname}`;
      const backupGraphUri = `${graphUri}_backup_${Date.now()}`;
      try {
        this.setRemote(true);
        const graphExists = await this.askQuery(`ASK WHERE { GRAPH <${graphUri}> { ?s ?p ?o } }`);
        if (graphExists) {
          await this.updateQuery(`COPY GRAPH <${graphUri}> TO GRAPH <${backupGraphUri}>`);
        }
        this.setRemote(false);
        const quads = this.store.getQuads(null, null, null, graphUri);
        if (quads.length === 0) {
          logger8.debug(`No quads found for dataset: ${dsname}`);
          continue;
        }
        const nqData = await this._quadsToNQuads(quads);
        this.setRemote(true);
        if (graphExists) {
          await this.updateQuery(`CLEAR GRAPH <${graphUri}>`);
        }
        let body = nqData;
        const headers = {
          "Content-Type": "application/n-quads"
        };
        if (nqData.length > 1e4) {
          body = pako2.gzip(nqData);
          headers["Content-Encoding"] = "gzip";
        }
        if (this.auth) {
          const authStr = Buffer.from(`${this.auth.username}:${this.auth.password}`).toString("base64");
          headers["Authorization"] = `Basic ${authStr}`;
        }
        const statementsEndpoint = this._getStatementsEndpoint();
        const url = `${statementsEndpoint}?context=${encodeURIComponent(`<${graphUri}>`)}`;
        const response = await fetch(url, {
          method: "POST",
          headers,
          body
        });
        if (!response.ok) {
          const errorText = await response.text();
          throw new Error(`Error from bulk loader (${response.status}): ${errorText}`);
        }
        if (graphExists) {
          await this.updateQuery(`DROP GRAPH <${backupGraphUri}>`);
        }
      } catch (err) {
        logger8.error(`Failed to update remote graph for ${dsname}: ${err}`);
        try {
          this.setRemote(true);
          const backupExists = await this.askQuery(`ASK WHERE { GRAPH <${backupGraphUri}> { ?s ?p ?o } }`);
          if (backupExists) {
            await this.updateQuery(`COPY GRAPH <${backupGraphUri}> TO GRAPH <${graphUri}>`);
            await this.updateQuery(`DROP GRAPH <${backupGraphUri}>`);
          }
        } catch (restoreErr) {
          logger8.error(`Failed to restore backup for ${dsname}: ${restoreErr}`);
        }
        throw err;
      } finally {
        this.setRemote(false);
      }
    }
    logger8.debug("Remote datasets updated successfully");
  }
  /**
   * Convert an array of quads to an N-Quads string
   */
  async _quadsToNQuads(quads) {
    return new Promise((resolve, reject) => {
      const writer = new Writer2({ format: "N-Quads" });
      writer.addQuads(quads);
      writer.end((err, result) => {
        if (err) {
          reject(err);
        } else {
          resolve(result);
        }
      });
    });
  }
  /**
   * Derive the /statements endpoint from this.endpoint
   */
  _getStatementsEndpoint() {
    if (!this.endpoint) {
      throw new Error("Endpoint not set");
    }
    return this.endpoint.replace(/\/repositories\/([^/]+)$/, "/repositories/$1/statements");
  }
  /**
   * Builds an INSERT DATA query for a batch of quads
   * @param quads Array of quads to insert
   * @param graphUri URI of the graph to insert into
   * @returns SPARQL INSERT query
   * @private
   */
  _buildInsertQuery(quads, graphUri) {
    if (quads.length > 0) {
      console.log("Sample quad structure:", JSON.stringify(quads[0], null, 2));
    }
    let insertQuery = `INSERT DATA { GRAPH <${graphUri}> {
`;
    for (const quad of quads) {
      let subject, predicate, object;
      if (quad.subject.termType === "NamedNode") {
        subject = `<${quad.subject.value}>`;
      } else {
        subject = `_:${quad.subject.value}`;
      }
      predicate = `<${quad.predicate.value}>`;
      if (quad.object.termType === "NamedNode") {
        object = `<${quad.object.value}>`;
      } else if (quad.object.termType === "BlankNode") {
        object = `_:${quad.object.value}`;
      } else {
        let literalValue = quad.object.value.toString().replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t");
        object = `"${literalValue}"`;
        if (quad.object.language) {
          object += `@${quad.object.language}`;
        } else if (quad.object.datatype && quad.object.datatype.value !== "http://www.w3.org/2001/XMLSchema#string") {
          object += `^^<${quad.object.datatype.value}>`;
        }
      }
      insertQuery += `  ${subject} ${predicate} ${object} .
`;
    }
    insertQuery += "}}";
    const previewLength = Math.min(insertQuery.length, 200);
    console.log(`Generated query preview (${insertQuery.length} chars): ${insertQuery.substring(0, previewLength)}${insertQuery.length > previewLength ? "..." : ""}`);
    return insertQuery;
  }
  /**
   * Loads remote datasets into cache if a remote endpoint is set
   * @param dsnames Array of dataset names
   * @param loadDefaultGraph Whether to load the default graph (default: true)
   * 
   * @example
   * ```typescript
   * // Fetch LiPD data from remote RDF Graph
   * const lipd = new LiPD();
   * lipd.setEndpoint("https://linkedearth.graphdb.mint.isi.edu/repositories/LiPDVerse-dynamic");
   * // Set authentication if needed
   * lipd.setAuth({ username: "user", password: "pass" });
   * lipd.loadRemoteDatasets(["Ocn-MadangLagoonPapuaNewGuinea.Kuhnert.2001", "MD98_2181.Stott.2007"]);
   * lipd.getAllDatasetNames().then(names => console.log(names));
   * ```
   */
  async loadRemoteDatasets(dsnames, loadDefaultGraph = true) {
    if (!this.endpoint) {
      throw new Error("No remote endpoint");
    }
    const namesList = Array.isArray(dsnames) ? dsnames : [dsnames];
    if (namesList.length === 0) {
      throw new Error("No dataset names to cache");
    }
    let dsnamestr = namesList.map((dsname) => `<${NSURL}/${dsname}>`).join(" ");
    if (loadDefaultGraph) {
      dsnamestr += ` <${DEFAULT_GRAPH_URI}>`;
    }
    console.log("Caching datasets from remote endpoint..");
    this.setRemote(true);
    const [qres] = await this.query(`SELECT ?s ?p ?o ?g WHERE { GRAPH ?g { ?s ?p ?o } VALUES ?g { ${dsnamestr} } }`);
    this.setRemote(false);
    for (const row of qres) {
      this.store.addQuad(row.s, row.p, row.o, row.g);
    }
    console.log("Done..");
  }
  /**
   * Build a full LiPD (BagIt) archive entirely in-memory – browser-safe
   * @param dsname Dataset name to export
   * @param opts Options { includeCsv?: boolean }
   * @returns Blob in browsers, Buffer in Node
   */
  async createLipdBrowser(dsname, opts = {}) {
    const includeCsv = opts.includeCsv !== false;
    const originalLipdJson = this.getLipd(dsname);
    if (!originalLipdJson) {
      throw new Error(`Dataset ${dsname} not found in LiPD graph`);
    }
    const csvMap = includeCsv ? this._generateCsvData(originalLipdJson) : {};
    const lipdJson = this._removeValuesFromVariables(originalLipdJson);
    const zip = new JSZip2();
    const dataFolder = zip.folder("data");
    dataFolder.file("metadata.jsonld", JSON.stringify(lipdJson, null, 2));
    for (const [name, csv] of Object.entries(csvMap)) {
      dataFolder.file(name, csv);
    }
    const bagitTxt = "BagIt-Version: 1.0\nTag-File-Character-Encoding: UTF-8";
    zip.file("bagit.txt", bagitTxt);
    const bagInfoTxt = `Bagging-Date: ${(/* @__PURE__ */ new Date()).toISOString()}
Bag-Software-Agent: lipdjs`;
    zip.file("bag-info.txt", bagInfoTxt);
    const manifestLines = [];
    const encoder = new TextEncoder();
    const computeHash = async (content) => {
      if (isBrowser() && typeof crypto !== "undefined" && crypto.subtle) {
        const buffer = encoder.encode(content);
        const digest = await crypto.subtle.digest("SHA-256", buffer);
        return Array.from(new Uint8Array(digest)).map((b) => b.toString(16).padStart(2, "0")).join("");
      } else {
        const { createHash: createHash2 } = await import("crypto");
        return createHash2("sha256").update(content).digest("hex");
      }
    };
    manifestLines.push(`${await computeHash(JSON.stringify(lipdJson, null, 2))} data/metadata.jsonld`);
    for (const [name, csv] of Object.entries(csvMap)) {
      manifestLines.push(`${await computeHash(csv)} data/${name}`);
    }
    zip.file("manifest-sha256.txt", manifestLines.join("\n"));
    const zipOptions = {
      compression: "DEFLATE",
      compressionOptions: { level: 6 }
      // 1=fastest, 9=best compression, 6=balanced
    };
    if (isBrowser()) {
      return await zip.generateAsync({ type: "blob", ...zipOptions });
    }
    return await zip.generateAsync({ type: "uint8array", ...zipOptions });
  }
  // ---------------------------------------------------------------------
  // Helper: generate CSV text for all tables in a LiPD JSON object
  // ---------------------------------------------------------------------
  _generateCsvData(lipd) {
    const csvs = {};
    const tableKeys = [
      ["paleoData", "measurementTable"],
      ["chronData", "measurementTable"]
    ];
    for (const [sectionKey, tableKey] of tableKeys) {
      const section = lipd[sectionKey];
      if (!Array.isArray(section))
        continue;
      for (const secItem of section) {
        if (Array.isArray(secItem[tableKey])) {
          for (const table of secItem[tableKey]) {
            const { filename, columns } = table;
            if (!filename || !columns)
              continue;
            const csvContent = this._tableToCsv(columns);
            csvs[filename] = csvContent;
          }
        }
        if (Array.isArray(secItem.model)) {
          for (const model of secItem.model) {
            const subTables = ["ensembleTable", "summaryTable", "distributionTable"];
            for (const key of subTables) {
              if (Array.isArray(model[key])) {
                for (const table of model[key]) {
                  const { filename, columns } = table;
                  if (!filename || !columns)
                    continue;
                  csvs[filename] = this._tableToCsv(columns);
                }
              }
            }
          }
        }
      }
    }
    return csvs;
  }
  _tableToCsv(columns) {
    if (!Array.isArray(columns) || columns.length === 0)
      return "";
    const maxLen = Math.max(...columns.map((c) => c.values?.length ?? 0));
    const rows = [];
    for (let i = 0; i < maxLen; i++) {
      const row = columns.map((col) => col.values?.[i] ?? "");
      rows.push(row.join(","));
    }
    return rows.join("\n");
  }
  /**
   * Remove values from variables in a LiPD JSON object.
   * This is necessary because values are typically stored in CSV files,
   * not directly in the metadata.jsonld file.
   * @param lipdJson The LiPD JSON object to process.
   * @returns A new LiPD JSON object with values removed from variables.
   * @private
   */
  _removeValuesFromVariables(lipdJson) {
    if (typeof lipdJson !== "object" || lipdJson === null) {
      return lipdJson;
    }
    if (Array.isArray(lipdJson)) {
      return lipdJson.map((item) => this._removeValuesFromVariables(item));
    }
    if (typeof lipdJson === "object") {
      const newObj = {};
      for (const key in lipdJson) {
        if (Object.prototype.hasOwnProperty.call(lipdJson, key)) {
          if (key === "values" && this._isVariableObject(lipdJson)) {
            continue;
          }
          newObj[key] = this._removeValuesFromVariables(lipdJson[key]);
        }
      }
      return newObj;
    }
    return lipdJson;
  }
  /**
   * Helper to check if an object looks like a variable object.
   * Variables typically have properties like variableId, variableName, values, units, etc.
   * @param obj The object to check.
   * @returns True if it looks like a variable object, false otherwise.
   * @private
   */
  _isVariableObject(obj) {
    if (!obj || typeof obj !== "object") {
      return false;
    }
    const variableProps = ["variableId", "variableName", "TSid", "number", "columnNumber"];
    const hasVariableProperty = variableProps.some((prop) => prop in obj);
    return "values" in obj && hasVariableProperty;
  }
};
export {
  ArchiveType,
  ArchiveTypeConstants,
  Calibration,
  Change,
  ChangeLog,
  ChronData,
  Compilation,
  DataTable,
  Dataset,
  Funding,
  Interpretation,
  InterpretationSeasonality,
  InterpretationSeasonalityConstants,
  InterpretationVariable,
  InterpretationVariableConstants,
  LiPD,
  LiPDSeries,
  Location,
  LogLevel,
  Logger,
  Model,
  PaleoData,
  PaleoProxy,
  PaleoProxyConstants,
  PaleoProxyGeneral,
  PaleoProxyGeneralConstants,
  PaleoUnit,
  PaleoUnitConstants,
  PaleoVariable,
  PaleoVariableConstants,
  Person,
  PhysicalSample,
  Publication,
  RSYNONYMS,
  Resolution,
  SCHEMA,
  SYNONYMS,
  Variable
};
//# sourceMappingURL=index.mjs.map