Spell Checker for WebVóyage 7 with Tomcat using Jazzy

Disclaimer

Code and instructions for implementing a Spell Checker for Tomcat WebVóyage. Use at your own risk. TCC is not responsible for damage or problems caused by the use of this code. No warranties or guarantees of any kind are implied or assumed.
Version 2.4.7 by Jim Robinson
Tarrant County College
828 W. Harwood Rd.
Hurst, TX 76054-3299
(817) 515-6116
Email
Copyright © 2024, Tarrant County College District ("TCCD" or "TCC"). All rights reserved.

"WebVóyage" is a trademark of Ex Libris™ LTD.
"Jazzy" is a Java Open Source Spell Checker

Purpose: Spellcheck servlet and JavaScript use Jazzy to check the spelling when no hits are found using WebVóyage 7.

No warranties or guarantees of any kind are implied. Use at your own risk. It works for us, so we thought we'd share... ;-)
By using this software the USER indicates that he or she has read, understood and and will comply with the following:
TCC hereby grants USER permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee, provided that:
  1. the above copyright notice appears in all copies of the software and its documentation, or portions thereof, and
  2. a full copy of this notice is included with the software and its documentation, or portions thereof, and
  3. neither the software nor its documentation, nor portions thereof, is sold for profit. Any commercial sale or license of this software, copies of the software, its associated documentation and/or modifications of either is strictly prohibited without the prior consent of TCC.
  4. Title to copyright to this software and its associated documentation shall at all times remain with TCC. No right is granted to use in advertising, publicity or otherwise any trademark, service mark, or the name of TCC.
  5. This software and any associated documentation are provided "as is," and TCC MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING THOSE OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR THAT USE OF THE SOFTWARE, MODIFICATIONS, OR ASSOCIATED DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF A THIRD PARTY. TCC, Tarrant County College, its Regents, officers, and employees shall not be liable under any circumstances for any direct, indirect, special, incidental, or consequential damages with respect to any claim by USER or any third party on account of or arising from the use, or inability to use, this software or its associated documentation, even if TCC has been advised of the possibility of those damages.

Purpose

This code was written to be used with the WebVóyage 7 product by Ex Libris™ LTD.™ When a WebVóyage 7 search receives no hits, the search criteria is sent to the Spellcheck servlet. The Spellcheck servlet will return an XML document in the following format:
<?xml version="1.0" encoding="UTF-8"?>
   <spellcheck>
      <word text="misspelled word w/ diacritics removed">
         <suggestion>suggestion 1</suggestion>
         <suggestion>suggestion 2</suggestion>
      </word>
      <word text="misspelled word w/ diacritics removed">
         <suggestion>suggestion 1</suggestion>
         <suggestion>suggestion 2</suggestion>
         <suggestion>suggestion 3</suggestion>
      </word>
      <word text="correctly spelled word"></word>
      <errors>
         <error>error 1</error>
         <error>error 2</error>
      </errors>
   </spellcheck>
   		
    Requirements:
  • This spellchecker uses a Java servlet. It must have an implementation of the Java Servlet technology to run, preferably the Apache Tomcat installation that runs your WebVóyage version 7.
  • The spelling suggestion uses JavaScript. Browsers with JavaScript disabled will not be able to take advantage of this code, but it will not prevent them from using WebVóyage normally.

