Index: /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java
===================================================================
--- /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java (revision 42)
+++ /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java (revision 46)
@@ -72,10 +72,17 @@
 		}
 */
+
 		System.out.println("CLS");
 
 		String uri = "http://purl.jp/bio/10/lsd/ontology/201209#EnglishEntry";
 		
-		ClassLink[] cls = builder.getNextClass(null, uri, 100, false);
-
+		ClassLink[] cls = null;
+		try{
+			cls = builder.getNextClass(null, uri, 100, false);
+		}catch(Exception ex) {
+			ex.printStackTrace();
+		}
+
+		System.out.println("Solutions: ");
 		if (cls != null) {
 			for (ClassLink cl : cls) {
@@ -87,8 +94,18 @@
 			}
 		}
+
+		
+		
+		
 /*
+		uri = "http://purl.jp/bio/10/lsd/ontology/201209#EnglishEntry";
+
 		System.out.println("CLS-INS");
-		cls = builder.getNextClassViaInstanceLink(null, clz[0].getClassURI(),
-				100);
+		cls = null;
+		try{ 
+			cls = builder.getNextClassViaInstanceLink(null, uri, 100);
+		}catch(Exception ex){
+			ex.printStackTrace();
+		}
 		if (cls != null) {
 			for (ClassLink cl : cls) {
@@ -96,5 +113,6 @@
 			}
 		}
-
+*/
+		/*
 		System.out.println("Instances");
 		Instance[] ins = builder.getInstances(null, "\"A.C. Reed\"@en");
@@ -184,6 +202,17 @@
 
 		Query query = QueryFactory.create(queryStr.toString());
-		QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI,
-				query);
+
+		
+		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();
@@ -327,5 +356,5 @@
 		// SELECT
 		if (countLinks) {
-			queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n");
+			queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) (COUNT(DISTINCT(?s)) AS ?numOfLinkedInstances) \n");
 		} else {
 			queryStr.append("SELECT DISTINCT ?p ?pDirection ?c \n");
@@ -390,11 +419,28 @@
 		}
 
+		System.out.println("getNextClasses SPARQL Query: ");
 		System.out.println(queryStr.toString());
 
 		Query query = QueryFactory.create(queryStr.toString());
-		QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI,
+		QueryExecution qexec = null;
+		try{
+			qexec = QueryExecutionFactory.sparqlService(endpointURI,
 				query);
-
-		ResultSet results = qexec.execSelect();
+		}catch(Exception ex){
+			ex.printStackTrace();
+			throw ex;
+		}
+			
+		ResultSet results = null;
+		try{
+			long start = System.currentTimeMillis();
+			results = qexec.execSelect();
+			long end = System.currentTimeMillis();
+			System.out.println("EXEC TIME: " + (end-start));
+		}catch(Exception ex){
+			ex.printStackTrace();
+			throw ex;
+		}
+			
 		ArrayList<ClassLink> solCLs = new ArrayList<ClassLink>();
 		for (; results.hasNext();) {
@@ -431,5 +477,5 @@
 				}
 				ClassLink cl = new ClassLink(proURI, clsURI, direction,
-						numOfLinks);
+						numOfLinks, 0, 0 );
 				solCLs.add(cl);
 			}
@@ -484,5 +530,5 @@
 		}
 
-		// System.out.println(queryStr.toString());
+System.out.println(queryStr.toString());
 
 		Query query = QueryFactory.create(queryStr.toString());
@@ -513,5 +559,5 @@
 			// System.out.println(propURI + " " + clsURI + " " + direction);
 
-			ClassLink cl = new ClassLink(propURI, clsURI, direction, 0);
+			ClassLink cl = new ClassLink(propURI, clsURI, direction, 0, 0, 0);
 			solCLs.add(cl);
 		}
@@ -714,5 +760,5 @@
 			queryStr.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n");
 
-			queryStr.append("SELECT (COUNT(?os) AS ?numOfLinks) \n");
+			queryStr.append("SELECT (COUNT(?os) AS ?numOfLinks) (COUNT(DISTINCT(?is)) AS ?numOfOriginInstances) (COUNT(DISTINCT(?os)) AS ?numOfLinkedInstances) \n");
 			if (graphURIs != null) {
 				for (String graphURI : graphURIs) {
@@ -778,4 +824,14 @@
 					classLink.setNumOfLinks(numOfLinks);
 				}
+				lit = sol.getLiteral("numOfLinkedInstances");
+				if (lit != null) {
+					int numOfLinkedInstances = lit.getInt();
+					classLink.setNumOfLinkedInstances(numOfLinkedInstances);
+				}
+				lit = sol.getLiteral("numOfOriginInstances");
+				if (lit != null) {
+					int numOfOriginInstances = lit.getInt();
+					classLink.setNumOfOriginInstances(numOfOriginInstances);
+				}
 			}
 			qexec.close();
Index: /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/ClassLink.java
===================================================================
--- /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/ClassLink.java (revision 26)
+++ /BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/ClassLink.java (revision 46)
@@ -13,5 +13,7 @@
 	private Direction direction = null;
 	private int numOfLinks = 0;
-
+	private int numOfLinkedInstances = 0;
+	private int numOfOriginInstances = 0;
+	
 	/**
 	 * 繝励Ο繝代ユ繧｣URI縲√Μ繝ｳ繧ｯ蜈茨ｼ亥��峨け繝ｩ繧ｹ縲√Μ繝ｳ繧ｯ縺ｮ蜷代″繧剃ｸ弱∴繧区ｧ区�蟄�
@@ -24,9 +26,11 @@
 	 * @since 28.01.2014
 	 */
-	public ClassLink(String propertyURI, String linkedClassURI, Direction direction, int numLinks){
+	public ClassLink(String propertyURI, String linkedClassURI, Direction direction, int numLinks, int numofOriginInstances, int numOfLinkedInstances){
 		this.propertyURI = propertyURI;
 		this.linkedClassURI = linkedClassURI;
 		this.direction = direction;
 		this.numOfLinks = numLinks;
+		this.numOfLinkedInstances = numOfLinkedInstances;
+		this.numOfOriginInstances = numOfOriginInstances;
 	}
 	
@@ -88,8 +92,29 @@
 		this.direction = direction;
 	}
+
+	public final int getNumOfLinkedInstances() {
+		return numOfLinkedInstances;
+	}
+
+	public final void setNumOfLinkedInstances(int numOfLinkedInstances) {
+		this.numOfLinkedInstances = numOfLinkedInstances;
+	}
+
+
+	public final int getNumOfOriginInstances() {
+		return numOfOriginInstances;
+	}
+
+
+	public final void setNumOfOriginInstances(int numOfOriginInstances) {
+		this.numOfOriginInstances = numOfOriginInstances;
+	}
 		
+
+	
 	// private String[] propertyDomainClassURIs = null;
 	// private String[] propertyRangeClassURIs = null;
-
-		
+	
+	
+	
 }
