ANSI/NISO Z39.50-1992                          ISSN: 1041-5653
(Revision of ANSI/NISO Z39.50-1988)

Application Service Definition and Protocol Specification for Open Systems Interconnection


4. Protocol Specification

This version of the ANSI Z39.50-1992 Information Retrieval protocol is version 2.

Note: For the purpose of interworking with version 1 of the Search and Retrieve Protocol (ISO 10163), version 2 of Z39.50 is assumed identical to version 1 of Z39.50; thus implementations that support version 2 automatically support version 1. Implementations that intend to interwork with SR implementations as well as other Z39.50 implementations should indicate support for both versions 1 and 2 (version 1 of ANSI Z39.50-1992 should not be confused with ANSI Z39.50-1988).

The Information Retrieval application protocol specifies the formats and procedures governing the transfer of information between peer information retrieval applications. A unit of information, passed between two peer applications is called an "application protocol data unit" or APDU.

4.1 Abstract Syntax of the Information Retrieval Protocol

The Information Retrieval protocol data units are complex data types. The transfer syntax of these data types is negotiated by the presentation service provider. The definitions in this section specify the component data elements of the protocol data units and the Type-1 query.

4.1.1 ASN.1 Specification of the APDUs

This section describes the abstract syntax of the Z39.50 APDUs, using the ASN.1 notation defined in ISO 8824. The comments included within the ASN.1 specification constitute part of the standard.



IR DEFINITIONS ::=

BEGIN

-- ANSI/NISO Z39.50-1992 version 2 - July 1, 1992

PDU ::= CHOICE{

initRequest [20] IMPLICIT InitializeRequest, initResponse [21] IMPLICIT InitializeResponse, searchRequest [22] IMPLICIT SearchRequest, searchResponse [23] IMPLICIT SearchResponse, presentRequest [24] IMPLICIT PresentRequest, presentResponse [25] IMPLICIT PresentResponse, deleteResultSetRequest [26] IMPLICIT DeleteResultSetRequest, deleteResultSetResponse [27] IMPLICIT DeleteResultSetResponse, accessControlRequest [28] IMPLICIT AccessControlRequest, accessControlResponse [29] IMPLICIT AccessControlResponse, resourceControlRequest [30] IMPLICIT ResourceControlRequest, resourceControlResponse [31] IMPLICIT ResourceControlResponse, triggerResourceControlRequest [32] IMPLICIT TriggerResourceControlRequest, resourceReportRequest [33] IMPLICIT ResourceReportRequest, resourceReportResponse [34] IMPLICIT ResourceReportResponse} -- new APDUs can be added in the future at the end of this list. --

InitializeRequest ::=SEQUENCE{

referenceId ReferenceId OPTIONAL, protocolVersion ProtocolVersion, -- proposed version of the protocol to be used (see below). options Options, -- proposed set of services to be used preferredMessageSize PreferredMessageSize, -- origin proposal for the size of large messages (where message size is -- the sum of sizes, in bytes, of the records in an APDU) the target -- should normally use when presenting groups of records; however, the -- first record in a response is permitted to cause the message to -- exceed this size (see also maximumRecordSize below). maximumRecordSize MaximumRecordSize, -- origin proposal for maximum record size (number of bytes). -- Value must be greater than or equal to -- preferredMessageSize. idAuthentication [7] ANY OPTIONAL, -- information as required by the target to access the -- responding IRPM; syntax of this parameter to be -- defined by the target prior to communication. implementationId ImplementationId OPTIONAL, implementationName ImplementationName OPTIONAL, implementationVersion ImplementationVersion OPTIONAL, userInformationField UserInformationField OPTIONAL} --

InitializeResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, protocolVersion ProtocolVersion, options Options, preferredMessageSize PreferredMessageSize, -- target decision on maximum APDU size (see description under -- InitializationRequest definition). Value is allowed to be different -- from what origin proposed in the Initialization Request; if origin -- does not agree on target values, it may abort the connection. maximumRecordSize MaximumRecordSize, -- target decision on the maximum record size result [12] IMPLICIT BOOLEAN, -- result of the processing of the request at the target. -- reject = FALSE; Accept = TRUE. implementationId ImplementationId OPTIONAL, implementationName ImplementationName OPTIONAL, implementationVersion ImplementationVersion OPTIONAL, userInformationField UserInformationField OPTIONAL} -- -- Auxiliary definitions for Initialization APDUs ProtocolVersion ::= [3] IMPLICIT BIT STRING -- represents a string of Boolean values, each value representing -- a version. The first value set to 1 indicates version 1 is available, -- the second value set to 1 indicates version 2 is available, and so on. -- Values higher than the highest known version should be ignored. Both the -- Initialize and Initialize Response APDUs include a value string -- corresponding to the supported versions. The highest common version is -- selected for use. If there are no versions in common, the Initialize -- Response APDU should indicate a value of "reject" for the parameter -- Result. Note: Versions 1 and 2 are identical. Systems supporting -- version 2 should indicate support for version 1 as well -- for interoperability with systems that indicate support for -- version 1 only (e.g. ISO 10163 implementations). Options ::= [4] IMPLICIT BIT STRING {search (0), present (1), delSet (2), resourceReport (3), triggerResourceCtrl (4), resourceCtrl (5), accessCtrl (6)} -- In InitializeRequest, for bits 0 through 4, ON indicates initiator does -- request use of service; for bits 5 and 6, ON indicates initiator will -- support service. For InitializeResponse, for bit 0 through 4, ON indicates -- target will support service; for bits 5 and 6, ON indicates target requests -- service. For extensibility of the protocol, additional bits set should -- not be considered to be an error on received InitializeRequest. -- PreferredMessageSize ::= [5] IMPLICIT INTEGER MaximumRecordSize ::= [6] IMPLICIT INTEGER -- ImplementationId ::= [110] IMPLICIT VisibleString -- a unique identifier for the origin or target implementation ImplementationName ::= [111] IMPLICIT VisibleString -- a descriptive name for the origin or target implementation ImplementationVersion ::= [112] IMPLICIT VisibleString -- descriptive name for the origin or target impl. version -- these three implementation parameters are provided solely for -- the convenience of implementors needing to distinguish implemen- -- tations. They shall not be the subject of conformance tests. UserInformationField ::= [11] EXTERNAL -- additional information, not defined in this standard. -- end auxiliary definitions for initialization APDUs