Instructions

      Notes:
    • If updating from version 2.x to version 2.4.7, follow these instructions
    • These instructions require that your Tomcat server and your Apache server be stopped for a short period of time. Please read and understand the instructions before installing WebVóyage 7 Spell Checker.
    • Changes to files are in bold red print.
    • Text in green monospace should be typed into a command line on your server.
    • {xxxdb} == your database.
    • {skin} == the top directory of the skin you're using.

      Installation Overview
    • Download files.
    • Copy the spellcheck web application.
    • Copy the spellcheck.js JavaScript file.
    • Stop Tomcat.
    • Backup and edit server.xml to add a new context.
    • Backup and edit xxxdb_vwebv_httpd.conf so Apache can find the spellcheck web application.
    • Backup and edit xxxdb.jkmounts.conf so Apache will send spellcheck requests to Tomcat.
    • Restart Apache server.
    • Start Tomcat server.
    • Edit spellcheck.properties to add the path to your english.0 dictionary.
    • Test the spellcheck servlet.
    • Backup and edit pageProperties.xml to add a JavaScript function call and a <div> tag for spelling suggestions.
    • Backup and edit frameWork.xsl to load the spellcheck.js JavaScript file if a search page is loaded.
    • Backup and edit searchPages.css to customize the look of your spelling suggestion.
    • Test your WebVóyage Spell Checker.
    • Create custom dictionaries, if desired.

  1. Download and unzip tomcat_spellcheck-2.4.7.zip or untar tomcat_spellcheck-2.4.7.tar.gz. Inside you will find:
    • instructions.pdf
    • programs/
    • spellcheck/
    • spellcheck.js
  2. Install the spellcheck files
    1. In /m1/voyager/{xxxdb}/tomcat/vwebv/, copy the entire spellcheck directory.
    2. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/jscripts, copy the spellcheck.js file.
  3. Add the spellcheck context to tomcat
    1. Stop tomcat: This is important! server.xml should not be edited while Tomcat is running!
      /m1/voyager/{xxxdb}/tomcat/vwebv/tsvrctl stop
    2. Back up server.xml:
      cd /m1/voyager/{xxxdb}/tomcat/vwebv/conf/
      cp server.xml server.xml.bak

      Note: To reduce downtime, you can also edit the server.xml.bak file, then stop Tomcat, then rename the server.xml files, then restart Tomcat.
    3. Edit server.xml: Copy the vwebv context in server.xml (highlighted here in yellow), paste a copy below the vwebv context to create a new context, then make changes (in bold red) to the new context:
    4. Version 7.0.x Changes to server.xml for Version 7.1.x are below

      
      <Context path="/vwebv"
         className="org.apache.catalina.core.StandardContext"
         cachingAllowed="true"
         charsetMapperClass="org.apache.catalina.util.CharsetMapper"
         cookies="true"
         crossContext="false"
         debug="0"
         displayName="Voyager WebVoyage"
         docBase="/m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv"
         mapperClass="org.apache.catalina.core.StandardContextMapper"
         privileged="false"
         reloadable="false"
         swallowOutput="false"
         useNaming="true"
         wrapperClass="org.apache.catalina.core.StandardWrapper">
      
         <Logger
            className="org.apache.catalina.logger.FileLogger"
            verbosity="0"
            directory="logs"
            prefix="vwebv."
            suffix=".log"
            timestamp="true" />
      
         <!-- uncomment the following to limit access to connections from this machine only -->
         <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/> -->
      </Context>
      
      <Context path="/spellcheck"
         className="org.apache.catalina.core.StandardContext"
         cachingAllowed="true"
         charsetMapperClass="org.apache.catalina.util.CharsetMapper"
         cookies="true"
         crossContext="false"
         debug="0"
         displayName="Voyager WebVoyage Spellcheck"
         docBase="/m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck"
         mapperClass="org.apache.catalina.core.StandardContextMapper"
         privileged="false"
         reloadable="false"
         swallowOutput="false"
         useNaming="true"
         wrapperClass="org.apache.catalina.core.StandardWrapper">
      
         <Logger
            className="org.apache.catalina.logger.FileLogger"
            verbosity="0"
            directory="logs"
            prefix="spell."
            suffix=".log"
            timestamp="true" />
      
         <!-- uncomment the following to limit access to connections from this machine only -->
         <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/> -->
      </Context>
      							
    5. The changes made to the new context are:
      1. Change <Context path="/vwebv" to <Context path="/spellcheck"
      2. Change displayName="Voyager WebVoyage" to displayName="Voyager WebVoyage Spellcheck"
      3. Change docBase="/m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv"
        to docBase="/m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck"
      4. Change {xxxdb} to your database name.
      5. Change prefix="vwebv." to prefix="spell." to create a separate log file.
    6. Version 7.1.x

      
      <Context path="/vwebv"
         className="org.apache.catalina.core.StandardContext"
         cachingAllowed="true"
         charsetMapperClass="org.apache.catalina.util.CharsetMapper"
         cookies="true"
         crossContext="false"
         displayName="Voyager WebVoyage"
         docBase="/m1/voyager/xxxdb/tomcat/vwebv/context/vwebv"
         privileged="true"
         reloadable="false"
         swallowOutput="false"
         useNaming="true"
         wrapperClass="org.apache.catalina.core.StandardWrapper">
      
      
         <!-- uncomment the following to limit access to connections from this machine only -->
         <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/> -->
      </Context>
      
      <Context path="/spellcheck"
         className="org.apache.catalina.core.StandardContext"
         cachingAllowed="true"
         charsetMapperClass="org.apache.catalina.util.CharsetMapper"
         cookies="true"
         crossContext="false"
         displayName="Voyager WebVoyage Spellcheck"
         docBase="/m1/voyager/xxxdb/tomcat/vwebv/spellcheck"
         privileged="true"
         reloadable="false"
         swallowOutput="false"
         useNaming="true"
         wrapperClass="org.apache.catalina.core.StandardWrapper">
      
      
         <!-- uncomment the following to limit access to connections from this machine only -->
         <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/> -->
      </Context>
      							
    7. The changes made to the new context are:
      1. Change <Context path="/vwebv" to <Context path="/spellcheck"
      2. Change displayName="Voyager WebVoyage" to displayName="Voyager WebVoyage Spellcheck"
      3. Change docBase="/m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv"
        to docBase="/m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck"
      4. Change {xxxdb} to your database name.
  4. Tell apache to allow tomcat to display the new context:
    1. Find the apache configuration files:
      cd /m1/shared/apache2/conf/ConfiguredVirtualHosts
    2. Back up xxxdb_vwebv_httpd.conf:
      cp xxxdb_vwebv_httpd.conf xxxdb_vwebv_httpd.conf.bak
    3. Edit xxxdb_vwebv_httpd.conf thusly:
    4. Alias /vwebv/ui/ "/m1/voyager/xxxdb/tomcat/vwebv/context/vwebv/ui/"
      Alias /spellcheck/ "/m1/voyager/xxxdb/tomcat/vwebv/spellcheck/"
    5. Back up xxxdb.jkmounts.conf:
      cp xxxdb.jkmounts.conf xxxdb.jkmounts.conf.bak
    6. Edit xxxdb.jkmounts.conf by adding the following line to the bottom of the list:
      JkMount /vwebv/vwe* ajp13_lb_xxxdb_vwebv
      JkMount /spellcheck* ajp13_lb_xxxdb_vwebv
    7. Don't forget to change xxxdb to your database name.
  5. Restart Apache server /etc/init.d/httpd2 stop; /etc/init.d/httpd2 start
  6. Start Tomcat /m1/voyager/xxxdb/tomcat/vwebv/tsvrctl start
  7. Tell the spellchecker where to find the desired dictionary
    1. Edit /m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck/WEB-INF/spellcheck.properties.
      The value of the dictionary.english must be the full path to english.0
    2. Example:
      dictionary.english=/m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck/WEB-INF/english.0
  8. Test the spellchecker by opening a browser and entering:
    http://your.library.domain/spellcheck/spellcheck?searchArg=captian
    The result should be something like this:
    <?xml version="1.0" encoding="UTF-8"?>
      <spellcheck>
        <word text="captian">
          <suggestion>caption</suggestion>
          <suggestion>captain</suggestion>
        </word>
      </spellcheck>
    
    The test must be working before continuing!

      The arguments you can send to the Spellcheck servlet are:
    • searchArg - This is required and is the word against which the dictionary will be checked.
      Example URL parameter: searchArg=pikle+captian
    • dict - This is the dictionary to use. It is the word after the first period of the dictionary parameter in spellcheck.properties. The english.0 dictionary is used by default.
      For example, if in spellcheck.properties, there exists the following entry:
      dictionary.cats=/m1/voyager/xxxdb/tomcat/vwebv/spellcheck/WEB-INF/felines.0
      Example URL parameter: dict=cats
    • reload - Once a dictionary is loaded, it remains in use until a dictionary is reloaded. If entries are added to the dictionary currently in use, the servlet will not see the new entries until the dictionary is reloaded. If a new dictionary is desired, it must be specified with dict and then reloaded.
      Example URL parameter: reload=true
    • A more complete example of how dictionaries are loaded:

      When tomcat is first started, the dictionary is loaded by a user call to
      http://your.library.domain/spellcheck/spellcheck?searchArg=captian
      Because no dictionary is specified, the default english dictionary was used.

      I then add Supercalifragilisticexpialidocious to the english dictionary. A search for supercalifragilsticexpialidocious (missing an i) will return no results until I call the servlet with reload=true
      http://your.library.domain/spellcheck/spellcheck?searchArg=supercalifragilsticexpialidocious&reload=true

      Now I would like to check the spelling of trés, which I'm quite sure is French for very. To do this, I ask for a new dictionary with dict=french&reload=true like so:
      http://your.library.domain/spellcheck/spellcheck?searchArg=trés&dict=french&reload=true
      assuming I have dictionary.french=/path/to/a/french_dictionary.0 in my spellcheck.properties file.

    • When using these various parameters with WebVóyage, the parameters will be sent from the spellcheck.js JavaScript file. For example, if your user is searching subjects, you may only want to use a subject keyword dictionary that you created (explained below). You can parse the query string for searchCode=SUBJ, then change the dictionary using dict=subject&reload=true in the call to the Spellcheck servlet. Again, this assumes you have dictionary.subject=/path/to/subject_keyword_dictionary.0 entered in your spellcheck.properties file.

  9. Add spellchecking to WebVóyage
    1. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/xsl/userTextConfigs/pageProperties.xml, make the following changes (I have it all on one line in our file, but it runs off the page in printing, so it is split over 4 lines in the instructions):
    2. <pageMsg errorCode="searchResults.noHits">Search resulted in no hits.
      <span id='spellcheck_message'></span> <span id="close_box" onclick="hide_spelling()">X</span> <script type='text/javascript'>spellcheck();</script></pageMsg>
    3. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/xsl/pageTools/frameWork.xsl, make the following changes: (This will load the JavaScript only if a search page is hit.)
    4. <script type="text/javascript" src="{$jscript-loc}ajaxUtils.js"/>
      <xsl:variable name="searchPages" 
      select="'page.searchBasic page.searchAdvanced page.searchSubject page.searchAuthor' "/> <xsl:if test="contains($searchPages,/page:page/@nameId)"> <script type="text/javascript" src="{$jscript-loc}spellcheck.js"/> </xsl:if>
    5. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/xsl/pageTools/tools.xsl, make the following changes: (This lets us control the noHits area with JavaScript.)
    6. <p class="{$messageClass}" id="{$messageClass}">
    7. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/css/searchPages.css, add:
    8. p.noHitsError
      {
         background:#FFFF90 none repeat scroll 0%;
         border:1px solid red;
         color:#FF0000;
         font-weight:bold;
         padding:5px;
         text-align:center;
         width:300px; 
         position:relative;
      }
      #close_box {position:absolute;right:1px;top:1px;border:1px solid red;cursor:pointer;}
      						
  10. Test your spellchecker by doing a WebVóyage Basic Search for pikcle or captian

