Index: /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java
===================================================================
--- /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java (revision 57)
+++ /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java (revision 58)
@@ -55,11 +55,12 @@
 		String sparqlEndpoint = "http://lsd.dbcls.jp/sparql";
 		// String keyword = "artiste";
-		String keyword = "EnglishCode";
+		String[] keyword = {"Player","Soccer"};
 		String[] graphURIs = new String[0];
 
-		keyword = null;
+		//keyword = null;
 
 		OWLQueryBuilder builder = new OWLQueryBuilderImpl(sparqlEndpoint);
-
+      
+		builder.getOWLClasses(null,keyword,false);
 /*
 		SClass[] clz = builder.getOWLClasses(graphURIs, keyword, false);
@@ -74,5 +75,5 @@
 
 
-		System.out.println("CLS");
+	/*	System.out.println("CLS");
 
 		String uri = "http://purl.jp/bio/10/lsd/ontology/201209#EnglishEntry";
@@ -95,5 +96,5 @@
 			}
 		}
-
+*/
 /*
 		
@@ -176,6 +177,5 @@
 //		queryStr.append("  ?i rdf:type ?c.\n");
 
-
-		
+	
 		if (countInstances) {
 			queryStr.append("  ?c rdfs:label ?label.\n");
@@ -188,17 +188,28 @@
 		// queryStr.append(keyword);
 		// queryStr.append(".");
+		
+		// TODO  OR relationship between keywords
 		if (keywords != null && keywords.length != 0) {
+						    			 
+			queryStr.append(" ?c rdfs:label ");
+		    queryStr.append("?keywords")
+			         .append(".\n");
+			queryStr.append("  filter("); 
 			
-			// TODO
-
+			  for (int i=0;i<keywords.length;i++)
+			  {
+			if (i>0) queryStr.append(" or \n ");
 			
-//			queryStr.append("  FILTER (\n");
-//			queryStr.append("    REGEX( ?label , \"");
-//			queryStr.append(keyword);
-//			queryStr.append("\" , \"i\" )\n");
-//			queryStr.append("  )\n");
-
+			  queryStr.append("regex(str(")
+			         .append("?keywords")
+			         .append("),\"");
+			  queryStr.append(keywords[i]);
+			  queryStr.append("\", \"i\" )");
+			  
+			  }
+			  queryStr.append(")\n"); 
+	
+		}
 		
-		}
 		if (countInstances) {
 			queryStr.append("}  GROUP BY ?c ?pLabel");
@@ -207,6 +218,7 @@
 		}
 		System.out.println(queryStr.toString());
-
-		Query query = QueryFactory.create(queryStr.toString());
+		
+		
+	/*	Query query = QueryFactory.create(queryStr.toString());
 
 		
@@ -251,92 +263,12 @@
 		}
 		qexec.close();
-		return classMap.values().toArray(new SClass[0]);
+		return classMap.values().toArray(new SClass[0]);*/
+		return null;
 	}
 
 	public SClass[] listClasses(String[] graphURIs, boolean countInstances) throws Exception{
-		StringBuffer queryStr = new StringBuffer();
-		queryStr.append("PREFIX owl: <http://www.w3.org/2002/07/owl#>\n");
-		queryStr.append("PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n");
-		queryStr.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n");
-		if (countInstances) {
-			queryStr.append("SELECT DISTINCT ?cls ?pLabel (COUNT(?i) AS ?numOfInstances)\n");
-		} else {
-			queryStr.append("SELECT DISTINCT ?cls ?pLabel \n");
-		}
-
-		if (graphURIs != null) {
-			for (String graphURI : graphURIs) {
-				queryStr.append("FROM <");
-				queryStr.append(graphURI);
-				queryStr.append(">\n");
-			}
-		}
-		queryStr.append("WHERE{\n");
-		queryStr.append("\t{ ?cls rdf:type rdfs:Class. }\n");
-		queryStr.append("\tUNION\n");
-		queryStr.append("\t{ ?cls rdf:type owl:Class. }\n");
-		queryStr.append("\tUNION\n");
-		queryStr.append("\t{ [] rdfs:type ?cls. }\n");
-		queryStr.append("\tUNION\n");
-		queryStr.append("\t{ [] rdfs:domain ?cls. }\n");
-		queryStr.append("\tUNION\n");
-		queryStr.append("\t{ [] rdfs:range ?cls. }\n");
-		queryStr.append("\tUNION\n");
-		queryStr.append("\t{ ?cls rdfs:subclassOf []. }\n");
-		queryStr.append("\t?cls rdfs:label ?pLabel.\n");
-		if (countInstances) {
-			queryStr.append("\t?i rdf:type ?c.\n");
-		}
-		if (countInstances) {
-			queryStr.append("}  GROUP BY ?c ?pLabel");
-		} else {
-			queryStr.append("}");
-		}
-		System.out.println(queryStr.toString());
-
-		Query query = QueryFactory.create(queryStr.toString());
-
-		
-		QueryExecution qexec = null;
-		try{
-			long start = System.currentTimeMillis();
-			qexec = QueryExecutionFactory.sparqlService(endpointURI,
-					query);
-			long end = System.currentTimeMillis();
-			System.out.println("EXEC TIME: " + (end-start));
-		}catch(Exception ex){
-			ex.printStackTrace();
-			throw ex;
-		}
-
-		ResultSet results = qexec.execSelect();
-		HashMap<String, SClass> classMap = new HashMap<String, SClass>();
-		for (; results.hasNext();) {
-			QuerySolution sol = results.next();
-			Resource res = sol.getResource("c");
-			if (res != null) {
-				String uri = res.getURI();
-				int numOfInstances = 0;
-				if (countInstances) {
-					numOfInstances = sol.getLiteral("numOfInstances").getInt();
-				}
-				// System.out.println(numOfInstances);
-				Literal labelLiteral = sol.getLiteral("pLabel");
-				SClass sClass = null;
-				if (classMap.containsKey(uri)) {
-					sClass = classMap.get(uri);
-				} else {
-					sClass = new SClass(uri, null, numOfInstances);
-					classMap.put(uri, sClass);
-				}
-				if (labelLiteral != null) {
-					String label = labelLiteral.getString();
-					String lang = labelLiteral.getLanguage();
-					sClass.addLabel(new Label(label, lang));
-				}
-			}
-		}
-		qexec.close();
-		return classMap.values().toArray(new SClass[0]);
+
+		//TODO 
+		return null;
 	}
 
