Changeset 256

Show
Ignore:
Timestamp:
01/04/08 00:20:22 (1 year ago)
Author:
chris
Message:

Changes to clause display, requested by Nicolai.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lex/trunk/jsp/clause.jsp

    r248 r256  
    107107                "                    type_id, macrorole_number "+ 
    108108                "          [word GET lexeme, phrase_dependent_part_of_speech, " + 
    109                 "                    tense, wordnet_gloss, wordnet_synset, " + 
     109                "                    tense, stem, wordnet_gloss, wordnet_synset, " + 
    110110                "                    graphical_preformative, " + 
    111111                "                    graphical_locative, " + 
     
    165165 
    166166                        SheafConstIterator phrases = clause.getSheaf().const_iterator(); 
     167                        boolean isFirstWord = true; 
    167168         
    168169                        while (phrases.hasNext())  
     
    176177         
    177178                                SheafConstIterator words = phrase.getSheaf().const_iterator(); 
     179                                 
    178180                                while (words.hasNext())  
    179181                                { 
     
    190192                                                private StringBuffer m_hebrew; 
    191193                                                private List m_morphs; 
     194                                                boolean m_IsFirstWord, m_IsLastWord; 
     195                                                boolean m_IsMorpheme; 
    192196                                                 
    193197                                                public HebrewFeatureConverter(TreeNode root, 
    194198                                                        MatchedObject word, StringBuffer hebrew, 
    195                                                         List morphs) 
     199                                                        List morphs, boolean isFirstWord, 
     200                                                        boolean isLastWord) 
    196201                                                { 
    197202                                                        m_root   = root; 
     
    199204                                                        m_hebrew = hebrew; 
    200205                                                        m_morphs = morphs; 
     206                                                        m_IsFirstWord = isFirstWord; 
     207                                                        m_IsLastWord  = isLastWord; 
     208                                                } 
     209                                                 
     210                                                public boolean isMorpheme() 
     211                                                { 
     212                                                        return m_IsMorpheme; 
    201213                                                } 
    202214                                                 
     
    213225                                                        translit = HebrewConverter.toHtml(translit); 
    214226                                                        if (translit.equals("")) translit = "Ø"; 
    215                                                         if (!lastMorpheme) translit += "-"; 
     227                                                         
     228                                                        if (desc != null && desc.equals("CONJ")) 
     229                                                        { 
     230                                                                if (m_IsFirstWord) { desc = "CLM"; } 
     231                                                                else               { desc = "CR"; } 
     232                                                        } 
     233                                                         
     234                                                        // desc += ":" + lastMorpheme + ":" + m_IsLastWord; 
     235                                                         
     236                                                        if (!lastMorpheme) 
     237                                                        { 
     238                                                                translit += "-"; 
     239                                                                desc += "-"; 
     240                                                                m_IsMorpheme = true; 
     241                                                        } 
     242                                                        else if (translit.endsWith("-")) 
     243                                                        { 
     244                                                                desc += "-"; 
     245                                                                lastMorpheme = false; 
     246                                                                m_IsMorpheme = true; 
     247                                                        } 
     248                                                        else 
     249                                                        { 
     250                                                                m_IsMorpheme = false; 
     251                                                        } 
    216252 
    217253                                                        TreeNode node = m_root.createChild(translit); 
     
    219255                                                        if (desc == null) desc = ""; 
    220256                                                        node.createChild(desc); 
     257 
     258                                                        if (lastMorpheme && !m_IsLastWord) 
     259                                                        { 
     260                                                                // blank cell between words 
     261                                                                m_root.createChild(""); 
     262                                                        } 
    221263                                                         
    222264                                                        m_morphs.add(new MorphEdge(morphNode,  
     
    227269                                        HebrewFeatureConverter hfc =  
    228270                                                new HebrewFeatureConverter(root, word, hebrewText, 
    229                                                         morphEdges); 
     271                                                        morphEdges, isFirstWord, 
     272                                                        !phrases.hasNext() && !words.hasNext()); 
    230273                                                 
    231274                                        generator.parse(word, hfc, true); 
    232                                                                                                  
    233                                         hebrewText.append(" ");                                          
    234                                                  
     275                                        isFirstWord = false; 
     276                                         
     277                                        if (!hfc.isMorpheme()) 
     278                                        {                                
     279                                                hebrewText.append(" ");                                          
     280                                        } 
     281                                         
    235282                                        if (psp.equals("verb")) 
    236283                                        { 
  • lex/trunk/src/com/qwirx/lex/morph/HebrewMorphemeGenerator.java

    r211 r256  
    101101                "lexeme", 
    102102                "tense", 
     103                "stem", 
    103104            })); 
    104105        } 
     
    131132            else if (person.equals("unknown"))       person = ""; 
    132133             
    133             String gender = ((String)m_Genders.get( 
    134                 word.getEMdFValue("gender").toString() 
    135                 )).substring(0, 1); 
    136              
    137             String number = ((String)m_Numbers.get( 
    138                 word.getEMdFValue("number").toString() 
    139                 )).substring(0, 1); 
     134            String gender; 
     135            switch (word.getFeatureAsLong(word.getEMdFValueIndex("gender"))) 
     136            { 
     137            case 2: gender = ""; break; 
     138            case 3: gender = "M"; break; 
     139            case 4: gender = "F"; break; 
     140            default: gender = "=" + word.getFeatureAsLong( 
     141                word.getEMdFValueIndex("gender")); 
     142            } 
     143             
     144            String number; 
     145            switch (word.getFeatureAsLong(word.getEMdFValueIndex("number"))) 
     146            { 
     147            case 0: number = ""; break; 
     148            case 3: number = "sg"; break; 
     149            case 4: number = "pl"; break; 
     150            case 5: number = "dl"; break; 
     151            default: number = word.getFeatureAsString( 
     152                word.getEMdFValueIndex("number")); 
     153            } 
    140154             
    141155            String state = (String)m_States.get( 
    142156                word.getEMdFValue("state").toString()); 
     157            if      (state.equals("construct")) { state = "CS"; } 
     158            else if (state.equals("absolute"))  { state = "AB"; } 
    143159             
    144160            gloss = word.getEMdFValue("wordnet_gloss").getString(); 
     
    163179             
    164180            verbEnding = person + gender + number; 
    165             nounEnding = gender + number + "." + state; 
     181            nounEnding = gender + number + state; 
    166182        } 
    167183         
     
    169185        { 
    170186            String tense = null; 
     187            String stem  = null; 
    171188             
    172189            if (generateGloss) 
    173190            { 
    174                 String tenseNum = word.getEMdFValue("tense").toString(); 
    175                 tense = (String)m_Tenses.get(tenseNum); 
     191                tense = word.getFeatureAsString(word.getEMdFValueIndex("tense")); 
     192                if      (tense.equals("imperfect"))  { tense = "IMPF"; } 
     193                else if (tense.equals("perfect"))    { tense = "PRFV"; } 
     194                else if (tense.equals("imperative")) { tense = "IMP"; } 
     195                else if (tense.equals("infinitive_construct")) { tense = "INF"; } 
     196                else if (tense.equals("infinitive_absolute"))  { tense = "EMPH"; } 
     197                else if (tense.equals("participle")) { tense = "PART"; } 
     198                else if (tense.equals("wayyiqtol"))  { tense = "NARR"; } 
     199 
     200                stem = word.getFeatureAsString(word.getEMdFValueIndex("stem")); 
     201                if      (stem.equals("qal"))     { stem = "Qa"; } 
     202                else if (stem.equals("piel"))    { stem = "Pi"; } 
     203                else if (stem.equals("hifil"))   { stem = "Hi"; }  
     204                else if (stem.equals("nifal"))   { stem = "Ni"; } 
     205                else if (stem.equals("pual"))    { stem = "Pu"; } 
     206                else if (stem.equals("hitpael")) { stem = "Hit"; } 
     207                else if (stem.equals("hofal"))   { stem = "Ho"; } 
    176208            } 
    177209             
     
    180212            // String stemNum = word.getEMdFValue("verbal_stem").toString(); 
    181213            handler.convert("graphical_root_formation", false, 
    182                 "(stem)", "V/STM"); 
     214                stem, "V/STM"); 
    183215             
    184216            handler.convert("graphical_lexeme", false, gloss, "V/LEX"); 
     
    187219                verbEnding, "V/PGN"); 
    188220 
    189             handler.convert("graphical_pron_suffix", true, "SFX", "V/SFX"); 
     221            handler.convert("graphical_pron_suffix", true, "SUFF", "V/SFX"); 
    190222        } 
    191223        else if (psp.equals("noun") 
     
    202234            handler.convert("graphical_nominal_ending", false, 
    203235                nounEnding, "MARK/N"); 
    204             handler.convert("graphical_pron_suffix", true, "SFX", "SFX/N"); 
     236            handler.convert("graphical_pron_suffix", true, "SUFF", "SFX/N"); 
    205237        } 
    206238        else 
     
    218250            else if (psp.equals("article")) 
    219251            { 
    220                 type = "DET"; 
     252                type = "ART"; 
    221253            } 
    222254            else if (psp.equals("conjunction"))