/** * Returns the edge id * @return edge id */ public GradoopId getEdgeId() { return f1.getId(); }
/** * Returns the edge id * @return edge id */ public GradoopId getEdgeId() { return f1.getId(); }
@Override public void flatMap(Edge edge, Collector<EdgeString> collector) throws Exception { GradoopId sourceId = edge.getSourceId(); GradoopId targetId = edge.getTargetId(); String edgeLabel = "[" + edge.getId() + "]"; for (GradoopId graphId : edge.getGraphIds()) { collector.collect(new EdgeString(graphId, sourceId, targetId, edgeLabel)); } } }
@Override public void flatMap( E edge, Collector<Tuple4<GradoopId, GradoopId, GradoopId, GradoopId>> collector) { for (GradoopId graphId : edge.getGraphIds()) { collector.collect(new Tuple4<>( edge.getId(), edge.getSourceId(), edge.getTargetId(), graphId)); } } }
@Override public void flatMap(Edge edge, Collector<EdgeString> collector) throws Exception { GradoopId sourceId = edge.getSourceId(); GradoopId targetId = edge.getTargetId(); String edgeLabel = "[" + edge.getId() + "]"; for (GradoopId graphId : edge.getGraphIds()) { collector.collect(new EdgeString(graphId, sourceId, targetId, edgeLabel)); } } }
@Override public void flatMap( E edge, Collector<Tuple4<GradoopId, GradoopId, GradoopId, GradoopId>> collector) { for (GradoopId graphId : edge.getGraphIds()) { collector.collect(new Tuple4<>( edge.getId(), edge.getSourceId(), edge.getTargetId(), graphId)); } } }
@Override public TripleWithCandidates<GradoopId> map(E e) throws Exception { reuseTuple.setEdgeId(e.getId()); reuseTuple.setSourceId(e.getSourceId()); reuseTuple.setTargetId(e.getTargetId()); reuseTuple.setCandidates( getCandidates(edgeCount, ElementMatcher.getMatches(e, queryEdges, DEFAULT_EDGE_LABEL))); return reuseTuple; } }
@Override public TripleWithCandidates<GradoopId> map(E e) throws Exception { reuseTuple.setEdgeId(e.getId()); reuseTuple.setSourceId(e.getSourceId()); reuseTuple.setTargetId(e.getTargetId()); reuseTuple.setCandidates( getCandidates(edgeCount, ElementMatcher.getMatches(e, queryEdges, DEFAULT_EDGE_LABEL))); return reuseTuple; } }
@Override public Tuple2<GradoopIdSet, TripleWithCandidates<GradoopId>> map(E e) throws Exception { reuseTuple.f0 = e.getGraphIds(); reuseTuple.f1.setEdgeId(e.getId()); reuseTuple.f1.setSourceId(e.getSourceId()); reuseTuple.f1.setTargetId(e.getTargetId()); reuseTuple.f1.setCandidates(getCandidates(edgeCount, ElementMatcher.getMatches(e, queryEdges, DEFAULT_EDGE_LABEL))); return reuseTuple; } }
@Override public Tuple2<GradoopIdSet, TripleWithCandidates<GradoopId>> map(E e) throws Exception { reuseTuple.f0 = e.getGraphIds(); reuseTuple.f1.setEdgeId(e.getId()); reuseTuple.f1.setSourceId(e.getSourceId()); reuseTuple.f1.setTargetId(e.getTargetId()); reuseTuple.f1.setCandidates(getCandidates(edgeCount, ElementMatcher.getMatches(e, queryEdges, DEFAULT_EDGE_LABEL))); return reuseTuple; } }
@Test public void testFilterEdgesByLabel() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a:likes]->()"); EdgeFactory edgeFactory = new EdgeFactory(); Edge e1 = edgeFactory.createEdge("likes", GradoopId.get(), GradoopId.get()); Edge e2 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get()); DataSet<Edge> edges = getExecutionEnvironment().fromElements(e1, e2); List<Embedding> result = new FilterAndProjectEdges(edges, predicates, new ArrayList<>(), false) .evaluate() .collect(); assertEquals(1, result.size()); assertEquals(result.get(0).getId(1), e1.getId()); }
@Test public void testFilterWithNoPredicates() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a]->()"); EdgeFactory edgeFactory = new EdgeFactory(); Properties properties = Properties.create(); properties.set("name", "Anton"); Edge e1 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get(), properties); DataSet<Edge> edges = getExecutionEnvironment().fromElements(e1); List<Embedding> result = new FilterAndProjectEdges(edges, predicates, new ArrayList<>(), false) .evaluate() .collect(); assertEquals(1, result.size()); assertEquals(result.get(0).getId(1), e1.getId()); }
@Test public void testResultingEntryList() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\""); Properties properties = Properties.create(); properties.set("name", "Alice"); Edge edge = new EdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); List<Embedding> result = new FilterAndProjectEdges(edges, predicates, new ArrayList<>(), false) .evaluate() .collect(); assertEquals(edge.getSourceId(), result.get(0).getId(0)); assertEquals(edge.getId(), result.get(0).getId(1)); assertEquals(edge.getTargetId(), result.get(0).getId(2)); }
@Override public CSVEdge map(Edge edge) throws Exception { csvEdge.setId(edge.getId().toString()); csvEdge.setGradoopIds(collectionToCsvString(edge.getGraphIds())); csvEdge.setSourceId(edge.getSourceId().toString()); csvEdge.setTargetId(edge.getTargetId().toString()); csvEdge.setLabel(StringEscaper.escape(edge.getLabel(), CSVConstants.ESCAPED_CHARACTERS)); csvEdge.setProperties(getPropertyString(edge, MetaDataSource.EDGE_TYPE)); return csvEdge; } }
@Override public CSVEdge map(Edge edge) throws Exception { csvEdge.setId(edge.getId().toString()); csvEdge.setGradoopIds(collectionToCsvString(edge.getGraphIds())); csvEdge.setSourceId(edge.getSourceId().toString()); csvEdge.setTargetId(edge.getTargetId().toString()); csvEdge.setLabel(StringEscaper.escape(edge.getLabel(), CSVConstants.ESCAPED_CHARACTERS)); csvEdge.setProperties(getPropertyString(edge, MetaDataSource.EDGE_TYPE)); return csvEdge; } }
@Test public void testProjectLoop() throws Exception { GradoopId a = GradoopId.get(); Edge edge = new EdgeFactory().createEdge(a, a); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); Embedding result = new ProjectEdges(edges, Collections.emptyList(), true) .evaluate().collect().get(0); assertEquals(result.size(), 2); assertEquals(a, result.getId(0)); assertEquals(edge.getId(), result.getId(1)); } }
@Test public void testProjectLoop() throws Exception { CNF predicates = predicateFromQuery("MATCH (a)-[b]->(a)"); GradoopId a = GradoopId.get(); Edge edge = new EdgeFactory().createEdge(a, a); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); Embedding result = new FilterAndProjectEdges(edges, predicates, Collections.emptyList(), true) .evaluate().collect().get(0); assertEquals(result.size(), 2); assertEquals(a, result.getId(0)); assertEquals(edge.getId(), result.getId(1)); } }
@SuppressWarnings("Duplicates") private void validateEdge(HBaseEPGMStore graphStore, Edge originalEdge) throws IOException { EPGMEdge loadedEdge = graphStore.readEdge(originalEdge.getId()); validateEPGMElements(originalEdge, loadedEdge); validateEPGMGraphElements(originalEdge, loadedEdge); assert loadedEdge != null; assertEquals("source vertex mismatch", originalEdge.getSourceId(), loadedEdge.getSourceId()); assertEquals("target vertex mismatch", originalEdge.getTargetId(), loadedEdge.getTargetId()); }
@SuppressWarnings("Duplicates") private void validateEdge( AccumuloEPGMStore graphStore, Edge originalEdge ) throws IOException { EPGMEdge loadedEdge = graphStore.readEdge(originalEdge.getId()); validateEPGMElements(originalEdge, loadedEdge); validateEPGMGraphElements(originalEdge, loadedEdge); assert loadedEdge != null; assertEquals("source vertex mismatch", originalEdge.getSourceId(), loadedEdge.getSourceId()); assertEquals("target vertex mismatch", originalEdge.getTargetId(), loadedEdge.getTargetId()); }