# Presentation: 685806

## Using The Explain Facility

- Denis LynchSilverPlatter InformationDLynch@SilverPlatter.com+44 (181) 585 6400

## Rationale

- Many clients don’t know their servers
- Users point clients at new servers
- Servers add or change databases & services
- Clients need dynamic information
- Server hours of operation
- Billing rates
- Supported attribute combinations
- Field labels

## Explain Database Schema

**TargetInfo**

**TermListDetails**

**Ext. Svcs. Info**

**CategoryList**

*Server-wide Information*

**RecordSyntaxInfo**

**SchemaInfo**

**TagSetInfo**

**VariantSetInfo**

*Universal Information*

**DatabaseInfo**

**AttributeDetails**

**ElementSetDetails**

**RetrievalRecordDet**

*Database-specific Information*

**AttributeSetInfo**

**UnitInfo**

**TermListInfo**

**SortDetails**

**ProcessingInfo**

## TargetInfo

- There is one TargetInfo record per database
- Target name and nicknames
- IR parameters (esp. database combinations)
- Message of the day
- Contact and access information
- Network addresses

## Universal Information Records

- A dynamic way to get static information
- All keyed by an Object Identifier
- TagSetInfo lists all tags defined in a tagset
- SchemaInfo lists
- Mapping of tagset numbers to tagsets
- The record structure
- RecordSyntaxInfo describes the record structure
- AttributeSetInfo lists every attribute

## DatabaseInfo

- One DatabaseInfo record per database
- Database name
- Databases that can be searched with this one
- Databases that are subsets of this one
- AccessInfo lists OIDs etc. for
- Attribute sets, syntaxes, schemas, query types...
- Copyright and contact information

## AttributeDetails

- Lists all attributes supported for this database
- May list patterns for legal combinations
- {    {  { Use, {4, 16, 24} },        { Structure, All }    },    {  { Use, 1001 },        { Structure, 2 }    }}

## Term Lists

- One TermListInfo per database, lists “indexes”
- An arbitrary name to link to TermListDetails
- A title, for display to users
- A search cost hint (optimized, expensive...)
- A scannable flag
- TermListDetails may apply to many databases
- Attribute combinations that access this term list
- More info about scanning
- Sample terms

## Retrieval record details

- ElementSetDetails for Element Set Names
- ESN + Record Syntax will get:
- Schema used at the server
- Specific elements in the retrieval record
- RetrievalRecordDetails for CompSpec
- Schema + Record Syntax will get
- Mapping of schema elements to record elements

## SortDetails

- Lists all the sort keys available for database
- Lists equivalent element and attribute specs
- No provision for server defined “sortfield”

## ProcessingInformation

- Can convey usage, formatting, semantics...
- Application “kinds” distinguish usage
- Processing information is EXTERNAL
- Syntax OID is part of Brief record

## Finally

- ExtendedServicesInfo lists supported services
- Identified by OID of Package syntax
- Availability, cost...
- Is package retained in ES database?
- Can ES be executed synchronously?
- CategoryList lists categories of records
- Dynamically discover what can be dynamically discovered

## How clients use Explain - Search

- Basic characteristics in AccessInfo
- TermList titles for access points
- Or USE attributes from AttributeCombinations
- AssociatedDBs can be searched together
- Lots of text for “Describe” function
- SubDBs supports “more specific” function

## How clients use Explain - Retrieval

- Pick ESN from ElementSetDetails
- Check for a record syntax you can handle
- Use subDBs to understand returned DB names
- Use PerElementDetails for field labels
- Use ProcessingInformation if you know how

## Implementation status

- Supported in some toolkits, e.g. yaz
- Supported by a few servers, e.g. SilverPlatter
- The information is often hard to collect
- The incentive is low
- Not used by any general clients
- “Commercial quality” user interfaces need tailoring
- Simpler interfaces rely on Bib-1 and US-MARC
- Co-operative systems use tight profiles