Preparing your result...
Loading...
Press Esc to dismiss this message

Searching with SRU

< Previous | Next >

This page describes our implementation of the SRU (Search/Retrieval via URL) protocol, which may be used to search our available databases using a formal, simple yet expressive query syntax.

Page Contents

Execute a Search Query:

CQL Query:
Collection:

General Description

The general URL for accessing the SRU interface to the library is of the form:

http://ip.com/xapi/sru[/database][?name=value[&name=value...]]

The following paramaters are common to all operations. Refer to the operation-specific details below for parameters specific to each.

  • operation=[ explain | scan | searchRetrieve ]
    The default if this parameter is omitted is operation=explain, though a diagnostic will be included in the response since this is considered a mandatory parameter.
     
  • version=[ 1.1 | 1.2 | 2.0 | ... ]
    The default if this parameter is omitted is version=1.1, though a diagnostic will be included in the response since this is considered a mandatory parameter.
     
    All responses from the server will conform version 1.1, regardless of the version requested.
     
  • recordPacking=[ xml | string ]
    The default for this paramater is recordPacking=xml.
     
  • stylesheet=location
    No default stylesheets are currently in place, though we may add these in the future.
     
  • x-local-database=[ npl | pad | redbook | us | cn | all ]
    Choose a subset of the collection to search by referencing one of the tokens listed. This may also be specified as part of the request URL like so:

    http://ip.com/xapi/sru/database?....

    Available selections are:
    • pad - IP.com Prior Art Database
    • redbook - IBM Redbooks
    • npl - A combination of pad and redbook collections
    • us - United States patents and patent applications
    • cn - Chinese patents and patent applications
    • all - All collections in the library
    When not specified in the request, the default selection will be x-local-database=npl, selecting our Non-Patent Literature collections.

As suggested here, all URI's sent to the SRU interface must be encoded using UTF-8 if there is any chance that query strings will include non-ASCII characters.


CQL context sets

A context set describes a set of searchable indexes and/or record elements returned by SRU requests. This implementation uses the following sets.

Context Set Identifier Description
cqlinfo:srw/cql-context-set/1/cql-v1.2 CQL context set Version 1.2
dcinfo:srw/cql-context-set/1/dc-v1.1 Dublin Core Context Set Version 1.1
localhttp://ip.com/srw/ipcom/1.0/ Local index and element names as described below.

Available Indexes

The following indexes are common to all data sets

Context Index Type Sort Description
cqlanywhere
allIndexes
anyIndexes
keywords
Text- The default index, these will search all fields in the record for the selected search terms.
dctitleTextYes The title field of the record.
dcdescriptionText- The abstract or summary of the record.
dctypeScan- The specific collection the record belongs to (eg, Chinese patents, US applications, etc). Use the Scan Operation for a list of values.
dcrelationText- Referenced sources for a record.
dcdateDateYes Date the record was published.
dcidentifierText- The unique identifier associated with a record on this site.
localcollectionScan- The general collection the record belongs to (eg, patent, application, etc). Use the Scan Operation for a list of values.

The following indexes are used in the pad and npl data sets only

Context Index Type Sort Description
localcontributorText- An index of the related people for Prior Art Database records.
localadddateDateYes Date on which a Prior Art Database record was added to the database. This may differ from the dc.date value if a record was published elsewhere before reaching the Prior Art Database.
localownerScan- When known, the company that owns a Prior Art document. Use the Scan Operation for a list of values.

The following indexes are used in the redbook and npl data sets only

Context Index Type Sort Description
dcsubjectText- An index of IBM assigned keywords to an IBM Redbook record.
localisbnText- ISBN assigned to an IBM Redbook.
localauthorText- Named authors of an IBM Redbook record.
localupdateDate- Date that an IBM Redbook record was last updated in the database. These documents may be modified by IBM at any time.
localtocText- The table of contents as listed in an IBM Redbook.

The following indexes are used in patent related data sets only

Context Index Type Sort Description
localanText- The application number of a patent or application record.
localadDateYes The date an application was filed for a patent or application record.
localinventText- The inventor of a patent or application record.
localassignText- The assignee of a patent or application record.
localagentText- The agent of a patent or application record.
localncText- The national classification code of a patent or application record assigned by the issuing country's patent authority.
localicText- The international classification code of a patent or application record using the IPC standard.
localreferenceText- The cited references of a patent or application record.
localclaimsText- The claims made by a patent or application record.
localdescriptionText- The detailed description of a patent or application record.
localfrontpageText- A combination of the indexes considered the front page of a patent or application record.

