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 Summary
Modifier and TypeFieldDescriptionstatic final long
Default computation time threshold to cache computed similarity values is one second. -
Method Summary
Modifier and TypeMethodDescriptioncomputeSimilarity
(DataObject queryObject, DataObject caseObject) Computes the similarity between a query and a case.computeSimilarity
(DataObject queryObject, DataObject caseObject, DataClass commonClass) Computes the similarity between a query and a case for the given common data class.computeSimilarity
(DataObject queryObject, DataObject caseObject, String similarityMeasure) Computes the similarity between a queryObject and a caseObject based on the similarityMeasurelong
getSimilarityMeasure
(DataObject query, DataObject object) Returns the appropriate similarity measure for the common parent class of both given data objects.TheSimilarityModel
that is used for the computation.void
setComputationTimeThresholdForCaching
(long timeNanos) void
setSimilarityCache
(SimilarityCache similarityCache)
-
Field Details
-
DEFAULT_COMPUTATION_TIME_THRESHOLD_FOR_CACHING
static final long DEFAULT_COMPUTATION_TIME_THRESHOLD_FOR_CACHINGDefault computation time threshold to cache computed similarity values is one second.- See Also:
-
-
Method Details
-
computeSimilarity
Computes the similarity between a query and a case.- Parameters:
queryObject
- The queryDataObject
.caseObject
- The caseDataObject
.- Returns:
- the similarity value, if no applicable similarity measure exists, an invalid Similarity will be returned.
-
computeSimilarity
Computes the similarity between a query and a case for the given common data class.- Parameters:
queryObject
- The queryDataObject
.caseObject
- The caseDataObject
.commonClass
- The common parentDataClass
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 queryDataObject
.caseObject
- The caseDataObject
.similarityMeasure
- ifnull
,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()TheSimilarityModel
that is used for the computation.- Returns:
- the used
SimilarityModel
-
getSimilarityMeasure
Returns the appropriate similarity measure for the common parent class of both given data objects.- Parameters:
query
- the query objectobject
- 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
- 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
-