SearchRequest ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, smallSetUpperBound [13] IMPLICIT INTEGER, -- if the number of hits is less than or equal to this number, all records -- are to be returned in the SearchResponse (within the limits given by -- the negotiated preferred-MessageSize and maximumRecordSize), composed -- as specified by the smallSetElementSetNames parameter below. May be -- zero. largeSetLowerBound [14] IMPLICIT INTEGER, -- if the number of hits is equal to or greater than this number, no -- records are to be returned. largeSetLowerBound must be greater than -- smallSetUpperBound. mediumSetPresentNumber [15] IMPLICIT INTEGER, -- maximum number records to be returned in the SearchResponse if the number -- of hits is between largeSetLowerBound and smallSetUpperBound (again -- within the limits given by PreferredMessageSize and MaximumRecordSize), -- composed as specified by mediumSetRecordElementSetNames. replaceIndicator [16] IMPLICIT BOOLEAN, -- origin indicates whether or not to replace a previously created result -- set with the same name by the one that is constructed in this search. resultSetName [17] IMPLICIT VisibleString, -- origin proposal for naming of the result set that is constructed if hits -- are found. If target allows the origin to assign names to result sets, -- it uses this proposed name. If the target does not support named result -- sets, it returns an error diagnostic. databaseNames [18] IMPLICIT SEQUENCE OF DatabaseName, -- database(s) in which the search will be performed. smallSetElementSetNames [100] IMPLICIT ElementSetNames OPTIONAL, -- origin proposal for composition of the records in the small -- set (see above under smallSetUpperBound). mediumSetElementSetNames [101] IMPLICIT ElementSetNames OPTIONAL, -- origin proposal for the composition of the records in the -- medium set (see above under mediumSetPresentNumber). preferredRecordSyntax PreferredRecordSyntax OPTIONAL, -- origin proposal for abstract syntax of the database records to be -- returned in the SearchResponse. Values subject to registration. query [21] Query} -- the search argument (see description below). --

Query ::= CHOICE

{type-0 [0] ANY, type-1 [1] IMPLICIT RPNQuery, type-2 [2] OCTET STRING, type-100 [100] OCTET STRING, type-101 [101] IMPLICIT OCTET STRING} -- the search argument contained in the SearchRequest. Five types are defined: -- a) A type-0 query may be used only when the origin and target have an -- a priori agreement outside of this standard as to form of query -- acceptable to target. -- b) type-1 is the Reverse Polish Notation (RPN) query (see below). -- c) type-2 is the ISO8777 type query, specified in ISO 8777. -- d) type-100 is the Z39.58 type query, specified in ANSI Z39.58. -- e) type-101 is the proximity query, specified in Appendix G. -- -- --

RPNQuery ::= SEQUENCE{

attributeSetId OBJECT IDENTIFIER, -- identifies attribute set RPNStructure} RPNStructure ::= CHOICE { [0] Operand, [1] IMPLICIT SEQUENCE { RPNStructure, RPNStructure, Operator }} -- Operand ::= CHOICE{ AttributesPlusTerm, ResultSetId} AttributesPlusTerm::= [102] IMPLICIT SEQUENCE{ AttributeList, Term} AttributeList ::= [44] IMPLICIT SEQUENCE OF AttributeElement Term ::= [45] IMPLICIT OCTET STRING -- the type OCTET STRING is used to enable the inclusion of multibyte -- character representations which the types CharacterString and -- VisibleString might impose on graphic character repertoire. Operator ::= [46] CHOICE{ and [0] IMPLICIT NULL, or [1] IMPLICIT NULL, and-not [2] IMPLICIT NULL} -- AttributeElement ::= SEQUENCE{ AttributeType, AttributeValue} AttributeType ::= [120] IMPLICIT INTEGER AttributeValue ::= [121] IMPLICIT INTEGER -- AttributeType and AttributeValue interpretation is governed by the -- values contained in the definition identified by AttributeSetId. --

SearchResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, resultCount [23] IMPLICIT INTEGER, -- number of hits resulting from the search. numberOfRecordsReturned NumberOfRecordsReturned, -- number of records in the search results below. nextResultSetPosition NextResultSetPosition, -- the ordinal number in the result set of the record appearing directly -- after the last record in the search Results below. searchStatus [22] IMPLICIT BOOLEAN, -- result of the processing of the request at the target IRPM. -- success = TRUE; failure = FALSE. resultSetStatus [26] IMPLICIT INTEGER{ subset (1), interim (2), none (3)} OPTIONAL, -- occurs if and only if search-status is FALSE. Indicates the -- presence and validity of the result set produced. presentStatus PresentStatus OPTIONAL, -- occurs if and only if search-status is TRUE. Indicates -- presence and validity of records appearing in the search results. databaseOrDiagnosticRecords Records OPTIONAL} -- the records (diagnostic and/or bibliographic) resulting -- from the search (see description below). -- --

PresentRequest ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, resultSetId ResultSetId, -- identification of the result set from which to retrieve records resultSetStartPoint [30] IMPLICIT INTEGER, -- ordinal number in the result set of the first record to -- appear in the present results in the PresentResponse. numberOfRecordsRequested [29] IMPLICIT INTEGER, -- specifies the maximum number of records to be returned in the present -- results in the PresentResponse (within the limits given by the -- negotiated message and record size parameters), composed as specified -- by the element set names parameter below. ElementSetNames OPTIONAL, -- origin proposal for the composition of the records to be -- returned in the Present Response. preferredRecordSyntax PreferredRecordSyntax OPTIONAL} -- origin proposal for abstract syntax of the database records to be returned -- in the present results in the Present Response. Values subject -- to registration, at present by specification in Appendix E. -- --

PresentResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, numberOfRecordsReturned NumberOfRecordsReturned, -- number of records returned in the records parameter below. nextResultSetPosition NextResultSetPosition, -- ordinal number in the result set of the record -- appearing directly after the last record returned presentStatus PresentStatus, -- indicates the presence and validity of the records databaseOrDiagnosticRecords Records OPTIONAL} -- the presented records -- -- -- begin auxiliary definitions for search and present APDUs

