home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-01-24 | 105.3 KB | 2,538 lines |
-
-
-
-
- STANDARD
- FOR THE EXCHANGE OF DIGITAL INFORMATION ON CD-ROM
-
-
-
-
- CD-ROM Read-Only Data Exchange Standard
- (CD-RDx)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Commissioned by
-
- The Information Handling Committee
- Director of Central Intelligence
- Intelligence Community Staff
- Washington, DC 20090-0828
-
-
- Version 3.00
- December 31, 1990STANDARD FOR THE EXCHANGE OF DIGITAL INFORMATION ON CD-ROM
- Table of Contents
- Page
- 1. PURPOSES . . . . . . . . . . . . . . . . . . . . . . . . 1
- 2. OBJECTIVE . . . . . . . . . . . . . . . . . . . . . . . . 1
- 3. SCOPE . . . . . . . . . . . . . . . . . . . . . . . . 2
- 4. OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . 2
- 4.1 Sequence of Events of a CD-RDx Query . . . . . . . . 3
- 4.2 Precedence for CD-RDx . . . . . . . . . . . . . . . 4
- 5. FORMAT FOR CD-RDx PROTOCOLS . . . . . . . . . . . . . . . 7
- 5.1 Server Structures . . . . . . . . . . . . . . . . . 7
- 5.3 Objects and Tables . . . . . . . . . . . . . . . . . 8
- 5.4 Currency . . . . . . . . . . . . . . . . . . . . . . 9
- 5.5 Object Summary . . . . . . . . . . . . . . . . . . . 10
- 5.6 Message Types . . . . . . . . . . . . . . . . . . . 11
- 5.7 Modifiers . . . . . . . . . . . . . . . . . . . . . 12
- 5.8 Message Summary . . . . . . . . . . . . . . . . . . 13
- 5.9 Information Lists . . . . . . . . . . . . . . . . . 13
- 6. MESSAGE DESCRIPTIONS . . . . . . . . . . . . . . . . . . 15
- 6.1 OPEN . . . . . . . . . . . . . . . . . . . . . . . . 15
- 6.2 CLOSE . . . . . . . . . . . . . . . . . . . . . . . 16
- 6.3 SELECT . . . . . . . . . . . . . . . . . . . . . . . 17
- 6.4 REMOVE . . . . . . . . . . . . . . . . . . . . . . . 17
- 6.5 GET . . . . . . . . . . . . . . . . . . . . . . . . 17
- 6.6 SEEK . . . . . . . . . . . . . . . . . . . . . . . . 18
- 6.7 CURRENT . . . . . . . . . . . . . . . . . . . . . . 19
- 6.8 CREATE . . . . . . . . . . . . . . . . . . . . . . . 19
- 6.9 DELETE . . . . . . . . . . . . . . . . . . . . . . . 20
- 6.10 CLEAR . . . . . . . . . . . . . . . . . . . . . . . 20
- 6.11 FIND . . . . . . . . . . . . . . . . . . . . . . . . 20
- 6.12 RECORDSET . . . . . . . . . . . . . . . . . . . . . 21
- 6.13 LOGIN . . . . . . . . . . . . . . . . . . . . . . . 21
- 6.14 SERVERLIST . . . . . . . . . . . . . . . . . . . . . 21
- 6.15 Table of Contents Processing . . . . . . . . . . . . 22
- 7. Server OUTPUT . . . . . . . . . . . . . . . . . . . . . . 24
- 7.1 Field Description Information . . . . . . . . . . . 24
- 7.2 Dataset Description Information . . . . . . . . . . 24
- 7.3 Index Description Information . . . . . . . . . . . 24
- 7.4 Database Description Information . . . . . . . . . . 25
- 7.5 Open Record Description Information . . . . . . . . 25
- 7.6 Open Keylist Description Information . . . . . . . . 25
- 7.7 Open Recordset Description Information . . . . . . . 25
- 7.8 Record Set Information . . . . . . . . . . . . . . . 26
- 7.9 Record Information . . . . . . . . . . . . . . . . . 26
- 7.10 Key Information . . . . . . . . . . . . . . . . . . 26
- 7.11 Count Information . . . . . . . . . . . . . . . . . 26
- Appendices
- A. Error Messages . . . . . . . . . . . . . . . . . . . 27
- B. Clients and Servers Explained . . . . . . . . . . . 30
- C. Data Types . . . . . . . . . . . . . . . . . . . . . 32
- D. Data Dictionary . . . . . . . . . . . . . . . . . . 36
- E. OS Specific Information . . . . . . . . . . . . . . 30
- F. Glossary . . . . . . . . . . . . . . . . . . . . . . 32
- G. Questions & Answers . . . . . . . . . . . . . . . . 36
-
-
- STANDARD FOR THE EXCHANGE OF DIGITAL INFORMATION ON CD-ROM
-
-
- 1. PURPOSES
-
- The purposes of this standard are to:
-
- o Establish CD-ROM Read-Only Data Exchange (CD-RDx)
- protocols that will enable universal interoperability of
- CD-ROMs and foster interchange of information.
-
- o Provide criteria for the acceptance and rejection of
- application software, CD-ROM retrieval engines, user
- interfaces and CD-ROM databases according to this
- standard.
-
-
- 2. OBJECTIVES
-
- It is in the best interests of the U.S. Government to foster
- an environment in which access to data on CD-ROM discs would be
- system independent, i.e., functionally interoperable across
- systems, and software independent, i.e., functionally interoperable
- with any search and retrieval program.
-
- The objectives of this standard are (1) to define the criteria
- to enable interoperability of CD-ROMs within any and among all
- operating systems, CD-ROM drives, access/retrieval programs, and
- user interfaces; (2) to promote long-term storage and exchange of
- information on CD-ROM between, among and within the agencies of the
- U.S. Government; and (3) to provide a standard that would promote
- adoption of CD-ROM as an accepted archiving medium.
-
- This standard provides a sufficient level of detail to guide
- implementation and minimize ambiguity in the production of open
- systems, interoperable CD-ROMs. This standard is designed to be
- fully compliant, at a minimum, with ISO/IEC Standard 10149 which
- defines the logical blocks of data on a compact disc, the
- International Standard for the CD-ROM Volume and File Format (ISO
- 9660) which defines the logical volume and file format for CD-ROM.
- Requirements for adherence to this standard should be included in
- all requests for proposals for the production of digital data on
- CD-ROM, CD-ROM retrieval engines, user interfaces (including those
- accompanying software application programs) and commercially
- available CD-ROM applications. Questions concerning this standard
- should be directed to Chairman, DCI Intelligence Information
- Handling Committee, Intelligence Community Staff, P.O. BOX 90828,
- Washington, D.C., 20090-0828 who will issue any interpretations or
- succeeding amendments or modifications, thereto, as may be
- required.
-
- 3. SCOPE
- This standard is applicable to all CD-ROM retrieval engines,
- all indexes to data residing on CD-ROM discs or read-only updatable
- media, and all computers supporting CD-ROM drives and all
- commercially available CD-ROM applications.
-
-
- 4. OVERVIEW
-
- CD-ROM discs are simple, inexpensive media containing large
- amounts of permanently stored digital data, an index to that data
- and software to search and retrieve the data. CD-ROM discs are
- used in CD-ROM drives, which serve only as read-only peripheral
- devices to computers. Because CD-ROMs are read-only media, once
- produced, they are incapable of having additional data written to
- them, unlike other removable media such as floppy diskettes or
- Write Once Read Many (WORM) disks. Physically, CD-ROM discs are
- small (12 cm or 4.72" diameter) and durable; yet they store the
- equivalent amount of textual data contained in a typical 4-5 drawer
- filing cabinet.
-
- More importantly, CD-ROMs contain permanently stored, machine-
- readable (binary) data. This data can be quickly accessed,
- retrieved, revised and incorporated in reports, yet remain intact
- and available for subsequent access. Since CD-ROM data is in
- machine-readable form, easy transfer to any subsequent archiving
- media is assured. For these reasons, CD-ROM is considered an
- appropriate medium for the dissemination and archiving of digital
- data, replacing and/or supplementing paper, microfiche, 9-track
- tapes and other digital mass storage devices. It is, therefore,
- imperative to develop, implement and adopt a CD-ROM standard that
- enables interoperability ("plug and play") between and among all
- operating systems, all retrieval programs and all user interfaces.
-
- No such standard for CD-ROM interoperability exists.
- Computer-controlled CD-ROM drives and CD-ROM search and retrieval
- software are subject to unique commands of each computer's
- operating system, which is most likely proprietary. Although ISO
- 9660 defines the volume and file format for the placement of data
- on CD-ROMs, no standard exists for accessing, searching and
- retrieving the data. These functions have been left to software
- developers to execute and to CD-ROM producers to implement. The
- result is a ever-expanding array of different installation methods
- per application, different user interfaces, different query
- functions and different system requirements. The burden of all
- these differences falls primarily on the user, the individual who
- must install each disc per unique instruction and learn how to use
- each new user interface for each new CD-ROM.
-
- The CD-RDx standard was developed to overcome the limitations
- of multiple, unique operating systems and the multiple, unique user
- interfaces accompanying the growing number of CD-ROM software
- programs applications.
- 4.1 Sequence of Events of a CD-RDx Query
-
- With the CD-RDx standard, a CD-ROM would contain the user
- data, one or more data indexes, a search engine and a Server. The
- search engine and the Server may be separate or combined, may
- reside on the CD-ROM only or be copied onto the computer's hard
- disk drive. Data access and retrieval occurs in the following
- manner (see Figure #1):
-
-
- (1) USER:
- o Enters a query according to the user interface program of
- the user's choice.
-
- (2) USER INTERFACE:
-
- o Passes query to Server, using standard commands and
- protocols defined in the CD-RDx standard.
-
- (3) Server:
-
- o Passes query to search engine program.
-
- (4) SEARCH ENGINE:
-
- o Receives query from Server, using standard commands and
- protocols defined in the CD-RDx standard,
-
- o Executes query against data index,
-
- o Determines data that meets query logic,
-
- o Identifies data locations on CD-ROM,
-
- o Retrieves data from CD-ROM,
-
- o Passes data to Server.
-
-
-
- (5) Server:
-
- o Passes data to Client program, using standard commands
- and protocols defined in the CD-RDx standard.
-
- (6) Client:
-
- o Presents data to user.
-
- (7) USER:
-
- o Views data per user interface features.
- Although a user interface developed specifically for the
- database/retrieval engine may also accompany the CD-ROM
- application, the CD-RDx standard stipulates that any user interface
- conforming to the CD-RDx standard may access data on a CD-ROM
- conforming to the CD-RDx standard, as described above. In this
- way, the user may select the user interface of his or her choice
- and access any CD-ROM application conforming to the CD-RDx
- standard. The CD-ROM producer that publishes CD-RDx compatible
- applications is assured that the CD-ROM is operable within all
- operating systems and that the database is accessible to all users.
-
- 4.2 Precedence for CD-RDx
-
- The CD-ROM Read-Only Data Exchange standard is required to
- assure producers and users of CD-ROM databases that the discs they
- publish and access are interoperable, regardless of the computer
- operating system, the retrieval engine or the user interface. Five
- problems or preferences served as the basis for defining CD-RDx:
-
- (1) Historically, all data, indexes to the data and software to
- access the data on CD-ROM have been bundled. This has
- fostered the development of more than one hundred software
- programs and at least 1,000 commercially available CD-ROM
- applications. Each software program and/or database on CD-ROM
- is unique, and therefore the installation programs and user
- interfaces are also unique. This situation oftentimes forces
- the CD-ROM user to acquire unique hardware per application, to
- modify the computer's environment upon installation of each
- application, and to learn a new user interface per
- application.
-
- (2) The CD-ROM user should interact only with the user interface
- software when seeking read-only data. All functions beyond
- the user interface, are, therefore transparent to the user,
- who may not, or need not be concerned with how the data is
- accessed, searched or retrieved.
-
- (3) The growing sophistication of relational database management
- systems provides for a Client/Server architecture, which
- separates the functions of the user interface from the
- functions of data access and retrieval. The CD-RDx standard
- follows this same architecture and stipulates the commands and
- protocols for interaction between the Client and the Server.
-
- (4) The Client or user interface may be developed separately from
- any given retrieval engine. Each Client may initiate basic
- data access and retrieval commands or may initiate more
- sophisticated commands required for displaying graphics and
- video or for combining the display of text simultaneously with
- audio or video segments. The Client may be a separate product
- or may come with a CD-ROM software application program. The
- Client may be upgraded and new features added without
- affecting access to data on a CD-RDx disc.
-
- (5) The Server is developed directly for a specific retrieval
- engine by the software developer. In fact, for increased
- speed, the Server and the retrieval engine may become one.
- The Server may be upgraded and new features added without
- affecting the access and display of data on a CD-RDx user
- interface.
-
- The CD-RDx standard defines a set of protocols enabling the
- transfer of CD-ROM data between any CD-RDx Client and any CD-RDx
- Server. The standard consists of a set of commands, 2-dimensional
- tables and a simple procedure for their use. CD-RDx replaces the
- need for users to learn a new interface for each CD-ROM
- application. CD-RDx requires that software developers construct
- Servers for their proprietary retrieval engines. CD-RDx allows CD-
- ROM software developers, publishers or third-party developers to
- create new user interfaces or modify existing ones.
-
- The CD-RDx standard assumes the following for each and every
- CD-ROM produced and used:
- o Digital data resides on CD-ROMs in proprietary format.
-
- o Each CD-ROM Server is available in memory.
-
- o Selected user interfaces can be enhanced with a library
- of routines to access and manipulate certain kinds of
- digital data residing on a CD-ROM.
-
- o Every user interface that implements CD-RDx can access
- any CD-ROM database that implements CD-RDx via a Server.
-
- o CD-RDx Servers accept messages and respond appropriately
- without additional user or user interface involvement.
-
- o A database structure (index) can be improved and
- additions made without affecting the user interface
- programs. Conversely, a user interface program can be
- improved and additions made without affecting the
- database structure.
-
- o The CD-RDx Protocol/CD-ROM database combination is a
- black box approach used extensively throughout the
- computer industry and is known and accepted by software
- developers.
-
-
- o Communication between a Server and user interface occurs
- using English-like messages in ASCII text format.
-
- o The data accessed and retrieved from a CD-ROM complying
- with the CD-RDx standard may be alphanumeric, audio,
- still or animated graphics, raster or vector images,
- video, tagged or non-tagged data, compressed or
- decompressed images. The ability to access and display
- each or all of these formats is dependent on the
- capabilities of the Client. The ability to retrieve each
- or all of these formats is dependent on the capabilities
- of the Server.
-
- 5. FORMAT FOR CD-RDx PROTOCOLS
-
- 5.1 Server Structures
-
- As with most database management systems, the basic unit of
- reference is the record. Records are composed of one or more
- fields of related information. Fields may contain fielded data,
- structured text, full text data, graphics, audio, video, tagged or
- non-tagged data, compressed or decompressed data. Some retrieval
- engines require that all fields appear in every record, that the
- fields appear in a particular order, or that fields occur only
- once. Some retrieval programs do not have such limitations.
-
- Fielded data is normally organized with a uniform record
- model. In this type of environment, data is organized such that
- every record contains the same fields, in the same order.
-
- Structured text (such as laws, regulations, technical
- documentation and specifications) often implies a method that
- represents the content as a series of fields. The developer
- typically starts with the lowest level of the text, and works
- upward. When completed, the records contain a collection of fields
- that describe the structure (e.g., Book, Chapter and Section), and
- a single field that contains the text of that element. The level
- of detail of the structure is determined by the developer or the
- requirements for the developer.
-
- Full text data, unlike structured text, rarely implies a
- fielding strategy through structure alone. With full text data,
- the developer must rely on a logical content model, rather than on
- a predetermined structure.
-
- All written communication has structure in the form of words,
- sentences, and paragraphs. Based on experimentation with the
- database, the developer can determine a logical principle that will
- aid in the rapid recall of information. For example, almost all
- documents have a meaningful paragraph structure. When this is the
- case, the developer might determine that every paragraph should be
- in a separate record. In another instance, the developer may
- decide that the entire document should be indexed as a single
- record. These decisions may then be implemented as Document Type
- Definitions (DTDs) and the data tagged according to SGML
- (Standardized General Markup Language) or a proprietary tagging
- scheme.
-
- Typically, a CD-ROM database is composed of a series of
- records. Records contain a series of fields. A field within a
- record can be as large as the available CD-ROM disc space or can be
- limited in size. In order to process a record of indefinite size,
- each record is divided into a series of sub-records. Each field,
- present in the record, has one or more sub-records. Each sub-
- record contains a certain number of characters.5.2Objects and Tables
-
- As a low-level tool, the protocols can be interpreted under
- both a procedural and an object metaphor. The CD-RDx Protocols are
- a system of objects (or tables) that behave in a similar way.
-
- In the context of a procedural programming methodology,
- messages to the Server can be thought of as commands to a highly
- integrated parser. The object model allows the programmer to treat
- all requests sent to the parser in a similar way. This allows the
- developer to create a small family of functions that format command
- strings for execution and return results to the calling module.
- For example, many applications require the ability to browse lists
- of available indexes or fields while selecting specific members of
- the list. Since all of these objects respond to the same messages,
- the same module can be used to format command strings, and
- interpret results. Other aspects of the system behave in similar
- ways.
-
- For OOP users, the CD-RDx Protocols provide the elements of a
- Server Class. The developer can produce a class using these
- elements that models the Server Object required for the specific
- application. The Server can be tailored to the Class concept that
- suits the developer's ideology.
-
- Whatever the model, all the objects in the CD-RDx Protocols
- can be thought of as two-dimensional tables. A table is a list of
- rows and columns. Each row is a different member consisting of a
- set of columns called attributes. For example, the INDEXLIST
- object is a table in which each row contains an index description,
- and the columns give the attributes of that index. The same
- rationale is applied to all of the other object types described in
- this standard.
-
- Each object contains zero or more elements (according to the
- specific instance of the object). Each object has different data
- available. For example, a data record object (RECORD) is a series
- of sub-records. Each element has a field name, and length
- associated with it as well as the actual data.
-
- Each object instance must be opened (see OPEN message) before
- using that instance. Access is terminated with the CLOSE message.
- Some objects are associated with other objects. When these objects
- are opened, access to associated objects is implied. In
- particular, a database object has six associated objects, a
- DATASETLIST, a FIELDLIST, an INDEXLIST, an OPENRECORDLIST, an
- OPENKEYLIST, and an OPENRECORDSETLIST.
-
- 5.3 Currency
-
- To ease the management of many instances of similar objects,
- the CD-RDx Protocols includes the concept of currency. The
- messages sent to the Server are received by the current instance of
- the named object. This allows the developer to have many instances
- of an object active without complicating the massaging system.
-
- The Database keeps track of currency for each object. There
- are two types of currency. The first type is member currency. In
- each open object instance, the current member is kept for use with
- the GET message and the PREV, NEXT and CURR modifiers. For
- example, the message:
-
- GET FIELDLIST CURR > NAME(30)
-
- will ask the FIELDLIST object the name of the current member of the
- field list. The GET and SEEK messages automatically update member
- currency.
-
- The second type of currency is object currency. When there is
- more than one instance of an object type, the Server keeps track of
- which object is current. The action of many of the messages is
- based on the current instance of an object. The user can change
- object currency by using the CURRENT message. Object currency is
- automatically updated with the OPEN and CREATE messages.
-
- Whenever an object is opened or created, it becomes the
- current object of that type. When an object with associated
- objects is made current (or opened or created), its associated
- objects are also made current.
-
- 5.4 Object Summary
-
- The following objects exist in the CD-RDx Protocols:
-
- DATABASELIST A table of all open databases. Each element
- is a description of an open database.
-
- FIELDLIST A table of all available fields for the
- current database.
-
- INDEXLIST A table of all available indexes for the
- current database.
-
- DATASETLIST A table of all available datasets for the
- current database.
-
- DATASETFIELDLIST A table of all available fields given the
- current dataset configuration.
-
- FIELDDATASETLIST A table of all available datasets given the
- current field configuration.
-
- RECORD A list of all sub-records in an open RECORD
- conforming to the current field configuration.
-
- OPENRECORDLIST A table of all open record descriptions for
- the current database.
-
- RECORDSET A table of all record numbers in an open
- RECORDSET.
-
- OPENRECORDSETLIST A table of all record set descriptions for the
- current database.
-
- KEYLIST An alphabetical list of all keys from an open
- index.
-
- OPENKEYLIST A table of all open KEYLIST descriptions for
- the current database.
- 5.5 Message Types
-
- The following messages exist in the CD-RDx Protocols:
-
- OPEN Prepares the named object for access. This message
- applies only to DATABASE, RECORD, and KEYLIST
- objects types. The OPEN message also establishes
- currency within the object.
-
- CLOSE Terminates access to an object and removes the
- object from memory.
-
- SELECT Adds the named FIELDS or DATASETS to the list of
- currently selected objects of the same type. The
- FIELDS selection modifies the list of FIELDS that
- will be returned on subsequent GET RECORD requests.
- The DATASET selection modifies the available set of
- records subsequent FIND messages will operate on.
-
- REMOVE Removes the named FIELDS or DATASETS from the list
- of currently selected objects of that type. See
- SELECT.
-
- GET Retrieves data from an object as specified in the
- info list description of each object.
-
- SEEK Positions the currency pointer within an object
- according to the associated key.
-
- CREATE Creates a new RECORDSET object, sets currency, and
- readies for subsequent FIND messages.
-
- DELETE Deletes a RECORDSET object from memory.
-
- CLEAR Resets a RECORDSET object to an empty state.
-
- FIND Locates the specified key and updates the current
- record set with the new occurrence information.
-
- RECORDSET Performs record set management.
-
- CURRENT Establishes currency for the specified object type.
- This applies to databases, records, keylists, and
- record sets.
- 5.6 Modifiers
-
- The following modifiers exist in the CD-RDx Protocols:
-
- CURR Returns the currently selected instance of the specified
- object
-
- FIRST Sets the currency pointer for the named object to the
- first element before executing the requested operation.
-
- LAST Sets the currency pointer for the named object to the
- last element before executing the requested operation.
-
- NEXT Sets the currency pointer for the named object to the
- next element before executing the requested operation.
-
- If the end of the list is reached, a warning will be
- returned and currency will be wrapped around to the
- beginning of the list. The next call will return the
- first element in the list.
-
- PREV Sets the currency pointer for the named object to the
- previous element before executing the requested
- operation.
-
- If the beginning of the list is reached, a warning will
- be returned and currency will be wrapped around to the
- end of the list. The next call will return the last item
- in the list.
-
- COUNT Returns the number of instances or items in the named
- object list.
- 5.7 Message Summary
-
- The following is a summary of the messages that exist in the
- CD-RDx Protocols:
-
- Message Type Object Types Modifiers
-
- OPEN (O) DATABASELIST (DBL) FIRST
- CLOSE INDEXLIST LAST
- SELECT (SEL) FIELDLIST NEXT
- REMOVE (REM) DATASETLIST PREV
- GET (G) OPENRECORDSETLIST CURR
- SEEK (SK) OPENRECORDLIST THROUGH
- CREATE (CR) OPENKEYLIST COUNT
- DELETE RECORD (REC) OR
- FIND (F) KEYLIST (KL) AND
- RECORDSET (REC) RECORDSET (RECSET) NOT
- CURRENT (CUR) DATASET (DS) XOR
- CLEAR (CLR) FIELD PROX(##)
- DATABASE (DB) ADJ
- DATASETFIELDLIST LIKE
- FIELDDATASETLIST [name]
- '[id]
-
- The parentheses indicate abbreviations for the message or
- object type. Most of the messages have the following format:
-
- MESSAGETYPE OBJECTTYPE MODIFIER
-
- The modifier refers to additional information which is
- MESSAGETYPE specific. Modifiers are parsed according to a few
- rules. There are several special characters. These are comma,
- space, ;, *, ?, ', `, \, and >.
-
- The comma and spaces are delimiters. The semicolon is a
- terminator. The asterisk and question mark are wild cards. The
- single quote and back slash are used to place multiple words or
- special characters into text strings.
-
- To put these characters in a text string, they must be in
- single quotes or preceded by a back slash (\). To use the
- asterisks (*) or question mark (?) or single quote ('), the back
- slash is used first.
-
- The (`) character is used as an abbreviation to speed up some
- operations. For instance, when a field name (or index name or
- dataset name) is required in the syntax of a message, the field ID
- (or index id or dataset id) can be used in its place (e.g. SELECT
- FIELD `1).
-
- The > symbol specifies the beginning of an information list.
- The individual messages are described below.
- 5.8 Information Lists
-
- The GET, SEEK and CURRENT messages can return information to
- the data area provided by the programmer (the results parameter).
- The user supplies a list of data names which are appropriate for
- the object type and the message. The information list follows the
- special '>' character in the message. The information list has the
- following format:
-
- DATANAME1(size[,format]),DATANAME2(size[,format]), ... ;
-
- The DATANAMEn is a selection from the list of available
- information. There are two parameters for each data name. The
- first is the field size and is required. The second describes the
- string formatting for the returned data. Valid data formats
- include the following: T for text (default), C for C type strings
- (left justified, null terminated), and P for PASCAL strings (left
- justified, with the first byte being the length byte). For
- example:
-
- > NAME(30),ID(4);
-
- is an info list specifying that the NAME field will be 30
- characters in length. If the actual data is shorter than 30
- characters, then it will be padded with spaces. If it is longer
- than 30 characters, then only the first 30 characters will be
- transferred. The same is true for the four character ID field.
-
- The second parameter is the data format and is optional. This
- allows the user some flexibility since the source language for the
- Client program may require special handling. For example:
-
- > NAME(30,C),ID(4,C);
-
- is an information list which again asks for NAME and ID fields but
- requests that the data be returned in C string format (NULL
- terminated strings). It also means that only 29 bytes, and 3 bytes
- respectively will at most contain data. There will always be a
- NULL byte at the end of the string.
-
- Another format is PASCAL strings. These strings contain a
- length byte at the beginning of every string. The same rule
- applies to PASCAL strings as to C strings. One extra byte will be
- needed. The length parameter always indicates the exact size of
- the buffer. The P format is used to request a PASCAL string.
-
- 6. MESSAGE DESCRIPTIONS
-
- All messages yield a return code. This is a short (16 bit)
- integer value. A return code of zero indicates that the function
- was performed correctly. A positive return code is a warning
- message. This means that the message worked properly but there is
- no data returned. This is usually an end of table message. A
- negative number indicates that some sort of error occurred. See
- Appendix B for the list of possible error codes.
-
- The GET, SEEK and CURRENT messages also return database
- information. The information received depends on the object type
- and the information list requested. The information list is
- optional for these messages. If there is no information list, then
- no additional information is returned.
-
- The detailed format for each message of the CD-RDx Protocols
- follows.
-
- 6.1 OPEN
-
- The OPEN message will open and initialize selected objects for
- use by a Client application. The objects are DATABASE, KEYLIST and
- RECORD. A name is always associated with each 'OPEN' object so
- that it may be referenced by the 'CURRENT' message. All open
- messages will return the name string upon completion without error.
-
- - OPEN DATABASE dbname filepath [encryption key];
-
- Opens the database indicated by the 'filepath' parameter and
- assigns the internal name 'dbname' to it. If the character '\'
- is included in the file path it must be duplicated in the
- string.
-
- Example:
- "OPEN DATABASE stamp l:\\stamps\\stampdb"
-
- This message will open the database stampdb and assign
- the local name 'stamp' to the object.
-
- - OPEN KEYLIST keyname indexname;
-
- This message opens a keylist (index) for processing. This
- message also establishes currency for the keylist.
-
- Example:
- "OPEN KEYLIST k1 'word list'"
-
- - OPEN RECORD recname rec#;
-
- This message opens a record identified by rec# and assigns the
- name 'recname' to it. Record currency is established.
- Example:
-
- "OPEN RECORD rec1 `1"
-
- This message will open the first record and set currency
- to the first sub-record for subsequent "GET RECORD"
- messages.
-
- 6.2 CLOSE
-
- The CLOSE message will remove the named object from memory. It
- is only used with those objects that can be 'OPEN'ed.
-
- - CLOSE DATABASE [dbname];
-
- This message will close the named DATABASE. If no name is
- given, then the current database is closed.
-
- - CLOSE KEYLIST [keyname];
-
- This message will close a previously opened KEYLIST identified
- by the keyname. If no keyname is given, then the current
- keylist is closed.
-
- - CLOSE RECORD [recname];
-
- This message will close a previously opened RECORD identified
- by the 'recname'. If no recname is given, then it will close
- the current record.
-
- 6.3 SELECT
-
- The SELECT message marks the specified items as selected and
- available for use by the Client application. Initially, all fields
- and datasets are considered selected. These selected items are
- used for various functions inside the Server. The selected
- datasets are used to limit a search to only a selected group of
- datasets even if search criteria spans datasets. The selected
- fields are used to return only those selected fields when reading
- a record. The selected lists are NOT to be confused with currency
- which is an entirely different concept and function.
-
- - SELECT DATASETS ds1,ds2, ..., dsn;
- - SELECT DATASETS *;
- - SELECT FIELDS fld1,fld2, ..., fldn;
- - SELECT FIELDS *;
-
- Modify the selected list to contain the items requested. The
- asterisks (*) indicates all available items are selected.
-
- 6.4 REMOVE
-
- The REMOVE message removes items from a selected list in the
- same manner that the SELECT message adds them;
-
- - REMOVE DATASETS ds1,ds2, ..., dsn;
- - REMOVE DATASETS *;
- - REMOVE FIELDS fld1,fld2, ..., fldn;
- - REMOVE FIELDS *;
-
- Modify the selected list to remove the items requested. The
- asterisks (*) indicates all available items are removed.
-
- 6.5 GET
-
- The GET message retrieves information from the object
- requested. Since the current object of the particular type is the
- one accessed, currency must be established for that type before
- issuing the GET message. Currency is established by using the
- CURRENT message. The OPEN or CREATE messages also establish
- currency when invoked.
-
- The format of the message is as follows:
-
- GET OBJECTTYPE MODIFIER [ > info list];
-
- The modifier specifies which action to take on the object
- type. The data returned is a series of strings which identifies
- attributes about the selected object member, except the COUNT
- modifier which returns a number of members (rows) of the object.
-
- - GET DATABASELIST modifier [ > info list];
- Returns an entry or count from the list of open databases.
- The data returned contains the name of the database, the file
- name, the number of records, and the maximum record size.
-
- - GET INDEXLIST modifier [ > info list];
- - GET FIELDLIST modifier [ > info list];
- - GET DATASETLIST modifier [ > info list];
-
- Returns an entry or count from the list of available indexes,
- fields or datasets. The data returned includes the name, id,
- and type.
-
- - GET OPENRECORDSETLIST modifier [ > info list];
-
- Returns an entry or count from the list of open record set
- names.
-
- - GET OPENRECORDLIST modifier [ > info list];
-
- Returns an entry or count from the list of open records.
-
- - GET OPENKEYLIST modifier [ > info list];
-
- Returns an entry or count from the list of open key lists.
-
- - GET RECORD modifier [ > info list];
-
- Returns a sub-record or count from the current record.
-
- - GET KEYLIST modifier [ > info list];
-
- Returns a key item or count from the current key list.
-
- - GET RECORDSET modifier [ > info list];
-
- Returns a record number or count from the current record set.
-
- - GET DATASETFIELDLIST modifier [ > info list];
-
- Returns a field or count from the list of fields for the
- current dataset.
-
- - GET FIELDDATASETLIST modifier [ > info list];
-
- Returns a dataset or count from the list of datasets for the
- current field.
-
- 6.6 SEEK
-
- The SEEK message positions the current pointer in the object
- to the item specified in data. The format of the message is:
-
- SEEK OBJECTTYPE data [ > info list];
-
- - SEEK DATABASELIST dbname;
- - SEEK INDEXLIST indexname;
- - SEEK FIELDLIST fieldname;
- - SEEK DATASETLIST datasetname;
- - SEEK OPENRECORDSETLIST recordsetname;
- - SEEK OPENRECORDLIST recordname;
- - SEEK OPENKEYLIST indexname;
- - SEEK RECORD FIELD fieldname;
- - SEEK RECORD SUBREC sub-recordnumber;
- - SEEK RECORDSET sequence-number;
-
- There is a special case of the SEEK message as it relates to
- KEYLISTs. The KEYLIST may be SEEKed on a portion of the keyvalue.
- If the key is not found, the Server will return the keyvalue that
- is one greater than the requested result, or end-of-table if the
- request places the currency pointer outside of the list. The info
- list for the KEYLIST includes an indicator for an exact match.
-
- - SEEK KEYLIST keyvalue;
-
- 6.7 CURRENT
-
- The CURRENT message establishes the object type instance which
- will be current for that object. It also can be used to indicate
- the current search mode. The format is:
-
- CURRENT objtype name [ > info list];
-
- - CURRENT DATASET datasetname;
- - CURRENT FIELD fieldname;
- - CURRENT RECORD recordname;
- - CURRENT RECORDSET recordsetname;
- - CURRENT DATABASE dbname;
- - CURRENT KEYLIST keyname;
- - CURRENT INDEX indexname;
-
- 6.8 CREATE
-
- The CREATE message creates an instance of an object type.
- Most objects are already present in this database system and do not
- have to be created. The one type which must be created is the
- RECORDSET.
-
- CREATE RECORDSET recordsetname;
-
- This message creates a recordset for the current
- database. It is assigned the name 'recordsetname', added
- to the OPENRECORDSETLIST, and made the current RECORDSET.
-
- 6.9 DELETE
- The DELETE message deletes an instance of an object.
- Currently, the only object which can be deleted is a RECORDSET.
-
- DELETE RECORDSET [recordsetname];
-
- This message deletes the current record set or the record
- set specified by 'recordsetname'.
-
- 6.10 CLEAR
-
- The CLEAR message resets an object to empty. The only object
- currently clearable is a record set.
-
- CLEAR RECORDSET [recordsetname];
-
- This message empties the current record set or the record
- set specified by 'recordsetname'.
-
- 6.11 FIND
-
- The FIND message performs a search for the key within the
- current KEYLIST. The search always updates the current record set
- with the result of the search.
-
- FIND [boolean op] keyvalue * and ? are wildcards
-
- Searches for a key value for the current index or set of
- indexes and uses the boolean operator to update the
- current record set. If no boolean operator is specified,
- then the OR operator is assumed. An asterisk (*) is a
- wildcard character meaning 0 or more characters, a
- question mark (?) is a wildcard character meaning a
- single character replacement.
-
- FIND [boolean op] keyvalue1 THROUGH keyvalue2
- ->
-
- Searches for a range of values.
-
-
- FIND [boolean op] =
- >
- >= keyvalue
- <
- <=
-
- Provides relational searching. The '=' is the same as
- format 1 above. The others provide a range searching
- capability from the keyvalue to the beginning or end of
- the keylist.
-
- 6.12 RECORDSET
- The RECORDSET message is used to perform operations between
- the current RECORDSET and another open RECORDSET set or use the NOT
- operator to remove the current RECORDSET.
-
- - RECORDSET [boolean op] recordsetname;
-
- This message will use the boolean operator (the OR is used if
- not specified) to merge the indicated record set
- 'recordsetname' with the current record set.
-
- - RECORDSET NOT
-
- This message will reverse the current record set.
-
- - RECORDSET SELECT recordnumber [THROUGH recordnumber2]
- - RECORDSET REMOVE recordnumber [THROUGH recordnumber2]
-
- This message will add records to (SELECT) or take away records
- from (REMOVE) the current record set.
-
- 6.13 LOGIN
-
- The LOGIN command is analogous to the way many mainframe
- systems handle security. The syntax is as follows:
-
- LOGIN userid/password/key
-
- All of the functionality for security is handled by the
- Server. This includes selective access to various databases and/or
- parts of databases. It also includes encryption. The user should
- never be aware that any particular database, to which access is not
- available, even exists. INDEXLIST, DATASETLIST, FIELDLIST, etc.
- should reflect only the ones available and should provide no clues
- that others do or do not exist. How the access for individual
- users is specified is left up to the implementation. An optional
- LOGOUT command can also be specified to remove the current access
- profile.
-
- 6.14 SERVERLIST
-
- A table called the SERVERLIST is a list of available Servers.
- For most systems, only one Server will be available. The purpose
- in providing this table is to allow the user and the Client to
- obtain pertinent information about the current Server, as indicated
- below. By default, the SERVERLIST should contain the Server name,
- maximum open databases, maximum open records, etc. It should allow
- the Client to obtain information about the current environment.
- The SERVERLIST could be used to determine, which of many Servers is
- available. The CURRENT command (such as CURRENT SERVER servername)
- is used to establish the Server to be used. This would allow a
- Client program to access databases from many different vendors at
- the same time.
- Specifications for each CD-ROM application should appear
- automatically on screen, in printed matter that accompanies the CD-
- ROM application, and would include the following information at a
- minimum(All data is for example only):
-
- Data Contents: Text, graphics, maps, audio, video, etc.
- Data Index: Inverted, Keyword, Boolean, etc.
- Proximity/Adjacency:Yes or No
- Stop Words: Yes or No
- Scope of Index: All words, stop list, graphics, etc.
- Server:
- Copyright Company: Dataware, Fulcrum, SilverPlatter
- Server Name: CDAnswer, ROMWARE, Folio, etc.
- Max Open Databases: 500, 5, 27, etc
- Max Open Records: 500, 5, 27, etc
- Memory Requirements: 215 Kbytes
- Other Information:
- Standards compliancy:
- Operating Environment: MS-DOS, OS/2, UNIX, Macintosh
- CD-ROM Reader: Yellow book
- CD-ROM Disc Vol/File: ISO 9660, HSG, Proprietary
- CD-ROM Access Protocol: CD-RDx
- Data Structure: 8211, SGML, 3-D Bit Mapped
- Server Protocol: CALS, etc.
- Data Item: None, DoD xxxxxxx, etc.
- Data Element: None, DoD xxxxxxx, etc.
- Other Standards: MIL-STD-28001, etc.
- Other Information: xxxxxxx (FREE FORM to EOF).
-
- 6.15 Table of Contents Processing
-
- The object of the Server is to provide access to the data in
- a database in a consistent manner. The commands should be simple
- and as independent from each other as possible. In a n-way tree
- structure, each block has n rows which potentially point to n
- blocks at the next lower level. Each of these blocks also contains
- an indefinite number of rows, each of which may point to a lower
- level block, and so on. The following commands will be available:
-
- OPEN TOC name This command opens to the Table of
- Contents block at the next level
- from the current block and current
- row.
-
- CLOSE TOC name Close the named TOC block.
-
- CURRENT TOC name Make the named TOC block the current
- block.
-
- NEXT
- PREV
- GET TOC CURR Get data within TOC block.
- FIRST
- LAST
-
- SEEK TOC row# Position to a row number.
-
- The first level of the table of contents can either be opened
- automatically when the database is opened and given a reserved
- name, or it can require the Client to open the first level and
- assign its own name.
-
- Another table, the OPENTOCLIST table, is also provided which
- contains a list of open TOCs.
-
- This system is analogous to the rest of the Server. This
- OPENTOCLIST is exactly equivalent to the OPENRECORDLIST. Opening
- TOC blocks is equivalent to opening records. Only the exact manner
- of opening is different and this is because of the hierarchical
- nature of the table of contents. A Client can access the table of
- contents data in many different ways without overburdening the
- Server with lots of overhead to keep track of.
- 7. Server OUTPUT
-
- The data items available for a given request depend on the
- object type and the message. There are eleven different
- information list types. The following describes each information
- list type and which messages return it.
-
- 7.1 Field Description Information
-
- Returned by GET/SEEK FIELDLIST or CURRENT FIELD.
-
- Data Name Data Size Values
- NAME 50 Defined name of the field
- ID 4 Field id 1-255
- SEL 1 Y/N (field selected)
- DTYPE 8 Data type (See Appendix
- F for more information.)
- MVALUE 1 Y/N (Multi-valued)
- FORM 4 Date form or number size
- SIZE 4 Field size
- DECIMAL 4 Number of decimal pos
-
- 7.2 Dataset Description Information
-
- Returned by GET/SEEK DATASETLIST or CURRENT DATASET.
-
- Data Name Data Size Values
- NAME 16 Defined dataset name
- ID 4 Dataset id 1-255
- SEL 1 Y/N (dataset selected)
- STREC 10 Starting Record number
- ENDREC 10 Ending Record number
-
- 7.3 Index Description Information
-
- Returned by GET/SEEK INDEXLIST or CURRENT INDEX.
-
- Data Name Data Size Values
- NAME 32 Defined index name
- ID 4 Index id 1-255
- ITYPE 1 Index type (W or I)
- STEM 1 Y/N (stemming)
- DTYPE 1 Index data type (C,N,D)
- COUNT 10 Number of keys
-
- 7.4 Database Description Information
-
- Returned by GET/SEEK DATABASELIST or CURRENT DATABASE.
-
-
- Data Name Data Size Values
- NAME 16 DB name (OPEN DB message)
- PATH 70 Actual file & path name
- NRECS 10 Number of records in DB
- MAXREC 10 Maximum record size in DB
- DATAID 80 Defined Data ID field
- OWNERID 80 Defined Owner ID field
- PUBID 80 Defined publishers id
-
- 7.5 Open Record Description Information
-
- Returned by GET/SEEK OPENRECORDLIST or CURRENT RECORD.
-
- Data Name Data Size Values
- NAME 16 Record name (OPEN REC)
- DSID 4 Dataset ID of the record
- RECNUM 10 Record number
- RECSIZE 10 Record size
-
- 7.6 Open Keylist Description Information
-
- Returned by GET/SEEK OPENKEYLIST or CURRENT KEYLIST.
-
- Data Name Data Size Values
- NAME 16 Keylist name (OPEN KL)
- IDXID 4 Index id
- ITYPE 1 Index type (W or I)
- DTYPE 1 Index data type (C,N,D)
-
- 7.7 Open Recordset Description Information
-
- Returned by GET/SEEK OPENRECORDSETLIST or CURRENT
- RECORDSET.
-
- Data Name Data Size Values
- NAME 16 Recordset name (CREATE)
- COUNT 10 # of records in RECSET
-
- 7.8 Record Set Information
-
- Returned by GET/SEEK RECORDSET.
-
- Data Name Data Size Values
- NUMBER 10 Record number
- SEQ 10 Record sequence
-
- 7.9 Record Information
-
- Returned by GET/SEEK RECORD.
-
- Data Name Data Size Values
- SUBREC 255 Sub-record data
- SRTYPE 1 Sub-record type
- (S-start field, C-cont field)
- FLDID 4 Field id of sub-record
- SRLEN 4 Sub-record length
- SRNUM 4 Sub-record number
-
- 7.10 Key Information
-
- Returned by GET/SEEK KEYLIST.
-
- Data Name Data Size Values
- KEY 52 Key value
- COUNT 10 Number of records.
- FREQ 10 Frequency
- EXACT 1 Y/N (exact match)
-
- EXACT is always 'Y' with the GET message. With the SEEK
- message, EXACT can be 'Y' indicating an exact match or 'N'
- indicating a partial match.
-
- 7.11 Count Information
-
- Returned by GET objtype COUNT.
-
- Data Name Data Size Values
- COUNT 10 Number of members
- Appendix A: Error Messages
-
- All messages yield a return code. This is a short (16 bit)
- integer value plus 30 bytes for message text from server (i.e.
- Volume Identifier for -402). A return code of zero indicates that
- the function was performed correctly. A positive return code is a
- warning message. This means that the command worked properly but
- there is no data returned. This is usually an end of table
- message. A negative number indicates that some sort of error
- occurred.
-
- Name Code
-
- ERR_no_error 0
- Text: No Error
-
- General Errors
-
- ERR_par_syntax -1
- ERR_par_cmd -2
- ERR_par_obj -3
- ERR_not_init -4
- ERR_no_current_db -5
- ERR_syntax_err -6
- ERR_mem_fail -7
- ERR_already_init -8
- ERR_par_mod -9
- ERR_db_not_found -10
- ERR_invalid_obj -11
- ERR_dataset_not_found -12
- ERR_index_not_found -13
- ERR_field_not_found -14
- ERR_record_not_found -15
- ERR_keylist_not_found -16
- ERR_recordset_not_found -17
- ERR_no_keyfile -18
-
- OS Errors
-
- ERR_os_open_err -100
- ERR_os_read_err -101
- ERR_os_seek_err -102
-
- Dictionary Errors
-
- ERR_dict_fail -200
-
- Open/Close File Errors
-
- ERR_max_dbs_exc -300
- ERR_max_oprecs_exc -301
- ERR_no_current_rec -302
- ERR_invalid_recnum -303
- ERR_already_opened -304
- ERR_max_open_keylist_exc -305
- ERR_max_rs_exc -306
-
- Access Errors
-
- ERR_db_access_denied -400
- ERR_invalid_access_file -401
- ERR_mount_fault -402
-
- Get Errors/Messages
-
- MSG_end_of_table 500
- MSG_beg_of_table 501
-
- ERR_empty_table -500
- ERR_no_current -501
- ERR_no_keys -502
- ERR_key_read_error -503
-
- Seek Errors/Messages
-
- ERR_not_found -600
- ERR_field_not_selected -601
- ERR_seek_error -602
- ERR_invalid_sequence -603
-
- Find Errors
-
- ERR_no_current_recordset -700
- ERR_no_current_keylist -701
- ERR_invalid_edi -702
- ERR_key_not_found -703
- ERR_different_dbs -704
-
- VMM Errors
-
- ERR_reload_err -800
- ERR_unload_err -801
-
- Server Error
-
- ERR_server_msg -900
-
- User Interrupt
-
- ERR_abort -999
-
-
-
-
- More On Error Code
-
- The Server returns an error code in addition to whatever
- information is requested. The following command syntax
- illustrates the error code return.
-
-
- The return code (rc) variable contains the return code.
-
- There are three types of return codes.
-
- 0 - Means there is no error.
- <0 - Means that the command failed (ERROR).
- >0 - Means that the command worked but further information
- is provided (WARNING).
-
-
-
- WARNING CODES
-
- There are, presently, two warning messages and both involve
- the GET command.
-
- 500 - End_of_table. This means that a GET table
- NEXT command was issued and there are no more
- entries. No Data is returned.
-
- 501 - Beg_of_table. This means that a GET table
- PREV command was issued and the current
- pointer is at the beginning of the table. No
- Data is returned.
-
- ERROR CODES
-
- There are many error return codes. They are divided into
- groups as follows:
-
- -1 to -50 General Command Errors which may occur in a
- number of commands.
-
- -100 to -150 DOS I/O errors. These errors may also occur
- in a number of commands. These are due to
- DOS reporting an error in response to an
- input request. This can be the result of
- physical media errors, bad hardware,
- corrupted copy of DOS, or database integrity
- corruption.
-
- -200 to -250 Dictionary read errors. This is usually
- caused by the data dictionary file being
- corrupted.
-
- -300 to -350 Open/Close command errors. This usually
- occurs when the object to be opened or closed
- is not present, or the maximum number of open
- objects has been exceeded.
-
- -400 to -425 Access control errors. These occur when you
- attempt to open a database, to which you do
- not have access.
-
- -500 to -550 GET errors. These codes are returned for a
- variety of reasons.
-
- -600 to -625 SEEK errors. These codes are returned when a
- seek command fails. The most common reason
- is the not found message.
-
- -650 to -675 TOC (Table of Contents) errors. These occur
- when access to the Table of contents fails.
-
- -700 to -750 FIND errors. These are issued when the FIND
- command fails.
-
- -800 to -825 Virtual memory errors. These are issued when
- the unloading or reloading of data fails.
-
- -999 User Abort. The user requests an abort by
- pressing ctrl-break.
-
- Specific Error Messages
-
- GENERAL ERRORS:
-
- -1 (ERR_par_syntax)
- Parsing syntax error. This usually occurs, when
- the command line is empty or part of the command
- is missing. This usually refers to the first two
- parameters of the command, the command verb and
- the object. Errors in the rest of the command are
- indicated to the (-6) syntax error (see below).
- ACTION: Correct command syntax.
-
- -2 (ERR_par_cmd)
- Parsing error. Invalid command.
- ACTION: Use valid command.
-
- -3 (ERR_par_obj)
- Parsing error. Invalid Object or Table type.
- ACTION: Use valid table type.
-
- -4 (ERR_not_init)
- The Server has not been initialized or the
- initialization failed. This should not happen to
- client programs. SYSTEM ERROR.
-
- -5 (ERR_no_current_db)
- There is no current database. This results when
- no database has been opened (or the open attempt
- has failed) and another command is issued. It can
- also occur when a database is closed and a new
- current database has not been established with the
- CURRENT command. Most commands require that a
- database has been opened and is current.
- ACTION: Be sure that a database is opened and that
- currency has been established.
-
- -6 (ERR_syntax_err)
- Syntax error. This indicates an error in the data
- portion of the command. This means that the
- command and object are correct but that the data
- following is syntactically incorrect.
- ACTION: Correct command syntax.
-
- -7 (ERR_mem_fail)
- This message occurs anytime memory is required by
- the Server and is unavailable. The command
- failed, usually, somewhere in the middle and the
- Server objects are not consistent. It is best to
- shut down the current operation by deleting the
- current record sets.
- ACTION: The Server needs to be started with more
- static RAM, more Expanded/Extended memory and/or a
- virtual disk buffer.
-
-
- -8 (ERR_already_init)
- This error occurs when the system initialization
- is performed while it is currently running. This
- should not appear to Client programs. SYSTEM
- ERROR.
-
- -9 (ERR_par_mod)
- Invalid command modifier. A command modifier is
- fixed text in the syntax of some of the commands,
- such as NEXT, PREV, etc.
- ACTION: Correct syntax.
-
- -10 (ERR_db_not_found)
- DB name not found. This message occurs when the
- command is expecting an internal database name
- (assigned when the database is opened, by the OPEN
- DATABASE command), and the name is not present.
- This error could occur from a misspelling because
- a the database was closed.
- ACTION: Use the correct name.
-
- -11 (ERR_invalid_obj)
- This error occurs when a command verb attempts an
- invalid action on an object. For example,
- attempting to OPEN a DATABASELIST.
- ACTION: Check the documentation to be sure you
- understand the meaning of the command and/or
- table.
-
- -12 (ERR_dataset_not_found)
- Dataset name is not found. This message occurs,
- when the command is expecting a valid dataset name
- or dataset id number, and it is not present. It
- could be from a misspelling or when the wrong
- database is current.
- ACTION: Use the correct name or id number.
-
- -13 (ERR_index_not_found)
- Index name is not found. This message occurs when
- the command is expecting a valid index name or
- index id number, and it is not present. The error
- could result from a misspelling or when the wrong
- database is current.
- ACTION: Use the correct name or id number.
-
- -14 (ERR_field_not_found)
- Field name is not found. This message occurs,
- when the command is expecting a valid field name
- or field id number, and it is not present. This
- error could result from a misspelling, or because
- the wrong database is current.
- ACTION: Use the correct name or id number.
-
- -15 (ERR_record_not_found)
- Record name is not found. This message occurs
- when the command is expecting an internal record
- name (assigned by the user with the OPEN RECORD
- command) and it is not present. It could result
- from a misspelling, because the wrong database is
- current, or when the record was closed.
- ACTION: Use the correct name.
-
- -16 (ERR_keylist_not_found)
- Keylist name is not found. This message occurs
- when the command is expecting an internal keylist
- name (assigned by the user with the OPEN KEYLIST
- command), and it is not present. It could result
- from a misspelling, because the wrong database is
- current, or when the keylist was closed.
- ACTION: Use the correct name.
-
- -17 (ERR_recordset_not_found)
- Recordset name is not found. This message occurs
- when the command is expecting an internal
- recordset name (assigned by the user with the OPEN
- RECORDSET command), and it is not present. It
- could result from a misspelling, the wrong
- database being current, or the recordset was
- closed.
- ACTION: Use the correct name.
-
- -18 (ERR_no_keyfile)
- This message occurs, when there is no index files
- present (the database has not been indexed), and
- an operation requiring the index files is
- requested, such as FIND or OPEN KEYLIST.
-
- -19 (ERR_inflist_err)
- There is a syntax error in the information list
- provided with the command. Undefined data items
- do NOT cause a syntax error. If a data item is
- undefined, blanks are returned in the field.
- Syntax errors usually occur in the size and type
- portion of the line.
-
-
- OS ERRORS:
-
- -100 (ERR_os_open_err)
- OS has returned an error while attempting to open
- a file.
- ACTION: Make sure you have a valid database and
- media.
-
- -101 (ERR_os_read_err)
- OS has returned an error while attempting to read
- data from a data file. This is an internal or
- media error.
- ACTION: Make sure you have a valid database and
- media.
-
- -102 (ERR_os_seek_err)
- OS has returned an error while attempting to
- position the file pointer. This is an internal or
- media error.
- ACTION: Make sure you have a valid database and
- media.
-
-
- DICTIONARY ERRORS:
-
- -200 (ERR_dict_fail)
- This error occurs, when there is a problem loading
- or reloading the data dictionary into memory.
- ACTION: Make sure you have a valid database and
- media.
-
- OPEN/CLOSE ERRORS:
-
- -300 (ERR_max_dbs_exc)
- An OPEN DATABASE command is issued, when the
- maximum number of open databases are already
- opened.
-
- -301 (ERR_max_oprecs_exc)
- An OPEN RECORD command is issued, when the maximum
- number of open records are already opened.
- ACTION: Close one of the open records.
-
- -302 (ERR_no_current_rec)
- An operation requiring a current record is issued
- and there is no current record.
- ACTION: Open a record if none are opened, or
- establish currency (CURRENT command) on a
- previously existing record.
-
- -303 (ERR_invalid_recnum)
- The record number in an OPEN RECORD command is
- invalid.
- ACTION: Use a valid record number.
-
- -304 (ERR_already_opened)
- The internal name supplied with the OPEN table
- command is currently in use.
- ACTION: Use a different name or close the object
- with the name you wish.
-
- -305 (ERR_max_open_keylist_exc)
- An OPEN KEYLIST command is issued when the maximum
- number of open keylists are already opened. The
- current maximum is 10.
- ACTION: Close one of the open keylists.
-
- -306 (ERR_max_open_rs_exc)
- An OPEN RECORDSET command is issued when the
- maximum number of open recordsets are already
- opened. The current maximum is 30.
- ACTION: Close one of the open recordsets.
-
- ACCESS ERRORS:
-
- -400 (ERR_db_access_denied)
- An OPEN DATABASE command was issued for a database
- for which access is denied.
- ACTION: Use another database or get access
- permission.
-
- -401 (ERR_invalid_access_file)
- This is a system error. The access file is
- corrupted.
- ACTION: Get new access file.
-
- GET ERRORS:
-
- -500 (ERR_empty_table)
- The table to which the GET command was directed
- has no entries.
- ACTION: This depends on the reason the table is
- empty. If it is an OPENxxxLIST, such as
- OPENRECORDLIST, then open some objects must first
- be opened.
-
- -501 (ERR_no_current)
- A GET table CURR command is issued and the current
- entry in a table is not available. This could
- occur because the position was not established or
- it was lost due the GETting passed the end of
- table of beginning of table.
- ACTION: Correct program logic. Make sure that an
- entry in the table is current.
-
- -502 (ERR_no_keys)
- A keylist is empty or the current dataset
- selection makes it empty.
- ACTION: Use more datasets. Make sure the database
- was indexed properly.
-
- -503 (ERR_key_read_error)
- The index files in the database are in error.
-
-
- SEEK ERRORS:
-
- -600 (ERR_not_found)
- The entry that was the target of the SEEK command
- is not present in the table. Check the spelling
- of an object name or for a number out of range.
- ACTION: Correct the name or number.
-
- -601 (ERR_field_not_selected)
- This message is returned, when a SEEK RECORD FIELD
- 'fieldname' command is issued and the field in
- question has been de-selected (REMOVE command).
- ACTION: Select the field or change fields.
-
- -602 (ERR_seek_error)
- This is an internal error, seeking within a
- record.
-
- -603 (ERR_invalid_sequence)
- This occurs when a sequence number for a recordset
- is out of range.
- ACTION: Use a correct sequence number.
-
- TOC ERRORS:
-
- -650 (ERR_no_toc)
- A command for the table of contents is issued but
- there is no table of contents for this database.
- ACTION: Do not access the TOC if it does not
- exist. This message also allows the Client
- program to check if the TOC exists.
-
- -651 (ERR_no_more_tocs)
- An OPEN TOC command is issued and the current line
- of the current TOC block has no branches.
- ACTION: Check the MORE data field for the current
- line before issuing an OPEN TOC command for that
- line.
-
- -652 (ERR_no_current_toc_entry)
- An OPEN TOC command is issued and there is no
- current entry in the current TOC block.
- ACTION: Make an entry current (GET or SEEK
- command).
-
- -653 (ERR_no_current_toc)
- An OPEN TOC command is issued and there is no
- current TOC block.
- ACTION: Make a TOC block current (CURRENT
- command).
-
- -654 (ERR_max_optocs_exc)
- An OPEN TOC command is issued when the maximum
- number of open TOC blocks are already opened. The
- current maximum is 20.
- ACTION: Close one of the open TOC blocks.
-
- -655 (ERR_toc_not_found)
- TOC block name is not found. This message occurs
- when the command is expecting an internal TOC
- block name (assigned by the user with the OPEN TOC
- command) and it is not present. This error could
- occur from a misspelling, is because the wrong
- database is current, or when the TOC block was
- closed.
- ACTION: Use the correct name.
-
-
- FIND ERRORS:
-
- -700 (ERR_no_current_recordset)
- There must be a current recordset when a FIND
- command is issued. The results of the FIND
- command is reflected in the current recordset.
- ACTION: Create a recordset or make one current.
-
- -701 (ERR_no_current_keylist)
- There must be a current keylist when a FIND
- command is issued. The FIND command searches the
- current keylist for the data.
- ACTION: Open a keylist or make one current.
-
- -702 (ERR_invalid_edi)
- This is an internal error.
-
- -703 (ERR_key_not_found)
- The key requested on the FIND command line is not
- in the current keylist.
- ACTION: Use another key.
-
-
- VIRTUAL MEMORY ERRORS:
-
- -800 (ERR_reload_err)
- An error occurs while attempting to reload a data
- segment from virtual memory. This is usually an
- internal error.
- ACTION: Verify that the media is correct, then
- call systems support.
-
- -801 (ERR_unload_err)
- An error occurs while attempting to unload a data
- segment to virtual memory. This is usually an
- internal error.
- ACTION: Verify that the media is correct, then
- call systems support.
-
-
- USER ABORT:
-
- -999 (ERR_abort)
- The user has pressed the Ctrl-C or Ctrl-break keys
- while the server was processing a request.
- ACTION: Take whatever action, you wish to have
- happen, when the user aborts your Client program.
-
-
- Appendix B: Client & Servers Explained
-
- A Client is an operating system (OS) specific computer
- program that creates and send queries, via an OS-specific method
- to a Server and displays the data returned by that Server.
-
- A Server is a memory available, OS-specific, program
- initiated before a Client that receives queries via an OS
- specific method. The Server then processes the request and/or
- returns an error code via an OS specific method.
-
- The functions of the Client and Server are separated as
- follows:
-
- Client Functions:
-
- -- Screen Control: Any writing to the screen is the
- domain of the Client program. This is necessary
- to avoid screen collisions from two programs in
- the same screen. The exception to this is at the
- time the Server is started or installed.
-
- -- Input Device Monitoring: Data from the keyboard,
- mouse, touch screen, light pen, bar code reader or
- other input device is the sole domain of the
- Client. In order to make changes to the Server
- the Client must be terminated and then the Server
- can be modified, terminated or replaced.
-
- -- Control of Data Reflowing: When data is returned
- to the Client it may not fit in the data window.
- The client is responsible for reflowing the data
- to fit the window. Examples of this occurs when
- the Client changes fonts, changes window size,
- zooms, clips or scrolls returned data.
-
- -- Handle Interrupts: The Client has the duty to
- specify when a search is interrupted. The limits
- can be on wait time, return data size, and/or
- number of hits (Word or Document hits is up to the
- Server).
-
- -- Provide Help Functions: Search method assistance,
- screen sensitive help, and/or tutorial type help
- are the domain of the Client. This is not to be
- confused with error messages.
-
- -- Expand Error Messages: The Client expands
- error messages based on the pre-defined error
- message set. The method**, wording and language
- of the error message is up to the Client designer.
- The Client may choose to pass the Server message
- as a default.
- ** Note: This includes Error recovery functions.
-
- -- Ask For Security Information: The Security
- Information request is generated by the Client
- for the user to complete and passed to the Server.
- See Server functions for more information.
-
-
- Server Functions:
-
- -- CD-ROM Reading Of Data Via OS Extensions: Only
- the Server may access data from the storage media.
- It may receive data by any available method.
-
- -- Perform Searches And Boolean Operations: The
- Server performs all necessary functions needed to
- return requested data.
-
- -- Format Return Data Records: The Server packages
- and formats the data. The Server also adds data
- type tags and inserts formatting information.
-
- -- Uncompressing Data: If data is stored on the
- CD-ROM in a compressed form it is the function of
- the Server to decompress (via hardware or
- software) the data before returning it to the
- Client.
-
- -- Activate Audio Play: If CD-DA data is requested,
- the Server will spin the disc and activate play
- of the audio.
-
- -- Enforce Security: It is the function of the
- Server to verify and enforce security if it is
- available. Security functions are not required of
- CD-RDx but may be a requirement of a customer.
- If messages are incorrect or the user does not
- have the appropriate clearance low level,
- security information is given to the Server then
- the Server may return "nothing available" instead
- of an error message. If no security information
- is passed to a Server that requires a login then
- an error message will be returned. If no security
- is available from the Server and security
- information is passed to the Server then the
- Server must generate proper error messages.Mandatory minimums for Clients and Servers:
-
- Client:
-
- -- The Client must be able to request and display the
- Basic Data Types. See the Appendix for more
- information on the Basic Data Types.
-
-
- Server:
-
- -- The Server must be able to communicate with the OS
- extensions to CD-ROM.
-
- -- The Server must be able to return the Basic Data
- Types. The basic data types must be supported if
- the Server has that data available in any of the
- databases it is responsible for. See the Appendix
- for more information on the Basic Data Types.Appendix C:Data Types
-
- The data types in the data dictionary include the following
- general categories:
-
- -- Text, Fielded Terms, Specific Program Formats,
- Executable.
-
- -- Numerical Values, Numerical Array.
-
- -- Graphics, 2-D Bit Map, 3-D Bit Map, 2-D Vector,
- 3-D Vector, Animated Bit Map, Animated Vector.
-
- -- Digital Audio Music, Speech, Noise(Sound Effects),
- and digitized Sounds at various quality levels.
-
- The Basic Data Types are required to be available to the
- Server and displayable by the Client. The Basic Data Types are
- suggested to include:
-
- -- Screen formatted text.
-
- -- TIFF raster graphics.
-
- -- CGM vector graphics.
-
- -- Program Names and Paths
-
- -- Digital AudioAppendix D:Data Dictionary
-
- Text Data:
-
- TEXT0001 Screen formatted text. Hard return every 72
- characters. Word wrapping up to Server.
- TEXT0002 Re-flowable text. Hard return at end of paragraph and
- blank line. No font info. No Highlight info.
- TEXT0003 Re-flowable text. No font info. Highlight info around
- hits.
-
- MULT0001 Multi valued field with separator as first character.
-
- DATE0001 MM/DD/YY
- DATE0002 DD/MM/YY
- DATE0003 MM/YY
- DATE0004 Month Day, Year
- DATE0005 MM/DD/YYYY
- DATE0006 DD/MM/YYYY
- DATE0007 JULIAN DATE
-
- SGML0001 SGML tagged data with DTD ISO 9660 file name and path.
-
- DB3F0001 DBase III format.
- DB4F0001 DBase IV format.
-
- PROG0001 ISO 9660 Program name and path for specific OS.
-
-
- Numerical Data:
-
- NUMR0001 TBD
-
-
- Image/Graphic Data:
-
- TIFF0001 TIFF format graphic.
-
- CGM_0001 CGM format graphic.
-
-
- Digital Audio:
-
- CDDA0001 CD Digital Audio recorded per Philips/Sony Red book.
- Track, Start Time, Run Time.Appendix E:OS Specific Information
-
- Information: The MS-DOS Version
-
- Every CD-ROM software application complying to this standard
- will have a Server linking the CD-RDx Protocols to the user
- interface. An example is given for MS-DOS.
-
- Beginning with DOS, we add the MicroSoft CD-ROM Extensions.
- On top of this rests the Server. On the platform of these three
- components the application programmer begins the task of creating
- a user interface that suits both the data and the operating
- environment.
-
- The technique used for accessing DOS functions involves a
- combination of the interrupt vectors stored in the first 1K of
- memory, and the contents of the hardware registers built in to
- the 80x86 architecture. To activate a function within the
- operating system, the programmer loads the registers with
- relevant parameters, then 'calls,' or jumps, to the memory
- location stored in the appropriate vector. The operating system
- will return the results of the operation, or a message code, in
- the registers.
-
- The Server extends the operation of the MS-DOS interrupts
- and the MicroSoft Extensions interrupt through the addition of
- interrupt 63H. In this way, the MS-DOS version of the Server
- behaves like any other low level component present within the
- system. This aspect of the design is critical in integration
- with variable video adapters, a variety of CD player
- configurations, asynchronous communication lines (such as modems
- and fax cards), and various other devices attached in the course
- of successfully completing an application on the DOS platform.
-
- The Server, accessed via an interrupt, is a passive memory
- resident module which is loaded when DOS is called and is
- permanently put into memory, is available to any application
- program, and available to any program language. The TSR responds
- to ASCII message strings. Because of the run-time independence
- on any system and the near universal acceptance of the ASCII
- format, CD-ROM application programs that are cross platform in
- nature are possible. A standard protocol can be injected between
- the DOS machine and any other machine (eg. via a network). The
- DOS machine can be accessed through this protocol using ASCII
- strings embedded in standard communications packets.
-
- Server Example for DOS
-
- The Server is a memory resident program. The Server is
- started up before any application program. It occupies
- approximately xxxK of main memory in addition to the buffers
- specified when the Server is first invoked. The Server may be
- removed from memory when desired.
-
- The delivery platform requires a CD-ROM drive and enough
- main memory to support the developer's application, DOS, and the
- Microsoft CD-ROM Extensions (MSCDEX). This can typically be
- accomplished with as little as 512K main memory on the host
- system. The Server has no hard drive requirements but, the
- developer's application may require hard disk space to operate.
- The Server will use this device for temporary storage if the -v
- parameter is specified at start up. The Server has no
- requirement for video adapters since it does not write directly
- to the screen. However, the Server should not conflict with any
- standard video adapter that the developer chooses to use or
- require in the application.
-
- The Server supports both extended and expanded memory with
- appropriate drivers loaded. Other optional equipment may also be
- used. The Server is passive and self contained within both
- memory allocation and code space. The executable is installed in
- a directory on the hard disk drive, and the PATH is set to
- include that directory. This will allow the executable to be
- used in many different areas of the hard disk without making
- multiple copies of the executable.
-
- Server Programs:
-
- DBSTSR.EXE - The TSR Server
- DBSTERM.EXE - The TSR Server terminator
- _DBSUTIL.EXE - A demonstration program
-
- DBSTSR - The Server
-
- Format: DBSTSR <options>
-
- This program loads The Server into memory and keeps it there
- and sets up an interrupt interface for the Client
- applications.
-
- Options:
- -h - displays available options
- -ixxx - modifies the default interrupt
- -e - use expanded memory (if available)
- -x - use extended memory (if available)
- -s - use speed over size optimization
- -mXXXXX - Number of bytes of memory allocated
- -dDIR - Directory for Virtual overflow file
- -rXXXX - Default record buffer size
-
- DBSTERM - Remove The Server from memory.
-
- Format: DBSTERM
-
- DBSUTIL - Run Demonstration of The Server.
-
- Format: DBSUTIL <options>
-
- Options:
- -h - Display available options
- -q - Quiet mode
-
- Important: The above is only a sample for DOS. CD-RDxInformation: Macintosh
-
- This example is given for Apple Macintosh.
-
- Beginning with HFS, Apple provides two INIT files (Foreign
- File Access and CD Audio Access. The addition of these two files
- to the system folder, allows access to ISO 9660 formatted
- CD-ROMs. Running in this environment add the Server, also into
- the system folder. On the platform of these components the
- application programmer begins the task of creating a user
- interface that suits both the data and the operating environment.
-
- The technique used for accessing INITs is outlined in the
- guidelines established by Apple. Apple developer services has
- several publications and products to aide the developer in the
- creation of INITs and the communication to INITs.
-
- The Server, accessed via an standard memory location, is a
- memory resident program which is loaded when the Macintosh is
- started. It is available to any application program, and
- available to any program language. Appendix F:Glossary
-
- ASCII TEXT FORMAT This is a standard format used to represent
- characters of textual information. Each
- character has its own unique number between 0
- to 127. The IBM Extended Character Set
- (numbered 128 to 255) is used for inner-
- operability between multiple operating
- platforms and general purpose programming
- languages.
-
- CLASS A term from Object Oriented Programming that
- describes a collection of objects with common
- traits.
-
- DATABASE A collection of one or more related datasets.
-
- The DATABASE object knows its name and the
- path that it is currently using.
-
- DATABASE
- DICTIONARY A collection of descriptions of the
- structures contained within a database. It
- may describe each dataset, index, and field
- for the database.
-
- DATABASELIST The object that contains the names, location
- and other pertinent information about all of
- the databases currently open in the system.
- Its currency points to the database to which
- the current INDEXLIST, FIELDLIST,
- DATASETLIST, OPENRECORDSETLIST,
- OPENRECORDLIST, and OPENKEYLIST objects are
- associated.
-
- DATASET A collection of records with a common set of
- fields. The DATASET object knows the range
- of records across which it is active, and the
- name defined with the build system.
-
- DATASETFIELDLIST The object that contains the names of all of
- the fields for the current dataset.
-
- DATASETLIST The object that contains the names, the
- subtended ranges of records, and other
- pertinent information relevant to datasets
- within the current database.
-
- ELEMENT The CD-RDx Protocols consist of two
- dimensional tables. The rows of these tables
- are referred to as elements, and the
- components of these elements are referred to
- as columns or attributes.
-
- FIELD A field is a collection of text, imagery,
- sound, etc. of related information. For
- example, the letters of a person's name may
- compose the contents of a field entitled
- "Name."
-
- FIELD objects know the type of their contents
- and other valuable information.
-
- FIELDDATASETLIST The object that contains the names of all
- datasets associated with the current field.
-
- FIELDLIST The object that contains the names, types and
- formatting attributes of all of the fields
- associated with the current database.
-
- FIELD SET The set that contains every instance of every
- field in a database.
-
- INDEX A set of keys contained within the field set.
- See also "Word Index" and "Item Index."
-
- INDEXLIST The object that contains the names, sizes and
- other pertinent information about all of the
- indexes within the current database.
-
- INSTANCE A term from Object Oriented Programming that
- refers to a particular copy of an object.
- For example, "5" is an instance of an integer
- object in the number class.
-
- ITEM INDEX An item index indexes every value or phrase
- in the field set across the entire database.
-
- KEY An index key is a word or phrase that has a
- list of records associated with it.
-
- KEYLIST The object that contains the entire contents
- of the field set against which it has been
- applied. Each instance of a keylist knows a
- count and frequency of the key within the
- entire database, or selected dataset range,
- or across records for every key.
-
- LINE See subrecord.
-
- OBJECT A term from Object Oriented Programming that
- describes an entity that contains internally
- managed data and the methods that manipulate
- the data.
- The objects that form the CD-RDx Protocols
- can be thought of as tables. A table is a
- list of rows and columns. Each row is a
- different member of the set.
-
- The objects within the CD-RDx Protocols
- always subscribe to this metaphor. Of
- course, not all object-oriented systems
- contain this reference; however, methods can
- be built into object-oriented systems
- directly that model the behavior of these
- tables.
-
- OPENKEYLIST The object that contains the names of the
- labels defined by the developer for all
- KEYLIST objects they have opened.
-
- OPENRECORDLIST The object that contains the record numbers
- of all records that have been opened by the
- developer.
-
- OPENRECORDSETLIST The object that contains the developer-
- defined labels and the gross size of each of
- the family of record sets currently opened by
- the developer.
-
- RECORD A record is composed of one or more fields of
- related information.
-
- The RECORD object knows the contents of all
- subrecords and the field identifier
- associated with each of them. In addition,
- the RECORD object keeps other pertinent
- information for each subrecord. Subranges
- can be defined within the RECORD object
- through use of the SELECT FIELDS message.
-
- RECORDSET The object that contains the record numbers
- of every record that has satisfied FIND
- statements issued by the developer.
-
- The RECORDSET message is used to combine
- record sets, or to explicitly add and remove
- specific records or ranges of records to the
- current RECORDSET object.
-
- SUBRECORD A record, or any field within that record,
- can be as large as the available disc space.
- In order to process a field of indefinite
- size, each field is divided into a series of
- subrecords. Each field in a record has one
- or more subrecords.
- WORD INDEX An index that contains every word from every
- field across the database.
-
- Appendix G: Questions & Answers
-
- Q. What does CD-RDx involve?
- A. Like many other computer operations, the CD-RDx standard
- incorporates a Client/Server approach, meaning that the
- Client (what the user interacts with, such as the menus
- and/or commands for a particular software application,
- command structure, graphical user interface or pull down
- menu) is separate from the Server (the unique retrieval
- engine and data index requirements). Therefore, CD-RDx
- describes in detail the Black Box through which both sides
- are to communicate with one another.
-
- Q. What's in the Black Box?
- A. The Black Box is not a thing; rather it is a set of rules
- that provide a level of abstraction so that both sides --
- the Client and the Server -- can communicate with one
- another. These rules consist of commands and 2-dimensional
- tables as described in detail in the CD-RDx standard.
-
- Q. What will an organization need to do to adhere to this
- standard?
- A. If an organization is purchasing commercially available CD-
- ROM applications or developing a solicitation for the
- delivery of digital data on CD-ROM discs, then an explicit
- statement requiring that the discs contain the necessary
- index/retrieval engine drivers (Server) conforming to this
- standard is needed.
-
- If, on the other hand, an organization is receiving CD-ROM
- discs with the Server, then the organization must have the
- necessary user interface drivers (Client) conforming to the
- standard in order to use the discs.
-
- Q. Does this mean that an organization has to create a new
- Client for each Server?
- A. Absolutely NOT. In fact, quite the opposite. Once a Client
- is created for a top-level user interface, such as Windows
- 3.0, Motif, Hypercard, or a software application program,
- such as SAS, SPSS, Lotus 1-2-3, Excel, Word, WordPerfect and
- so on, then these types of user interfaces will work with
- ANY CD-ROM disc that have the requisite Server.
-
- Q. What will happen to existing CD-ROM discs that do not
- contain a Server?
- A. These discs continue to be useful just as they are now;
- however, unlike those discs containing a Server, the
- existing discs will have to be installed with each use and
- the user interfaces will be specific to that disc.
-
- Q. Can a user interface now used for a specific CD-ROM
- retrieval engine be used for ALL discs containing a Server?
- A. Yes, if the software vendor has designed the retrieval
- engine and user interface as separate functions and if the
- user interface has the necessary Client drivers.
-
- Q. What are the major implications of the CD-RDx standard?
- A. Presently, most CD-ROM publishers purchase CD-ROM software
- based on the user interface and the features that the user
- interface provide. With this standard, potential publishers
- will not have to concern themselves about a user interface -
- - since these decisions will reside with users and the user
- interfaces/Client the users select. Instead, publishers
- will be dealing with performance of the software, the
- structure of the index(es) and data preparation requirements
- of the software program. Although this is exactly what
- potential CD-ROM publishers should be concerned with, most
- software vendors would like potential licensees to consider
- less important factors, such as sticky notes, printout
- capabilities, Boolean operators and licensing fees.
-
- For CD-ROM publishers, this standard could also move the
- perspective of potential buyers from, again, features as
- observed in the user interface to quality, accuracy and
- completeness of the data. Like a book, CD-ROM should convey
- appropriate, complete and useful information. A potential
- purchaser is now wise enough to detect a beautifully bound
- book with irrelevant information. This "next-level-of-
- intelligence" will occur for CD-ROM purchasers and users as
- well, as a result of this standard.
-
- Q. What are the risks? What will users or purchasers of CD-
- ROMs have to give up?
- A. Nothing. The standard provides only rewards for users and
- purchasers. Instead of having to learn each software
- program with each new disc, users will select the user
- interface of their choice and access data on any one or a
- combination of discs with this single user interface. Users
- may develop a single search and then apply it to one or more
- databases on separate discs published by different vendors.
-
- Q. What will CD-ROM producers have to do to implement this
- standard?
- A. Assuming that the specific CD-ROM indexing and retrieval
- software selected comes with a Server, then the answer is
- nothing different than what is required of the program now.
- The software developer/vendor, however, will have to create
- its own Server driver ONCE for each OS.
-
- Q. What will CD-ROM users have to do to implement this
- standard?
- A. Obtain or develop a Client driver for each top-level or
- application-specific user interface as desired. For
- example, the user may want to access full-text information
- from Windows 3.0, from a word processing program, and also
- from "XYZ's" menu. Client drivers will have to be developed
- for each of these three programs.
-
- Q. What will the CD-ROM industry have to do to implement this
- standard?
- A. Developers of CD-ROM indexing retrieval software will each
- have to develop their own Server drivers to work with their
- proprietary software engines and indexing schemes. Software
- and/or third-party developers of top-level interfaces and of
- software applications will have to develop Client drivers to
- work with a number of programs.
-
- Q. Does this mean that a user interface does not come
- automatically with a CD-ROM application?
- A. Not necessarily. A CD-ROM producer/publisher may decide to
- deliver a user interface for the database as well as the
- Server on the same disc. The standard does not limit
- publishers nor users from providing or using a user
- interface that comes with the software as we are used to at
- the present time.
-
- Q. What is the proposed course of action with respect to
- implementing the CD-RDx standard as an international
- standard?
- A. The DCI Intelligence Information Handling Committee (IHC)
- agrees on the need for a CD-RDx standard for use throughout
- the Intelligence Community. Simultaneously, IHC is briefing
- civilian agencies, the Department of Defense, NISO/NIST and
- other groups in the public and private sectors on the
- details of the CD-RDx standard. It is also began funding the
- development of Client drivers for some "most-used" user
- interfaces in the DOS, UNIX, OS/2 and Macintosh operating
- system environments so that CD-ROM discs containing the
- requisite Server driver can be demonstrated to work in
- different operating systems within different user
- interfaces.
-
- Q. Does this CD-RDx standard conflict with any of the
- standardization activities within the Computer-Aided
- Acquisition and Logistics Support (CALS) system?
- A. The answer is NO.
-
- Q. How does the CD-RDx standard address the accessing,
- retrieval and display of graphics?
- A. Images are passed as data to the Client. It is up to the
- Client to support a specific type of graphics. In short,
- CD-RDx in no way limits the use of graphics, nor the type of
- graphics.
-
- Q. How does CD-RDx deal with MARK RECORD, SORT RESULTS and
- similar functions?
- A. MARK and SORT are functions of the Server, not a part of a
- CD-ROM access and retrieval standard. It is up to the
- Client to understand the marked data. The Client can resort
- data.
-
- Q. How does CD-RDx deal with ADJACENCY and PROXIMITY?
- A. A modification to the FIND command with ADJ and PROX have
- been implemented.
-
- Q. Are the specifications and the internal components of the
- specifications extensible?
- A. Yes. Extensibility is in the data display. The data
- return types include extensible/proprietary data types.
- NOTE: Proprietary data types can only be used by Clients
- that understand that type of data. (i.e. The Server
- company's Client.)
-
- Q. How will multiple simultaneous protocols be defined? Where
- will the protocol handlers be located? Does CD-RDx take
- into account multi-relational, multi-file databases?
- A. Implementation of the Server is not limited to the CD-RDx
- standard. If a particular CD-ROM retrieval engine supports
- multi-anything, then that particular software developer
- should write these capabilities into the Server.
-
- Q. Doesn't a memory resident program, such as a Terminate and
- Stay Resident (TSR), limit acceptance of the CD-RDx
- standard?
- A. The primary purpose of CD-RDx is to transcend the need for
- writing a Server for each computer or interface environment.
- Without a memory resident Server, it would not be a standard
- acceptable in all environments.
-
- Q. Is there any reason why the Server must be a TSR? There are
- any number of alternative ways to implement such a Server,
- some of which have significant advantages over a TSR based
- implementation.
- A. A Terminate and Stay Resident (TSR) program may be used, but
- it is only needed in the DOS part of the CD-RDx standard.
- The Server just needs to be an independent program in
- memory.
-
- Q. Where in this CD-RDx standard are security issues addressed?
- A. If security and audits are an issue, then they may be added
- to the Server. Such functional capabilities are part of the
- Server.
- Q. The limits for PATH and FileName in the POSiX specification
- is more liberal than those for MS-DOS. Can the length
- limitations be increased?
- A. Clients operating in different environments can specify any
- length for path and file names.
-
- Q. How will the user process records/fields that are huge, such
- as 1 MB or larger?
- A. CD-RDx imposes no limitations at all. The Client sets
- buffer length. The Server merely writes to the buffer. The
- buffer may be written to the full available size of any
- storage device available. This allows the Server to use
- both RAM and mass storage.
-
- Q. What techniques are used in CD-RDx for dealing with Database
- Passwords, Field Passwords and "restricted" records?
- A. See LOGIN command and Appendix B (Server Functions)
-
- Q. How does CD-RDx work with networks.
- A. The ability to access databases that reside on a networked
- drive is a function of the Server. Establishing the link to
- the network is not in the realm of how data is passed
- between the Client and Server. When the database retrieval
- power is on a network server, it is the responsibility of
- the Server running on a local computer to request and
- process the remote information. The possible exception to
- this is in the UNIX world where the remote Server has
- established an ID on the CD-RDx Socket.
-
- Q. ISO 9660 has three levels of implementation. Does CD-RDx
- have a similar approach to implementation so that developers
- can get "up and running" faster?
- A. CD-RDx supports everything and nothing can be left out.
- However, developers of Clients and Servers can certainly
- begin with the basics and provide increasing levels of
- sophistication over time. The basic data types must be
- supported if the Server has that data available in any of
- the databases it is responsible for.