Skip to main content
ExLibris

Knowledge Assistant

BETA
 
  • Subscribe by RSS
  • Back
    SFX

     

    Ex Libris Knowledge Center
    1. Search site
      Go back to previous article
      1. Sign in
        • Sign in
        • Forgot password
    1. Home
    2. SFX
    3. Product Documentation
    4. Version 4.0
    5. SFX Advanced User's Guide
    6. Local Source Configuration

    Local Source Configuration

    1. Last updated
    2. Save as PDF
    3. Share
      1. Share
      2. Tweet
      3. Share
    1. The SFX Flow
    2. Transportation of Metadata to SFX
      1. Example – OpenURL Sending Only a Record ID
      2. Example – OpenURL Sending Object Metadata
      3. Example – OpenURL Not Requiring a Specific Source Parser
    3. Source Identifiers (SIDs)
    4. Source Configuration Files
    5. Source Parsers
    6. Location of the SFX Button
    7. Tool to Verify Setup of PubMed and CrossRef/ DOI Source Fetching
      1. Setup
        1. Setup

    The SFX Flow

    When an OpenURL is received by SFX from a specific source, SFX performs one of the following actions:
    • Interprets metadata sent in the OpenURL
    • Augments the SFX request in a particular way for this specific source
    • Shows an SFX menu with specific services on it
    Configuration files and source parsers written for this specific source are stored on the SFX server and called when SFX receives an OpenURL from this source.
    SFX scripts identify which source configuration files and which source parser to use in the following way:
    OpenURL sid source.dir configuration files source parsers
    Metadata is transported to the SFX server via the OpenURL. The Origin-Description/sid (OpenURL 0.1) or referrer-ID/rfr_id (OpenURL 1.0) of an OpenURL contains information about the database from which the OpenURL originated. For example:
    http://sfxserver.somewhere.edu/sfxlcl41?sid=SilverPlatter:MX&pid=myid=12345678
    The value of the Origin-Description/sid (OpenURL 0.1) or referrer-ID/rfr_id (OpenURL 1.0) is used for a lookup function in a file called source.dir. In turn, for each source listed in the source.dir, there is a reference to the location of a source configuration file. The configuration file for a specific source contains information about the location and the name of the source parser to be used, if any.
    In SFX, which can interpret OpenURLs sent in either 0.1 or 1.0 format, there are corresponding 0.1 and 1.0 source.dir files, source configuration files, and/or source parsers depending on the format of the vendor or database’s OpenURL. For more information about source.dir files, see Source Identifiers (SIDs). For more information about source configuration files, see Source Configuration Files. For more information about source parsers, see Source Parsers.

    Transportation of Metadata to SFX

    Metadata sent to SFX via an OpenURL 0.1 consists of two parts:
    • an optional, yet highly recommended ORIGIN-DESCRIPTION
    • a mandatory OBJECT-DESCRIPTION
    The OBJECT-DESCRIPTION itself can contain up to three zones:
    • a GLOBAL-IDENTIFIER-ZONE
    • a OBJECT-METADATA-ZONE
    • a LOCAL- IDENTIFIER-ZONE
    The following is a graphical representation of the OpenURL:

           ORIGIN-DESCRIPTION '&' OBJECT-DESCRIPTION

                              / | \

                     ,-------'     |     `-------

    GLOBAL-IDENTIFIER-ZONE       |       LOCAL-IDENTIFIER-ZONE

                                  |

                 OBJECT-METADATA-ZONE

    Since the SFX system relies heavily on metadata to deliver services, the intention is to obtain as much metadata as possible for an object for which services are requested.
    The metadata is handled as follows:
    • Part of that metadata is immediately available from the OBJECT-METADATA-ZONE of the OpenURL for this object. However, in many cases, additional metadata can be obtained by importing it from an information resource.
    • If the OpenURL contains a GLOBAL-IDENTIFIER-ZONE, the metadata is imported from an authoritative namespace (for instance PubMed, DOI/X, and so forth). The tools to do this—that is, namespace-specific source parsers—come with the SFX package and should notbe edited.
    • If the OpenURL contains a resource-specific LOCAL-IDENTIFIER-ZONE, the metadata is fetched from the resource using resource-specific source parsers. These source parsers must reside in the following locations:
      • For OpenURL 0.1:

        /exlibris/sfx_ver/sfx4_1/<instance>/lib/Parsers/SourceParser/OpenURL_0_1

      • For OpenURL 1.0:

        /exlibris/sfx_ver/sfx4_1/<instance>/lib/Parsers/SourceParser/OpenURL_1_0

    • If an OpenURL contains a LOCAL-IDENTIFIER-ZONE, metadata can be transported to the SFX server in one of three ways:
      • The LOCAL-IDENTIFIER-ZONE contains a record identifier by which a source parser can fetch a record from the origin-resource (described in ORIGIN-DESCRIPTION) via the Z39.50 or HTTP protocol.
      • The LOCAL-IDENTIFIER-ZONE contains object-metadata in a syntax that is specific for the origin-resource.
      • The LOCAL-IDENTIFIER-ZONE contains a combination of the above.

    Example – OpenURL Sending Only a Record ID

    The following is an example of an OpenURL that sends only a record ID to SFX:
    http://sfxserver.somewhere/menu?sid=EBSCO:MRD&pid=myid:178912781
    The ORIGIN-DESCRIPTION of this OpenURL is sid=EBSCO:MRD. This informs SFX to search for an EBSCO:MRD source parser on disk. SFX looks for this in /exlibris/sfx_ver/sfx4_1/<instance>/lib/Parsers/SourceParser/OpenURL_0_1 (for OpenURL 0.1) or /exlibris/sfx_ver/sfx4_1/<instance>/lib/Parsers/SourceParser/OpenURL_1_0 (for OpenURL 1.0).
    The LOCAL-IDENTIFIER-ZONE of this OpenURL is pid=myid:178912781. The EBSCO:MRD source parser receives the pid value myid:178912781 as input and uses this record ID:
    • to fetch a record from the EBSCO service
    • to parse the record
    • to fill out the attributes of a ContextObject (CTXO) instance

    Example – OpenURL Sending Object Metadata

    The following OpenURL sends object-metadata to SFX via a LOCAL-IDENTIFIER-ZONE. For example:
    http://sfxserver.somewhere/menu?sid=XYZ:SoulNews&pid=ISSN%3D0012-1289%26VOL%3D45%26ISS%3D1%26YEAR%3D1974%26AUTH%3DBrown,%20James%26TITLE%3DI%20Feel%20Good
    The ORIGIN-DESCRIPTION of the OpenURL informs SFX that XYZ:SoulNews should be used as a key to find an appropriate source parser on disk.
    The LOCAL-IDENTIFIER-ZONE contains object-metadata, uses a syntax that is specific for the resource named XYZ:SoulNews, and is URL-encoded, as required. The decoded representation is:

    ISSN=0012-1289&VOL=45

    &ISS=1&YEAR=1974&AUTH=Brown, James&TITLE=I Feel Good

    In this case, the XYZ:SoulNews source parsers must be able to read the specific syntax used by the resource XYZ:SoulNews and use this input to parse the content of the LOCAL-IDENTIFIER-ZONE and set the ISSN, volume, issue, year, @authLast, @authFirst, and articleTitle attributes of the ContextObject (CTXO).

    Example – OpenURL Not Requiring a Specific Source Parser

    The following OpenURL does not require a specific source parser:
    http://sfxserver.somewhere/menu?issn=1234-5678&date=1998&volume=12&issue=2&spage=134&aulast=Brown&aufirst=James
    This OpenURL does not contain a LOCAL-IDENTIFIER-ZONE. It contains object-metadata in the standardized syntax of the OBJECT-METADATA-ZONE. Therefore, no specific source parser is required to parse this URL.

    Source Identifiers (SIDs)

    The following two files include a list of all the source identifiers (SIDs) that SFX can currently handle when parsing OpenURLs:
    • /exlibris/sfx_ver/sfx4_1/<instance>/config/source/source_v0_1.dir_
    • /exlibris/sfx_ver/sfx4_1/<instance>/config/source/source_v1_0.dir_
    Separate files are used for OpenURL 1.0 and OpenURL 0.1 formats.
    For each source, the files contain:
    • the start of the SID sent in the OpenURL
    • the name and location of the configuration file
    These files contain globally-recognized SIDs that are used for all Ex Libris customers. They are symbolically linked to the sfxglb41 instance and are updated by Ex Libris with any new sources that are added to the SFX configuration. Do not break the symbolic link to these files.
    Local versions of these files can be used to specify local SID information. The following are the locations of the SID directory files:
    • For OpenURL 0.1:

    /exlibris/sfx_ver/sfx4_1/<instance>/config/source/source_v0_1.dir_

    includes the following file that can be locally modified:

    /exlibris/sfx_ver/sfx4_1/<instance>/config/source/source_local_v0_1.dir

    • For OpenURL 1.0:

    /exlibris/sfx_ver/sfx4_1/<instance>/config/source/source_v1_0.dir_

    includes the following file that can be locally modified:

    /exlibris/sfx_ver/sfx4_1/<instance>/config/source/source_local_v1_0.dir

    The following is an example of a portion of the source_v0_1.dir file:

    FirstSearch.*               config/source/OpenURL_0_1/

                               firstsearch.config_

    Gale.*                      config/source/OpenURL_0_1/

                               gale.config_

    HWW.*                       config/source/OpenURL_0_1/

                               wilsonweb.config_

    III:innopac                 config/source/OpenURL_0_1/

                               inov.config_

    The first column is a regular expression to be matched against the sid. The second column contains the name and location of the source configuration file to be used.
    Any additions to the local source.dir files, source_local_v0_1.dir and source_local_v1_0.dir, should follow the pattern displayed above.

    Source Configuration Files

    Source configuration files and source parsers are usually global in nature, and contain parameters that are relevant for all SFX customers. The source configuration files can be found in the following locations:
    • For OpenURL 0.1:

    /exlibris/sfx_ver/sfx4_1/<instance>/config/source/OpenURL_0_1

    • For OpenURL 1.0:

    /exlibris/sfx_ver/sfx4_1/<instance>/config/source/OpenURL_1_0

    The source configuration file informs SFX which source parser to use in order to accomplish each of the following steps:
    1. Parse the content of the LOCAL-IDENTIFIER-ZONE
    2. Import a record from a link source, if necessary
    3. Parse the record imported in step 2, if necessary.
    The following is an example of a source configuration file:

     

    # MetaLib configuration

    #

     

    Section "source"

           id              "METALIB"

    EndSection

     

    Section "parsePrivateID"

            module          "Parsers::SourceParser::OpenURL_0_1::metalib"

    EndSection

     

    Section "fetchRecord"

           module          "NetWrap::HTTP"

           host             $0

           timeout         "30"

    EndSection

     

    Section "parseRecord"

            module          "Parsers::SourceParser::OpenURL_0_1::metalib"

    EndSection

    The configuration file for each source is divided into four sections:
    • The source section informs the SFX program of the origin of the SFX request. The id value in this section is used as a key for the lookup of a source in the SOURCE table of the SFX database.
    • The parsePrivateId section informs the SFX program which Perl module must be dynamically loaded to parse the LOCAL-IDENTIFIER-ZONE. This Perl module must be a subclass of SourceParser and must contain a parsePrivateId function. As arguments, this function receives a Generic::Request instance, a HASH reference containing optional parameters, and the content of the OpenURL’s pid field.
    • The fetchRecord section sends a command to SFX as to which Perl module should be dynamically loaded to fetch a record from a link source. In the above example, the NetWrap::HTTP module will be used. This is a Perl module provided by SFX to fetch records from a Z39.50 database. SFX also provides a NetWrap::Z3950 module to fetch records from databases that support Z39.50. If you want to implement your own fetchRecord module, it must be a subclass of SourceParser and must contain a fetchRecord function. As arguments, this function receives a Generic::Request instance and a HASH reference containing optional parameters. The $ signs in the source configuration files are replaced with the actual values by breaking the symbolic link and making the configuration file a local one. For example, in the metalib.config file:

    $0 is replaced by: metalib.university.edu

    • The parseRecord section informs SFX which Perl module must be dynamically loaded to parse the record returned from the fetchRecord module. This Perl module must be a subclass of SourceParser and must contain a parseRecord function. As arguments, this function receives a Generic::Request instance, a HASH reference containing optional parameters, and the return value of the fetchRecord module.
    Any locally created source configuration files should follow the model shown above.

    Source Parsers

    The SFX package includes source parsers for all available sources. The following sources do not use a source parser, since the information providers have implemented only the metadata zone of the OpenURL and special interpretation of the OpenURL is not required for them:
    ABC CLIO GALEGROUP INFOTRAC
    AMS MATHSCINET HLAS
    ANNUAL_REVIEW INGENTA
    ARXIV INSTITUTE OF PHYSICS JOURNALS
    BIOMEDCENTRAL ISI RESEARCHSOFT ENDNOTE
    BLACKWELL_SYNERGY JSTOR6
    CIOS NCBI_PUBMED
    CISTI SOURCE NISC BIBLIOLINE
    CONTENTSCAN PCI
    DIALOG_AT_SITE RLG
    EBSCO WILSONWEB
    EI VILLAGE ZETOC
    ELSEVIER_SCIENCE_DIRECT  
    A source parser is a Perl module that is a subclass of the SourceParser module. In the SFX environment, the source parsers can be found in the following location:
    • For OpenURL 0.1:

    /exlibris/sfx_ver/sfx4_1/<instance>/lib/Parsers/SourceParser/OpenURL_0_1

    • For OpenURL 1.0:

    /exlibris/sfx_ver/sfx4_1/<instance>/lib/Parsers/SourceParser/OpenURL_1_0

    The function of the SourceParser module is to set the attributes of the ContextObject instance.
    The metadata to be translated into the attributes of a ContextObject instance originates from an OpenURL.

    Location of the SFX Button

    This is the button that information providers will typically display as the source link to the SFX menu.
    • The SFX button can be accessed via this URL:

    http://<sfx_server_name>:port/<sfx_instance>/sfx.gif

    For example:

    http://demo.exlibrisgroup.com:8888/demo/sfx.gif

    • The SFX button can be found in the following location on the server:

    /exlibris/sfx_ver/sfx4_1/<instance_name>/templates/img/sfxmenu/sfx.gif

    • Additional SFX buttons can be found in the same directory. These buttons are customized for specific source databases:

    sfx.gif (default)width=54, height=19

    sfx_proquest.gifwidth=90, height= 32 (with transparent banner)

    sfx_firstsearch.gifwidth=45, height=16 (smaller size)

    Tool to Verify Setup of PubMed and CrossRef/
    DOI Source Fetching

    The purpose of this tool is to verify the status and setup of Pubmed and Crossref metadata fetching.
    The following files are involved:
    • /exlibris/sfx_ver/sfx4_1/<sfx_instance>/cgi/public/profile_checker.cgi
    • /exlibris/sfx_ver/sfx4_1/<sfx_instance>/config/profile_checker.config_
    The XSD schema is:
    http://demo.exlibrisgroup.com:9003/schema/profile_checker.xsd
    The following usages are available:
    • <SFX_server>:<port>/<instance>/cgi/public/profile_checker.cgi?svc_dat=all_services
    • <SFX_server>:<port>/<instance>/cgi/public/profile_checker.cgi?svc_dat=pubmed_service
    • <SFX_server>:<port>/<instance>/cgi/public/profile_checker.cgi?svc_dat=doi_service
    For example:
    http://demo.exlibrisgroup.com:9003/demo/cgi/public/profile_checker.cgi?svc_dat=all_services

    Setup

    Setup

    It is recommended to provide contact information in case you encounter problems with Pubmed and Crossref/DOI source fetching.
    To provide contact information :
    1. Log on as the instance user (for example, sfxlcl41) .
    2. Enter cn.
    3. Enter vi profile_checker.config_
    4. Enter your name, e-mail, and telephone information.
    View article in the Exlibris Knowledge Center
    1. Back to top
      • ContextObject
      • CookiePusher
    • Was this article helpful?

    Recommended articles

    1. Article type
      Topic
      Content Type
      Documentation
      Language
      English
      Product
      SFX
    2. Tags
      This page has no tags.
    1. © Copyright 2025 Ex Libris Knowledge Center
    2. Powered by CXone Expert ®
    • Term of Use
    • Privacy Policy
    • Contact Us
    2025 Ex Libris. All rights reserved