Records ::= CHOICE{

dataBaseOrSurDiagnostics [28] IMPLICIT SEQUENCE OF NamePlusRecord, nonSurrogateDiagnostic [130] IMPLICIT DiagRec} -- NamePlusRecord ::= SEQUENCE{ [0] IMPLICIT DatabaseName OPTIONAL, -- presence of DatabaseName is conditional. See 3.2.2.1.7 and 3.2.3.1.5. [1] CHOICE{ databaseRecord [1] DatabaseRecord, surrogateDiagnostic [2] DiagRec}} --

DatabaseRecord ::= EXTERNAL

-- the database record syntax is defined outside of this standard. -- For bibliographic data, USMARC is a prime example. --

DiagRec ::= SEQUENCE{

diagnosticSetId OBJECT IDENTIFIER, condition INTEGER, -- interpretation of condition is governed by values -- contained in definition identified by DiagnosticSetId. addinfo VisibleString} -- add'l information.

ElementSetNames ::= [19] CHOICE{

generic [0] IMPLICIT ElementSetName, databaseSpecific [1] IMPLICIT SEQUENCE OF SEQUENCE{ DatabaseName, ElementSetName}} -- ElementSetName ::= [103] IMPLICIT VisibleString -- A target must always recognize the value "F" to mean "full record." -- -- begin miscellaneous definitions for search and present APDUs NumberOfRecordsReturned ::= [24] IMPLICIT INTEGER NextResultSetPosition ::= [25] IMPLICIT INTEGER PresentStatus ::= [27] IMPLICIT INTEGER{ success (0), partial-1 (1), partial-2 (2), partial-3 (3), partial-4 (4), failure (5)} PreferredRecordSyntax ::= [104] IMPLICIT OBJECT IDENTIFIER -- end miscellaneous definitions for search and present APDUs -- end auxiliary definitions for search and present APDUs -- --

DeleteResultSetRequest ::=SEQUENCE{

referenceId ReferenceId OPTIONAL, deleteOperation [32] IMPLICIT INTEGER{ list (0), all (1)}, resultSetList SEQUENCE OF ResultSetId OPTIONAL } -- identification of result sets to be deleted if operation is "list" --

DeleteResultSetResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, deleteOperationStatus [0] IMPLICIT DeleteSetStatus, -- Reports status for entire delete operation. Values limited to -- "success" or "failure-3" through "failure-9." Values of "failure-7" -- and "failure-8" may be used only if operation is "all." deleteListStatuses [1] IMPLICIT ListStatuses OPTIONAL, -- Must occur if operation is "list." Individual status -- values limited to "success" through "failure-6." numberNotDeleted [34] IMPLICIT INTEGER OPTIONAL, -- No. sets target failed to delete. Occurs only if operation is "all." bulkStatuses [35] IMPLICIT ListStatuses OPTIONAL, -- occurs if and only if DeleteSetStatus equals 8. Individual -- statuses limited to "success" through "failure-6" deleteMessage [36] IMPLICIT VisibleString OPTIONAL} -- textual message concerning the delete operation. -- -- begin auxiliary definitions for delete

ListStatuses ::= SEQUENCE OF SEQUENCE{

ResultSetId, DeleteSetStatus}

DeleteSetStatus ::= [33] IMPLICIT INTEGER{

success (0), resultSetDidNotExist (1), previouslyDeletedByTarget (2), systemProblemAtTarget (3), accessNotAllowed (4), resourceControlAtOrigin (5), resourceControlAtTarget (6), bulkDeleteNotSupported (7), notAllRsltSetsDeletedOnBulkDlte (8), notAllRequestedResultSetsDeleted (9)} -- 7 and 8 used only if operation is "all." -- end auxiliary definitions for delete --

AccessControlRequest ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, securityChallenge CHOICE{ oldway [37] IMPLICIT OCTET STRING, newway [0] EXTERNAL}} --

AccessControlResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, securityChallengeResponse CHOICE{ oldway [38] IMPLICIT OCTET STRING, newway [0] EXTERNAL}} -- --

ResourceControlRequest ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, suspendedFlag [39] IMPLICIT BOOLEAN OPTIONAL, -- "true" = suspended resourceReport [40] ResourceReport OPTIONAL, partialResultsAvailable [41] IMPLICIT INTEGER{ subset (1), interim (2), none (3)} OPTIONAL, responseRequired [42] IMPLICIT BOOLEAN, -- "true" means that the target requires a response triggeredRequestFlag [43] IMPLICIT BOOLEAN OPTIONAL} -- "true" means request triggered by a trigger-resource-control request --

ResourceControlResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, continueFlag [44] IMPLICIT BOOLEAN, -- true = continue resultSetWanted [45] IMPLICIT BOOLEAN OPTIONAL} -- "true" = "result set wanted," required during a search if -- Continue flag is false; otherwise should not occur. --

TriggerResourceControlRequest ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, requestedOperation [46] IMPLICIT INTEGER{ resourceReport (1), resourceControl (2), cancel (3)}, preferredResourceReportFormat [47] IMPLICIT ResourceReportId OPTIONAL, resultSetWanted [48] IMPLICIT BOOLEAN OPTIONAL} -- --

ResourceReportRequest ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, preferredResourceReportFormat [49] IMPLICIT ResourceReportId OPTIONAL} -- --

ResourceReportResponse ::= SEQUENCE{

referenceId ReferenceId OPTIONAL, resourceReportStatus [50] IMPLICIT INTEGER{ success (0), partial (1), failure-1 (2), failure-2 (3), failure-3 (4), failure-4 (5)}, resourceReport [51] ResourceReport OPTIONAL} -- -- -- Begin auxiliary definitions for resource control ResourceReport ::= EXTERNAL ResourceReportId ::= OBJECT IDENTIFIER -- End auxiliary definitions for resource control -- -- begin global auxiliary definitions ReferenceId ::= [2] IMPLICIT OCTET STRING -- value provided by the service originator in the Request APDU, target -- required to send it back unaltered in corresponding response APDU DatabaseName ::= [105] IMPLICIT VisibleString ResultSetId ::= [31] IMPLICIT VisibleString -- end global auxiliary definitions END -- IR
4.2 Protocol Procedures

This section specifies services required by the protocol, the protocol model, state tables, and handling of protocol errors. Rules for extensibility, and conformance requirements are specified in sections 4.3 and 4.4.

4.2.1 Services Required

The Information Retrieval protocol assumes service from the Presentation layer and the association control service element.

4.2.1.1 Service Required from the Presentation Layer

