- 更新日時:
- 2014/10/09 18:42:33 (10 年 前)
- ファイル:
-
- 1 変更
凡例:
- 変更なし
- 追加
- 削除
-
SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/SPServlet.java
r165 r193 163 163 0, 0, 164 164 false, false); 165 165 System.out.println(classLink.getDirection().toString()); 166 166 list.add(classLink); 167 167 } 168 168 String startClass = object.getString("startClassURI"); 169 169 Path path = new Path(startClass, list, 0); 170 170 171 return path; 171 172 } 172 173 173 174 private String convertPath2SPARQL(Path path) throws Exception{ 175 176 ArrayList<String> classname =new ArrayList<String>() ; 177 174 178 if( path == null ){ 175 179 throw new Exception("Path is null."); … … 204 208 205 209 if (i==0) 206 subjectClasses = startClass; 207 210 subjectClasses = startClass; 211 212 classname.add(subjectClasses); 208 213 selStr.append("?c").append(i).append(" "); 209 214 selStr.append("?l").append(i).append(" "); … … 252 257 append(".\n"); 253 258 whereStr.append("OPTIONAL{\n?c"+i+" rdfs:label ?l"+i+".}\n"); 259 classname.add(subjectClasses); 254 260 255 261 … … 258 264 queryStr.append("}"); 259 265 //OPTIONAL 260 queryStr.append("LIMIT 100\n");; 261 262 //System.out.println(queryStr); 263 return queryStr.toString(); 266 queryStr.append("LIMIT 100\n"); 267 268 System.out.println(queryStr); 269 270 //rewrite Sparql 271 272 ArrayList<String> classname2 = new ArrayList<String>(); 273 for(int index=0;index<classname.size();index++){ 274 String tmp=classname.get(index); 275 276 int mark; 277 if((mark=tmp.indexOf("#"))!=-1) 278 classname2.add(tmp.substring(mark+1)); 279 else classname2.add(tmp.substring(tmp.indexOf("/")+1)); 280 281 } 282 String query=queryStr.toString(); 283 for(int index=0;index<classname2.size();index++){ 284 String original="c"+index; 285 query= query.replaceAll(original, classname2.get(index)); 286 } 287 query= query.replaceAll("\\?l","\\?label"); 288 System.out.println(query); 289 return query; 264 290 265 291 292 } 293 private static String rewriteSparql(String query){ 294 StringBuffer tmp=new StringBuffer(query); 295 int index= tmp.indexOf("WHERE"); 296 int begin=0,cnt=0; 297 while(begin<index) 298 { 299 begin= tmp.indexOf("?c", begin); 300 cnt++; 301 302 } 303 return null; 266 304 } 267 305 private static List<String> convertJ2Path2(String jpath) throws JSONException{