[graphl-cvs] graphl/src/org/mediavirus/graphl/graph/rdf RDFGraph.java
Status: Pre-Alpha
Brought to you by:
flo1
From: Flo L. <fl...@us...> - 2005-09-05 15:40:17
|
Update of /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/rdf In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13589/src/org/mediavirus/graphl/graph/rdf Modified Files: RDFGraph.java Log Message: added static method to write arbitrary graph to RDF Index: RDFGraph.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/rdf/RDFGraph.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** RDFGraph.java 24 Aug 2005 16:10:22 -0000 1.10 --- RDFGraph.java 5 Sep 2005 15:40:08 -0000 1.11 *************** *** 21,24 **** --- 21,25 ---- import org.mediavirus.graphl.graph.DefaultGraph; import org.mediavirus.graphl.graph.Edge; + import org.mediavirus.graphl.graph.Graph; import org.mediavirus.graphl.graph.Node; import org.mediavirus.graphl.vocabulary.NS; *************** *** 52,57 **** return (RDFNode)allNodes.get(id); } ! ! public void writeToRDF(OutputStream out) throws IOException { RDFWriter writer = new RDFWriter(); --- 53,58 ---- return (RDFNode)allNodes.get(id); } ! ! public static void writeToRDF(Graph graph, OutputStream out, String baseURL) throws IOException { RDFWriter writer = new RDFWriter(); *************** *** 64,67 **** --- 65,72 ---- writer.addNamespacePrefix("map","http://fabl.net/vocabularies/geography/map/1.1/"); writer.addNamespacePrefix("geo","http://www.w3.org/2003/01/geo/wgs84_pos#"); + writer.addNamespacePrefix("dc","http://purl.org/dc/elements/1.1/"); + writer.addNamespacePrefix("foo","http://www.mediavirus.org/foo#"); + writer.addNamespacePrefix("vs","http://www.w3.org/2003/06/sw-vocab-status/ns#"); + writer.addNamespacePrefix("wot","http://xmlns.com/wot/0.1/"); writer.prepareNamespaceCollection(); *************** *** 74,77 **** --- 79,86 ---- writer.collectNamespace("http://fabl.net/vocabularies/geography/map/1.1/"); writer.collectNamespace("http://www.w3.org/2003/01/geo/wgs84_pos#"); + writer.collectNamespace("http://purl.org/dc/elements/1.1/"); + writer.collectNamespace("http://www.mediavirus.org/foo#"); + writer.collectNamespace("http://www.w3.org/2003/06/sw-vocab-status/ns#"); + writer.collectNamespace("http://xmlns.com/wot/0.1/"); OutputStreamWriter owriter = new OutputStreamWriter(out); *************** *** 79,94 **** writer.startRDFContents(); ! List allNodes = getNodes(); for (Iterator iter = allNodes.iterator(); iter.hasNext();) { ! RDFNode node = (RDFNode) iter.next(); for (Iterator attrs = node.getProperties().keySet().iterator(); attrs.hasNext();) { String attr = (String) attrs.next(); ! writer.writeStatement(node.getId(), attr, node.getProperty(attr), null, null, true); } - //writer.writeStatement(node.getId(), NS.graphl + "canvasPosition", node.getCenterX() + ":" + node.getCenterY(), null, null, true); List nodeEdges = node.getEdgesFrom(); for (Iterator edgeIter = nodeEdges.iterator(); edgeIter.hasNext();) { ! RDFEdge edge = (RDFEdge) edgeIter.next(); ! writer.writeStatement(node.getId(), edge.getType(), ((RDFNode)edge.getTo()).getId(), null, null, false); } } --- 88,117 ---- writer.startRDFContents(); ! List allNodes = graph.getNodes(); ! List allEdges = graph.getEdges(); ! for (Iterator iter = allNodes.iterator(); iter.hasNext();) { ! Node node = (Node) iter.next(); ! ! String id = node.getId(); ! if ((baseURL != null) && (id.startsWith(baseURL)) && (id.lastIndexOf('#')>-1)) { ! id = id.substring(id.lastIndexOf('#')); ! } ! for (Iterator attrs = node.getProperties().keySet().iterator(); attrs.hasNext();) { String attr = (String) attrs.next(); ! writer.writeStatement(id, attr, node.getProperty(attr), null, null, true); } List nodeEdges = node.getEdgesFrom(); for (Iterator edgeIter = nodeEdges.iterator(); edgeIter.hasNext();) { ! Edge edge = (Edge) edgeIter.next(); ! // TODO (3) this would be a reason to have a FilteredNode class that returns only filtered edges... ! if (allEdges.contains(edge)) { ! String toId = edge.getTo().getId(); ! if ((baseURL != null) && (toId.startsWith(baseURL)) && (toId.lastIndexOf('#')>-1)) { ! toId = toId.substring(toId.lastIndexOf('#')); ! } ! writer.writeStatement(id, edge.getType(), toId, null, null, false); ! } } } *************** *** 96,99 **** --- 119,127 ---- writer.finishRDFContents(); writer.cleanUp(); + + } + + public void writeToRDF(OutputStream out, String baseURL) throws IOException { + writeToRDF(this, out, baseURL); } *************** *** 107,110 **** --- 135,144 ---- sourceNode = getNodeOrNew(loadingURL.toString()); + + if (sourceNode.getNeighbours(NS.graphl + "definedIn", true).size() == 0) { + Edge edge = createEdge(sourceNode, sourceNode); + edge.setSource(NS.graphl + "SYSTEM"); + edge.setType(NS.graphl + "definedIn"); + } InputSource input = new InputSource(new FileReader(f)); *************** *** 121,124 **** --- 155,164 ---- sourceNode = getNodeOrNew(loadingURL.toString()); + if (sourceNode.getNeighbours(NS.graphl + "definedIn", true).size() == 0) { + Edge edge = createEdge(sourceNode, sourceNode); + edge.setSource(NS.graphl + "SYSTEM"); + edge.setType(NS.graphl + "definedIn"); + } + InputSource input; try { *************** *** 287,295 **** public void statementWithLiteralValue(String subject, String predicate, String object, String language, String datatype) throws SAXException { ! // TODO (2): for incremental loading, check if these things are already set ! ! //if (predicate.equals(NS.graphl + "connectedTo")) { ! // get / create node with label subject ! if (loadingURL != null) { try { --- 327,331 ---- public void statementWithLiteralValue(String subject, String predicate, String object, String language, String datatype) throws SAXException { ! // get absolute URL for subject if (loadingURL != null) { try { |