The protocol uses the presentation service as defined in ISO 8822 to provide a presentation connection for communication between two information retrieval applications. The presentation services required are those contained in the presentation kernel functional unit and the session duplex functional unit. The association control service element may have additional requirements for presentation services.

All Information Retrieval protocol data units will be mapped onto the P-Data service. The communication service that supports this protocol is a connection-oriented service using the P-DATA service, defined in ISO 8822 in an established application association, in combination with the ACSE, ISO 8649.

A Z39.50 origin establishes application-associations as necessary with the target with whom it is engaged in Z39.50 activity. The Z39.50 application-service-element (ASE) may then use the P-DATA service defined in ISO 8822 directly to transmit Z39.50 APDUs. This provides a connection-oriented interaction between Z39.50 systems. A single application-association can be used to send a series of Z39.50 APDUs relating to multiple searches. A single system can be engaged in multiple application associations with multiple remote systems simultaneously.

4.2.1.2 Association Control Services Assumed

The protocol assumes the services of the association control service elements as defined in ISO 8649. The services required are:

  1. Orderly association release, where both sides agree to the release and there is no loss of data in transit (the IR-release service is directly mapped to this service without any Information Retrieval protocol control information), and

  2. Association abort, which allows either origin or target, at any time, to explicitly terminate the association, immediately and unconditionally. Data in transit may be lost (the IR-abort service is directly mapped to this service without any Information Retrieval protocol control information).

It is assumed that prior to APDUs being exchanged the Information Retrieval service user will handle the association control services required to establish an association with an application context encompassing the Information Retrieval service. The application context "basic-Z39.50-ac" is registered in Appendix A and defined in Appendix B.

4.2.2 Protocol Model

To specify protocol procedure, the abstract, implementation-independent concepts of service-user, service-provider, and service primitive are used.

A service-provider provides a communication path between two service users. A service primitive is an element of interaction between the service-user and the service-provider. There are four types of service primitives: Request, Indication, Response, and Confirmation. For a confirmed service initiated by the origin (i.e., for Z39.50: Search, Present, Delete, and Resource-report) they are used as follows:

  1. Request - A primitive issued by the origin service-user to the service-provider in order to invoke some procedure.

  2. Indication - A primitive issued by the service-provider to the target service-user to indicate that a procedure has been invoked by its peer.

  3. Response - A primitive issued by the target service-user to the service-provider at the completion of the procedure previously invoked by an indication.

  4. Confirmation - A primitive issued by the service-provider to the origin service-user to complete the procedure previously invoked by a request.

Notes:

Primitives are conceptual and their use neither specifies nor precludes any specific implementation of a service. Only primitives that correspond to some element of the service involving the exchange of information between systems are defined.

From the perspective of the service-user, the service-provider is system-independent. For the exchange of protocol however, a distinction is made between those portions of the service-provider residing on the origin and target systems (respectively, the origin service-provider and the target service-provider). The sequence of interactions for a confirmed service initiated by the origin is:

  1. Request Primitive from origin service-user to service-provider.

  2. Protocol Message from origin service-provider to target service-provider.

  3. Indication Primitive from service-provider to target service-user.

  4. Response Primitive from target service-user to service-provider.

  5. Protocol Message from target service-provider to origin service-provider.

  6. Confirmation Primitive from service-provider to origin service-user.

The following illustrates the sequence of interactions which occur for a Search operation:

  1. Search request from origin service-user to service-provider.

  2. Search APDU (Application Protocol Data Unit) from origin service-provider to target service-provider.

  3. Search indication from service-provider to target service-user.

  4. Search response from target service-user to service-provider.

  5. Search-response APDU from target service-provider to origin service-provider.

  6. Search confirm from service-provider to origin service-user.

Note: The interfaces between service user and service provider, as represented by steps 1 and 6 for the origin, and by steps 3 and 4 for the target, are described solely to facilitate the specification of protocols. These steps do not represent intersystem communication, and therefore, the means by which they are implemented are not constrained by this specification. In an actual implementation, step 4, for example, might consist of several messages from the target service user to service provider. On the other hand, both the target service user and service provider could be combined in a single program, in which case steps 3 and 4 might not have any real physical manifestation.

4.2.3 State Tables

This section defines two Information Retrieval Protocol Machines (IRPMs) in terms of state tables. Table 10 defines origin and target states and Table 11 lists events and actions for the origin of the target. One state table is defined for the origin (Table 12) and one state table is defined for the target (Table 13). Each state table shows the interrelationship between the state of an Information Retrieval association, the incoming events that occur in the protocol, the actions taken, and, finally, the resulting state of the association. The IRPM state table does not constitute a formal definition of the IRPM. It is included to provide a more precise specification of the protocol procedures. The following conventions are used in the state tables:

State Table Cells. The intersection of an incoming event (row) and a state (column) forms a cell. A blank cell represents the combination of an incoming event and a state that is not defined for the IRPM. A non-blank cell represents an incoming event and state that is defined for the IRPM. Such a cell contains one or more actions, separated by semi-colons (;).

Actions to Be Taken by the IRPM. The IRPM state tables define the action to be taken by the IRPM in terms of one or more outgoing events (separated by semicolons) and the resulting state (in parentheses) of the Information Retrieval association.

