Changeset 121 in server


Ignore:
Timestamp:
05/15/07 11:13:24 (8 years ago)
Author:
xrambous
Message:
  • Queries refactored (#336)
  • Save author (#329)
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • debserver-nlpwordnet-1.6/debian/changelog

    r115 r121  
     1debserver-nlpwordnet (1.4-13) unstable; urgency=low 
     2 
     3  * Queries refactored (#336) 
     4  * Save author (#329) 
     5 
     6 -- Adam Rambousek <xrambous@fi.muni.cz>  Tue, 15 May 2007 11:12:51 +0200 
     7 
    18debserver-nlpwordnet (1.4-12) unstable; urgency=low 
    29 
  • debserver-nlpwordnet-1.6/lib/servlets/json_wn.rb

    r115 r121  
    550550          data_hash['SYNSET']['ID'] = {} 
    551551          data_hash['SYNSET']['ID']['$'] = id 
     552          data_hash['SYNSET']['CREATED'] = {} 
     553          data_hash['SYNSET']['CREATED']['$'] = request.attributes[:auth_user].to_s + ' ' + Time.now.strftime("%Y-%m-%d %H:%M:%S") 
    552554        end 
    553555        #split literals to words 
  • debserver-nlpwordnet-1.6/lib/slovnik/sumo.rb

    r106 r121  
    3030    
    3131    if query[0,top.length] == top 
    32       what = query[(top.length+1)..(query.index("=")-1)] 
    33       search = query[(query.rindex("=")+1)..-1] 
    34       what.gsub!('.','/') 
    35       $stderr.puts what 
    36       if search.index(':') != nil 
    37         #lookup by data from other dictionary 
    38         other_dict, other_id, other_element  = search.split(':') 
    39         other_element.gsub!('.', '/') 
    40         $stderr.puts other_dict + other_id + other_element 
    41         other_xml = array[other_dict].get(other_id) 
    42         $stderr.puts other_xml.to_s 
    43         odoc = REXML::Document.new(other_xml.to_s) 
    44         if other_element.include?('@') 
    45           search = odoc.elements[other_element.to_s].to_s  
    46         else  
    47           search = odoc.elements[other_element.to_s].text.to_s  
    48         end 
    49         $stderr.puts search 
    50         search_query = "$p='#{search}'" 
    51       elsif search.index('.*') != nil 
    52         search_query = "starts-with($p, '" + search[0..(search.index('.*')-1)] + "')" 
    53       else 
    54         search_query = "$p='#{search}'" 
    55       end 
    56       db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/#{what} satisfies (#{search_query}) return $x" 
     32      search_string = parse_conditions(query, array) 
     33      db_query = "for $x in collection('#{@database}')/#{top} where #{search_string} return $x" 
    5734    else 
    5835      if (pos = query.index('*')) != nil 
  • debserver-nlpwordnet-1.6/lib/slovnik/wn.rb

    r112 r121  
    3333  end 
    3434 
    35   #return list of synset IDs 
    36   def get_list(query, wn_array = nil) 
    37     r = {} 
    38     synsets = {} 
    39     db_query = '' 
    40     query ||= '' 
    41  
    42     top = @key_path.split('/')[1] 
    43     rest = @key_path.split('/')[2..-1].join('/') 
    44  
    45     if query[0,1] == '/' 
    46       re = query.gsub(/\//, '') 
    47       db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/SYNONYM/LITERAL satisfies (matches($p,'#{re}')) return $x" 
    48     elsif query[0,top.length] == top 
    49       what = query[7..(query.index("=")-1)] 
     35  #parse one condition 
     36  def parse_one_condition(query, wn_array) 
     37      top = @key_path.split('/')[1] 
     38     
     39      what = query[(top.length+1)..(query.index("=")-1)] 
    5040      search = query[(query.rindex("=")+1)..-1] 
    5141      what.gsub!('.','/') 
     
    5949        $stderr.puts other_xml.to_s 
    6050        odoc = REXML::Document.new(other_xml.to_s) 
    61         if other_element.include?('@') 
    62           search = odoc.elements[other_element.to_s].to_s  
    63         else  
    64           search = odoc.elements[other_element.to_s].text.to_s  
    65         end 
    66         $stderr.puts search 
    67         search_query = "$p='#{search}'" 
     51        vals = [] 
     52        REXML::XPath.each( odoc, '/'+other_element ) { |el| 
     53        $stderr.puts el 
     54          #if el.text != nil 
     55          #  vals << "$p=#{el.text.to_s}" 
     56          #else  
     57          #  vals << "$p=#{el.to_s}" 
     58          #end 
     59          vals << "$p='#{el.to_s}'" 
     60        } 
     61        search_query = vals.join(' or ') 
    6862      elsif search.index('.*') != nil 
    6963        search_query = "starts-with($p, '" + search[0..(search.index('.*')-1)] + "')" 
     
    7165        search_query = "$p='#{search}'" 
    7266      end 
    73       db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/#{what} satisfies (#{search_query}) return $x" 
     67    search_string = "some $p in $x/#{what} satisfies (#{search_query})" 
     68    return search_string 
     69  end 
     70 
     71  #parse conditions 
     72  def parse_conditions(query, wn_array) 
     73    query_ar = query.split(' ') 
     74    query_ar.map!{|qa| 
     75      if ['or', 'OR', 'and', 'AND'].include?(qa) 
     76        qa.downcase 
     77      else 
     78        '(' + parse_one_condition(qa, wn_array) + ')' 
     79      end 
     80    } 
     81    search_string = query_ar.join(' ') 
     82    return search_string 
     83  end 
     84 
     85  #return list of synset IDs 
     86  def get_list(query, wn_array = nil) 
     87    r = {} 
     88    synsets = {} 
     89    db_query = '' 
     90    query ||= '' 
     91 
     92    top = @key_path.split('/')[1] 
     93    rest = @key_path.split('/')[2..-1].join('/') 
     94 
     95    if query[0,1] == '/' 
     96      re = query.gsub(/\//, '') 
     97      db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/SYNONYM/LITERAL satisfies (matches($p,'#{re}')) return $x" 
     98    elsif query[0,top.length] == top 
     99      search_string = parse_conditions(query, wn_array) 
     100      db_query = "for $x in collection('#{@database}')/#{top} where #{search_string} return $x" 
    74101    else 
    75102      lit = query.split(':')[0] 
     
    94121          break 
    95122        end 
    96         $stderr.puts "s=#{s}" 
     123        #$stderr.puts "s=#{s}" 
    97124        key = s.to_document.get_metadata('http://www.sleepycat.com/2002/dbxml','name') 
    98125        doc = REXML::Document.new( s.to_s ) 
  • debserver-nlpwordnet-1.6/xslt/wn-preview.xslt

    r84 r121  
    3131      <span class="RED"><xsl:value-of select="POS"/></span> 
    3232      <xsl:text> </xsl:text> 
    33       <span class="BLUE">STAMP: </span> 
    34       <span class="RED"><xsl:value-of select="STAMP"/></span> 
    35       <xsl:text> </xsl:text> 
    3633      <span class="BLUE">ID: </span> 
    3734      <span class="RED"><xsl:value-of select="ID"/></span> 
     
    4441        <xsl:if test="position()!=last()"><xsl:text>, </xsl:text></xsl:if> 
    4542      </xsl:for-each> 
    46       <br/> 
    4743      <br/> 
    4844      <xsl:apply-templates select="DEF"/> 
     
    134130        <br/> 
    135131      </xsl:for-each> 
    136        
     132 
     133      <br/> 
     134      <xsl:for-each select="VALENCY"> 
     135        <span class="BLUE">VALENCY: </span> 
     136        <ul> 
     137        <xsl:for-each select="FRAME"> 
     138          <li><span class="DARK_RED"><xsl:value-of select="."/></span></li> 
     139        </xsl:for-each> 
     140        </ul> 
     141      </xsl:for-each> 
     142 
     143      <br/> 
     144      <span class="BLUE">STAMP: </span> 
     145      <span class="RED"><xsl:value-of select="STAMP"/></span><xsl:text> / </xsl:text> 
     146      <span class="DARK_RED"><xsl:value-of select="CREATED"/></span> 
     147      
    137148    </body> 
    138149  </html> 
  • debserver-nlpwordnet-1.6/xslt/wn-single.xslt

    r30 r121  
    2929      <xsl:for-each select="SUMO"> 
    3030        <span class="BLUE">SUMO/MILO: </span> 
    31         <span class="GREEN"><xsl:value-of select="TYPE"/><xsl:text> </xsl:text><xsl:value-of select="text()"/></span><br/> 
     31        <span class="GREEN"><xsl:value-of select="TYPE"/><xsl:text> </xsl:text> 
     32            <a href="{$servername}/sumo?action=runQuery&amp;query={.}&amp;outtype=html&amp;nojson=1&amp;default=1"><xsl:value-of select="text()"/></a> 
     33        </span><br/> 
    3234      </xsl:for-each> 
    3335      <xsl:for-each select="ILR"> 
     
    8486        <br/> 
    8587      </xsl:for-each> 
     88      <br/> 
     89      <xsl:for-each select="VALENCY"> 
     90        <span class="BLUE">VALENCY: </span> 
     91        <ul> 
     92        <xsl:for-each select="FRAME"> 
     93          <li><span class="DARK_RED"><xsl:value-of select="."/></span></li> 
     94        </xsl:for-each> 
     95        </ul> 
     96      </xsl:for-each> 
     97 
     98      <br/> 
     99      <span class="BLUE">STAMP: </span> 
     100      <span class="RED"><xsl:value-of select="STAMP"/></span><xsl:text> / </xsl:text> 
     101      <span class="DARK_RED"><xsl:value-of select="CREATED"/></span> 
     102      
    86103      <hr/> 
    87104</xsl:template> 
  • debserver-wordnet-1.6/debian/changelog

    r115 r121  
     1debserver-wordnet (1.4-13) unstable; urgency=low 
     2 
     3  * Queries refactored (#336) 
     4  * Save author (#329) 
     5 
     6 -- Adam Rambousek <xrambous@fi.muni.cz>  Tue, 15 May 2007 11:10:58 +0200 
     7 
    18debserver-wordnet (1.4-12) unstable; urgency=low 
    29 
  • debserver-wordnet-1.6/lib/servlets/json_wn.rb

    r115 r121  
    550550          data_hash['SYNSET']['ID'] = {} 
    551551          data_hash['SYNSET']['ID']['$'] = id 
     552          data_hash['SYNSET']['CREATED'] = {} 
     553          data_hash['SYNSET']['CREATED']['$'] = request.attributes[:auth_user].to_s + ' ' + Time.now.strftime("%Y-%m-%d %H:%M:%S") 
    552554        end 
    553555        #split literals to words 
  • debserver-wordnet-1.6/lib/slovnik/wn.rb

    r112 r121  
    3333  end 
    3434 
    35   #return list of synset IDs 
    36   def get_list(query, wn_array = nil) 
    37     r = {} 
    38     synsets = {} 
    39     db_query = '' 
    40     query ||= '' 
    41  
    42     top = @key_path.split('/')[1] 
    43     rest = @key_path.split('/')[2..-1].join('/') 
    44  
    45     if query[0,1] == '/' 
    46       re = query.gsub(/\//, '') 
    47       db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/SYNONYM/LITERAL satisfies (matches($p,'#{re}')) return $x" 
    48     elsif query[0,top.length] == top 
    49       what = query[7..(query.index("=")-1)] 
     35  #parse one condition 
     36  def parse_one_condition(query, wn_array) 
     37      top = @key_path.split('/')[1] 
     38     
     39      what = query[(top.length+1)..(query.index("=")-1)] 
    5040      search = query[(query.rindex("=")+1)..-1] 
    5141      what.gsub!('.','/') 
     
    5949        $stderr.puts other_xml.to_s 
    6050        odoc = REXML::Document.new(other_xml.to_s) 
    61         if other_element.include?('@') 
    62           search = odoc.elements[other_element.to_s].to_s  
    63         else  
    64           search = odoc.elements[other_element.to_s].text.to_s  
    65         end 
    66         $stderr.puts search 
    67         search_query = "$p='#{search}'" 
     51        vals = [] 
     52        REXML::XPath.each( odoc, '/'+other_element ) { |el| 
     53        $stderr.puts el 
     54          #if el.text != nil 
     55          #  vals << "$p=#{el.text.to_s}" 
     56          #else  
     57          #  vals << "$p=#{el.to_s}" 
     58          #end 
     59          vals << "$p='#{el.to_s}'" 
     60        } 
     61        search_query = vals.join(' or ') 
    6862      elsif search.index('.*') != nil 
    6963        search_query = "starts-with($p, '" + search[0..(search.index('.*')-1)] + "')" 
     
    7165        search_query = "$p='#{search}'" 
    7266      end 
    73       db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/#{what} satisfies (#{search_query}) return $x" 
     67    search_string = "some $p in $x/#{what} satisfies (#{search_query})" 
     68    return search_string 
     69  end 
     70 
     71  #parse conditions 
     72  def parse_conditions(query, wn_array) 
     73    query_ar = query.split(' ') 
     74    query_ar.map!{|qa| 
     75      if ['or', 'OR', 'and', 'AND'].include?(qa) 
     76        qa.downcase 
     77      else 
     78        '(' + parse_one_condition(qa, wn_array) + ')' 
     79      end 
     80    } 
     81    search_string = query_ar.join(' ') 
     82    return search_string 
     83  end 
     84 
     85  #return list of synset IDs 
     86  def get_list(query, wn_array = nil) 
     87    r = {} 
     88    synsets = {} 
     89    db_query = '' 
     90    query ||= '' 
     91 
     92    top = @key_path.split('/')[1] 
     93    rest = @key_path.split('/')[2..-1].join('/') 
     94 
     95    if query[0,1] == '/' 
     96      re = query.gsub(/\//, '') 
     97      db_query = "for $x in collection('#{@database}')/#{top} where some $p in $x/SYNONYM/LITERAL satisfies (matches($p,'#{re}')) return $x" 
     98    elsif query[0,top.length] == top 
     99      search_string = parse_conditions(query, wn_array) 
     100      db_query = "for $x in collection('#{@database}')/#{top} where #{search_string} return $x" 
    74101    else 
    75102      lit = query.split(':')[0] 
     
    94121          break 
    95122        end 
    96         $stderr.puts "s=#{s}" 
     123        #$stderr.puts "s=#{s}" 
    97124        key = s.to_document.get_metadata('http://www.sleepycat.com/2002/dbxml','name') 
    98125        doc = REXML::Document.new( s.to_s ) 
  • debserver-wordnet-1.6/xslt/wn-preview.xslt

    r84 r121  
    3131      <span class="RED"><xsl:value-of select="POS"/></span> 
    3232      <xsl:text> </xsl:text> 
    33       <span class="BLUE">STAMP: </span> 
    34       <span class="RED"><xsl:value-of select="STAMP"/></span> 
    35       <xsl:text> </xsl:text> 
    3633      <span class="BLUE">ID: </span> 
    3734      <span class="RED"><xsl:value-of select="ID"/></span> 
     
    4441        <xsl:if test="position()!=last()"><xsl:text>, </xsl:text></xsl:if> 
    4542      </xsl:for-each> 
    46       <br/> 
    4743      <br/> 
    4844      <xsl:apply-templates select="DEF"/> 
     
    134130        <br/> 
    135131      </xsl:for-each> 
    136        
     132 
     133      <br/> 
     134      <xsl:for-each select="VALENCY"> 
     135        <span class="BLUE">VALENCY: </span> 
     136        <ul> 
     137        <xsl:for-each select="FRAME"> 
     138          <li><span class="DARK_RED"><xsl:value-of select="."/></span></li> 
     139        </xsl:for-each> 
     140        </ul> 
     141      </xsl:for-each> 
     142 
     143      <br/> 
     144      <span class="BLUE">STAMP: </span> 
     145      <span class="RED"><xsl:value-of select="STAMP"/></span><xsl:text> / </xsl:text> 
     146      <span class="DARK_RED"><xsl:value-of select="CREATED"/></span> 
     147      
    137148    </body> 
    138149  </html> 
  • debserver-wordnet-1.6/xslt/wn-single.xslt

    r18 r121  
    2929      <xsl:for-each select="SUMO"> 
    3030        <span class="BLUE">SUMO/MILO: </span> 
    31         <span class="GREEN"><xsl:value-of select="TYPE"/><xsl:text> </xsl:text><xsl:value-of select="text()"/></span><br/> 
     31        <span class="GREEN"><xsl:value-of select="TYPE"/><xsl:text> </xsl:text> 
     32            <a href="{$servername}/sumo?action=runQuery&amp;query={.}&amp;outtype=html&amp;nojson=1&amp;default=1"><xsl:value-of select="text()"/></a> 
     33        </span><br/> 
    3234      </xsl:for-each> 
    3335      <xsl:for-each select="ILR"> 
     
    8486        <br/> 
    8587      </xsl:for-each> 
     88      <br/> 
     89      <xsl:for-each select="VALENCY"> 
     90        <span class="BLUE">VALENCY: </span> 
     91        <ul> 
     92        <xsl:for-each select="FRAME"> 
     93          <li><span class="DARK_RED"><xsl:value-of select="."/></span></li> 
     94        </xsl:for-each> 
     95        </ul> 
     96      </xsl:for-each> 
     97 
     98      <br/> 
     99      <span class="BLUE">STAMP: </span> 
     100      <span class="RED"><xsl:value-of select="STAMP"/></span><xsl:text> / </xsl:text> 
     101      <span class="DARK_RED"><xsl:value-of select="CREATED"/></span> 
     102      
    86103      <hr/> 
    87104</xsl:template> 
Note: See TracChangeset for help on using the changeset viewer.