Update Instructions

To update from version 2.3 to version 2.4.7, follow these simple instructions.
  1. Download tomcat_spellcheck-2.4.7.tar.gz or tomcat_spellcheck-2.4.7.zip.
  2. Replace the classes directory found at /m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck/WEB-INF/classes/
    with the classes directory found at spellcheck/WEB-INF/classes/ in the downloaded file.
  3. Replace /m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck/WEB-INF/web.xml
    with spellcheck/WEB-INF/web.xml from the downloaded file.
  4. Stop Tomcat /m1/voyager/xxxdb/tomcat/vwebv/tsvrctl stop
  5. Start Tomcat /m1/voyager/xxxdb/tomcat/vwebv/tsvrctl start
  6. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/xsl/userTextConfigs/pageProperties.xml, make the following changes (I have it all on one line in our file, but it runs off the page in printing, so it is split over 3 lines in the instructions):
  7. <pageMsg errorCode="searchResults.noHits">Search resulted in no hits.<span id='spellcheck_message'></span>
    <span id="close_box" onclick="hide_spelling()">X</span>
    <script type='text/javascript'>spellcheck();</script></pageMsg>
  8. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/xsl/pageTools/tools.xsl, make the following changes: (This lets us control noHitsError with JavaScript.)
  9. <p class="{$messageClass}" id="{$messageClass}">
  10. In /m1/voyager/{xxxdb}/tomcat/vwebv/context/vwebv/ui/{skin}/css/searchPages.css, add the following lines:
  11. p.noHitsError
    {
       background:#FFFF90 none repeat scroll 0%;
       border:1px solid red;
       color:#FF0000;
       font-size:1em;
       font-weight:bold;
       padding:5px;
       text-align:center;
       width:300px; 
       position:relative;
    }
    #close_box {position:absolute;right:1px;top:1px;border:1px solid red;cursor:pointer;}
    				

