Skip to content

Commit 73b6a4c

Browse files
Add Leiden to business facade
1 parent b11dc64 commit 73b6a4c

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

algorithms-compute-business-facade/src/main/java/org/neo4j/gds/community/CommunityComputeBusinessFacade.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.neo4j.gds.cliqueCounting.CliqueCountingResult;
3030
import org.neo4j.gds.cliquecounting.CliqueCountingParameters;
3131
import org.neo4j.gds.community.validation.ApproxMaxKCutValidation;
32-
import org.neo4j.gds.community.validation.LocalClusteringCoefficientGraphStoreValidation;
32+
import org.neo4j.gds.community.validation.UndirectedAndSeedableGraphStoreValidation;
3333
import org.neo4j.gds.conductance.ConductanceParameters;
3434
import org.neo4j.gds.conductance.ConductanceResult;
3535
import org.neo4j.gds.core.JobId;
@@ -49,6 +49,8 @@
4949
import org.neo4j.gds.kmeans.KmeansResult;
5050
import org.neo4j.gds.labelpropagation.LabelPropagationParameters;
5151
import org.neo4j.gds.labelpropagation.LabelPropagationResult;
52+
import org.neo4j.gds.leiden.LeidenParameters;
53+
import org.neo4j.gds.leiden.LeidenResult;
5254
import org.neo4j.gds.result.TimedAlgorithmResult;
5355
import org.neo4j.gds.results.ResultTransformerBuilder;
5456
import org.neo4j.gds.triangle.LocalClusteringCoefficientParameters;
@@ -334,7 +336,7 @@ public <TR> CompletableFuture<TR> lcc(
334336
graphName,
335337
graphParameters,
336338
relationshipProperty,
337-
LocalClusteringCoefficientGraphStoreValidation.create(parameters.seedProperty()),
339+
UndirectedAndSeedableGraphStoreValidation.create(parameters.seedProperty()),
338340
Optional.empty(),
339341
user,
340342
databaseId
@@ -350,5 +352,36 @@ public <TR> CompletableFuture<TR> lcc(
350352
).thenApply(resultTransformerBuilder.build(graphResources));
351353
}
352354

355+
public <TR> CompletableFuture<TR> leiden(
356+
GraphName graphName,
357+
GraphParameters graphParameters,
358+
Optional<String> relationshipProperty,
359+
LeidenParameters parameters,
360+
JobId jobId,
361+
boolean logProgress,
362+
ResultTransformerBuilder<TimedAlgorithmResult<LeidenResult>, TR> resultTransformerBuilder
363+
) {
364+
// Fetch the Graph the algorithm will operate on
365+
var graphResources = graphStoreCatalogService.fetchGraphResources(
366+
graphName,
367+
graphParameters,
368+
relationshipProperty,
369+
UndirectedAndSeedableGraphStoreValidation.create(parameters.seedProperty()),
370+
Optional.empty(),
371+
user,
372+
databaseId
373+
);
374+
var graph = graphResources.graph();
375+
376+
return computeFacade.leiden(
377+
graph,
378+
parameters,
379+
jobId,
380+
logProgress
381+
382+
).thenApply(resultTransformerBuilder.build(graphResources));
383+
}
384+
385+
353386

354387
}

algorithms-compute-business-facade/src/main/java/org/neo4j/gds/community/validation/LocalClusteringCoefficientGraphStoreValidation.java renamed to algorithms-compute-business-facade/src/main/java/org/neo4j/gds/community/validation/UndirectedAndSeedableGraphStoreValidation.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@
2828

2929
import java.util.Collection;
3030

31-
public class LocalClusteringCoefficientGraphStoreValidation extends GraphStoreValidation {
31+
public class UndirectedAndSeedableGraphStoreValidation extends GraphStoreValidation {
3232

3333
private final SeedPropertyGraphStoreValidation seedPropertyGraphStoreValidation;
3434
private final UndirectedOnlyGraphStoreValidation undirectedOnlyGraphStoreValidation;
3535

36-
public static LocalClusteringCoefficientGraphStoreValidation create(String seedProperty){
36+
public static UndirectedAndSeedableGraphStoreValidation create(String seedProperty){
3737
var seedPropertyGraphStoreValidation = SeedPropertyGraphStoreValidation.create(seedProperty);
3838
var undirectedOnlyGraphStoreValidation = new UndirectedOnlyGraphStoreValidation("LocalClusteringCoefficient");
3939

40-
return new LocalClusteringCoefficientGraphStoreValidation(seedPropertyGraphStoreValidation,undirectedOnlyGraphStoreValidation);
40+
return new UndirectedAndSeedableGraphStoreValidation(seedPropertyGraphStoreValidation,undirectedOnlyGraphStoreValidation);
4141
}
42-
private LocalClusteringCoefficientGraphStoreValidation(
42+
private UndirectedAndSeedableGraphStoreValidation(
4343
SeedPropertyGraphStoreValidation seedPropertyGraphStoreValidation,
4444
UndirectedOnlyGraphStoreValidation undirectedOnlyGraphStoreValidation
4545
) {

0 commit comments

Comments
 (0)