CARLI / vufind

A library resource discovery portal designed and developed for libraries by libraries
GNU General Public License v2.0
5 stars 0 forks source link

Calls to SFX not using ISSN in search #205

Closed gibsonjc closed 7 years ago

gibsonjc commented 7 years ago

The behavior of how the "Get full text" link queries SFX seems to have changed for the worse since our staff testing in February. At that time, we observed queries to SFX using the ISSN in the URLs in constructed, which is a very precise search. Today in version 3.1.3 we observe the queries to SFX always using a title search in the URLs constructed, which is much less precise and often does not find full text when it is actually available.

Where is this behavior defined? Did it change with the update to 3.1.3? It almost feels like a default is being invoked to search by title because there are usually standard control numbers in the bibliographic records that could/should be used instead.

Examples:

  1. Search for Title = Harvard Library Bulletin in UIU in VuFind 3: https://vufind3.carli.illinois.edu/vf-uiu/Search/Results?lookfor=harvard+library+bulletin&type=Title&limit=20&sort=relevance

"Get full text" links are constructed like this: http://sfx.carli.illinois.edu/sfxuiu?url_ver=Z39.88-2004&ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2FEndeavor%3Agenerator&rft.title=Harvard+Library+bulletin.&rft.date=1947&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rft.creator=&rft.pub=Harvard+University+Library%2C&rft.format=Journal+%2F+Magazine&rft.language=English

In VuFind 0.6, the same title searches with the ISSN in the bib record:

http://sfx.carli.illinois.edu/sfxuiu?sid=Endeavor:CitationServer&title=Harvard+Library+bulletin&issn=0017-8136&genre=journal

  1. Title = AIAA Journal in UIU in VuFind 3: https://vufind3.carli.illinois.edu/vf-uiu/Search/Results?lookfor=AIAA+Journal&type=Title&limit=20&sort=relevance

"Get full text" links are constructed like this: http://sfx.carli.illinois.edu/sfxuiu?url_ver=Z39.88-2004&ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2FEndeavor%3Agenerator&rft.title=AIAA+journal.&rft.date=&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rft.creator=&rft.pub=American+Institute+of+Aeronautics+and+Astronautics.&rft.format=Journal+%2F+Magazine&rft.language=English

cedelis commented 7 years ago

This appears to be an unintended consequence of https://github.com/CARLI/vufind/issues/111

VuFind apparently assumes the following format values as it constructs the Open URL (SFX, in our case). E.g., when we changed format "Journal" to "Journal / Magazine" in issue #111 , VuFind no longer treated the record as a Journal and did not pick up the ISSN field.

Here are the 3 formats (Book, Article, Journal) that VuFind depend on (using the SolrDefault driver, module/VuFind/src/VuFind/RecordDriver/SolrDefault.php):

protected function getDefaultOpenUrlParams()
protected function getBookOpenUrlParams()
protected function getArticleOpenUrlParams()
protected function getJournalOpenUrlParams()

Therefore, I either need to subclass SolrDefault or revert some of the work done in issue #111 and make use of translations instead (e.g., keep "Journal" format and later translate it to "Journal / Magazine"). It seems like the latter approach is better, but I need to look into this further.

cedelis commented 7 years ago

@gibsonjc Actually, it seems to make more sense to subclass SolrMarc (whose parent is SolrDefault) which gives us finer control over things. Plus, we might want to add/change/remove some of the fields we are sending the the SFX server.

So, to summarize:

Based on a record's format type, VuFind decides on a set of fields it sends to the OpenURL resolver (SFX, in our case). There is a set of basic (Default) fields that gets sent for all record formats, including Book, Article, and Journal: https://github.com/CARLI/vufind/blob/carli_master_branch/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php#L823

Here's where the fields are set, depending on format type:

Book: https://github.com/CARLI/vufind/blob/carli_master_branch/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php#L845

Article: https://github.com/CARLI/vufind/blob/carli_master_branch/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php#L872