How It Works

When the search results in no hits, the spellcheck.js javascript is called via the <pageMsg errorCode=""> tag in pageProperties.xml.

In spellcheck.js, an XMLHttpRequest object is created using the Ex Libris-supplied ajaxUtils.js and all user search criteria is gathered together. The searchArg information is sent to the Spellcheck servlet.

In the Spellcheck servlet, the dictionary is consulted and an XML document is returned containing the word(s), any suggestions for each word, and any errors that may have occurred. (See the xml example above)

The spellcheck.js JavaScript parses the xml document returned from the Spellcheck servlet, then formats and prints spelling suggestions.

While the servlet is being consulted, the user sees the message "Searching for suggestions..." When results are returned, the JavaScript then replaces this message with the new information. Voila!

Creating Custom Dictionaries

Ignore everything below and rush right over to Michael Doran's site to get a nice tool for creating custom dictionaries.

The Authors and Subjects in your OPAC don't always show up in the English dictionary.
For that matter, many other languages don't always show up in the English dictionary. It is, in fact, quite rare. ;-)

So I've written a couple of tools that will allow you to add lists of words to a dictionary that can be used for checking spelling.

What we did was to pull the authors' names and the subjects from our Voyager database and add them to the english dictionary to create one very large dictionary. I'll describe what we did, then you can work out your own customized dictionary from there...

  1. The Amazing Vicki Fite pulled subject keywords from Voyager's BIB_INDEX table into an Excel spreadsheet using the following query:
    SELECT DISTINCT utf8to16([DISPLAY_HEADING]) AS heading, BIB_INDEX.INDEX_CODE
    FROM BIB_INDEX
    WHERE ((BIB_INDEX.INDEX_CODE) Like "6*")
    ORDER BY utf8to16([DISPLAY_HEADING]);
    						
  2. The Amazing Vicki then pulled authors' names from Voyager's BIB_INDEX table into an Excel spreadsheet using INDEX_CODEs 100H and 700H
  3. I copied and pasted the data from each spreadsheet into its own text file. (I could not save the Excel spreadsheet as a text file for some unknown reason.)
  4. I wrote a program, DictionaryMaker.jar, located in the programs directory of the download that strips the punctuation, grabs the first word, removes duplicates, sorts the results, then saves the output in another text file, all with a simple-to-use GUI interface! Note: Using either of these Dictionary*.jar programs may require you to have your java PATH set on your system. Visit http://java.com/en/download/help/path.xml for more information on PATH and CLASSPATH.
  5. To use DictionaryMaker.jar:
    1. java -jar DictionaryMaker.jar will run the program.
    2. Click Choose raw file... and select the file.
    3. Click Choose output file... and enter the name of the file to be created.
    4. Click Run

Well, that's all well and good, but do we really want to have to open the English dictionary, then the author dictionary, then the subject dictionary in order to check the spelling for a keyword search? Of course not! So I wrote another program that will combine the dictionaries together, remove the duplicates, and sort the results. (Also located in the programs directory of the download file.)

  • To use DictionaryCombiner.jar:
    1. java -jar DictionaryCombiner.jar will run the program.
    2. Click Choose first dictionary... and select the first dictionary.
    3. Click Choose second dictionary... and select the second dictionary.
    4. Click Choose output file... and enter the name of the file to be created.
    5. Click Run
    A few thoughts about dictionaries:
  • After creating the dictionaries, I ran the DictionaryCombiner program once to combine our author.0 and subject.0 dictionaries into author_subjects.0, then I ran it again to combine the author_subjects.0 dictionary with the english.0 dictionary, which I called tcc_opac.0, which I then mapped in /m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck/WEB-INF/spellcheck.properties with this line: dictionary.tcc_opac=/m1/voyager/xxxdb/tomcat/vwebv/spellcheck/WEB-INF/tcc_opac.0
  • A dictionary can have only one word per line. If there is a space on a line, anything beyond the space is simply ignored. This is why we created a dictionary containing only author last names instead of trying to do full names.
  • The Spellcheck servlet checks one word at a time and does not see any relationship between any two words other than returning the words in the same order in which it receives them.
  • As far as I know, a dictionary can have any name, but since the default English dictionary was called english.0, I've stuck with that naming convention. You can call your dictionary tuna.fish as long as you map it properly in spellcheck.properties. (I tried it. It works. ;-)
  • Loading a dictionary takes memory, so the Java class that loads the dictionary is a Singleton, which means only one instance of the class can ever be created at a time. This means that when a dictionary is loaded, the servlet retains that dictionary until you specifically reload it with reload=true as described above.

