package kr.ac.kaist.resl.lilliput.rest; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.net.UnknownHostException; import java.util.GregorianCalendar; import java.util.List; import java.util.Map; import kr.ac.kaist.resl.lilliput.util.Util; import org.bson.types.ObjectId; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.restlet.ext.json.JsonRepresentation; import org.restlet.resource.Get; import org.restlet.resource.ServerResource; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoException; import edu.stanford.smi.protege.model.Project; import edu.stanford.smi.protege.server.RemoteProjectManager; import edu.stanford.smi.protegex.owl.model.OWLDatatypeProperty; import edu.stanford.smi.protegex.owl.model.OWLModel; import edu.stanford.smi.protegex.owl.model.OWLObjectProperty; import edu.stanford.smi.protegex.owl.model.RDFIndividual; import edu.stanford.smi.protegex.owl.model.query.QueryResults; public class KDTest2 extends ServerResource { @Get("json") public JsonRepresentation toJson() { try { String epc = (String)getRequest().getAttributes().get("uid"); RemoteProjectManager rpm = RemoteProjectManager.getInstance(); Project p = rpm.getProject("localhost:5100", "Lilliput", "1234", "IoTSocialGraph", true); OWLModel owlModel = (OWLModel)p.getKnowledgeBase(); JSONObject returnJson = getInformation(owlModel, epc); JsonRepresentation representation = new JsonRepresentation(returnJson); // Returns the XML representation of this document. return representation; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static JSONObject getInformation(OWLModel owlModel, String epc ) throws JSONException { try { FileWriter fw = new FileWriter("KBRetrieve2.txt"); BufferedWriter bw = new BufferedWriter(fw); PrintWriter outFile = new PrintWriter(bw); JSONObject returnJson = new JSONObject(); //Save Space to Ontology if it is not saved RDFIndividual humanInd; RDFIndividual objectInd; RDFIndividual spaceInd; String[] epcSplit = epc.split(":"); OWLObjectProperty prop ; RDFIndividual informInd = null; String dbCollection = null; String objectID = null; for(int i = 0 ; i < 10000 ; i++ ) { // 1.get information individual long pretime1 = System.nanoTime(); humanInd = owlModel.getOWLIndividual(epc); OWLDatatypeProperty fidd = owlModel.getOWLDatatypeProperty("fid"); OWLDatatypeProperty named = owlModel.getOWLDatatypeProperty("name"); OWLDatatypeProperty linkd = owlModel.getOWLDatatypeProperty("link"); OWLDatatypeProperty SyncTimed = owlModel.getOWLDatatypeProperty("SyncTime"); OWLDatatypeProperty genderd = owlModel.getOWLDatatypeProperty("gender"); OWLDatatypeProperty educationd = owlModel.getOWLDatatypeProperty("education"); OWLDatatypeProperty updatedTimed = owlModel.getOWLDatatypeProperty("updatedTime"); Object s1 = humanInd.getPropertyValue(fidd); Object s2 = humanInd.getPropertyValue(named); Object s3 = humanInd.getPropertyValue(linkd); Object s4 = humanInd.getPropertyValue(SyncTimed); Object s5 = humanInd.getPropertyValue(genderd); Object s6 = humanInd.getPropertyValue(educationd); Object s7 = humanInd.getPropertyValue(updatedTimed); long posttime1 = System.nanoTime(); double time1 = posttime1-pretime1; System.out.print(time1/1000000000+"\t"); outFile.print(time1/1000000000+"\t"); long pretime2 = System.nanoTime(); JSONObject returnObj = new JSONObject(); returnObj.put("s1", s1); returnObj.put("s2", s2); returnObj.put("s3", s3); returnObj.put("s4", s4); returnObj.put("s5", s5); returnObj.put("s6", s6); returnObj.put("s7", s7); long posttime2 = System.nanoTime(); double time2 = posttime2-pretime2; System.out.println( i + " : " + time2/1000000000+"\t"); outFile.println(time2/1000000000+"\t"); } outFile.close(); return null; }catch( MongoException e) { } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }