Commit Graph

15 Commits

Author SHA1 Message Date
Teon Banek
ec4d8c7bb1 Write query_modules/example.c as example.py
Summary:
This is an overview on how the example Query Module will look in
Python.

Reviewers: mferencevic, ipaljak, buda, tlastre, dsantl

Reviewed By: ipaljak, tlastre, dsantl

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2642
2020-01-28 14:29:50 +01:00
Ivan Paljak
591eadad20 Fix modularity calculation bug in Louvain query module
Reviewers: dsantl

Reviewed By: dsantl

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2607
2019-12-18 15:36:43 +01:00
Ivan Paljak
ec67e71d39 Fix bug in modularity calculation
Summary:
This diff does not fix our Louvain implementation completely. The algorithm
internally still optimzies the wrong function, but this will at least correctly
calculate the modularity value at the end.

Fix of the algorithm will come in a separate diff

Reviewers: dsantl

Reviewed By: dsantl

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2603
2019-12-16 16:34:40 +01:00
Matej Ferencevic
e9f55e2f31 Strip query modules in release build
Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2599
2019-12-11 13:52:48 +01:00
Ivan Paljak
dda74e0554 Expose modularity value in louvain query module
Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: mferencevic, pullbot

Differential Revision: https://phabricator.memgraph.io/D2591
2019-12-11 13:36:50 +01:00
Ivan Paljak
4b5d30cfb5 Incorporate edge weights into louvain query module
Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: mferencevic, pullbot

Differential Revision: https://phabricator.memgraph.io/D2583
2019-12-04 16:22:14 +01:00
Ivan Paljak
f6b6ea254d Implement Louvain as a query module
Reviewers: teon.banek, dsantl

Reviewed By: teon.banek, dsantl

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2574
2019-12-03 16:18:24 +01:00
Ivan Paljak
e605aed497 Implement weakly connected components as a query module
Reviewers: teon.banek, dsantl

Reviewed By: teon.banek, dsantl

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2577
2019-12-03 13:11:40 +01:00
Teon Banek
e31331aae4 Rework CallProcedure to validate result sets
Summary:
This diff renames `__reload__` procedure to be `mg.reload` accepting a
module name. The main CallCustomProcedure function is now split into
multiple parts, so that there's more control over finding a procedure,
type checking its arguments and finally checking the returned result
set.

Depends on D2572

Reviewers: mferencevic, ipaljak

Reviewed By: ipaljak

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2573
2019-11-28 14:58:43 +01:00
Teon Banek
d71f1bfa35 Type check procedure arguments in CALL clause
Summary: Depends on D2571

Reviewers: mferencevic, ipaljak

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2572
2019-11-28 14:58:36 +01:00
Ivan Paljak
03ecc58715 Make the Louvain code comply with our conventions
Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: buda, pullbot

Differential Revision: https://phabricator.memgraph.io/D2566
2019-11-26 10:06:19 +01:00
Ivan Paljak
7467d52d5b Add cmake files and a dummy louvain query module
Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2561
2019-11-25 16:38:56 +01:00
Ivan Paljak
ae0be9032e Implement Louvain community detection algorithm
Summary: Louvain implementation according to original paper.

Reviewers: dsantl

Reviewed By: dsantl

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2556
2019-11-21 15:06:30 +01:00
Teon Banek
5354a11a00 Add registering multiple procedures in query modules
Reviewers: mferencevic, dsantl, ipaljak

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2551
2019-11-21 10:13:09 +01:00
Teon Banek
283a91cc60 Integrate loading openCypher module procedures
Summary:
All mgp_* symbols are exported from Memgraph executable, no other
symbols should be visible.

The primary C API header, mg_procedure.h, is now part of the
installation. Also, added a shippable query module example.

Directory `query_modules` is meant to contain sources of modules we
write and ship as part of the installation. Currently, there's only an
example module, but there may be potentially more. Some modules could
only be installed as part of the enterprise release.

For Memgraph to load custom procedures, it needs to be started with a
flag pointing to a directory with compiled shared libraries implementing
those procedures.

Reviewers: mferencevic, ipaljak, llugovic, dsantl, buda

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2538
2019-11-07 15:23:02 +01:00