Changeset 479

Show
Ignore:
Timestamp:
06/02/10 18:38:48 (8 years ago)
Author:
samuraraujo
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Explorator/trunk/lib/query_builder.rb

    r464 r479  
    6969    self 
    7070  end 
     71   
     72  def remove(s,p,o,r=nil)           
     73    result = Array.new  
     74    s = resource_or_self(s,r).uniq 
     75    p = resource_or_self(p,r).uniq 
     76    o = resource_or_self(o,r).uniq 
     77    adapter=ConnectionPool.get_adapter('USERDATA(Local)')          
     78    repository =adapter.bridge   
     79    s.each do |x| 
     80      p.each do |y| 
     81        o.each do |z| 
     82          x = nil if x.instance_of? Symbol 
     83          y = nil if y.instance_of? Symbol 
     84          z = nil if z.instance_of? Symbol 
     85          repository.delete(x,y,z,nil)             
     86        end         
     87      end      
     88    end    
     89    adapter.reset_cache() 
     90    @result = [] 
     91    self 
     92  end 
    7193  #adds keyword query to the expression 
    7294  def search (word) 
    73     if  word.index('http://')      
     95    k=word 
     96    if  word.index('http://')  || word.index('imap://')       
    7497      k = RDFS::Resource.new(word) 
    7598      spo(k,:p,:o) 
    7699      # spo(:s,k,:o) 
    77       # spo(:s,:p,k)     
     100      spo(:s,:p,k)     
    78101    else 
    79102      #not URI 
    80        
    81       @result = @result | Query.new.distinct(:s,:p,:o).where(:s,:p,:o).keyword_where(:o,word).execute     
    82  
    83       
     103      if k[0] == 58 # ASCII for : 
     104        tokens = k.split(' ') 
     105        predicate = tokens[0] 
     106        tokens.delete_at(0) 
     107        p = Query.new.distinct(:p).where(:s,:p,:o).keyword_where(:p,predicate.gsub(':','')).execute 
     108        k = tokens.join(' ') 
     109        @result = @result | Query.new.distinct(:s ,:o).where(:s,p[0],:o).keyword_where(:o,k).execute.collect{|s,o| [s,p[0],o]} 
     110      else 
     111        @result = @result | Query.new.distinct(:s,:p,:o).where(:s,:p,:o).keyword_where(:o,word).execute   
     112      end      
    84113    end   
    85114    self 
     
    95124    self 
    96125  end 
    97    
    98126  def keyword(k)         
     127     
    99128    @result = @result | Query.new.distinct(:s,:p,:o).where(:s,:p,:o).keyword_where(:s,k).execute | Query.new.distinct(:s,:p,:o).where(:s,:p,:o).keyword_where(:p,k).execute | Query.new.distinct(:s,:p,:o).where(:s,:p,:o).keyword_where(:o,k).execute 
     129     
     130     
    100131    self 
    101132  end   
     
    243274    end 
    244275     
    245     
     276     
    246277    triples.uniq 
    247278  end 
     
    299330      @result = @result | query(s,p,o,r) 
    300331    end 
    301    
     332     
    302333    self 
    303334  end