package kr.ac.kaist.resl.lilliput.core; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import kr.ac.kaist.resl.lilliput.util.JSONHelper; import kr.ac.kaist.resl.lilliput.util.MongoHelper; import org.json.JSONObject; import com.restfb.DefaultFacebookClient; import com.restfb.FacebookClient; import com.restfb.types.Page; import edu.stanford.smi.protege.model.Project; import edu.stanford.smi.protege.server.RemoteProjectManager; 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; /** * Servlet implementation class PlaceRegistration */ public class PlaceRegistration extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public PlaceRegistration() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //It's done String accessToken = (String)request.getParameter("accessToken"); String pageURL = (String)request.getParameter("pageURL"); PlaceEnroll(accessToken, pageURL); RequestDispatcher dispatcher = request.getRequestDispatcher("registration.jsp"); dispatcher.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } public void PlaceEnroll(String accessToken, String pageURL) { //making facebookClient FacebookClient facebookClient = new DefaultFacebookClient(accessToken); //getting Place page Page placePage = facebookClient.fetchObject(pageURL, Page.class); if( placePage == null ) { return; } //getting object EPC String placeEPC = placePage.getName().toLowerCase(); //Ontology�� �ҷ��� RemoteProjectManager rpm = RemoteProjectManager.getInstance(); Project p = rpm.getProject("localhost:5100", "Lilliput", "1234", "IoTSocialGraph", true); OWLModel owlModel = (OWLModel)p.getKnowledgeBase(); //identify whethere object is in or not RDFIndividual placeInd = owlModel.getRDFIndividual(placeEPC); OWLNamedClass placeClass = owlModel.getOWLNamedClass("IndoorSpace"); if( placeInd != null ) { return; } else { placeInd = placeClass.createRDFIndividual(placeEPC); } //saving place information to the database JSONHelper jhelper = new JSONHelper(); JSONObject jsonPlace = jhelper.getJSONFromPlace(placePage); MongoHelper mHelper = new MongoHelper(); String placeInformID = mHelper.saveToDB("SpaceInformation", jsonPlace, "epc", placePage.getName().toLowerCase()); //save to Ontology : Information OWLNamedClass informClass = owlModel.getOWLNamedClass("SpaceInformation"); RDFIndividual informInd = informClass.createRDFIndividual(placeInformID); //making relationship : Human - Information OWLObjectProperty hasInform = owlModel.getOWLObjectProperty("hasSpaceInformation"); placeInd.addPropertyValue(hasInform, informInd); p.dispose(); System.out.println("Place Registration is finished"); } }