Z39.50
Utility
Attribute Set

Modified March 2003: To elaborate the semantic rule that a search with a single operand where the Comparison attribute is Always Matches and the Access Point attribute is Anywhere In Record is intended to match every record in the database.

The Utility attribute set defines values for the attribute types defined for Class 1, as specified by the Z39.50 Attribute Architecture .

The Utility set defines commonly used values for the Class 1 types -- values that would otherwise need to be defined in several attribute sets. In addition, metatdata access points for database records are defined. When database records describe resources, the metatdata access points for the database records may need to be distinguished from the metadata access points for the resources. For example, a MARC record, created in English, might describe a French book. In this case the language of the MARC record (English) would be searchable by a "language" access point provided by the Utility set, while the language of the book (French) would be searchable by an access point specified elsewhere.

Following is a list of the Class 1 attribute types, and for each type, the values defined by the Utility set. Enumerated values assigned to attributes are summarized below.

  1. Access Point
    1. Record Date/time
      A date (or date and time) associated with the record. May be used in conjunction with a functional qualifier, such as: 'creation' (to mean "date/time of creation of record"), 'modification' (to mean "date/time record last modified"), etc., or it may be used unqualified, in which case it is a date/time assigned by the server to be associated with the record.
    2. Record Agent
      Identifies a person, institution, or process that acts upon the database record. May be qualified by a semantic qualifier to indicate "person", "institution", or "process" and may be qualified by a functional qualifier, for example, 'creation', to indicate the type of action.
    3. Language of Record
      Search terms used with this access point should be taken from "ISO 639-2:1998. Codes for the Representation of Names of Languages -- Part 2: Alpha-3 Code." See Language Codes for Use in Z39.50.
    4. Local Control Number of Record
      An identifier string (integer or character string) assigned by the server that uniquely identifies a record in the database.
    5. Cost to Retrieve Record
      The cost (expressed as IntUnit) that the client will incur if it subsequently retrieves the full record. This access point may be used for example to limit a search to records where the cost of retrieval is less than a specified amount. (When the server does not charge for retrieval a cost of zero may be assumed.)
    6. Record Syntax
      A record syntax (expressed as an object identifier) supported for the database record. This access point may be used to limit the results to include records deliverable in a specific syntax. (Thus a search might create a large result set, where all except a few records are available only in a format that the client cannot support; the client may use this access point to narrow the result set to records it can support.) Note that the use of this attribute in a search does not mean that the resulting records, when subsequently retrieved, will necessarily be supplied in the given syntax, unless the present request explicitly specifies that syntax.
    7. Database Schema
      This access point may be used to limit the results to include records available in a specific database schema (expressed as an object identifier).
    8. Score
      See Rank.
    9. Rank
      Access points Score and Rank pertain to relevancy ranking for ranked retrieval. The server may assign a score and/or a rank to a result set record. The score or rank applies to the record relative to other records in the result set. A score is an integer between zero and 100. The rank of a record is an integer from 1 to N, where N is the result set size. (Note that a higher score means more relevant, while a lower rank means more relevant.) It is assumed that if record A has a better (higher) score than record B, then it will also have a better (lower) rank, however score and rank differ in the following respect: no two records in the result set have the same rank, and for every integer between 1 and N (where N is the result set size) there is exactly on record with that rank; on the other hand, more than one result set record may share the same score, and there need not be a record for every possible score. The reason for defining both attributes (Score and Rank) is that some ranked retrieval systems score records while others rank records. These two attributes may be used to restrict a result to some threshold value, for example "records with a score greater than 50" or "records with a rank less than 10".
    10. Result Set Position
      This attribute may be used to limit the size of the result set. For example the operand:
      Result Set Position "less than or equal" 10
      could be included in the query to restrict the result set to 10 or less records. Note that the Rank access point can be used for the same purpose; this attribute is defined because a server might support this function though it may not support ranking. The rank of a record is not necessarily its result set position; furthermore, the result set position of a record might change (if the result set is sorted) but its rank should not change.
    11. All Access Points
      When the origin uses 'All Access Points' it is asking the server to search for the term via all supported access points.
    12. Anywhere in Record
      When the origin uses 'Anywhere in Record' it is asking the server to search for the term anywhere it may occur within the record, subject to the server's search capability and interpretation of what "anywhere within the record" means. The server might search commonly used access points, or it might search the entire content of the record. (The following sentence was added March 2003.) A search with a single operand where the Comparison attribute is Always Matches (value 1) and the Access Point attribute is Anywhere In Record is intended to match every record in the database.
    13. Server Choice
      When the origin uses 'Server-choice' it is asking the server to select an access point (which may be defined in any attribute set, not necessarily the Utility set), and to use its best judgment in making that selection.
    14. Wildcard
      May be used for a single wild card (within a field path specified by nested access points). Thus:
      "field-1 within wildcard within field-3" would match "field-1 within field-2 within field-3" and it would match "field-1 within field-4 within field-3" but would not match "field-1 within field-2 within field-4 within field-3".
    15. Wildpath
      May be used for an unanchored search. Thus:
      "field-1 within wildpath" would match "field-1", or "field-1 within field-2", or "field-1 within field-2 within field-3", etc.; "field-1 within wildpath within field-2" would match "field-1 within field-3 within field-4 within field-2".

  2. Semantic Qualifier
    1. Null
      The Null value of the Semantic Qualifier attribute may be supplied within a query operand, when that operand also includes one or more additional Semantic Qualifier attribute values (defined in this or another attribute set).

      The server pairs each supplied value of the Semantic Qualifier attribute with the Access Point attribute to try to find a best match. (The server determines what match is best.)

      By including the value Null, the client indicates that the server may, if it chooses, ignore the other semantic qualifiers.

      Whenever one or more Semantic Qualifiers are included in an operand, the server must either select one or fail the search. Thus the Null value is defined in order to allow the server to choose not to select any of the real Semantic Qualifiers (i.e. those other than Null). The value Null should not be supplied unless one or more other Semantic Qualifier values are also supplied.

    2. Person
      Restricts the meaning of the access point to people.
    3. Institution
      Restricts meaning of the access point to institutions, for example, corporations, government bodies, or conferences.
    4. Process
      Restricts the meaning of the access point to a process, for example, a computer program.
      An example of the use of this qualifier is:
      Find records that had been created by the program called "Xmaker":
      Access point: Record Agent
      Semantic Qualifier: Process
      Functional Qualifier: Creation
      Term: Xmaker

  3. Language
    The Language attribute indicates the language of the supplied term. It is a character string whose value should be taken from "ISO 639-2:1998. Codes for the Representation of Names of Languages -- Part 2: Alpha-3 Code." See Language Codes for Use in Z39.50.

  4. Content Authority
    1. Null
      The Null value of the Content Authority attribute is used in a manner analogous to the Null value of the Semantic Qualifier attribute. It may be supplied within a query operand, when that operand also includes one or more other Content Authority attribute values.

      The server pairs each supplied value of the Content Authority attribute with the Access Point attribute to try to find a best match. (The server determines what match is best.)

      By including the value Null, the client indicates that the server may, if it chooses, ignore the other Content Authority values.

      Whenever one or more Content Authority values are included in an operand, the server must either select one or fail the search. Thus the Null value is defined in order to allow the server to choose not to select any of the real Content Authority values (i.e. those other than Null).

      The Utility set defines only the value Null. Real Content Authority values are to be defined in other attribute sets. The value Null should not be supplied unless one or more other Content Authority values are also supplied.

  5. Expansion/Interpretation
    All of the Expansion/Interpretation values defined apply to character strings.

  6. Normalized Weight
    The weight assigned to the term, for purposes of ranking or assigning scores to records. An integer from 0 to 1000. May be attached to a term in a request query (submitted by the client in a search request) in which case the supplied value indicates the weight that the client requests be attached to the term. May be attached to a term in a response query (returned by the server in a search response) in which case the supplied value indicates the weight that the server attached to the term, or the weight that the server recommends for use in a re-submitted query. When supplied by the server the value may be the same as, or different from, the value in the submitted query. May be supplied by the server even if it was not supplied in the request query.

  7. Hit Count
    May be attached to a term in a returned query in the Search response, and its value is the number of records in which the term occurs. Meaningful only in a returned query, although it may occur in a submitted query but should be ignored by the server. (The server should not infer any semantics based on the occurrence of this attribute, however, nor should the server treat its occurrence as an error, because the client may have simply resubmitted a reformulated query or query otherwise previously returned by the server, where the server included a Hit Count attribute.)

  8. Comparison

  9. Format/structure
    1. AdjacentWords
    2. AllTheseWords
    3. AnyOfTheseWords
  10. Occurrence
    Indicates the desired occurrence of the specified access point. Integer. For example, to indicate second author, the value of the Access Point attribute is 'author', and the value of the Occurrence attribute is 2.
  11. Indirection
    1. URI
      The term supplied is a pointer (a URI) to the actual term. For example, the supplied term might be a URL, in which case the server should follow the link to the resource, and substitute it as the term. This would be used, for example, for relevance feedback when a document is intended as the term, and a URL to the document is supplied.
    2. Scan Display Term
      The term was previously provided by the server in a Scan Response, not as an actual term in the term list, but rather as a 'displayTerm' associated with an actual term. See 'term' and 'displayTerm' within TermInfo in the Scan ASN.1 definition. (This applies when the actual term in the term list is not suitable for display although it is the term that should be used in a query rather than the display term.) The server should substitute the actual term for the display term.

  12. Functional Qualifier
    1. Null
      The Null value of the Functional Qualifier attribute is used in a manner analogous to the Null value of the Semantic Qualifier attribute. It may be supplied within a query operand, when that operand also includes one or more additional Functional Qualifier attribute values.

      The server pairs each supplied value of the Functional Qualifier attribute with the Access Point attribute to try to find a best match. (The server determines what match is best.)

      By including the value Null, the client indicates that the server may, if it chooses, ignore the other Functional Qualifier values (thus allowing the server to match the Access Point attribute value with Null, in effect rendering the Access Point unqualified).

      Whenever one or more Functional Qualifier values are included in an operand, the server must either select one or fail the search. Thus the Null value is defined in order to allow the server to choose not to select any of the real Functional Qualifier values (i.e. those other than Null).

      Following may be used to qualify the functional scope of the access point to pertain to creation, modification, review or deletion. For example they may be used to qualify Utility set Access Point value Record Date/Time or Record Agent, to mean "Date/time record was created (modified/reviewed/deleted)" or "agent who created (modified/reviewed/deleted) record". See the example supplied in the definition above of Semantic Qualifier 'process'.

    2. Creation
    3. Modification
    4. Review
    5. Deletion