Invalid Intersections. Blank cells indicate an invalid intersection of an incoming event and state. The state tables define correct operation only. They do not specify actions to be taken in response to incorrect operation (for example, erroneous protocol control information, incorrect protocol control actions, etc.). Such actions are not within the scope of the specification, although implementations must consider them.


                  Table 10: Definition of States

           Origin States              |              Target States
  ____________________________________|____________________________________
  No. | Name    | Description         | No. | Name     | Decscription
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin is await-|     |          | the target is 
   1  | Closed  | ing an Init request |  1  | Closed   | awaiting an Init 
      |         | from the application|     |          | APDU
  ____|_________|_____________________|_____|__________|___________________
      | Init    | the origin has      |     | Init     | the target has 
  2   | sent    | transmitted an Init | 2   | recvd    | issued an Init
      |         | APDU to the target  |     |          | indication
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin is await-|     |          | the target is await-
      |         | ing a Search, Pres- |     |          | ing a Search, Pres-
  3   | Open    | ent, Delete, or     | 3   | Open     | ent, Delete, or
      |         | Resource-report     |     |          | Resource-report
      |         | request             |     |          | APDU
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has 
  4   | Search  | transmitted a       | 4   | Search   | issued a Search
      | sent    | Search APDU         |     | recvd    | indication
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has
  5   | Prsnt   | transmitted a       | 5   | Presnt   | issued a 
      | sent    | Present APDU        |     | recvd    | Present indication
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has 
  6   | Delete  | transmitted a       |  6  | Delete   | issued a 
      | sent    | Delete APDU         |     | recvd    | Delete indication
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has
  7   | Rsrp    | transmitted a       |  7  | Rsrp     | issued a Resource-
      | sent    | Resource-report APDU|     | recvd    | report indication
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has
      | rscctrl | issued a Resource-  |     | rscctrl  | transmitted a 
  8   | recvd   | control indication  |  8  | sent     | Resource-control APDU
      |         | (response required) |     |          | (response required)
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has
  9   | Acctrl  | issued an Access-   |  9  | Acctrl   | transmitted an
      | recvd   | control indication  |     | sent     | Access-control APDU
  ____|_________|_____________________|_____|__________|___________________
      |         | the origin has      |     |          | the target has 
  10  | Rlease  | issued an A_release | 10  | Rlease   | issued an IR_rel
      | sent    | request             |     | recvd    | indication
  ____|_________|_____________________|_____|__________|___________________
      |         |                     |     |          | the target has 
      |         |                     | 11  | Reject   | transmitted an Init
      |         |                     |     |          | Response APDU 
      |         |                     |     |          | (reject)  
  ____|_________|_____________________|_____|__________|___________________


   Table 11a: Events and Actions and Their Abbreviations--Origin

   Incoming Event  |   Abbreviation   |  Outgoing Action |  Abbreviation    
                   |                  |                  |                  
 __________________|__________________|__________________|__________________
  Init request     |  Init req        |  Init PDU        |  Init PDU        
 __________________|__________________|__________________|__________________
  Init-response PDU|  Init resp PDU   |  Init confirm    |  Init conf       
 __________________|__________________|__________________|__________________
  Search request   |  Srch req        |  Search PDU      |  Srch PDU        
 __________________|__________________|__________________|__________________
  Search-response  |  Srch resp PDU   |  Search confirm  |  Srch conf       
  PDU              |                  |                  |                  
 __________________|__________________|__________________|__________________
  Present request  |  Prsnt req       |  Present PDU     |  Prsnt PDU       
 __________________|__________________|__________________|__________________
  Present-response |  Prsnt resp PDU  |  Present confirm |  Prsnt conf      
  PDU              |                  |                  |                  
 __________________|__________________|__________________|__________________
  Delete request   |  Dlte req        |  Delete PDU      |  Dlte PDU        
 __________________|__________________|__________________|__________________
  Delete-response  |  Dlte resp PDU   |  Delete confirm  |  Dlte conf       
  PDU              |                  |                  |                  
 __________________|__________________|__________________|__________________
  Resource-report  |  Rsrp req        |  Resource-report |  rsrp PDU        
  request          |                  |  PDU             |                  
 __________________|__________________|__________________|__________________
  Resource-report  |  Rsrp resp PDU   | Resource-report- |  rsrp conf       
  response PDU     |                  |  confirm         |                  
 __________________|__________________|__________________|__________________
  Trigger-resource-|  Trigrc req      | Trigger-resource-|  Trigrc PDU      
  control request  |                  | control PDU      |                  
 __________________|__________________|__________________|__________________
  Resource-control |  Rsc PDU (Resp)  |                  |                  
  PDU (response    |                  | Resource-control |  Rsc ind         
  required)        |                  | indication       |                  
 __________________|__________________|                  |                  
  Resource-control | Rsc PDU (Noresp) |                  |
  PDU (response    |                  |                  |
  not required)    |                  |                  |
 __________________|__________________|__________________|__________________
  Resource-control |  Rsc resp        | Resource-control |  Rsc resp PDU    
  response         |                  | response PDU     |                  
 __________________|__________________|__________________|__________________
  Access-control   |  Acc PDU         |  Access-control  |  Acc ind         
  PDU              |                  |  indication      |                  
 __________________|__________________|__________________|__________________
  Access-control   |  Acc resp        |  Access-control  |  Acc resp PDU    
  response         |                  |  response PDU    |                  
 __________________|__________________|__________________|__________________
  A-Abort          |  Aab ind         |                  |                  
  indication       |                  |  IR-abort        |  Iab ind         
 __________________|__________________|  indication      |                  
  A-P-abort        |  APab ind        |                  |                  
  indication       |                  |                  |                  
 __________________|__________________|__________________|__________________
  IR-abort request |  Iab req         |  A-abort request |  Aab req
 __________________|__________________|__________________|__________________
  IR-release       |  Irel req        |  A-release       |  Arel req        
  request          |                  |  request         |                  
 __________________|__________________|__________________|__________________
  A-release        |  Arel conf       |  IR-release      |  Irel conf       
  confirm          |                  |  confirm         |                  
 __________________|__________________|__________________|__________________
                   |                  |  Save current    |  stkst           
                   |                  |  state           |                  
 __________________|__________________|__________________|__________________
                   |                  |  Restore prev-   |  popst           
                   |                  |  iously saved    |                  
                   |                  |  state           |                  


   Table 11b: Events and Actions and Their Abbreviations--Target

   Incoming Event  |   Abbreviation   |  Outgoing Action |  Abbreviation    
                   |                  |                  |                  
 __________________|__________________|__________________|__________________
  Init PDU         |  Init PDU        |  Init indication |  Init ind        
 __________________|__________________|__________________|__________________
  Init response    |  Init resp       | Init-response PDU|  Init resp PDU   
 __________________|__________________|__________________|__________________
  Search PDU       |  Srch PDU        | Search indication|  Srch ind         
 __________________|__________________|__________________|__________________
  Search response  |  Srch resp       |  Search-response |  Srch resp PDU
                   |                  |  PDU             |                  
 __________________|__________________|__________________|__________________
  Present PDU      |  Prsnt PDU       |Present indication|  Prsnt ind       
 __________________|__________________|__________________|__________________
  Present response |  Prsnt resp      | Present-response |  Prsnt resp PDU  
                   |                  | PDU              |                  
 __________________|__________________|__________________|__________________
  Delete PDU       |  Dlte PDU        | Delete indication|  Dlte ind        
 __________________|__________________|__________________|__________________
  Delete response  |  Dlte resp       |  Delete-respond  |  Dlte resp PDU   
                   |                  |  PDU             |                  
 __________________|__________________|__________________|__________________
  Resource-report  |  Rsrp PDU        |  Resource-report |  Rsrp ind        
  PDU              |                  |  indication      |                  
 __________________|__________________|__________________|__________________
  Resource-report  |  Rsrp resp       | Resource-report- |  Rsrp rep PDU    
  response         |                  | response PDU     |                  
 __________________|__________________|__________________|__________________
  Trigger-resource-|  Trigrc PDU      | Trigger-resource-|  Trigrc ind      
  control PDU      |                  |control indication|                  
 __________________|__________________|__________________|__________________
  Resource-control |  Rsc req (Resp)  |                  |                   
  Request (response|                  | Resource-control |  Rsc PDU         
  required)        |                  | PDU              |                  
 __________________|__________________|                  |                  
  Resource-control | Rsc req (Noresp) |                  |
  Request (no      |                  |                  |
 response required)|                  |                  |
 __________________|__________________|__________________|__________________
  Resource-control |  Rsc resp PDU    | Resource-control |  Rsc conf        
  response PDU     |                  | confirm          |                  
 __________________|__________________|__________________|__________________
  Access-control   |  Acc req         |  Access-control  |  Acc PDU         
  Request          |                  |  PDU             |                  
 __________________|__________________|__________________|__________________
  Access-control-  |  Acc resp PDU    |  Access-control  |  Acc conf            
  response PDU     |                  |  confirm         |                  
 __________________|__________________|__________________|__________________
  A-Abort          |  Aab ind         |                  |                  
  indication       |                  |  IR-abort        |  Iab ind         
 __________________|__________________|  indication      |                  
  A-P-abort        |  APab ind        |                  |                  
  indication       |                  |                  |                  
 __________________|__________________|__________________|__________________
  IR-abort request |  Iab req         |  A-abort request |  Aab req
 __________________|__________________|__________________|__________________
  A-release        |  Arel ind        |  IR-release      |  Irel ind        
  indication       |                  |  indication      |                  
 __________________|__________________|__________________|__________________
  IR-release       |  Irel resp       |  A-release       |  Arel resp       
  response         |                  |  response        |                  
 __________________|__________________|__________________|__________________
                   |                  |  Save current    |  stkst           
                   |                  |  state           |                  
 __________________|__________________|__________________|__________________
                   |                  |  Restore prev-   |  popst           
                   |                  |  iously saved    |                  
                   |                  |  state           |                  


   Table 12a: State Table for Origin -- Part 1

    \ State | Closed |  Init  |  Open  | Search |  Prsnt | Delete | Rsrp
      \     |        |  sent  |        | sent   |  sent  |  sent  | sent
  Event \   |    1   |   2    |   3    |    4   |   5    |    6   |   7    
   _______\_|________|________|________|________|________|________|________
   Init     | Init   |        |        |        |        |        |        
   req      | PDU(2) |        |        |        |        |        |        
   _________|________|________|________|________|________|________|________
   Init     |        |  Init  |        |        |        |        |        
   resp PDU |        |  conf+ |        |        |        |        |        
   (ACCEPT) |        |   (3)  |        |        |        |        |        
   _________|________|________|________|________|________|________|________
   Init     |        | Init   |        |        |        |        |        
   resp PDU |        | conf-; |        |        |        |        |        
   (REJECT) |        |Arel req|        |        |        |        |        
   _________|________|___(10)_|________|________|________|________|________
    Srch    |        |        | Srch   |        |        |        |        
    req     |        |        | PDU (4)|        |        |        |        
   _________|________|________|________|________|________|________|________
    Srch    |        |        |        | Srch   |        |        |        
    resp    |        |        |        | conf   |        |        |        
    PDU     |        |        |        |   (3)  |        |        |        
   _________|________|________|________|________|________|________|________
    Prsnt   |        |        | Prsnt  |        |        |        |        
     req    |        |        | PDU (5)|        |        |        |        
   _________|________|________|________|________|________|________|________
    Prsnt   |        |        |        |        | Prsnt  |        |        
    resp    |        |        |        |        | conf   |        |        
    PDU     |        |        |        |        |   (3)  |        |        
   _________|________|________|________|________|________|________|________
    Dlte    |        |        |Dlte PDU|        |        |        |        
     req    |        |        |   (6)  |        |        |        |        
   _________|________|________|________|________|________|________|________
    Dlte    |        |        |        |        |        | Dlte   |        
    resp    |        |        |        |        |        | conf   |        
    PDU     |        |        |        |        |        |  (3)   |        
   _________|________|________|________|________|________|________|________
    Rsrp    |        |        | Rsrp   |        |        |        |        
    req     |        |        | PDU (7)|        |        |        |        
   _________|________|________|________|________|________|________|________
    Rsrp    |        |        |        |        |        |        | Rsrp
    resp    |        |        |        |        |        |        | conf
    PDU     |        |        |        |        |        |        |  (3)
   _________|________|________|________|________|________|________|________
   Trigrc   |        | Trigrc |        | Trigrc | Trigrc | Trigrc |
    req     |        | PDU (2)|        | PDU (4)| PDU (5)| PDU (6)|
   _________|________|________|________|________|________|________|________


   Table 12b: State Table for Origin -- Part 2

  \ State |  Init  |  Open  | Search |  Prsnt | Delete |  Rsrp  | Rsctrl | Acctrl | Release
    \     |  sent  |        |  sent  |  sent  |  sent  |  sent  | recvd  | recvd  | sent
