package kr.ac.kaist.resl.lilliput.core; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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.DisappearThread; 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 NFCIntegration */ public class NFCIntegration extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public NFCIntegration() { 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 String epc = (String)request.getParameter("EPC"); String deviceEPC = (String)request.getParameter("deviceEPC"); nearByRegistration(deviceEPC, epc); System.out.println(epc); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } public boolean nearByRegistration(String deviceEPC, String sensedEPC) { //coap://iotsensor1.iot.kr:5683/sensors/temp try { //object�� �̹� EPCRegistration���� ����Ǿ� �ִٰ� �����Ѵ� RemoteProjectManager rpm = RemoteProjectManager.getInstance(); Project p = rpm.getProject("localhost:5100", "Lilliput", "1234", "IoTSocialModel", true); OWLModel owlModel = (OWLModel)p.getKnowledgeBase(); //Save Space to Ontology if it is not saved OWLNamedClass objectClass = owlModel.getOWLNamedClass("Object"); //Identify whethere there is object or not RDFIndividual deviceInd = owlModel.getRDFIndividual(deviceEPC); RDFIndividual objectInd = owlModel.getRDFIndividual(sensedEPC); OWLObjectProperty isNear = owlModel.getOWLObjectProperty("isNear"); //���ο� ��� if( deviceInd == null ) { //���� ����ؾ��� //��������� ��� deviceInd = objectClass.createRDFIndividual(deviceEPC); } if( objectInd == null ) { objectInd = objectClass.createRDFIndividual(sensedEPC); } //���ݱ����� ���� deviceInd.addPropertyValue(isNear, objectInd); //�� near�� 5�� ������ �������� p.dispose(); System.out.println( deviceEPC + " and " + sensedEPC + "is now near in Lilliput"); List<String> sensedEPCs = new ArrayList<String>(); sensedEPCs.add(sensedEPC); DisappearThread disappearThread = new DisappearThread(deviceEPC,sensedEPCs,"isNear",20); disappearThread.start(); return true; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } }