package kr.ac.kaist.resl.lilliput.util; import java.util.ArrayList; import java.util.List; 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.OWLObjectProperty; import edu.stanford.smi.protegex.owl.model.RDFIndividual; public class DisappearThread extends Thread{ public String source; public List<String> dests; public String property; public int period; public DisappearThread(String source, List<String> dests, String property, int period) { this.source = source; this.dests = dests; this.property = property; this.period = period; } public void run() { try{ Thread.sleep(period*1000); RemoteProjectManager rpm = RemoteProjectManager.getInstance(); Project p = rpm.getProject("localhost:5100", "Lilliput", "1234", "IoTSocialGraph", true); OWLModel owlModel = (OWLModel)p.getKnowledgeBase(); OWLObjectProperty isIdentifying = owlModel.getOWLObjectProperty(property); RDFIndividual spaceInd = owlModel.getRDFIndividual(source); List<RDFIndividual> objectInds = new ArrayList<RDFIndividual>(); for(int i = 0 ; i < dests.size() ; i ++ ) { String dest = dests.get(i); RDFIndividual objectInd = owlModel.getRDFIndividual(dest); if( objectInd != null ) { objectInds.add(objectInd); } } for(int i = 0 ; i < objectInds.size() ; i ++ ) { spaceInd.removePropertyValue(isIdentifying, objectInds.get(i)); } p.dispose(); System.out.println( source + " and " + dests.toString() + "'s near is disappeared"); }catch( InterruptedException e ) { e.printStackTrace(); } } }