public interface MatchEngine
This class manages the configuration of matching criteria.
Application code can manipulate the
DescribedValue
s provided by
this class in accordance with user preferences, and then
call the createMatchKitFactory()
method to supply objects
which implement the configured matching functionality itself.
Modifier and Type | Method and Description |
---|---|
java.util.function.Supplier<Coverage> |
createCoverageFactory()
Returns a supplier for coverage objects.
|
java.util.function.Supplier<MatchKit> |
createMatchKitFactory()
Returns a factory for MatchKit instances corresponding
to the current settings of this object.
|
DescribedValue[] |
getMatchParameters()
Returns a set of DescribedValue objects whose values can be modified
to modify the matching criteria.
|
ValueInfo |
getMatchScoreInfo()
Returns a description of the value returned by the
MatchKit.matchScore(java.lang.Object[], java.lang.Object[]) method. |
double |
getScoreScale()
Returns a scale value for the match score.
|
DescribedValue[] |
getTuningParameters()
Returns a set of DescribedValue objects whose values can be modified
to tune the performance of the match.
|
ValueInfo[] |
getTupleInfos()
Returns a set of ValueInfo objects indicating what is required for
the elements of each tuple.
|
java.util.function.Supplier<MatchKit> createMatchKitFactory()
The returned value is immutable, and is not affected by subsequent changes of the settings of this object.
java.util.function.Supplier<Coverage> createCoverageFactory()
Coverage.createTestFactory()
method returns false
is guaranteed not to match any tuple in A according to this object's
match criteria.
The returned value is immutable, and is not affected by subsequent changes of the settings of this object.
If no suitable implementation is available, null may be returned.
ValueInfo getMatchScoreInfo()
MatchKit.matchScore(java.lang.Object[], java.lang.Object[])
method. The content class should be numeric
(though need not be Double
), and the name,
description and units should be descriptive of whatever the
physical significance of the value is.
If the result of matchScore
is not interesting
(for instance, if it's always either 0 or -1),
null
may be returned.double getScoreScale()
matchScore
/getScoreScale()
is of order unity, and is thus comparable between
different match engines.
As a general rule, the result should be the maximum value ever
returned from the matchScore
method,
corresponding to the least good successful match.
For binary MatchEngine implementations
(all matches are either score=0 or failures)
a value of 1 is recommended.
If nothing reliable can be said about the scale, NaN may be returned.
ValueInfo[] getTupleInfos()
nullable
attribute has a special meaning: if true it means that it makes
sense for this element of the tuple to be always blank (for instance
assigned to no column).DescribedValue[] getMatchParameters()
DescribedValue.setValue(java.lang.Object)
on the
returned objects.DescribedValue[] getTuningParameters()
DescribedValue.setValue(java.lang.Object)
on the
returned objects.
Changing these values will make no difference to the output of
MatchKit.matchScore(java.lang.Object[], java.lang.Object[])
, but may change the output of
MatchKit.getBins(java.lang.Object[])
.
This may change the CPU and memory requirements of the match,
but will not change the result. The default value should be
something sensible, so that setting the value of these parameters
is not in general required.
Copyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.