Index: BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java
===================================================================
--- BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java (revision 2)
+++ BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java (revision 5)
@@ -15,5 +15,5 @@
 import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.HttpClientBuilder;
+//import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.util.EntityUtils;
@@ -26,4 +26,5 @@
 import com.hp.hpl.jena.query.ResultSet;
 import com.hp.hpl.jena.rdf.model.Resource;
+
 /**
  * 繧ｯ繧ｨ繝ｪ繧堤函謌舌☆繧九◆繧√�讖溯�繧呈署萓帙☆繧区ｸ繧ｯ繝ｩ繧ｹ
@@ -269,5 +270,5 @@
 		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");
-		queryStr.append("SELECT DISTINCT ?p ?pDirection ?c \n");
+		queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n");
 		if (graphURIs != null) {
 			for (String graphURI : graphURIs) {
@@ -281,10 +282,19 @@
 		queryStr.append("  { ?p rdfs:domain <");
 		queryStr.append(originClass);
-		queryStr.append(">.\n    ?p rdfs:range ?c.}\n  UNION\n");
+		queryStr.append(">.\n    ?p rdfs:range ?c.\n    ?o ?p ?s.}\n  UNION\n");
 		queryStr.append("  { ?p rdfs:range <");
 		queryStr.append(originClass);
-		queryStr.append(">.\n    ?p rdfs:domain ?c.}\n");
-		queryStr.append("  ?p ?pDirection ?c.\n");
-		queryStr.append("}\n");
+		queryStr.append(">.\n");
+		queryStr.append("    ?p rdfs:domain ?c.\n");
+		queryStr.append("    ?s ?p ?o.}\n");
+
+		queryStr.append("    ?p ?pDirection ?c.\n");
+
+		
+		queryStr.append("  ?s rdf:type ?c.\n");
+		queryStr.append("  ?o rdf:type <");
+		queryStr.append(originClass);
+		queryStr.append(">.\n");
+		queryStr.append("}\nGROUP BY ?p ?pDirection ?c\n");
 		if (limit > 0) {
 			queryStr.append("limit ");
@@ -293,5 +303,5 @@
 		}
 		
-//		System.out.println(queryStr.toString());	
+		System.out.println(queryStr.toString());	
 	
 		Query query = QueryFactory.create(queryStr.toString());
@@ -325,5 +335,7 @@
 			}
 //			System.out.println(direction);
-			ClassLink cl = new ClassLink(proURI, clsURI, direction, 0);
+			int numOfLinks = sol.getLiteral("numOfLinks").getInt();
+//	System.out.println(numOfLinks);
+			ClassLink cl = new ClassLink(proURI, clsURI, direction, numOfLinks);
 			solCLs.add(cl);
 		}