Event \   |    2   |   3    |   4    |    5   |   6    |    7   |   8    |   9    |   10
 _______\_|________|________|________|________|________|________|________|________|________
 Rsc PDU  |Rsc ind;|        |Rsc ind;|Rsc ind;|Rsc ind;|        |        |        |        
 (Resp)   |stkst(8)|        |stkst(8)|stkst(8)|stkst(8)|        |        |        |        
 _________|________|________|________|________|________|________|________|________|________
 Rsc PDU  |Rsc ind;|        |Rsc ind;|Rsc ind;|Rsc ind;|        |        |        |        
 (Noresp) |   (2)  |        |  (4)   |   (4)  |  (4)   |        |        |        |        
 _________|________|________|________|________|________|________|________|________|________
   Rec    |        |        |        |        |        |        |Rsc resp|        |        
   resp   |        |        |        |        |        |        |  PDU;  |        |        
          |        |        |        |        |        |        |  popst |        |        
 _________|________|________|________|________|________|________|________|________|________
   Acc    |Acc ind;|        |Acc ind;|Acc ind;|Acc ind;|Acc ind;|        |        |        
   PDU    |stkst(9)|        |stkst(9)|stkst(9)|stkst(9)|stkst(9)|        |        |        
 _________|________|________|________|________|________|________|________|________|________
   Acc    |        |        |        |        |        |        |        |Acc resp|        
   resp   |        |        |        |        |        |        |        | PDU;   |        
          |        |        |        |        |        |        |        | popst  |        
 _________|________|________|________|________|________|________|________|________|________
   Aab    |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind 
   ind    |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  
 _________|________|________|________|________|________|________|________|________|________
   Apab   |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind |Iab ind 
   ind    |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  
 _________|________|________|________|________|________|________|________|________|________
   Iab    |Aab ind |Aab ind |Aab ind |Aab ind |Aab ind |Aab ind |Aab ind |Aab ind |Aab ind 
   req    |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  |   (1)  
 _________|________|________|________|________|________|________|________|________|________
   Irel   |        |Arel req|        |        |        |        |        |        |        
   req    |        |  (10)  |        |        |        |        |        |        |        
 _________|________|________|________|________|________|________|________|________|________
   Arel   |        |        |        |        |        |        |        |        |Irel conf
   conf   |        |        |        |        |        |        |        |        |   (1)
 _________|________|________|________|________|________|________|________|________|________


   Table 13a: State Table for Target -- Part 1

    \ State |  Closed |   Init  |   Open  |  Search |   Prsnt |  Delete 
      \     |         |   recvd |         |  recvd  |   recvd |  recvd  
  Event \   |     1   |    2    |    3    |     4   |    5    |     6   
   _______\_|_________|_________|_________|_________|_________|_________
    Init    | Init ind|         |         |         |         |        
     PDU    |   (2)   |         |         |         |         |        
   _________|_________|_________|_________|_________|_________|_________
     Init   |         |Init resp|         |         |         |        
     resp   |         |  PDU(+) |         |         |         |        
   (ACCEPT) |         |   (3)   |         |         |         |        
   _________|_________|_________|_________|_________|_________|_________
     Init   |         |Init resp|         |         |         |        
     resp   |         | PDU(-)  |         |         |         |        
   (REJECT) |         |   (11)  |         |         |         |        
   _________|_________|_________|_________|_________|_________|________
     Srch   |         |         | Srch    |         |         |        
     PDU    |         |         |  ind (4)|         |         |        
   _________|_________|_________|_________|_________|_________|________
    Srch    |         |         |         |Srch resp|         |        
    resp    |         |         |         | PDU (3) |         |        
   _________|_________|_________|_________|_________|_________|________
    Prsnt   |         |         | Prsnt   |         |         |        
     PDU    |         |         |  ind (5)|         |         |        
   _________|_________|_________|_________|_________|_________|________
    Prsnt   |         |         |         |         |Prsnt    |        
    resp    |         |         |         |         |resp PDU |        
   _________|_________|_________|_________|_________|____(3)__|________
    Dlte    |         |         | Dlte    |         |         |        
     PDU    |         |         |  ind (6)|         |         |        
   _________|_________|_________|_________|_________|_________|________
    Dlte    |         |         |         |         |         |Dlte resp   
    resp    |         |         |         |         |         | PDU (3)
   _________|_________|_________|_________|_________|_________|________
    Rsrp    |         |         | Rsrp    |         |         |        
    PDU     |         |         | ind (7) |         |         |        
   _________|_________|_________|_________|_________|_________|________
    Rsrp    |         |         |         |         |         |        
    resp    |         |         |         |         |         |        
   _________|_________|_________|_________|_________|_________|________
   Trigrc   |         | Trigrc  | ignore  | Trigrc  | Trigrc  | Trigrc 
    PDU     |         | ind (2) |  (3)    | ind (4) | ind (5) | ind (6)
   _________|_________|_________|_________|_________|_________|________
   Rsc req  |         | Rsc PDU |         | Rsc PDU | Rsc PDU | Rsc PDU
   (Resp)   |         |stkst (8)|         |stkst (8)|stkst (8)|stkst (8)
   _________|_________|_________|_________|_________|_________|________
   Rsc req  |         | Rsc PDU |         | Rsc PDU | Rsc PDU | Rsc PDU
   (Noresp) |         |   (2)   |         |   (4)   |   (5)   |   (6) 
   _________|_________|_________|_________|_________|_________|________
   Rsc resp |         |         |         |         |         |        
     PDU    |         |         |         |         |         |        
   _________|_________|_________|_________|_________|_________|________
   Acc req  |         | Acc PDU;|         | Acc PDU;| Acc PDU;| Acc PDU;
            |         |stkst (9)|         |stkst (9)|stkst (9)|stkst (9)
   _________|_________|_________|_________|_________|_________|________
   Acc resp |         |         |         |         |         |        
    PDU     |         |         |         |         |         |        
   _________|_________|_________|_________|_________|_________|________
   Arel ind |         |         |Irel ind |         |         |       
            |         |         |  (10)   |         |         |        
   _________|_________|_________|_________|_________|_________|________
    Irel    |         |         |         |         |         |        
    resp    |         |         |         |         |         |        
   _________|_________|_________|_________|_________|_________|________
    Aab ind |         | Iab ind | Iab ind | Iab ind | Iab ind | Iab ind
            |         |   (1)   |   (1)   |   (1)   |   (1)   |   (1) 
   _________|_________|_________|_________|_________|_________|________
    Apab    |         | Iab ind | Iab ind | Iab ind | Iab ind | Iab ind 
     ind    |         |   (1)   |   (1)   |   (1)   |   (1)   |   (1) 
   _________|_________|_________|_________|_________|_________|________
    Iab     |         | Aab req | Aab req | Aab req | Aab req | Aab req
    req     |         |   (1)   |   (1)   |   (1)   |   (1)   |   (1) 
   _________|_________|_________|_________|_________|_________|________


   Table 13b: State Table for Target -- Part 2

    \ State |    Rsp   |  Rsctrl  |  Acctrl  |  Rlease  |  Reject 
      \     |   recvd  |   sent   |  sent    |   recvd  |         
  Event \   |     7    |     8    |     9    |    10    |    11    
   _______\_|__________|__________|__________|__________|__________
   Rsrp     |          |          |          |          |          
   PDU      |          |          |          |          |          
   _________|__________|__________|__________|__________|__________
   Rsrp     |Rsrp resp |          |          |          |          
   resp     | PDU (3)  |          |          |          |          
   _________|__________|__________|__________|__________|__________
   Trigrc   |          |  ignore  |  ignore  |          | ignore   
    PDU     |          |    (8)   |    (9)   |          |   (11)   
   _________|__________|__________|__________|__________|__________
   Rsc req  |          |          |          |          |          
   (Resp)   |          |          |          |          |          
   _________|__________|__________|__________|__________|__________
   Rsc req  |          |          |          |          |          
   (Noresp) |          |          |          |          |          
   _________|__________|__________|__________|__________|__________
   Rsc resp |          |Rsc conf; |          |          |          
   PDU      |          |  popst   |          |          |          
   _________|__________|__________|__________|__________|__________
   Acc      |          |          |Acc conf; |          |          
   resp     |          |          |  popst   |          |           
   _________|__________|__________|__________|__________|__________
   Arel     |          |          |          |          | Irel ind
   ind      |          |          |          |          |   (10) 
   _________|__________|__________|__________|__________|__________
   Irel     |          |          |          |Arel resp |          
   resp     |          |          |          |   (1)    |          
   _________|__________|__________|__________|__________|__________
   Aab      | Iab ind  | Iab ind  | Iab ind  | Iab ind  | Iab ind  
   ind      |          |    (1)   |    (1)   |    (1)   |    (1)   
   _________|__________|__________|__________|__________|__________
   Apab     | Iab ind  | Iab ind  | Iab ind  | Iab ind  | Iab ind  
   ind      |    (1)   |    (1)   |    (1)   |    (1)   |    (1)   
   _________|__________|__________|__________|__________|__________
   Iab      | Aab req  | Aab req  | Aab req  | Aab req  | Aab req  
   req      |    (1)   |    (1)   |    (1)   |    (1)   |    (1)   
   _________|__________|__________|__________|__________|__________

