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.Collection; import java.util.Iterator; 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.OWLNamedClass; 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 KDTest1 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("KBRetrieve1.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; humanInd = owlModel.getOWLIndividual(epc); Mongo m = new Mongo("143.248.106.26", 27017); DB db = m.getDB("Lilliput"); dbCollection = "HumanInformation"; DBCollection collection = db.getCollection(dbCollection); prop = owlModel.getOWLObjectProperty("hasHumanInformation"); for(int i = 0 ; i < 10000 ; i++ ) { // 1.get information individual long pretime1 = System.nanoTime(); informInd = (RDFIndividual)humanInd.getPropertyValue(prop); // long posttime1 = System.nanoTime(); double time1 = posttime1-pretime1; System.out.print(time1/1000000000+"\t"); outFile.print(time1/1000000000+"\t"); objectID = Util.individualToBrowserText(informInd.getBrowserText()); DBObject query = new BasicDBObject(); query.put("_id",new ObjectId("5072a7f01a9ec478e865dcb1")); long pretime2 = System.nanoTime(); // 2. get information from db DBObject queriedObject = collection.findOne(query); // long posttime2 = System.nanoTime(); double time2 = posttime2-pretime2; System.out.print(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; } }