Changes

  • v2.4.7 - (2010.02.18) Fixed JavaScript to handle apostrophes (e.g. Amerika's Cup). Thanks to Tom Mendenhall at HSU Library for pointing out this glaring oversight.
  • v2.4.6 - Updated instructions for Voyager 7.1.x
  • v2.4.5 - (2009.04.29) Revised character encoding so diacritics would play (and display) nice. Added a close box to the No Hits. Thanks again to Michael Doran at University of Texas at Arlington for patiently troubleshooting and contributing code to the JavaScript and for writing the easy-to-use custom dictionary creation tool.
  • v2.4.2 - (2009.04.16) Added character encoding so diacritics would play (and display) nice. Thanks to Michael Doran at University of Texas at Arlington for bringing this to my attention and for patiently troubleshooting.
  • v2.3 - (2008-10-06) Revised spellcheck.js to convert words to be checked to lowercase because the spellcheck engine (Jazzy) ignores words in all uppercase. Thanks to Jamie Denman at University College Falmouth for bringing this to my attention.
  • v2.2 - (2008.09.19) Revised and recompiled the DictionaryMaker and DictionaryCombiner programs to work with older versions of Java on Windows. Updated PATH information in the instructions.
  • v2.1 - (2008.09.05) Revised the Spellcheck servlet. Correctly spelled words are no longer returned as suggestions in the XML document, only as an attribute to the <word> tag. Thanks to Andrew Brown at Swansea University for playing the role of guinea pig and discovering this less than useful 'feature'. ;-)
  • v2.0 - (2008.09.02) WebVóyage 7 version utilizing servlets.
  • v1.3 - (2007.08.14) Changes Global Keyword searches to Command Searches for use with the AND, OR and NOT Booleans in the suggestions.
  • v1.2 - (2007.05.07) Added support for Simple and Combined Searches.
  • v1.1 - (2006.10.01) Initial release using Perl and aspell.
  • v1.0 - (2006.08.01) Initial release using PHP and aspell.
  • v0.1 - (2004.08.01) Used Google's SOAP interface (available here). Developer keys are no longer available from Google.

Troubleshooting

  • Make sure your paths are correct.
  • spellcheck.properties must exist in /m1/voyager/{xxxdb}/tomcat/vwebv/spellcheck/WEB-INF/ and must point to a valid dictionary.
  • Be sure to change all the {xxxdb} to your database.
  • Be sure to change all the {skin} to your skin.
  • Use Firefox and install Firebug!

To Do

  • Fix character encoding for direct access to the spellcheck servlet. Currently, precomposed diacritics pose a problem that is resolved by passing it through the JavaScript.

Questions and comments can be sent to Jim Robinson at Tarrant County College.

Last modified: July 25, 2011.
since Sep 5 08
566:2009-04-15
666:2009-04-29