Interface SimilarityValuator

All Known Implementing Classes:
SimilarityValuatorImpl

public interface SimilarityValuator
The similarity valuator computes the similarity between two objects.

A new similarity valuator can be created using SimilarityModelFactory.newSimilarityValuator() or SimilarityModelFactory.newSimilarityValuator(SimilarityModel). The similarity can be computed using the method computeSimilarity(DataObject, DataObject).

The valuator is thread safe why it is no problem to reuse the valuator in parallel. If you set a similarity cache make sure that the cache implementation is thread safe, too!

Author:
Rainer Maximini
  • Field Details

    • DEFAULT_COMPUTATION_TIME_THRESHOLD_FOR_CACHING

      static final long DEFAULT_COMPUTATION_TIME_THRESHOLD_FOR_CACHING
      Default computation time threshold to cache computed similarity values is one second.
      See Also:
  • Method Details

    • computeSimilarity

      Similarity computeSimilarity(DataObject queryObject, DataObject caseObject)
      Computes the similarity between a query and a case.
      Parameters:
      queryObject - The query DataObject.
      caseObject - The case DataObject.
      Returns:
      the similarity value, if no applicable similarity measure exists, an invalid Similarity will be returned.
    • computeSimilarity

      Similarity computeSimilarity(DataObject queryObject, DataObject caseObject, DataClass commonClass)
      Computes the similarity between a query and a case for the given common data class.
      Parameters:
      queryObject - The query DataObject.
      caseObject - The case DataObject.
      commonClass - The common parent DataClass that should be used.
      Returns:
      the similarity value, if no applicable similarity measure exists, an invalid Similarity will be returned.
    • computeSimilarity

      Similarity computeSimilarity(DataObject queryObject, DataObject caseObject, String similarityMeasure)
      Computes the similarity between a queryObject and a caseObject based on the similarityMeasure
      Parameters:
      queryObject - The query DataObject.
      caseObject - The case DataObject.
      similarityMeasure - if null, computeSimilarity(DataObject, DataObject) is used, else the similarity with the given name is used.
      Returns:
      the similarity value, if no similarity measure with that name exists, an invalid Similarity will be returned.
    • getSimilarityModel

      SimilarityModel getSimilarityModel()
      The SimilarityModel that is used for the computation.
      Returns:
      the used SimilarityModel
    • getSimilarityMeasure

      SimilarityMeasure getSimilarityMeasure(DataObject query, DataObject object)
      Returns the appropriate similarity measure for the common parent class of both given data objects.
      Parameters:
      query - the query object
      object - the case object
      Returns:
      the similarity measure for the common data class
    • getSimilarityCache

      SimilarityCache getSimilarityCache()
      Returns:
      similarity cache used by this valuator or null
    • setSimilarityCache

      void setSimilarityCache(SimilarityCache similarityCache)
      Parameters:
      similarityCache - similarity cache to be used by this valuator
    • getComputationTimeThresholdForCaching

      long getComputationTimeThresholdForCaching()
      Returns:
      computation time in nanoseconds to cache computed similarity values
    • setComputationTimeThresholdForCaching

      void setComputationTimeThresholdForCaching(long timeNanos)
      Parameters:
      timeNanos - computation time in nanoseconds to cache computed similarity values