Skip to content
This repository has been archived by the owner on Apr 22, 2020. It is now read-only.

Commit

Permalink
Moving Harmonic and Dangalchev under algo.closeness (#557)
Browse files Browse the repository at this point in the history
  • Loading branch information
mneedham authored and Mark Needham committed Feb 2, 2018
1 parent 2d132a4 commit 862c151
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 21 deletions.
Expand Up @@ -55,8 +55,8 @@ public class DangalchevCentralityProc {
@Context
public KernelTransaction transaction;

@Procedure(value = "algo.dangalchev.stream")
@Description("CALL algo.dangalchev.stream(label:String, relationship:String{concurrency:4}) YIELD nodeId, centrality - yields centrality for each node")
@Procedure(value = "algo.closeness.dangalchev.stream")
@Description("CALL algo.closeness.dangalchev.stream(label:String, relationship:String{concurrency:4}) YIELD nodeId, centrality - yields centrality for each node")
public Stream<DangalchevClosenessCentrality.Result> dangalchevStream(
@Name(value = "label", defaultValue = "") String label,
@Name(value = "relationship", defaultValue = "") String relationship,
Expand Down Expand Up @@ -86,8 +86,8 @@ public Stream<DangalchevClosenessCentrality.Result> dangalchevStream(
return algo.resultStream();
}

@Procedure(value = "algo.dangalchev", mode = Mode.WRITE)
@Description("CALL algo.dangalchev(label:String, relationship:String, {write:true, writeProperty:'centrality, concurrency:4'}) YIELD " +
@Procedure(value = "algo.closeness.dangalchev", mode = Mode.WRITE)
@Description("CALL algo.closeness.dangalchev(label:String, relationship:String, {write:true, writeProperty:'centrality, concurrency:4'}) YIELD " +
"loadMillis, computeMillis, writeMillis, nodes] - yields evaluation details")
public Stream<CentralityProcResult> dangalchev(
@Name(value = "label", defaultValue = "") String label,
Expand Down
Expand Up @@ -55,8 +55,8 @@ public class HarmonicCentralityProc {
@Context
public KernelTransaction transaction;

@Procedure(value = "algo.harmonic.stream")
@Description("CALL algo.harmonic.stream(label:String, relationship:String{concurrency:4}) YIELD nodeId, centrality - yields centrality for each node")
@Procedure(value = "algo.closeness.harmonic.stream")
@Description("CALL algo.closeness.harmonic.stream(label:String, relationship:String{concurrency:4}) YIELD nodeId, centrality - yields centrality for each node")
public Stream<HarmonicCentrality.Result> harmonicStream(
@Name(value = "label", defaultValue = "") String label,
@Name(value = "relationship", defaultValue = "") String relationship,
Expand Down Expand Up @@ -86,8 +86,8 @@ public Stream<HarmonicCentrality.Result> harmonicStream(
return algo.resultStream();
}

@Procedure(value = "algo.harmonic", mode = Mode.WRITE)
@Description("CALL algo.harmonic(label:String, relationship:String, {write:true, writeProperty:'centrality, concurrency:4'}) YIELD " +
@Procedure(value = "algo.closeness.harmonic", mode = Mode.WRITE)
@Description("CALL algo.closeness.harmonic(label:String, relationship:String, {write:true, writeProperty:'centrality, concurrency:4'}) YIELD " +
"loadMillis, computeMillis, writeMillis, nodes] - yields evaluation details")
public Stream<CentralityProcResult> harmonic(
@Name(value = "label", defaultValue = "") String label,
Expand Down
4 changes: 2 additions & 2 deletions doc/harmonic-centrality.adoc
Expand Up @@ -108,7 +108,7 @@ of each cell and multiply by 1/(n-1)
.Running algorithm and writing back results
[source,cypher]
----
CALL algo.harmonic(label:String, relationship:String,
CALL algo.closeness.harmonic(label:String, relationship:String,
{write:true, writeProperty:'centrality',graph:'heavy', concurrency:4})
YIELD nodes,loadMillis, computeMillis, writeMillis
- calculates closeness centrality and potentially writes back
Expand Down Expand Up @@ -142,7 +142,7 @@ YIELD nodes,loadMillis, computeMillis, writeMillis
.Running algorithm and streaming results
[source,cypher]
----
CALL algo.harmonic.stream(label:String, relationship:String,{concurrency:4})
CALL algo.closeness.harmonic.stream(label:String, relationship:String,{concurrency:4})
YIELD nodeId, centrality - yields centrality for each node
----

Expand Down
6 changes: 3 additions & 3 deletions doc/scripts/harmonic-centrality.cypher
Expand Up @@ -13,7 +13,7 @@ CREATE (a)-[:LINK]->(b),

// tag::stream-sample-graph[]

CALL algo.harmonic.stream('Node', 'LINKS') YIELD nodeId, centrality
CALL algo.closeness.harmonic.stream('Node', 'LINKS') YIELD nodeId, centrality
RETURN nodeId,centrality
ORDER BY centrality DESC
LIMIT 20;
Expand All @@ -22,14 +22,14 @@ LIMIT 20;

// tag::write-sample-graph[]

CALL algo.harmonic('Node', 'LINK', {writeProperty:'centrality'})
CALL algo.closeness.harmonic('Node', 'LINK', {writeProperty:'centrality'})
YIELD nodes,loadMillis, computeMillis, writeMillis;

// end::write-sample-graph[]

// tag::cypher-loading[]

CALL algo.harmonic(
CALL algo.closeness.harmonic(
'MATCH (p:Node) RETURN id(p) as id',
'MATCH (p1:Node)-[:LINK]-(p2:Node) RETURN id(p1) as source, id(p2) as target',
{graph:'cypher', writeProperty: 'centrality'}
Expand Down
1 change: 0 additions & 1 deletion readme.adoc
Expand Up @@ -23,7 +23,6 @@ These algorithms determine the importance of distinct nodes in a network.
* Page Rank (`algo.pageRank`)
* Betweenness Centrality (`algo.betweenness`)
* Closeness Centrality (`algo.closeness`)
* Harmonic Centrality (`algo.harmonic`)

=== Community Detection

Expand Down
Expand Up @@ -108,7 +108,7 @@ public static void tearDown() throws Exception {
@Test
public void testClosenessStream() throws Exception {

db.execute("CALL algo.dangalchev.stream('Node', 'TYPE') YIELD nodeId, centrality")
db.execute("CALL algo.closeness.dangalchev.stream('Node', 'TYPE') YIELD nodeId, centrality")
.accept((Result.ResultVisitor<Exception>) row -> {
consumer.accept(
row.getNumber("nodeId").longValue(),
Expand All @@ -122,7 +122,7 @@ public void testClosenessStream() throws Exception {
@Test
public void testClosenessWrite() throws Exception {

db.execute("CALL algo.dangalchev('','', {write:true, stats:true, writeProperty:'centrality'}) YIELD " +
db.execute("CALL algo.closeness.dangalchev('','', {write:true, stats:true, writeProperty:'centrality'}) YIELD " +
"nodes, loadMillis, computeMillis, writeMillis")
.accept((Result.ResultVisitor<Exception>) row -> {
assertNotEquals(-1L, row.getNumber("writeMillis"));
Expand Down
Expand Up @@ -102,7 +102,7 @@ public static void setupGraph() throws KernelException {
@Test
public void testHarmonicStream() throws Exception {

db.execute("CALL algo.harmonic.stream('Node', 'TYPE') YIELD nodeId, centrality")
db.execute("CALL algo.closeness.harmonic.stream('Node', 'TYPE') YIELD nodeId, centrality")
.accept((Result.ResultVisitor<Exception>) row -> {
consumer.accept(
row.getNumber("nodeId").longValue(),
Expand All @@ -117,7 +117,7 @@ public void testHarmonicStream() throws Exception {
@Test
public void testHugeHarmonicStream() throws Exception {

db.execute("CALL algo.harmonic.stream('Node', 'TYPE', {graph:'huge'}) YIELD nodeId, centrality")
db.execute("CALL algo.closeness.harmonic.stream('Node', 'TYPE', {graph:'huge'}) YIELD nodeId, centrality")
.accept((Result.ResultVisitor<Exception>) row -> {
consumer.accept(
row.getNumber("nodeId").longValue(),
Expand All @@ -131,7 +131,7 @@ public void testHugeHarmonicStream() throws Exception {
@Test
public void testHarmonicWrite() throws Exception {

db.execute("CALL algo.harmonic('','', {write:true, stats:true, writeProperty:'centrality'}) YIELD " +
db.execute("CALL algo.closeness.harmonic('','', {write:true, stats:true, writeProperty:'centrality'}) YIELD " +
"nodes, loadMillis, computeMillis, writeMillis")
.accept((Result.ResultVisitor<Exception>) row -> {
assertNotEquals(-1L, row.getNumber("writeMillis"));
Expand All @@ -154,7 +154,7 @@ public void testHarmonicWrite() throws Exception {
@Test
public void testHugeHarmonicWrite() throws Exception {

db.execute("CALL algo.harmonic('','', {write:true, stats:true, writeProperty:'centrality', graph:'huge'}) YIELD " +
db.execute("CALL algo.closeness.harmonic('','', {write:true, stats:true, writeProperty:'centrality', graph:'huge'}) YIELD " +
"nodes, loadMillis, computeMillis, writeMillis")
.accept((Result.ResultVisitor<Exception>) row -> {
assertNotEquals(-1L, row.getNumber("writeMillis"));
Expand Down
Expand Up @@ -78,7 +78,7 @@ public static void setupGraph() throws KernelException {
@Test
public void testLoad() throws Exception {

String cypher = "CALL algo.harmonic.stream(\n" +
String cypher = "CALL algo.closeness.harmonic.stream(\n" +
"'MATCH (u:Person) RETURN id(u) as id\n" +
"','\n" +
"MATCH (u1:Person)-[k:KNOWS]-(u2:Person) \n" +
Expand Down

0 comments on commit 862c151

Please sign in to comment.