Changeset 66

Show
Ignore:
Timestamp:
01/06/07 16:04:28 (2 years ago)
Author:
chris
Message:

Use HFC to generate list of morphemes.

Change link to parser.

Change clauseId to selClauseId, remove unnecessary variable.

Files:

Legend:

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

    r60 r66  
    33<%@ page import="java.net.*" %> 
    44<%@ page import="java.sql.*" %> 
    5 <%@ page import="jemdros.*" %> 
    65<%@ page import="com.qwirx.lex.ontology.*" %> 
    76<%@ page import="com.qwirx.lex.wordnet.*" %> 
     
    1110<html> 
    1211<head> 
    13 <title>Lex: Edit Clause</title> 
     12<title>Lex: Text Browser</title> 
    1413<script type="text/javascript"><!-- 
    1514 
     
    5453        } 
    5554        div.topmenu a.clause_jsp <%@ include file="hilite.inc" %> 
    56         span.hebrew 
    57         { 
    58                 font-size: x-large; 
    59                 font-family: Doulos SIL, serif; 
    60         } 
    6155</style> 
    6256<body onLoad="enableEditButton()"> 
     
    114108        Map stems = emdros.getEnumerationConstants 
    115109                ("verbal_stem_t",false); 
    116  
    117         int clauseId = selClauseId; 
    118110 
    119111        if (request.getParameter("savearg") != null) 
     
    145137                "SELECT ALL OBJECTS IN " + 
    146138                emdros.getMonadSet(userTextAccess, min_m, max_m) + 
    147                 " WHERE [clause self = "+clauseId+ 
     139                " WHERE [clause self = "+selClauseId+ 
    148140                "       GET logical_struct_id, logical_structure "+ 
    149141                "        [phrase GET phrase_type, function, argument_name, "+ 
     
    190182        if (clause == null)  
    191183        { 
    192                 %><p><b>No clause found!</b></p><% 
     184                %><p>Selected clause not found or access denied.</p><% 
    193185        }  
    194186        else  
     
    231223                                                        private MatchedObject m_word; 
    232224                                                        private StringBuffer m_hebrew; 
     225                                                        private List m_morphs; 
    233226                                                         
    234227                                                        public HebrewFeatureConverter(TreeNode root, 
    235                                                                 MatchedObject word, StringBuffer hebrew) 
     228                                                                MatchedObject word, StringBuffer hebrew, 
     229                                                                List morphs) 
    236230                                                        { 
    237231                                                                m_root   = root; 
    238232                                                                m_word   = word; 
    239233                                                                m_hebrew = hebrew; 
     234                                                                m_morphs = morphs; 
    240235                                                        } 
    241236                                                         
    242237                                                        public void convert(String surface,  
    243                                                                 boolean lastMorpheme, String desc) 
     238                                                                boolean lastMorpheme, String desc, 
     239                                                                String morphNode) 
    244240                                                        { 
    245241                                                                String raw = m_word.getEMdFValue(surface).getString(); 
     
    256252                                                                node = node.createChild(raw); 
    257253                                                                node.createChild(desc); 
     254                                                                 
     255                                                                m_morphs.add(new MorphEdge(morphNode,  
     256                                                                        translit, m_morphs.size())); 
    258257                                                        } 
    259258                                                } 
    260259 
    261260                                                HebrewFeatureConverter hfc =  
    262                                                         new HebrewFeatureConverter(root, word, hebrewText); 
     261                                                        new HebrewFeatureConverter(root, word, hebrewText, 
     262                                                        morphEdges); 
    263263                                                 
    264264                                                String person = (String)persons.get( 
     
    304304                                                        hfc.convert("graphical_preformative", false, 
    305305                                                                (String)tenses.get(word 
    306                                                                 .getEMdFValue("verbal_tense").toString())); 
     306                                                                .getEMdFValue("verbal_tense").toString()), 
     307                                                                "V/TNS"); 
    307308                                                        hfc.convert("graphical_root_formation", false, 
    308309                                                                (String)stems.get(word 
    309                                                                 .getEMdFValue("verbal_stem").toString())); 
    310                                                         hfc.convert("graphical_lexeme", false, gloss); 
     310                                                                .getEMdFValue("verbal_stem").toString()), 
     311                                                                "V/STM"); 
     312                                                        hfc.convert("graphical_lexeme", false, gloss, 
     313                                                                "V/LEX"); 
    311314                                                        hfc.convert("graphical_verbal_ending", true, 
    312                                                                 person + gender + number); 
    313                                                                  
    314                                                         morphEdges.add(new MorphEdge("V/TNS", word 
    315                                                                 .getEMdFValue("graphical_preformative") 
    316                                                                 .getString(), morphEdges.size())); 
    317                                                         morphEdges.add(new MorphEdge("V/STM", word 
    318                                                                 .getEMdFValue("graphical_root_formation") 
    319                                                                 .getString(), morphEdges.size())); 
    320                                                         morphEdges.add(new MorphEdge("V/LEX", word 
    321                                                                 .getEMdFValue("graphical_lexeme") 
    322                                                                 .getString(), morphEdges.size())); 
    323                                                         morphEdges.add(new MorphEdge("V/PGN", word 
    324                                                                 .getEMdFValue("graphical_verbal_ending") 
    325                                                                 .getString(), morphEdges.size())); 
     315                                                                person + gender + number, "V/PGN"); 
    326316                                                } 
    327317                                                else if (psp.equals("noun") 
    328318                                                        || psp.equals("proper_noun")) 
    329319                                                { 
    330                                                         hfc.convert("graphical_lexeme", false, gloss); 
     320                                                        String type = "HEAD/NCOM"; 
     321                                                         
     322                                                        if (psp.equals("proper_noun")) 
     323                                                        { 
     324                                                                type = "HEAD/NPROP"; 
     325                                                        } 
     326                                                         
     327                                                        hfc.convert("graphical_lexeme", false, gloss, type); 
    331328                                                        hfc.convert("graphical_nominal_ending", true, 
    332                                                                 gender + number + "." + state); 
    333  
    334                                                         String type = "HEAD/NCOM"; 
    335                                                         if (psp.equals("proper_noun")) 
    336                                                         { 
    337                                                                 type = "HEAD/NPROP"; 
    338                                                         } 
    339                                                          
    340                                                         morphEdges.add(new MorphEdge(type, word 
    341                                                                 .getEMdFValue("graphical_lexeme") 
    342                                                                 .getString(), morphEdges.size())); 
    343                                                         morphEdges.add(new MorphEdge("MARK/N", word 
    344                                                                 .getEMdFValue("graphical_nominal_ending") 
    345                                                                 .getString(), morphEdges.size())); 
     329                                                                gender + number + "." + state, "MARK/N"); 
    346330                                                } 
    347331                                                else 
    348332                                                { 
    349                                                         hfc.convert("graphical_lexeme", true, psp); 
    350                                                          
    351333                                                        String type; 
     334 
    352335                                                        if (psp.equals("adjective")) 
    353336                                                        { 
     
    400383                                                        } 
    401384                                                         
    402                                                         morphEdges.add(new MorphEdge(type, word 
    403                                                                 .getEMdFValue("graphical_lexeme") 
    404                                                                 .getString(), morphEdges.size())); 
     385                                                        hfc.convert("graphical_lexeme", true, psp, type); 
    405386                                                }        
    406387                                                 
     
    477458                        { 
    478459                                Change ch = emdros.createChange(EmdrosChange.UPDATE, 
    479                                         "clause", new int[]{clauseId}); 
     460                                        "clause", new int[]{selClauseId}); 
    480461                                ch.setInt("logical_struct_id", selLsId); 
    481462                                ch.execute(); 
     
    12421223                        { 
    12431224                                %> 
    1244                 <p> 
    1245                         Parse failed. Click  
    1246                         <a href="parsedebug.jsp?clause=<%= clauseId %>">here</a> 
    1247                         to fix it. 
    1248                 </p>  
     1225                                <p> 
     1226                                Parse failed. Click <a href="parse.jsp">here</a> to fix it. 
     1227                                </p>  
    12491228                                <% 
    12501229                        } 
    12511230                        else 
    12521231                        { 
     1232                                %> 
     1233                                <p> 
     1234                                Parse finished with <%= sentences.size() %> possible trees. 
     1235                                Showing the first  
     1236                                <%= sentences.size() > 3 ? 3 : sentences.size() %>: 
     1237                                </p>  
     1238                                <% 
    12531239                                for (int i = 0; i < sentences.size() && i < 3; i++) 
    12541240                                { 
     
    12601246                                %><p> 
    12611247                                Click  
    1262                                 <a href="parsedebug.jsp?clause=<%= clauseId %>">here</a> 
     1248                                <a href="parse.jsp">here</a> 
    12631249                                to see and edit all <%= sentences.size() %> parses. 
    12641250                                </p><% 
     
    14451431                if (! currentStruct.equals(structure) ) { 
    14461432                        Change ch = emdros.createChange(EmdrosChange.UPDATE, 
    1447                                 "clause", new int[]{clauseId}); 
     1433                                "clause", new int[]{selClauseId}); 
    14481434                        ch.setString("logical_structure", structure); 
    14491435                        ch.execute(); 
     
    15111497                Sheaf clauseSheaf = emdros.getSheaf 
    15121498                        ("SELECT ALL OBJECTS IN { "+min_m+" - "+max_m+"} "+ 
    1513                          "WHERE [clause self = "+clauseId+ 
     1499                         "WHERE [clause self = "+selClauseId+ 
    15141500                         " [note GET text]"+ 
    15151501                         "]");