Journal: https://github.com/CARLI/vufind/blob/carli_master_branch/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php#L926

By subclassing SolrMarc, I was able to treat our "Journal / Magazine" format type as if it were "Journal", so now (currently on the DEVEL server), you should notice that these types of records will sent ISSNs to the SFX resolver. Also, the Book format continues to work correctly. However, I do not see any Article formats in our format specifications. Do any of our list of formats belong to this category (of "Article")?

2D Art 3D Object Archival Collection Archive Audiocassette Audio CD Blu-ray Book Braille DVD Electronic Journal / Magazine Kit Large Print Manuscript Manuscript Map Map Microform Mixed Material Movie Music Manuscript Music Recording Music Score Reel-to-Reel Slide Software / Computer File Spoken Word Recording Textual Material VHS Vinyl LP

Also, please let me know if you think we should make any changes to which fields get sent to SFX based on the record's format. Chris

cedelis commented 7 years ago

In vufind3-test now, too.

gibsonjc commented 7 years ago

Thanks for the explanation and links to appropriate areas of the config file @cedelis. What you've explained makes sense as far as subclassing goes, and I see that the URLs/searches are including the ISSN for Journals now.

I'll talk to @dgree1 about the fields question. Do all of these parameters/fields that are sent in the URL to SFX get OR'ed together? It doesn't seem like they are AND'ed, but I don't want to assume. I ask because in VuFind 0.6, the only thing it seems to be sending is the ISSN (see example URL in initial problem description)...no rft.title, rft.creator, rft.pub, rft.language, or anything else. I don't know if we did that on purpose to keep the search focused, or if that was just the way 0.6 worked. I don't want to recommend we change things if this works as is with all of these other fields, of course, so we'll need to test it further.

I'll check in with Nicole about the Article category, but my first reaction is no, we don't have any formats that correspond to Article level.

slknight commented 7 years ago

Open URL included ISSN when checked. URL generated for Western Journal of Nursing Research from EIU. Marked with ** because bold does not seem to work in a URL...

https://sfx.carli.illinois.edu/sfxeiu?url_ver=Z39.88-2004&ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2FEndeavor%3Agenerator&rft.title=Western+journal+of+nursing+research.&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rft.creator=&rft.pub=Sage+Publications&rft.format=Journal&rft.language=English&rft.**issn=1552-8456**&sfx.ignore_date_threshold=1

slknight commented 7 years ago

You might pull Denise Green in on this. She can run a report of what is configured in SFX targets across CARLI. Denise can tell you more about how many members have ebook targets configured.

I can't think of a case where Article would be valid.

dgree1 commented 7 years ago

Looks much better to me. I tested the Open URLs in some of the comments from libraries like Harvard Library Bulletin in UIU in VuFind 3: https://vufind3-test.carli.illinois.edu/vf-uiu/Search/Results?lookfor=harvard+library+bulletin&type=Title&limit=20&sort=relevance

Tested a few other titles. Ex. https://vufind3-test.carli.illinois.edu/vf-whe/Search/Results?lookfor=quarterly+review+bank+&type=Title&limit=20&sort=relevance

Yes, VuFind doesn't have articles.

gibsonjc commented 7 years ago

Ready for production.

The original problem that this Issue represents has been addressed with fix "e302a48". The "Get full text" links for Journals are now sending the ISSN in the URL to SFX when they are present.

We do not have any formats that would correspond to "Article" or articles cataloged in our catalogs, so we can ignore that format.

I've done some more reading about Open URLs, and I think my earlier question about if all of the elements in the URL were ANDed or ORed together is not a good question. As long as SFX can interpret the URL being sent by VuFind 3, I don't feel like we should try to monkey with what information is being sent unless someone reports a problem.

(For further reading, this spec is a real page-turner: http://www.niso.org/apps/group_public/download.php/14833/z39_88_2004_r2010.pdf )