public class HumanMatchEngine extends Object implements MatchEngine
Constructor and Description |
---|
HumanMatchEngine(MatchEngine baseEngine)
Constructor.
|
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.
|
static MatchEngine |
getHumanMatchEngine(MatchEngine base)
Returns a human-friendly version of a supplied MatchEngine.
|
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.
|
boolean |
isIdentity()
Indicates whether this object simply duplicates the underlying
MatchEngine.
|
boolean |
isLargeAngle(ValueInfo info)
Indicates whether a given value is recognised as representing a large
angle (such as a coordinate of some kind).
|
boolean |
isSmallAngle(ValueInfo info)
Indicates whether a given value is recognised as representing a small
angle (such as an error of some kind).
|
public HumanMatchEngine(MatchEngine baseEngine)
baseEngine
- the match engine supplying the base behaviour
for this onepublic boolean isIdentity()
public DescribedValue[] getMatchParameters()
MatchEngine
DescribedValue.setValue(java.lang.Object)
on the
returned objects.getMatchParameters
in interface MatchEngine
public DescribedValue[] getTuningParameters()
MatchEngine
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.
getTuningParameters
in interface MatchEngine
public ValueInfo[] getTupleInfos()
MatchEngine
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).getTupleInfos
in interface MatchEngine
public java.util.function.Supplier<MatchKit> createMatchKitFactory()
MatchEngine
The returned value is immutable, and is not affected by subsequent changes of the settings of this object.
createMatchKitFactory
in interface MatchEngine
public java.util.function.Supplier<Coverage> createCoverageFactory()
MatchEngine
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.
createCoverageFactory
in interface MatchEngine
public double getScoreScale()
MatchEngine
matchScore
/MatchEngine.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.
getScoreScale
in interface MatchEngine
public ValueInfo getMatchScoreInfo()
MatchEngine
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.getMatchScoreInfo
in interface MatchEngine
public boolean isLargeAngle(ValueInfo info)
info
- value metadatapublic boolean isSmallAngle(ValueInfo info)
info
- value metadatapublic static MatchEngine getHumanMatchEngine(MatchEngine base)
base
- original match engineCopyright © 2024 Central Laboratory of the Research Councils. All Rights Reserved.