Index: SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/SPServlet.java
===================================================================
--- SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/SPServlet.java (revision 165)
+++ SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/SPServlet.java (revision 193)
@@ -163,13 +163,17 @@
 				 0,  0,
 				false, false);
-             
+            System.out.println(classLink.getDirection().toString());  
            list.add(classLink);
     }
            String startClass = object.getString("startClassURI");
           Path path = new Path(startClass,  list,  0);
+         
           return path;
     }
     
     private String convertPath2SPARQL(Path path) throws Exception{
+        
+         ArrayList<String> classname =new ArrayList<String>() ;
+                
         if( path == null ){
 			throw new Exception("Path is null.");
@@ -204,6 +208,7 @@
 			
 			if (i==0)
-		    subjectClasses = startClass;
-			
+		             subjectClasses = startClass;
+                       
+			classname.add(subjectClasses);
 			selStr.append("?c").append(i).append(" ");
 			selStr.append("?l").append(i).append(" ");
@@ -252,4 +257,5 @@
 			append(".\n");
 		whereStr.append("OPTIONAL{\n?c"+i+" rdfs:label ?l"+i+".}\n");
+                classname.add(subjectClasses);
 	
 					
@@ -258,10 +264,42 @@
 		queryStr.append("}");
 		//OPTIONAL
-		queryStr.append("LIMIT 100\n");;
-		
-		//System.out.println(queryStr);
-		return queryStr.toString();
+		queryStr.append("LIMIT 100\n");
+                
+               System.out.println(queryStr); 
+               
+              //rewrite Sparql                
+	                 
+      ArrayList<String> classname2 = new ArrayList<String>();
+               for(int index=0;index<classname.size();index++){
+                 String  tmp=classname.get(index);
+                
+                 int mark;
+                 if((mark=tmp.indexOf("#"))!=-1)
+                     classname2.add(tmp.substring(mark+1));
+                  else classname2.add(tmp.substring(tmp.indexOf("/")+1));
+                   
+               }
+               String query=queryStr.toString();
+                for(int index=0;index<classname2.size();index++){
+                  String  original="c"+index; 
+                 query= query.replaceAll(original, classname2.get(index));
+                }
+                query= query.replaceAll("\\?l","\\?label");
+		System.out.println(query);  
+		return query;
         
     
+    }
+    private static String rewriteSparql(String query){
+        StringBuffer tmp=new StringBuffer(query);
+       int index= tmp.indexOf("WHERE");
+       int begin=0,cnt=0;
+       while(begin<index)
+       {           
+          begin= tmp.indexOf("?c", begin);
+          cnt++;       
+     
+       }
+        return null;
     }
         private static List<String> convertJ2Path2(String jpath) throws JSONException{
