[graphl-cvs] graphl/src/org/mediavirus/graphl/graph/rdf RDFNode.java RDFGraph.java RDFGraphReader.j
Status: Pre-Alpha
Brought to you by:
flo1
From: Flo L. <fl...@us...> - 2006-07-03 15:26:47
|
Update of /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/rdf In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15693/src/org/mediavirus/graphl/graph/rdf Modified Files: RDFNode.java RDFGraph.java RDFGraphReader.java Log Message: implementing XPath-based filters Index: RDFGraphReader.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/rdf/RDFGraphReader.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RDFGraphReader.java 8 Jun 2006 13:14:59 -0000 1.1 --- RDFGraphReader.java 3 Jul 2006 15:26:33 -0000 1.2 *************** *** 15,18 **** --- 15,19 ---- import org.mediavirus.graphl.GraphlRegistry; import org.mediavirus.graphl.graph.Edge; + import org.mediavirus.graphl.graph.GraphElement; import org.mediavirus.graphl.graph.Node; import org.mediavirus.graphl.vocabulary.NS; *************** *** 35,40 **** boolean loading = false; ! List<Node> nodesToRemove; ! List<Edge> edgesToRemove; List<URL> loadedURLs; --- 36,40 ---- boolean loading = false; ! List<GraphElement> elementsToRemove; List<URL> loadedURLs; *************** *** 61,67 **** // store old nodes+edges for checking deletions // while loading, nodes and edges are removed from these lists ! nodesToRemove = sourceNode.getNeighbours(NS.graphl + "definedIn", Node.REVERSE); ! nodesToRemove.remove(sourceNode); ! edgesToRemove = graph.getEdgesWithPropertyValue(NS.graphl + "definedIn",url.toString()); reload = true; } --- 61,67 ---- // store old nodes+edges for checking deletions // while loading, nodes and edges are removed from these lists ! elementsToRemove = new ArrayList<GraphElement>(sourceNode.getNeighbours(NS.graphl + "definedIn", Node.REVERSE)); ! elementsToRemove.remove(sourceNode); ! elementsToRemove.addAll(graph.getEdgesWithPropertyValue(NS.graphl + "definedIn",url.toString())); reload = true; } *************** *** 90,102 **** if (reload) { ! for (Iterator<Node> nodesI = nodesToRemove.iterator(); nodesI.hasNext();) { ! Node node = nodesI.next(); ! List<Node> nodeSources = node.getNeighbours(NS.graphl + "definedIn", Node.FORWARD); ! if (nodeSources.size() > 1) { ! // keep nodes with multiple sources ! nodesToRemove.remove(node); } } ! graph.deleteElements(nodesToRemove, edgesToRemove); } return loadedURLs; --- 90,104 ---- if (reload) { ! for (GraphElement element : elementsToRemove) { ! if (element instanceof Node) { ! Node node = (Node)element; ! List<Node> nodeSources = node.getNeighbours(NS.graphl + "definedIn", Node.FORWARD); ! if (nodeSources.size() > 1) { ! // keep nodes with multiple sources ! elementsToRemove.remove(node); ! } } } ! graph.removeElements(elementsToRemove); } return loadedURLs; *************** *** 168,172 **** if ((edge.getTo() == onode) && (edge.getType().equals(predicate))) { exists = true; ! if (reload) edgesToRemove.remove(edge); break; } --- 170,174 ---- if ((edge.getTo() == onode) && (edge.getType().equals(predicate))) { exists = true; ! if (reload) elementsToRemove.remove(edge); break; } *************** *** 239,243 **** if (!ParseUtils.guessName(uri).startsWith("genid")) { // if the node has a proper id and it's already in the graph, it has existed before ! nodesToRemove.remove(node); } else { --- 241,245 ---- if (!ParseUtils.guessName(uri).startsWith("genid")) { // if the node has a proper id and it's already in the graph, it has existed before ! elementsToRemove.remove(node); } else { Index: RDFNode.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/rdf/RDFNode.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** RDFNode.java 8 Jun 2006 13:14:59 -0000 1.13 --- RDFNode.java 3 Jul 2006 15:26:32 -0000 1.14 *************** *** 100,104 **** RDFEdge edge = (RDFEdge)edges.next(); if (edge.getType() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") ! graph.deleteElements(null,Collections.singleton((Edge)edge)); } } --- 100,104 ---- RDFEdge edge = (RDFEdge)edges.next(); if (edge.getType() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") ! graph.removeElements(Collections.singleton((Edge)edge)); } } Index: RDFGraph.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/rdf/RDFGraph.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** RDFGraph.java 30 Jun 2006 14:31:46 -0000 1.16 --- RDFGraph.java 3 Jul 2006 15:26:33 -0000 1.17 *************** *** 22,25 **** --- 22,26 ---- import org.mediavirus.graphl.graph.Edge; import org.mediavirus.graphl.graph.Graph; + import org.mediavirus.graphl.graph.GraphElement; import org.mediavirus.graphl.graph.Node; *************** *** 146,161 **** * Overrides @see de.fzi.wim.guibase.graphview.graph.DefaultGraph#deleteElements(java.util.Collection, java.util.Collection) */ ! public synchronized void deleteElements(Collection<Node> nodes, Collection<Edge> edges) { setDirty(true); ! if (nodes != null) { ! for (Iterator iter = nodes.iterator(); iter.hasNext();) { ! RDFNode node = (RDFNode) iter.next(); ! allNodes.remove(node.getId()); } } // TODO after this call, nodes is empty??? why??? ! super.deleteElements(nodes, edges); } --- 147,163 ---- * Overrides @see de.fzi.wim.guibase.graphview.graph.DefaultGraph#deleteElements(java.util.Collection, java.util.Collection) */ ! public synchronized void removeElements(Collection<? extends GraphElement> elements) { setDirty(true); ! if (elements != null) { ! for (GraphElement element : elements) { ! if (element instanceof RDFNode) { ! allNodes.remove(((RDFNode)element).getId()); ! } } } // TODO after this call, nodes is empty??? why??? ! super.removeElements(elements); } |