Interface DatatypeHandler

All Known Implementing Classes:
DBPediaDatatypeHandler, GeoSPARQLDatatypeHandler, RDFDatatypeHandler, VirtuosoGeometryDatatypeHandler, XMLSchemaDatatypeHandler

public interface DatatypeHandler
An interface defining methods related to verification and normalization of typed literals and datatype URIs.
Author:
Peter Ansell
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Identifier for datatypes defined by DBPedia.
    static final String
    Identifier for datatypes defined in the GeoSPARQL vocabulary.
    static final String
    Identifier for datatypes defined in the RDF vocabulary.
    static final String
    Identifier for datatypes defined in the Virtuoso Geometry vocabulary.
    static final String
    Identifier for datatypes defined in the XSD vocabulary.
  • Method Summary

    Modifier and Type
    Method
    Description
    A unique key for this datatype handler to identify it in the DatatypeHandlerRegistry.
    boolean
    Checks if the given datatype URI is recognized by this datatype handler.
    normalizeDatatype(String literalValue, IRI datatypeUri, ValueFactory valueFactory)
    Normalize both the datatype URI and the literal value if appropriate, and use the given value factory to generate a literal matching a literal value and datatype URI.
    boolean
    verifyDatatype(String literalValue, IRI datatypeUri)
    Verifies that the datatype URI is valid, including a check on the structure of the literal value.
  • Field Details

  • Method Details

    • isRecognizedDatatype

      boolean isRecognizedDatatype(IRI datatypeUri)
      Checks if the given datatype URI is recognized by this datatype handler.
      Parameters:
      datatypeUri - The datatype URI to check.
      Returns:
      True if the datatype is syntactically valid and could be used with verifyDatatype(String, IRI) and normalizeDatatype(String, IRI, ValueFactory).
    • verifyDatatype

      boolean verifyDatatype(String literalValue, IRI datatypeUri) throws LiteralUtilException
      Verifies that the datatype URI is valid, including a check on the structure of the literal value.

      This method must only be called after verifying that isRecognizedDatatype(IRI) returns true for the given datatype URI.

      Parameters:
      literalValue - Literal value matching the given datatype URI.
      datatypeUri - A datatype URI that matched with isRecognizedDatatype(IRI)
      Returns:
      True if the datatype URI is recognized by this datatype handler, and it is verified to be syntactically valid.
      Throws:
      LiteralUtilException - If the datatype was not recognized.
    • normalizeDatatype

      Literal normalizeDatatype(String literalValue, IRI datatypeUri, ValueFactory valueFactory) throws LiteralUtilException
      Normalize both the datatype URI and the literal value if appropriate, and use the given value factory to generate a literal matching a literal value and datatype URI.

      This method must only be called after verifying that isRecognizedDatatype(IRI) returns true for the given datatype URI, and verifyDatatype(String, IRI) also returns true for the given datatype URI and literal value.

      Parameters:
      literalValue - Required literal value to use in the normalization process and to provide the value for the resulting literal.
      datatypeUri - The datatype URI which is to be normalized. This URI is available in normalized form from the result using Literal.getDatatype().
      valueFactory - The ValueFactory to use to create the result literal.
      Returns:
      A Literal containing the normalized literal value and datatype URI.
      Throws:
      LiteralUtilException - If the datatype URI was not recognized or verified, or the literal value could not be normalized due to an error.
    • getKey

      String getKey()
      A unique key for this datatype handler to identify it in the DatatypeHandlerRegistry.
      Returns:
      A unique string key.