4.2.4 Protocol Errors

Any events not listed in the tables of section 4.2.3 are not valid and are considered to be protocol errors. With exceptions specified in section 4.3, incorrectly formatted APDUs or APDUs with invalid data are also considered to be protocol errors. This standard does not specify the actions to be taken upon detection of protocol errors. An application context may contain such a specification.

4.3 Rules for Extensibility

All syntactical errors in received APDUs are considered to be protocol errors except for the following case: Unknown data elements, and unknown options within the Options data element, will be ignored on received Init APDUs.

4.4 Conformance

A system claiming to implement the procedures in this standard shall comply with the requirements in sections 4.4.1, 4.4.2, and 4.4.3.

4.4.1 Static Requirements

The system shall:

  1. act in the role of an origin (by sending Init, Search, and Present APDUs and receiving Init-response, Search-response, and Present-response APDUs), or target (by responding properly to Init, Search, and Present APDUs with appropriate Init-response, Search-response, and Present-response APDUs), or both; and,

  2. support the syntax in section 4.1, and

  3. support the Type-1 Query.

4.4.2 Dynamic Requirements

The system shall exhibit external behavior consistent with having implemented:

  1. an Information Retrieval ASE which follows all the procedures specified in sections 4.1.1, 4.2, and 4.3;

  2. the mapping onto the Association Control Service and Presentation Service (see 4.2.1);

  3. assignment of values to APDU data elements according to the procedures described in section 3;

  4. encoding of APDUs by applying the ASN.1 Basic Encoding Rules (ISO 8825) to the abstract syntax defined in section 4.1.1; and

  5. the Type-1 query whose abstract syntax is defined in section 4.1.1 and whose structure and rules for evaluation are described in section 3.2.2.1.1.1.