Available Relations

The following relations are supported for all Text and Scan indexes

Relation Description Example
=
any
An implied boolean OR between listed terms. dc.title = "dog cat hamster"
dc.title any "radio television shortwave"
all An implied boolean AND between listed terms. dc.title all "wavelength height radio"
==
adj
exact
A phrase search, where multiple terms are expected to be in the order given. dc.title == "calico cat"
dc.title adj "computer virus"
<> An implied boolean NOT preceding the listed terms. dc.title = "cat" AND dc.title <> "calico cat"

The following relations are supported for all Date indexes

Relation Description Example
=
==
within
Match dates which are within the given date range. If a partial date is given, it implies a range of dates (for example, the term "2007" implies the range 2007-01-01 through 2007-12-31; "2007-12" implies the range 2007-12-01 through 2007-12-31). dc.date = "2007-12-13"
dc.date within "2007-12"
dc.date within "2005 2007"
<
<=
>
>=
Select dates which are less-than, less-than or equal to, greater-than or greater-than or equal to the given date. If a partial date is given, it implies a range of dates (for example, the term "2007" implies the range 2007-01-01 through 2007-12-31), and the appropriate endpoint of that implied range will be used for comparisons. dc.date >= "2007-12-13"
dc.date < "1983"
<> Select dates which are outside of the given term date or implied range (using the same rules as above). The <> relation has been enhanced to allow for two terms to be passed so that an explicit range is supported. dc.date <> "2007-12-13"
dc.date <> "2005-05"
dc.date <> “2005 2007”

XML Schema

Search results are formatted to conform to the XML schema dc-schema.xsd, which is currently based on the Dublin Core Elements schema.

Result records currently contain the following details:

XML Element Contents
titleDocument title
identifierIdentifier for document within the collection
dateThe publication date of the document
languageIf known, a code for the language the document is written in
descriptionAn abstract or brief description of the document if supplied
sourceA fully-qualified URI to the document (which may be hosted at a different website)

Each result may also include a <score> element within the extraRecordData node. This will be a value between 0 and 1 giving a relative rank to a result within the result set. These scores are weighted so the best match found for any given query is assigned a score of 1, with subsequent results being ranked against that top result. This scoring system may be replaced at some future date.


Explain Support

The explain operation returns detailed information about the service provided by our SRU server. Details returned regarding contexts and indexes supported will be tailored to any x-local-database= selection, explicit or implied.


Scan Support

The following parameters are supported for the scan operation.

  • scanClause=index[=”term”]
    No record counts will appear in the results.
    The following indexes support the scan operation:
    • local.collection - the general collection a document belongs to (patent, application, etc.)
    • dc.type - the specific collection a document belongs to (US patent, Chinese application, etc)
    • local.owner - for records in the ipcompad collection, this index identifies the company or organization that published the record if known

  • maximumTerms=#
    default=50 / limit=50 – limit reported in Explain response <configInfo> element
     
  • responsePosition=#

SearchRetrieve Support

The following parameters are supported for the searchRetrieve operation.

  • query=CQL search query
    CQL version 1.2 is supported with the following exceptions:
    • The cql.resultSetId and cql.allRecords indexes are not currently supported
    • The ENCLOSES relation is not supported
    • The PROX relation and BOOLEAN are not currently supported
    • None of the listed RELATION MODIFIERS or BOOLEAN MODIFIERS are currently supported
    • The sortBy keyword supports sorting by one index only which must be one of those identified in the Sort column of the index list above. The default result sorting order is by descending relevance score.

  • recordSchema=[ dc ]
    Custom or alternative schema support may be added in the future.
     
  • startRecord=#
    Within the results, the first record to include in the response (default is startRecord=1).
     
  • maximumRecords=#
    The maximum number of results to include in the response. The default is configured as 20, and there is an upper limit of 50 for this parameter.

Version History
  • 24-Aug-2010 SRU Profile pages created.
     
  • 20-Aug-2010 Initial implementation.