The following notation is used in the "Origin Request" and "Target Response" column:
- [0,1] means parameter is optional, not repeatable; i.e. zero or one.
- 0+ means parameter is optional, repeatable; i.e. zero or more.
- 1 means parameter is mandatory, not repeatable; i.e exactly one.
- 1+ means parameter is mandatory, repeatable; i.e. one or more.
Parameter | Origin Request | Target Response | Condition |
---|---|---|---|
Input Result Set Id | 1+ | ||
Output Result Set Name | 1 | ||
Applicable Portion of Record | [0,1] | ||
Duplicate-detection Criterion | 0+ | ||
Clustering | [0,1] | May be omitted if representative record only is to be retained (if Retention Criterion is 'number of entries' and its value is 1). Otherwise must be supplied. | |
Retention Criterion | 1+ | ||
Sort Criterion | 0+ | ||
Status | 1 | ||
Result count | [0,1] | Must occur if Status is 'success'. | |
Diagnostic | 0+ | Must occur if Status is 'failure'. |
Input Result Set Id and Output Result Set Name
The origin identifies one or more transient result sets belonging to the current Z-association. The target is to
logically merge the sets (removing duplicates and ordering equivalence classes according to the parameters below)
into a single result set, specified by the parameter Output Result Set Name.
Applicable Portion of Record
The origin may specify what portion of the record is subject to matching (for example, one or more fields) for
purposes of duplicate-detection. If this parameter is omitted, the target decides what portion of the record is
subject to matching.
Duplicate-detection Criterion
For modeling purposes, a temporary, intermediate result set (not the output result set) is assumed to be created,
which includes all of the result set items from all of the input result sets (including duplicate result set
items). The target applies duplicate-detection criteria supplied in this parameter (or if the origin omits this
parameter, the target applies whatever duplicate detection criteria it chooses) to partition the intermediate
result set into one or more equivalence classes where two result set items are considered
equivalent if they are duplicate. That is, the partitioning has the following properties:
The origin may specify one or more criteria for detecting duplicates. These include the following (the list is subject to extension):
Retention Criterion
The origin specifies one or more criteria for how records are to be selected for inclusion in or exclusion from
each equivalence class. These include the following (the list is subject to extension):
This parameter will affect the ordering of result set items only within an equivalence class (it does not affect the ordering of equivalence classes). If the value of parameter Clustering is 'Clusters' then this parameter will have no effect whatever on the result set order (though it may be supplied anyway, to govern the selection of representative records as well as the order in which duplicates are presented within a single cluster record).
More than a single sort criterion may be supplied; if so, the order in which they are supplied is from major to minor, and only the first criterion supplied is used to govern selection of a representative record. The sort criteria include the following (the list is subject to extension):
Result Count
If the value of parameter Status is 'success' then the value of this parameter is the size of the output result
set.
Diagnostic
The target may always include one or more diagnostics in the response. If the value of parameter Status is
'failure', at least one diagnostic must be included.
PDU ::= CHOICE{ initRequest [20] IMPLICIT InitializeRequest, initResponse [21] IMPLICIT InitializeResponse, ...... close [48] IMPLICIT Close}
Change it to:
PDU ::= CHOICE{ initRequest [20] IMPLICIT InitializeRequest, initResponse [21] IMPLICIT InitializeResponse, ...... close [48] IMPLICIT Close, duplicateDetectionRequest [49] IMPLICIT DuplicateDetectionRequest, duplicateDetectionResponse [50] IMPLICIT DuplicateDetectionResponse}ASN.1 Definition for Duplicate Detection APDUs
DuplicateDetectionRequest ::= SEQUENCE { referenceId ReferenceId OPTIONAL, inputResultSetIds [3] IMPLICIT SEQUENCE OF InternationalString, outputResultSetName [4] IMPLICIT InternationalString, applicablePortionOfRecord [5] IMPLICIT EXTERNAL OPTIONAL, duplicateDetectionCriteria [6] IMPLICIT SEQUENCE OF DuplicateDetectionCriterion OPTIONAL, clustering [7] IMPLICIT BOOLEAN OPTIONAL, -- 'true' means "clustered". -- This parameter may be omitted -- only if retentionCriteria CHOICE is -- 'numberOfEntries' and its value is 1. retentionCriteria [8] IMPLICIT SEQUENCE OF RetentionCriterion, sortCriteria [9] IMPLICIT SEQUENCE OF SortCriterion OPTIONAL, otherInfo OtherInformation OPTIONAL} DuplicateDetectionCriterion ::= CHOICE{ levelOfMatch [1] IMPLICIT INTEGER, -- a percentage; 1-100. caseSensitive [2] IMPLICIT NULL, punctuationSensitive [3] IMPLICIT NULL, regularExpression [4] IMPLICIT EXTERNAL, rsDuplicates [5] IMPLICIT NULL -- values 6-100 reserved for future assignment. } RetentionCriterion ::= CHOICE{ numberOfEntries [1] IMPLICIT INTEGER, -- greater than 0 percentOfEntries [2] IMPLICIT INTEGER, -- 1-100, duplicatesOnly [3] IMPLICIT NULL, -- should not be chosen -- if clustering is 'true' discardRsDuplicates [4] IMPLICIT NULL -- values 5-100 reserved for future assignment. } SortCriterion ::= CHOICE{ mostComprehensive [1] IMPLICIT NULL, leastComprehensive [2] IMPLICIT NULL, mostRecent [3] IMPLICIT NULL, oldest [4] IMPLICIT NULL, leastCost [5] IMPLICIT NULL, preferredDatabases [6] IMPLICIT SEQUENCE OF InternationalString -- values 7-100 reserved for future assignment. } DuplicateDetectionResponse ::= SEQUENCE { referenceId ReferenceId OPTIONAL, status [3] IMPLICIT INTEGER{ success (0), failure (1)}, resultSetCount [4] IMPLICIT INTEGER OPTIONAL, diagnostics [5] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, otherInfo OtherInformation OPTIONAL}
Option Bit Assigned to the Duplicate Detection Service
Option bit 18 is assigned to this service. See Z39.50 Option Bits.
Library of Congress