This class represents the parameters controlling the match score calculation resulting from
the iKnow Smart Matching process driven from the %iKnow.Matching.MatchingAPI.
A Matching Profile can be linked to a domain, or just exist "namespace-wide", when
setting the DomainId property to 0. In the latter case, the profile
is typically referred to with a negative value for its ProfileId.
Use GetProfile() to retrieve or instantiate a profile object.
property MinMatchedConceptFraction as %Numeric [ InitialExpression = 0 ];
Use this parameter to add an additional requirement on the number of concepts from the
Dictionary Term that should be matched for an aggregate match to be considered.
A value of 1 (100%) implies all concepts should be matched. A value of at least 0.51 for example
means both concepts in a CRC should match. A value of 0 (default) does not impose additional
property Name as %String (MAXLEN = 150) [ ReadOnly ];
A name for this profile. This name should be unique within the domain (case-insensitive)
and cannot contain colons.
For backwards compatibility, empty names are permitted, but these profiles cannot be
retrieved with GetProfileByName()
property NegationMultiplier as %Numeric [ InitialExpression = 1 ];
Use this parameter to modify the score of matched entities which are part of a negation.
Typically, this value will be either 1, ignoring the fact an entity is part of a negation,
or 0, which will make the algorithm skip these entities. Other positive numeric values are
also accepted and just modify the entity-level score for the affected entities, causing them
to be considered partial matches.
property RelationshipLengthMultiplier as %Numeric [ InitialExpression = 0.2 ];
When calculating an aggregate match score for a CRC, path or sentence, the "length" of
the matched section is compared to the total "length" of the CRC, path or sentence.
This "length" is calculated taking a value of 1 for each concept and a value of
RelationshipLengthMultiplier for each relationship. Therefore,
setting this property to a lower value will decrease the weight of relationship
entities in calculating this ratio.
property ScatteredMatchMultiplier as %Numeric [ InitialExpression = 0.75 ];
The entity-level score of scattered entity matches will be multiplied by this modifier.
For example when matching the entity "blue big car" against the term "big blue car",
The initial score of 1 (as all words in the entity are matched) will be multiplied
Inherited description: This callback method is invoked by the %Delete() method to
provide notification that the object specified by oid is being deleted.
If this method returns an error then the object will not be deleted.
private method %OnNew(pDomainId As %Integer = 0, pName As %String = "") as %Status [ Language = objectscript ]
Creates a new Matching Profile instance in domain pDomainId (set to 0 to use
the profile across domains) named pName. The name is optional but if specified,
should be unique within the domain (or within the cross-domain profiles) and cannot
contain colon characters.
Utility method to instantiate a Matching Profile. If passed a negative integer for
pProfileId, it will look for a namespace-wide Matching Profile (which means
DomainId is 0), otherwise it will take look in the domain
specified through pDomainId. If pProfileId is empty, the default
profile for this domain will be returned.
Looks up a Matching Profile by name in the domain identified by pDomainId (or
in the set of cross-domain profiles if pDomainId = 0).
pName should be a nonempty string and can be prepended with the domain ID to
look into (overriding the value of pDomainId), separated by a colon. This
allows configuration settings to refer to a particular Matching Profile with a single
string. Matching Profiles without a name cannot be looked up through this method and
should be looked up by ID using GetProfile() instead.
index (PKINDEX on DomainId,ProfileId) [IdKey, PrimaryKey, Type = key, Unique];
Index methods: PKINDEXCheck(), PKINDEXDelete(), PKINDEXExists(), PKINDEXOpen(), PKINDEXSQLCheckUnique(), PKINDEXSQLExists(), PKINDEXSQLFindPKeyByConstraint(), PKINDEXSQLFindRowIDByConstraint()