From b824bbd87c00e0ce3a1cb85ef8f4ca36adf628b5 Mon Sep 17 00:00:00 2001 From: Kasun Gajasinghe Date: Sat, 17 Jul 2010 19:48:06 +0000 Subject: [PATCH] Improvements and some fixes for web interface. javascript stemming improvements. --KasunBG --- xsl/webhelp/build.properties | 2 +- xsl/webhelp/build.xml | 234 +++---- xsl/webhelp/indexer/lib/nw-cms.jar | Bin 27452 -> 27256 bytes .../com/nexwave/nquindexer/IndexerTask.java | 54 +- .../com/nexwave/nquindexer/SaxHTMLIndex.java | 6 +- .../com/nexwave/stemmer/EnglishStemmer.java | 625 ------------------ .../template/common/css/positioning.css | 57 +- xsl/webhelp/template/common/main.js | 2 +- .../template/content/search/nwSearchFnt.js | 83 ++- 9 files changed, 256 insertions(+), 807 deletions(-) delete mode 100755 xsl/webhelp/indexer/src/com/nexwave/stemmer/EnglishStemmer.java diff --git a/xsl/webhelp/build.properties b/xsl/webhelp/build.properties index 05dc5410a..a2bb4ef6a 100755 --- a/xsl/webhelp/build.properties +++ b/xsl/webhelp/build.properties @@ -24,4 +24,4 @@ exclude.search.from.chunked.html=false #This will be used to identify the correct stemmer, and punctuations that differs from language to language. #see the documentation for details. en=English, de=German, cn=Chinese, jp=Japanese etc. #Country codes are available at: http://www.uspto.gov/patft/help/helpctry.htm -indexer-language=de +indexer-language=en diff --git a/xsl/webhelp/build.xml b/xsl/webhelp/build.xml index 30ae92ba2..2326e3376 100755 --- a/xsl/webhelp/build.xml +++ b/xsl/webhelp/build.xml @@ -1,117 +1,125 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indexing html files in ${frameset.base.dir}/content - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Usage: - doc: Generate the documentation in the doc dir and index it. - chunk: Generate the frameset. - index: Index the content. - build-indexer: Rebuilds the indexer. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indexing html files in ${frameset.base.dir}/content + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Usage: + doc: Generate the documentation in the doc dir and index it. + chunk: Generate the frameset. + index: Index the content. + build-indexer: Rebuilds the indexer. + diff --git a/xsl/webhelp/indexer/lib/nw-cms.jar b/xsl/webhelp/indexer/lib/nw-cms.jar index c4c3a878e08e3adbf6e1edc5f7cdd7cb0b403663..2d7fb6941b0d6e3fd8d5851862127ef0aadd57f9 100755 GIT binary patch delta 6462 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 wordsList = props.getListFiles(); - System.out.println("props files:"+wordsList); - //TODO all properties are taken toa single arraylist. does it ok?. +// System.out.println("props files:"+wordsList); + //TODO all properties are taken to a single arraylist. does it ok?. Properties enProps =new Properties (); - String propsDir = new String (inputDir.getPath().concat(File.separator).concat(searchdir)); + String propsDir = inputDir.getPath().concat(File.separator).concat(searchdir); // Init the lists which will contain the words and chars to remove cleanUpStrings = new ArrayList(); @@ -301,30 +304,29 @@ public class IndexerTask{ try { // Retrieve words to remove - for (int i =0; i tempSet = new HashSet(); diff --git a/xsl/webhelp/indexer/src/com/nexwave/stemmer/EnglishStemmer.java b/xsl/webhelp/indexer/src/com/nexwave/stemmer/EnglishStemmer.java deleted file mode 100755 index bbf77b2af..000000000 --- a/xsl/webhelp/indexer/src/com/nexwave/stemmer/EnglishStemmer.java +++ /dev/null @@ -1,625 +0,0 @@ -package com.nexwave.stemmer; - -/* - - Porter stemmer in Java. The original paper is in - - Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14, - no. 3, pp 130-137, - - See also http://www.tartarus.org/~martin/PorterStemmer - - History: - - Release 1 - - Bug 1 (reported by Gonzalo Parra 16/10/99) fixed as marked below. - The words 'aed', 'eed', 'oed' leave k at 'a' for step 3, and b[k-1] - is then out outside the bounds of b. - - Release 2 - - Similarly, - - Bug 2 (reported by Steve Dyrdahl 22/2/00) fixed as marked below. - 'ion' by itself leaves j = -1 in the test for 'ion' in step 5, and - b[j] is then outside the bounds of b. - - Release 3 - - Considerably revised 4/9/00 in the light of many helpful suggestions - from Brian Goetz of Quiotix Corporation (brian@quiotix.com). - - Release 4 - -*/ - -import java.io.*; - -/** - * Stemmer, implementing the Porter Stemming Algorithm - *