Summary of Enumerated Values Assigned to Utility Attributes

  1. Access Point
    1. Record Date/time
    2. Record Agent
    3. Language of Record
    4. Local Control Number of Record
    5. Cost to Retrieve Record
    6. Record Syntax
    7. Database Schema
    8. Score
    9. Rank
    10. Result Set Position
    11. All Access Points
    12. Anywhere in Record
    13. Server Choice
    14. Wildcard
    15. Wildpath

  2. Semantic Qualifier
    1. Null
    2. Person
    3. Institution
    4. Process

  3. Language
    No enumerated values assigned.

  4. Content Authority
    1. Null

  5. Expansion/Interpretation
    1. Left Truncation on Word boundary
    2. Right Truncation on Word boundary
    3. Left Truncation on Character boundary
    4. Right Truncation on Character boundary
    5. Regular Expression
    6. Masking
    7. Case Insensitive
    8. Punctuation Insensitive
    9. Whitespace Insensitive
    10. Phonetic
    11. Stem
    12. Plural Matching
    13. No Stopwords
    14. Search Words Stopped
    15. No Other Expansion
    16. RightTruncateEachWord
    17. LeftTruncateEachWord
    18. LeftAnchored

  6. Normalized Weight
    No enumerated values assigned for this attribute type.
  7. Hit Count
    No enumerated values assigned for this attribute type.
  8. Comparison
    1. Always Matches
    2. Never Matches
    3. Equal
    4. Less Than
    5. Less Than Or Equal
    6. Greater Than
    7. Greater Than Or Equal
    8. Not Equal
    9. Contained Within
    10. Relevance Feedback

  9. Format/structure
    1. AdjacentWords
    2. AllTheseWords
    3. AnyOfTheseWords
  10. Occurrence
    No enumerated values assigned for this attribute type.
  11. Indirection
    1. URI
    2. Scan Display Term

  12. Functional Qualifier
    1. Null
    2. Creation
    3. Modification
    4. Review
    5. Deletion

Library of Congress