public Element createNodeElement(Document dom, int i) { Element data; Collaborator col = collaborators.get(i); Element node = dom.createElement("node"); node.setAttribute("id", col.getId()); for (int row = 0; row < nodeAttr.length; row++) { data = dom.createElement("data"); data.setAttribute("key", nodeAttr[row][0]); if (nodeAttr[row][0].equalsIgnoreCase("ContributorID")) data.setTextContent(col.getId()); else if (nodeAttr[row][0].equalsIgnoreCase("Label")) data.setTextContent(col.getName()); else if (nodeAttr[row][0].equalsIgnoreCase("ContributorName")) data.setTextContent(col.getName()); else if (nodeAttr[row][0].equalsIgnoreCase("Roles")) data.setTextContent(col.getFunction()); else if (nodeAttr[row][0].equalsIgnoreCase("Gender")) data.setTextContent(col.getGender()); else if (nodeAttr[row][0].equalsIgnoreCase("Nationality")) data.setTextContent(col.getNationality()); else if (nodeAttr[row][0].equalsIgnoreCase("ContributorURL")) data.setTextContent(col.getUrl()); // data.setTextContent(conURLprefix + col.getId()); node.appendChild(data); } return node; }
/* * add some of the additional required information for collaborator */ public ArrayList<Collaborator> getCollaborators( TreeMap<Integer, Collaborator> network, String id) { // declare helper variables java.util.ArrayList<Collaborator> collaborators = new java.util.ArrayList<Collaborator>(); // define a SPARQL query to get details about a collaborator String sparqlQuery = "PREFIX foaf: <" + FOAF.NS + ">" + "PREFIX ausestage: <" + AuseStage.NS + "> " + "SELECT ?collabName ?function ?gender ?nationality " + "WHERE { " + " @ a foaf:Person ; " + " foaf:name ?collabName. " + "OPTIONAL {@ ausestage:function ?function} " + "OPTIONAL {@ foaf:gender ?gender} " + "OPTIONAL {@ ausestage:nationality ?nationality} " + "} "; String queryToExecute = null; ResultSet results = null; QuerySolution row = null; Collaborator collaborator = null; // loop through the list of collaborators and get additional information Collection networkKeys = network.keySet(); Iterator networkKeyIterator = networkKeys.iterator(); Integer networkKey = null; Integer centreId = Integer.parseInt(id); // loop through the list of keys while (networkKeyIterator.hasNext()) { // get the key for this collaborator networkKey = (Integer) networkKeyIterator.next(); // create a new collaborator object collaborator = new Collaborator(networkKey.toString()); // build the query queryToExecute = sparqlQuery.replaceAll( "@", "<" + AusStageURI.getContributorURI(collaborator.getId()) + ">"); // execute the query results = rdf.executeSparqlQuery(queryToExecute); // add details to this contributor while (results.hasNext()) { // loop though the resulset // get a new row of data row = results.nextSolution(); // add the data to the collaborator collaborator.setName(row.get("collabName").toString()); if (row.get("function") != null) { collaborator.setFunction(row.get("function").toString()); } if (row.get("gender") != null) { collaborator.setGender(row.get("gender").toString()); } if (row.get("nationality") != null) { collaborator.setNationality(row.get("nationality").toString()); } collaborator.setUrl(AusStageURI.getContributorURL(collaborator.getId())); } // play nice and tidy rdf.tidyUp(); results = null; // add the collaborator to the list collaborators.add(collaborator); } return collaborators; }