4.4.3 Statement Requirements

Each implementation must provide a Protocol Implementation Conformance Statement (PICS).

  1. The following shall be stated by the PICS:

      (a) whether the system is capable of acting in the role of origin,

      (b) whether the system is capable of acting in the role of target,

      (c) that the system supports versions 1 and 2 of the Z39.50-1992 protocol.

  2. If the system claims the capability of acting in the role of origin the PICS shall state whether the system:

      (a) accepts Access-control APDUs and sends Access-control-response APDUs,

      (b) accepts Resource-control APDUs and sends Resource-control-response APDUs,

      (c) sends Resource-report APDUs and accepts Resource-report response APDUs,

      (d) sends Trigger-resource-control APDUs,

      (e) sends Delete APDUs and accepts Delete-response APDUs,

      (f) sends Search and Present APDUs specifying named result sets other than "default."

  3. If the system claims the capability of acting in the role of target, the PICS shall state whether the system:

      (a) sends Access-control APDUs and accepts Access-control-response APDUs,

      (b) sends Resource-control APDUs and accepts Resource-control-response APDUs,

      (c) accepts Resource-report APDUs and sends Resource-report response APDUs,

      (d) accepts Trigger-resource-control APDUs,

      (e) accepts Delete APDUs and sends Delete-response APDUs,

      (f) accepts Search and Present APDUs specifying named result sets other than "default,"

      (g) unilaterally deletes result sets.

  4. The PICS shall state to what extent result sets may be specified as operands in a Type-1 query:

      (a) whether named result sets in general, or only the default result set, may be used as an operand in a Type-1 query,

      (b) whether result sets may be specified only as the first operand in a Type-1 query, or may be specified as any operand,

      (c) with which operators (AND, OR, AND-NOT) result sets may be used as operands.

  5. The PICS shall state to what extent element set names are supported in Search and Present APDUs:

      (a) whether the parameter Element-set-names is supported,

      (b) if the parameter Element-set-names is supported, whether database names corresponding to element set names may be specified, or only a single element set name and no corresponding database name may be specified.

  6. The PICS shall state:

      (a) for each optional parameter in each APDU, whether or not the parameter is supported;

      (b) which encoding rules are supported;

      (c) the maximum number of database names that may be specified in a Search APDU;

      (d) which attribute sets are supported.

Note: A PICS proforma will be standardized in the future.


Go Back to Table of Contents
nisohq@cni.org