Changeset 1534:972615e500b7


Ignore:
Timestamp:
03/28/17 18:17:53 (8 months ago)
Author:
Konstantina Bereta <Konstantina.Bereta@…>
Branch:
temporals
Message:

fixed bug #83

File:
1 edited

Legend:

Unmodified
Added
Removed
  • runtime/src/main/java/eu/earthobservatory/runtime/generaldb/utils.java

    r1306 r1534  
    1515package eu.earthobservatory.runtime.generaldb; 
    1616 
     17import java.util.ArrayList; 
    1718import java.util.Hashtable; 
    1819import java.util.regex.Matcher; 
    1920import java.util.regex.Pattern; 
    2021 
     22import org.eclipse.emf.ecore.EValidator.PatternMatcher; 
    2123import org.openrdf.model.Resource; 
    2224import org.slf4j.Logger; 
     
    3032         
    3133        public static String queryRewriting(String queryString)  
    32         { 
     34        {        
    3335                String newQueryString=""; 
    3436                int numOfQuadruples=0; 
     
    3941                StringBuffer whereClauses = new StringBuffer(2048); 
    4042                NQuadsParser parser = new NQuadsParser(); 
     43                 
     44                String Prefix = "(Prefix[\\s]*)(.*)(:[\\s]*)(<>)"; 
     45                String prefix = "([\\s]*(Prefix)\\s*(.*):\\s(<http://strdf.di.uoa.gr/[^>]*)>)"; 
     46                 
     47                Pattern prefixpattern = Pattern.compile(prefix, Pattern.CASE_INSENSITIVE); 
     48                 
     49                Matcher prefixmatcher = prefixpattern.matcher(queryString); 
     50                String strdfprefix = null, strdf = null; 
     51                 
     52                while(prefixmatcher.find()){ 
     53                        strdfprefix = prefixmatcher.group(3); 
     54                        strdf = prefixmatcher.group(4); 
     55 
     56        } 
    4157                 
    4258                try 
     
    6177                        String Word="((\\w)|(\\p{InGreek})|-)+"; 
    6278                        String URI="(<([\\S-])*>)|("+Word+":"+Word+")"; 
    63                         String Literal="\".*\"(\\^\\^"+URI+")?"; 
     79                        String Literal="\"[^\"]*\"(\\^{2}("+URI+"))?"; 
     80                        String Malakia = "\"[^\"]*\"(\\^{2}(" + URI + "))?"; 
    6481                        String Variable="\\?"+Word; 
    6582                         
     
    7087                        pattern = Pattern.compile(REGEX, Pattern.DOTALL);                                                        
    7188                        matcher = pattern.matcher(oldQueryString); 
     89                         
     90 
    7291                         
    7392                        Pattern updatePattern = Pattern.compile(updateREGEX, Pattern.DOTALL); 
     
    109128                                 *  
    110129                                 */ 
    111                                 String[] token = quadruple.split("(\\s)+"); 
    112          
    113                                  
    114                                 int i=3; 
     130                                //String[] token = quadruple.split("(\\s)+"); 
     131                                String regy = "(\"){1}[^\"]*(\"){1}"; 
     132                            Pattern pat = Pattern.compile(SPOT);  
     133                        Matcher mat = pat.matcher(quadruple); 
     134                         
     135                        String[] token = new String[4]; 
     136                         
     137                        int i=0; 
     138                         
     139                        while(mat.find()){ 
     140                                token[i] = mat.group(0); 
     141                                i++; 
     142                        } 
     143                       
     144                         
     145                                 
     146                                i=3; 
    115147                                if(!isVar(token[3]) && inWhere==false) //the forth element is a literal representation of valid time 
    116148                                { 
    117                                         String tgraph =  "<"+parser.createValidTimeURI(token[3]).toString()+">"; 
     149                                        String temporaltoken = null, tgraph = null; 
     150                                         
     151                                        if(strdfprefix != null){ 
     152                                                temporaltoken= token[3].replace(strdfprefix + ":", strdf) + ">"; 
     153                                                tgraph = parser.createValidTimeURI(temporaltoken+">")+">"; 
     154                                        } 
     155                                        else{ 
     156                                                temporaltoken = token[3].toString(); 
     157                                        } 
     158                                        tgraph =  "<"+parser.createValidTimeURI(temporaltoken)+">"; 
    118159                                        newQueryString+="\n GRAPH "+tgraph+" { " +token[0]+" "+token[1]+" "+token[2]+" .}\n"; 
    119160                                        newQueryString+= tgraph+" "+ TemporalConstants.VALID_TIME_PROPERTY; 
     
    124165                                { 
    125166                                        String tgraph=null; 
    126                                         //String addedPattern = graphVariable+numOfQuadruples+ " TemporalConstants.VALID_TIME_PROPERTY"+ token[3]; 
    127167                                        if(periodsAndGraphs.containsKey(token[3])) 
    128168                                        { 
Note: See TracChangeset for help on using the changeset viewer.