/** * Upload the given file of n3 data. * * @param sFileName the name of the file to upload. * @param sMeetingID the id of the meeting whose data is being uploaded. * @throws MalformedURLException {@Link #uploadModel(com.hp.hpl.jena.rdf.model.Model,String) * uploadModel} method throw it back to this method. */ public void uploadFile(String sFileName, String sMeetingID) throws MalformedURLException { com.hp.hpl.jena.rdf.model.Model model = com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(); model.read("file:///" + sFileName, "N3"); // $NON-NLS-1$ //$NON-NLS-2$ uploadModel(model, sMeetingID); model.close(); }
/** * Write the given model to a file with the given name. * * @param model the model to write to a file. * @param sFileName the name of the file to write to. * @throws FileNodeFountException if a new FileOutputStream cannot be created. * @throws IOException if the FileOutputStream cannot be closed. */ public void writeFile(com.hp.hpl.jena.rdf.model.Model model, String sFileName) throws FileNotFoundException, IOException { FileOutputStream out = new FileOutputStream(sFileName); model.write(out, "N3"); // $NON-NLS-1$ model.close(); out.close(); }
/** * Upload the given model to the triplestore * * @param model, the model to upload. * @param sMeetingID the id of the meeting whose data is being uploaded. * @throws MalformedURLException if the urls used to create the HttpRemove and HttpAdd is * malformed. */ public void uploadModel(com.hp.hpl.jena.rdf.model.Model oModel, String sMeetingID) throws MalformedURLException { // System.out.println("About to try and upload: "+oModel.toString()); com.hp.hpl.jena.rdf.model.Model oInnerModel = ModelFactory.createDefaultModel(); Resource meeting = oInnerModel.createResource(sMeetingID); Property comp_is_proc = oInnerModel.createProperty(MEMETIC_NS, "compendium-is-processed"); // $NON-NLS-1$ meeting.addProperty(comp_is_proc, "true"); // $NON-NLS-1$ HttpRemove removeOp = new HttpRemove(sUrl); removeOp.setModel(oInnerModel); removeOp.exec(); oInnerModel.close(); HttpAdd addOp = new HttpAdd(sUrl); addOp.setModel(oModel); addOp.exec(); }
/** * Create a triple for a new node being created. * * @param oMeetingEvent the event whose data to upload. * @param model the model to add the data to. */ private synchronized void addNode( MeetingEvent oMeetingEvent, com.hp.hpl.jena.rdf.model.Model model) { NodeSummary oNode = oMeetingEvent.getNode(); if (oNode == null) { return; } String sNodeID = oNode.getId(); Resource oResNode = model.createResource(oMeetingEvent.getMeetingID() + "-" + sNodeID); // $NON-NLS-1$ Property type = model.createProperty(RDF_NS, "type"); // $NON-NLS-1$ oResNode.addProperty(type, model.createResource(MEMETIC_NS + "Compendium-Node")); // $NON-NLS-1$ int nNodeType = oNode.getType(); String sTripleStoreString = UINodeTypeManager.getTripleStoreDescription(nNodeType); oResNode.addProperty(type, model.createResource(MEMETIC_NS + sTripleStoreString)); if (nNodeType == ICoreConstants.REFERENCE_SHORTCUT) { oResNode.addProperty( model.createProperty(MEMETIC_NS, "has-reference"), oNode.getSource()); // $NON-NLS-1$ } // ADD LABEL oResNode.addProperty( model.createProperty(MEMETIC_NS, "has-label"), oNode.getLabel()); // $NON-NLS-1$ // ADD IF HAS TRIPLESTORE ID String sOriginalID = oNode.getOriginalID(); if (sOriginalID.startsWith("TS:") && !(nNodeType == ICoreConstants.REFERENCE || nNodeType == ICoreConstants.REFERENCE)) { // $NON-NLS-1$ int ind = sOriginalID.indexOf(":"); // $NON-NLS-1$ sOriginalID = sOriginalID.substring(ind + 1); Property has_original_id = model.createProperty(MEMETIC_NS, "has-original-id"); // $NON-NLS-1$ Resource original_id = model.createResource(sOriginalID); oResNode.addProperty(has_original_id, original_id); } }
/** * Create the model and the meeting data for the given meeting id. * * @param oMeeting the object holding the meeting data. * @param model the model to add the data to. */ public synchronized void addMeetingData(Meeting oMeeting, com.hp.hpl.jena.rdf.model.Model model) { Resource meeting = model.createResource(oMeeting.getMeetingID()); meeting.addProperty( model.createProperty(MEETING_NS, "has-transcription"), model.createResource( oMeeting.getMeetingID() + "-" + oMeeting.getMeetingMapID())); // $NON-NLS-1$ //$NON-NLS-2$ // Define the map owner, 'person', Reource and add their type, name, and if Compendium created // (always 'true'). UserProfile oUser = oMeeting.getUser(); if (oUser == null) { oUser = ProjectCompendium.APP.getModel().getUserProfile(); } Resource person = model.createResource(MEMETIC_STUB + oUser.getId()); person.addProperty( model.createProperty(RDF_NS, "type"), model.createResource(PORTAL_NS + "Person")); // $NON-NLS-1$ //$NON-NLS-2$ person.addProperty( model.createProperty(PORTAL_NS, "full-name"), oUser.getUserName()); // $NON-NLS-1$ person.addProperty( model.createProperty(MEMETIC_NS, "is-compendium-created"), "true"); //$NON-NLS-1$ //$NON-NLS-2$ // UPLOAD THE DATA ABOUT THE MEETING MAP NODE ITSELF MeetingEvent oMeetingEvent = new MeetingEvent( oMeeting.getMeetingID(), false, MeetingEvent.NODE_ADDED_EVENT, (View) oMeeting.getMapNode(), oMeeting.getMapNode()); addNode(oMeetingEvent, model); }
/** * Create the given event triple. * * @param oMeetingEvent the event whose data to upload. * @param model the model to add the data to. */ public synchronized void addEvent( MeetingEvent oMeetingEvent, com.hp.hpl.jena.rdf.model.Model model) { int nEventType = oMeetingEvent.getEventType(); // IF THIS EVENT INDICATES THAT A NEW NODE WAS CREATED, // CREATE A NEW NODE OBJECT FOR IT IN THE TRIPLESTORE BEFORE CONTINUING. if (nEventType == MeetingEvent.NODE_ADDED_EVENT || nEventType == MeetingEvent.NODE_TRANSCLUDED_EVENT) { addNode(oMeetingEvent, model); } String id = com.compendium.core.datamodel.Model.getStaticUniqueID(); Resource meeting = model.createResource(oMeetingEvent.getMeetingID()); Resource event = model.createResource(MEMETIC_STUB + id); Property type = model.createProperty(RDF_NS, "type"); // $NON-NLS-1$ event.addProperty(type, model.createResource(MEMETIC_NS + "Compendium-Event")); // $NON-NLS-1$ Resource oEventType = null; String oTagName = ""; // $NON-NLS-1$ switch (oMeetingEvent.getEventType()) { case MeetingEvent.TAG_ADDED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Tagging-Compendium-Node"); // $NON-NLS-1$ oTagName = oMeetingEvent.getCode().getName(); break; case MeetingEvent.TAG_REMOVED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Detagging-Compendium-Node"); // $NON-NLS-1$ oTagName = oMeetingEvent.getCode().getName(); break; case MeetingEvent.NODE_ADDED_EVENT: case MeetingEvent.NODE_TRANSCLUDED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Creating-Compendium-Node"); // $NON-NLS-1$ break; case MeetingEvent.NODE_REMOVED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Deleting-Compendium-Node"); // $NON-NLS-1$ break; case MeetingEvent.VIEW_SELECTED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Bringing-Map-To-Front"); // $NON-NLS-1$ break; case MeetingEvent.NODE_FOCUSED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Selecting-Compendium-Node"); // $NON-NLS-1$ break; case MeetingEvent.REFERENCE_LAUNCHED_EVENT: oEventType = model.createResource(MEMETIC_NS + "Launching-Reference-Node"); // $NON-NLS-1$ break; default: break; } event.addProperty(type, oEventType); if (!oTagName.equals("")) { // $NON-NLS-1$ event.addProperty(model.createProperty(MEMETIC_NS, "has-tag"), oTagName); // $NON-NLS-1$ } event.addProperty( model.createProperty(MEMETIC_NS, "has-media-start-time"), oMeetingEvent.getMediaIndex()); // $NON-NLS-1$ event.addProperty( model.createProperty(MEMETIC_NS, "has-node"), model.createResource( oMeetingEvent.getMeetingID() + "-" + oMeetingEvent.getNodeID())); // $NON-NLS-1$ //$NON-NLS-2$ event.addProperty( model.createProperty(MEMETIC_NS, "has-map"), model.createResource( oMeetingEvent.getMeetingID() + "-" + oMeetingEvent.getViewID())); // $NON-NLS-1$ //$NON-NLS-2$ event.addProperty( model.createProperty(PORTAL_NS, "sender-of-information"), model.createResource(userURI)); // $NON-NLS-1$ event.addProperty( model.createProperty(MEMETIC_NS, "created-post-meeting"), oMeetingEvent.creatingPostMeeting()); // $NON-NLS-1$ meeting.addProperty(model.createProperty(PORTAL_NS, "has-sub-event"), event); // $NON-NLS-1$ }