- * The Stemmer class transforms a word into its root form. The input - * word can be provided a character at time (by calling add()), or at once - * by calling one of the various stem(something) methods. - */ - -public class EnglishStemmer extends Stemmer { - private char[] b; - private int i, /* offset into b */ - i_end, /* offset to end of stemmed word */ - j, k; - private static final int INC = 50; - /* unit of size whereby b is increased */ - - public EnglishStemmer() { - b = new char[INC]; - i = 0; - i_end = 0; - } - - /** - * Add a character to the word being stemmed. When you are finished - * adding characters, you can call stem(void) to stem the word. - */ - - public void add(char ch) { - if (i == b.length) { - char[] new_b = new char[i + INC]; - for (int c = 0; c < i; c++) new_b[c] = b[c]; - b = new_b; - } - b[i++] = ch; - } - - - /** - * Adds wLen characters to the word being stemmed contained in a portion - * of a char[] array. This is like repeated calls of add(char ch), but - * faster. - */ - - public void add(char[] w, int wLen) { - if (i + wLen >= b.length) { - char[] new_b = new char[i + wLen + INC]; - for (int c = 0; c < i; c++) new_b[c] = b[c]; - b = new_b; - } - for (int c = 0; c < wLen; c++) b[i++] = w[c]; - } - - /** - * After a word has been stemmed, it can be retrieved by toString(), - * or a reference to the internal buffer can be retrieved by getResultBuffer - * and getResultLength (which is generally more efficient.) - */ - public String toString() { - return new String(b, 0, i_end); - } - - /** - * Returns the length of the word resulting from the stemming process. - */ - public int getResultLength() { - return i_end; - } - - /** - * Returns a reference to a character buffer containing the results of - * the stemming process. You also need to consult getResultLength() - * to determine the length of the result. - */ - public char[] getResultBuffer() { - return b; - } - - /* cons(i) is true <=> b[i] is a consonant. */ - - private final boolean cons(int i) { - switch (b[i]) { - case 'a': - case 'e': - case 'i': - case 'o': - case 'u': - return false; - case 'y': - return (i == 0) ? true : !cons(i - 1); - default: - return true; - } - } - - /* m() measures the number of consonant sequences between 0 and j. if c is - a consonant sequence and v a vowel sequence, and <..> indicates arbitrary - presence, - - gives 0 - vc gives 1 - vcvc gives 2 - vcvcvc gives 3 - .... - */ - - private final int m() { - int n = 0; - int i = 0; - while (true) { - if (i > j) return n; - if (!cons(i)) break; - i++; - } - i++; - while (true) { - while (true) { - if (i > j) return n; - if (cons(i)) break; - i++; - } - i++; - n++; - while (true) { - if (i > j) return n; - if (!cons(i)) break; - i++; - } - i++; - } - } - - /* vowelinstem() is true <=> 0,...j contains a vowel */ - - private final boolean vowelinstem() { - int i; - for (i = 0; i <= j; i++) if (!cons(i)) return true; - return false; - } - - /* doublec(j) is true <=> j,(j-1) contain a double consonant. */ - - private final boolean doublec(int j) { - if (j < 1) return false; - if (b[j] != b[j - 1]) return false; - return cons(j); - } - - /* cvc(i) is true <=> i-2,i-1,i has the form consonant - vowel - consonant - and also if the second c is not w,x or y. this is used when trying to - restore an e at the end of a short word. e.g. - - cav(e), lov(e), hop(e), crim(e), but - snow, box, tray. - - */ - - private final boolean cvc(int i) { - if (i < 2 || !cons(i) || cons(i - 1) || !cons(i - 2)) return false; - { - int ch = b[i]; - if (ch == 'w' || ch == 'x' || ch == 'y') return false; - } - return true; - } - - private final boolean ends(String s) { - int l = s.length(); - int o = k - l + 1; - if (o < 0) return false; - for (int i = 0; i < l; i++) if (b[o + i] != s.charAt(i)) return false; - j = k - l; - return true; - } - - /* setto(s) sets (j+1),...k to the characters in the string s, readjusting - k. */ - - private final void setto(String s) { - int l = s.length(); - int o = j + 1; - for (int i = 0; i < l; i++) b[o + i] = s.charAt(i); - k = j + l; - } - - /* r(s) is used further down. */ - - private final void r(String s) { - if (m() > 0) setto(s); - } - - /* step1() gets rid of plurals and -ed or -ing. e.g. - - caresses -> caress - ponies -> poni - ties -> ti - caress -> caress - cats -> cat - - feed -> feed - agreed -> agree - disabled -> disable - - matting -> mat - mating -> mate - meeting -> meet - milling -> mill - messing -> mess - - meetings -> meet - - */ - - private final void step1() { - if (b[k] == 's') { - if (ends("sses")) k -= 2; - else if (ends("ies")) setto("i"); - else if (b[k - 1] != 's') k--; - } - if (ends("eed")) { - if (m() > 0) k--; - } else if ((ends("ed") || ends("ing")) && vowelinstem()) { - k = j; - if (ends("at")) setto("ate"); - else if (ends("bl")) setto("ble"); - else if (ends("iz")) setto("ize"); - else if (doublec(k)) { - k--; - { - int ch = b[k]; - if (ch == 'l' || ch == 's' || ch == 'z') k++; - } - } else if (m() == 1 && cvc(k)) setto("e"); - } - } - - /* step2() turns terminal y to i when there is another vowel in the stem. */ - - private final void step2() { - if (ends("y") && vowelinstem()) b[k] = 'i'; - } - - /* step3() maps double suffices to single ones. so -ization ( = -ize plus - -ation) maps to -ize etc. note that the string before the suffix must give - m() > 0. */ - - private final void step3() { - if (k == 0) return; /* For Bug 1 */ - switch (b[k - 1]) { - case 'a': - if (ends("ational")) { - r("ate"); - break; - } - if (ends("tional")) { - r("tion"); - break; - } - break; - case 'c': - if (ends("enci")) { - r("ence"); - break; - } - if (ends("anci")) { - r("ance"); - break; - } - break; - case 'e': - if (ends("izer")) { - r("ize"); - break; - } - break; - case 'l': - if (ends("bli")) { - r("ble"); - break; - } - if (ends("alli")) { - r("al"); - break; - } - if (ends("entli")) { - r("ent"); - break; - } - if (ends("eli")) { - r("e"); - break; - } - if (ends("ousli")) { - r("ous"); - break; - } - break; - case 'o': - if (ends("ization")) { - r("ize"); - break; - } - if (ends("ation")) { - r("ate"); - break; - } - if (ends("ator")) { - r("ate"); - break; - } - break; - case 's': - if (ends("alism")) { - r("al"); - break; - } - if (ends("iveness")) { - r("ive"); - break; - } - if (ends("fulness")) { - r("ful"); - break; - } - if (ends("ousness")) { - r("ous"); - break; - } - break; - case 't': - if (ends("aliti")) { - r("al"); - break; - } - if (ends("iviti")) { - r("ive"); - break; - } - if (ends("biliti")) { - r("ble"); - break; - } - break; - case 'g': - if (ends("logi")) { - r("log"); - break; - } - } - } - - /* step4() deals with -ic-, -full, -ness etc. similar strategy to step3. */ - - private final void step4() { - switch (b[k]) { - case 'e': - if (ends("icate")) { - r("ic"); - break; - } - if (ends("ative")) { - r(""); - break; - } - if (ends("alize")) { - r("al"); - break; - } - break; - case 'i': - if (ends("iciti")) { - r("ic"); - break; - } - break; - case 'l': - if (ends("ical")) { - r("ic"); - break; - } - if (ends("ful")) { - r(""); - break; - } - break; - case 's': - if (ends("ness")) { - r(""); - break; - } - break; - } - } - - /* step5() takes off -ant, -ence etc., in context vcvc. */ - - private final void step5() { - if (k == 0) return; /* for Bug 1 */ - switch (b[k - 1]) { - case 'a': - if (ends("al")) break; - return; - case 'c': - if (ends("ance")) break; - if (ends("ence")) break; - return; - case 'e': - if (ends("er")) break; - return; - case 'i': - if (ends("ic")) break; - return; - case 'l': - if (ends("able")) break; - if (ends("ible")) break; - return; - case 'n': - if (ends("ant")) break; - if (ends("ement")) break; - if (ends("ment")) break; - /* element etc. not stripped before the m */ - if (ends("ent")) break; - return; - case 'o': - if (ends("ion") && j >= 0 && (b[j] == 's' || b[j] == 't')) break; - /* j >= 0 fixes Bug 2 */ - if (ends("ou")) break; - return; - /* takes care of -ous */ - case 's': - if (ends("ism")) break; - return; - case 't': - if (ends("ate")) break; - if (ends("iti")) break; - return; - case 'u': - if (ends("ous")) break; - return; - case 'v': - if (ends("ive")) break; - return; - case 'z': - if (ends("ize")) break; - return; - default: - return; - } - if (m() > 1) k = j; - } - - /* step6() removes a final -e if m() > 1. */ - - private final void step6() { - j = k; - if (b[k] == 'e') { - int a = m(); - if (a > 1 || a == 1 && !cvc(k - 1)) k--; - } - if (b[k] == 'l' && doublec(k) && m() > 1) k--; - } - - /** - * Stem the word placed into the Stemmer buffer through calls to add(). - * Returns true if the stemming process resulted in a word different - * from the input. You can retrieve the result with - * getResultLength()/getResultBuffer() or toString(). - */ - public void stem() { - k = i - 1; - if (k > 1) { - step1(); - step2(); - step3(); - step4(); - step5(); - step6(); - } - i_end = k + 1; - i = 0; - } - - /** - * stems a given word and returns the stemmed output as a string. converts the word to lowercase before stem. - * - * @param word the word that needs to be stemmed ex: Technical - * @return stemmed word ex: technic - */ - public String doStem(String word) { - word = word.trim().toLowerCase(); - add(word.toCharArray(), word.length()); - stem(); - - return this.toString(); - } - - /** - * stems a given array of words and returns the stemmed output as a string array. converts the words to lowercase before stem. - * - * @param words string array words that needs to be stemmed ex: {"Technical", "publications"} - * @return stemmed array ex: {"technic", "public"} - */ - public String[] doStem(String[] words) { - String[] stemmedWords = new String[words.length]; - for (int i = 0; i < words.length; i++) { - String word = words[i]; - word = word.trim().toLowerCase(); - add(word.toCharArray(), word.length()); - stem(); - stemmedWords[i] = this.toString(); - - } - return stemmedWords; - } - - /** - * Test program for demonstrating the Stemmer. It reads text from a - * a list of files, stems each word, and writes the result to standard - * output. Note that the word stemmed is expected to be in lower case: - * forcing lower case must be done outside the Stemmer class. - * Usage: Stemmer file-name file-name ... - */ - public static void main(String[] args) { - EnglishStemmer s = new EnglishStemmer(); - - String[] words = "common use requirement for Technical publications groups is to produce a Web-based help format that includes a table of contents pane, a search feature".split("\\s+"); - for (String word : words) { - System.out.print(s.doStem(word) + " "); - } - - System.out.println("Test2========================================="); - - char[] w = new char[501]; - //for each file, - for (int i = 0; i < args.length; i++) - try { - FileInputStream in = new FileInputStream(args[i]); - - try { - while (true) - - { - int ch = in.read(); - if (Character.isLetter((char) ch)) { - int j = 0; - while (true) { - ch = Character.toLowerCase((char) ch); - w[j] = (char) ch; - if (j < 500) j++; - ch = in.read(); - if (!Character.isLetter((char) ch)) { - /* to test add(char ch) */ - for (int c = 0; c < j; c++) s.add(w[c]); - - /* or, to test add(char[] w, int j) */ - /* s.add(w, j); */ - - s.stem(); - { - String u; - - // and now, to test toString() : - u = s.toString(); - - // to test getResultBuffer(), getResultLength() : - u = new String(s.getResultBuffer(), 0, s.getResultLength()); - - System.out.print(u); - } - break; - } - } - } - if (ch < 0) break; - System.out.print((char) ch); - } - } - catch (IOException e) { - System.out.println("error reading " + args[i]); - break; - } - } - catch (FileNotFoundException e) { - System.out.println("file " + args[i] + " not found"); - break; - } - } -} diff --git a/xsl/webhelp/template/common/css/positioning.css b/xsl/webhelp/template/common/css/positioning.css index d5e1830ef..e9889a662 100755 --- a/xsl/webhelp/template/common/css/positioning.css +++ b/xsl/webhelp/template/common/css/positioning.css @@ -35,20 +35,20 @@ h2 { top: 90px; bottom: 0; left: 0; - width: 230px; - margin: 0 0 0 10px; + width: 280px; z-index: 1500; + border-right:2px solid #CCCCCC; } #content { position: relative; top: 90px; /* left: 240px;*/ right: auto; /* bottom: 20px; */ - margin: 0px 0px 0px 240px; + margin: 0px 0px 0px 280px; width: auto; height: inherit; padding-left: 5px; - padding-right: 12px; + padding-right: 30px; color: #000000; border-left: 2px solid #cccccc; /*overflow :scroll;*/ z-index: 1000; @@ -57,9 +57,11 @@ h2 { #content h1, #content h2 { color: #cc0000; } + .navfooter { bottom: 2%; } + .pointLeft { background: url("../images/showHideTreeIcons.png") 0 0 no-repeat; height: 28px; @@ -67,9 +69,54 @@ h2 { display: block; font-size: 0; } + .pointRight { background: url("../images/showHideTreeIcons.png") -15px 0 no-repeat; height: 28px; display: block; font-size: 0; -} \ No newline at end of file +} + +/* Search results */ + +.searchExpression { + color: #0050A0; + background-color: #EBEFF8; + font-size: 12pt; + +} + +ul.searchresult li a { + text-decoration: none; + color: #0050A0; + +} + +ul.searchresult li { + color: #0050A0; +} + +.shortdesc { + color: #0053AC; + margin-bottom: 30px; + margin-left: 20px; +} + +.shortdesclink { + color: gray; + font-size: 9pt; +} + +.searchText { + border: #BFCEE9 solid 1pt; + width: 11em +} + +.searchButton { + background: #EBEFF8; + color: #0050A0; + border: #BFCEE9 solid 1pt; + font-weight: bold; + font-size: 10pt +} + diff --git a/xsl/webhelp/template/common/main.js b/xsl/webhelp/template/common/main.js index e2318f35e..a23976ec1 100755 --- a/xsl/webhelp/template/common/main.js +++ b/xsl/webhelp/template/common/main.js @@ -106,7 +106,7 @@ function showHideToc() { } else { //Show the TOC showHideButton.removeClass('pointRight').addClass('pointLeft'); - content.css("margin", "0 0 0 240px"); + content.css("margin", "0 0 0 280px"); leftNavigation.css("display","block"); showHideButton.attr("title", "Show the TOC Tree"); } diff --git a/xsl/webhelp/template/content/search/nwSearchFnt.js b/xsl/webhelp/template/content/search/nwSearchFnt.js index 7dfc6069e..b456f894c 100755 --- a/xsl/webhelp/template/content/search/nwSearchFnt.js +++ b/xsl/webhelp/template/content/search/nwSearchFnt.js @@ -27,12 +27,12 @@ function Verifie(ditaSearch_Form) { expressionInput = document.ditaSearch_Form.textToSearch.value //Set a cookie to store the searched keywords - $.cookie('textToSearch', expressionInput); + $.cookie('textToSearch', expressionInput); if (expressionInput.length < 1) { - // expression invalide (vide) + // expression invalide (vide) alert(txt_enter_at_least_1_char); // reactive la fenetre de search (utile car cadres) document.ditaSearch_Form.textToSearch.focus(); @@ -47,6 +47,7 @@ function Verifie(ditaSearch_Form) { } } +var stemQueryMap = new Array(); // A hashtable which maps stems to query words /* This function parses the search expression, loads the indices and displays the results*/ function Effectuer_recherche(expressionInput) { @@ -60,8 +61,8 @@ function Effectuer_recherche(expressionInput) { scriptLetterTab = new scriptfirstchar(); // Array containing the first letter of each word to look for var scriptsarray = new Array(); // Array with the name of the scripts to load var wordsList = new Array(); // Array with the words to look for - var stemmedWordsList = new Array(); // Array with the words to look for - var cleanwordsList = new Array(); // Array with the words to look for after removing spaces + var cleanwordsList = new Array(); // Array with the words to look for + var stemmedWordsList = new Array(); // Array with the words to look for after removing spaces var listNumerosDesFicStr = ""; var ou_recherche = true; var linkTab = new Array(); @@ -69,56 +70,64 @@ function Effectuer_recherche(expressionInput) { var fileAndWordList = new Array(); var txt_wordsnotfound = ""; + /*nqu: expressionInput, la recherche est lower cased, plus remplacement des char speciaux*/ searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "= 0; i--) { if (fileAndWordList[i] != undefined) { - linkTab.push("

" + txt_results_for + " " + "" + fileAndWordList[i][0].motsliste + "" + "

"); + linkTab.push("

" + txt_results_for + " " + "" + fileAndWordList[i][0].motslisteDisplay + "" + "

"); linkTab.push("
    "); for (t in fileAndWordList[i]) { @@ -148,7 +157,7 @@ function Effectuer_recherche(expressionInput) { } } } - + var results=""; if (linkTab.length > 0) { @@ -374,7 +383,7 @@ function SortResults(mots) { //alert ("listNumerosDesFicStr "+listNumerosDesFicStr); tab = listNumerosDesFicStr.split(","); - //for each file (file's index): + //for each file (file's index): for (t2 in tab) { temp = tab[t2].toString(); if (fileAndWordList[temp] == undefined) { @@ -393,16 +402,23 @@ function SortResults(mots) { var temptab = new Array(); for (t in fileAndWordList) { tab = fileAndWordList[t].split(','); - temptab.push(new resultPerFile(t, fileAndWordList[t], tab.length)); + + var tempDisplay = new Array(); + for (var x in tab) { + tempDisplay.push(stemQueryMap[tab[x]]); //get the original word from the stem word. + } + var tempDispString = tempDisplay.join(", "); + + temptab.push(new resultPerFile(t, fileAndWordList[t], tab.length, tempDispString)); fileAndWordListValuesOnly.push(fileAndWordList[t]); } - //alert("t"+fileAndWordListValuesOnly.toString()); + //alert("t"+fileAndWordListValuesOnly.toString()); fileAndWordListValuesOnly = unique(fileAndWordListValuesOnly); fileAndWordListValuesOnly = fileAndWordListValuesOnly.sort(compare_nbMots); - //alert("t: "+fileAndWordListValuesOnly.join(';')); + //alert("t: "+fileAndWordListValuesOnly.join(';')); var listToOutput = new Array(); @@ -422,10 +438,11 @@ function SortResults(mots) { return listToOutput; } -function resultPerFile(filenb, motsliste, motsnb) { +function resultPerFile(filenb, motsliste, motsnb, motslisteDisplay) { this.filenb = filenb; this.motsliste = motsliste; this.motsnb = motsnb; + this.motslisteDisplay= motslisteDisplay; } function compare_nbMots(s1, s2) { -- 2.49.0