openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
714 stars 38 forks source link

[REVIEW]: Raphtory: The temporal graph engine for Rust and Python #5940

Closed editorialbot closed 6 months ago

editorialbot commented 11 months ago

Submitting author: !--author-handle-->@narnolddd<!--end-author-handle-- (Naomi Arnold) Repository: https://github.com/Pometry/Raphtory Branch with paper.md (empty if default branch): paper Version: 0.7.0 Editor: !--editor-->@luizirber<!--end-editor-- Reviewers: @abhishektiwari, @arashbm Archive: 10.5281/zenodo.10530613

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/1fbaaa72bc711cee778c7eca04530286"><img src="https://joss.theoj.org/papers/1fbaaa72bc711cee778c7eca04530286/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/1fbaaa72bc711cee778c7eca04530286/status.svg)](https://joss.theoj.org/papers/1fbaaa72bc711cee778c7eca04530286)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@abhishektiwari & @arashbm, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review. First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @luizirber know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @arashbm

📝 Checklist for @abhishektiwari

editorialbot commented 11 months ago

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

For a list of things I can do to help you, just type:

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@editorialbot generate pdf
editorialbot commented 11 months ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.36 s (968.0 files/s, 185049.1 lines/s)
--------------------------------------------------------------------------------
Language                      files          blank        comment           code
--------------------------------------------------------------------------------
Rust                            233           5321           4739          36105
Python                           26            871            420           4342
JSON                             15              0              0           3823
YAML                             24             43             21           1174
Jupyter Notebook                 11              0           5845           1113
Markdown                          8            258              0            658
TOML                             13             64             24            357
CSS                               2             65             11            276
TeX                               1             27              0            269
SVG                               1              0              0            155
JavaScript                        3             11              4             55
make                              2             13              7             31
DOS Batch                         1              8              1             26
Dockerfile                        1             14              0             26
HTML                              3              0              0             23
Bourne Shell                      1              6              0             17
reStructuredText                  1             35             42             14
Bourne Again Shell                1              3              3             12
--------------------------------------------------------------------------------
SUM:                            347           6739          11117          48476
--------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 11 months ago

Wordcount for paper.md is 1308

editorialbot commented 11 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1137/19M1242252 is OK
- 10.1145/1852658.1852661 is OK
- 10.1209/0295-5075/81/48002 is OK
- 10.1103/physrevlett.110.198701 is OK
- 10.1016/j.future.2019.08.022 is OK
- 10.1016/j.softx.2022.101301 is OK
- 10.1145/3442442.3452052 is OK
- 10.5281/zenodo.7682609 is OK
- 10.6084/m9.figshare.1164194.v14 is OK
- 10.1103/PhysRevE.85.056115 is OK
- 10.1073/pnas.0903215107 is OK
- 10.1063/1.2711640 is OK
- 10.1145/3159652.3159706 is OK
- 10.1038/srep00397 is OK
- 10.1214/18-aoas1176 is OK
- 10.1073/pnas.0800332105 is OK
- 10.1038/s41567-019-0459-y is OK
- 10.1093/oso/9780198805090.001.0001 is OK
- 10.1007/978-3-642-36461-7 is OK
- 10.1142/q0033 is OK
- 10.1145/3479591 is OK
- 10.1145/3018661.3018731 is OK
- 10.1145/3093742.3093913 is OK
- 10.5281/zenodo.8009585 is OK
- 10.1101/2021.03.26.437187 is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 11 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

arashbm commented 11 months ago

Review checklist for @arashbm

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

abhishektiwari commented 11 months ago

Review checklist for @abhishektiwari

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

abhishektiwari commented 11 months ago

@narnolddd please see initial feedback.

General checks

Contribution and authorship

— I was unable to find GitHub commits from Matt Barnes on Raphtory. Can you please comment on Matt's contribution for this paper and software?

Documentation

Installation instructions

Please add guidance for Python and Rust version supported. Also specify version requirements for examples either in folder readme or as an inline comment.

Example usage

A tried many of the examples, and they seem to be outdated and broken (1).

For instance, due to unclear guidance on what Python versions are supported, I started with 3.11.4 and have to make several modifications to get NFT Python example working. Opened a few tickets based on examples 2. I would like to see at-least Python LOTR example working.

Software paper

Quality of writing

Small corrections,

platform not platformßSimilarly, DyNetX not Similarly DyNetX

State of field

I am curious how Raphtory compares with graph databases such as arangodb/neo4j/MemGraph? I can see comparison benchmark data and scripts providing data points against MemGraph but no mention in the paper itself how Raphtory stack up against graph databases.

arashbm commented 11 months ago

Just a quick feedback on the paper: Great work, smooth installation, and enjoyable use. The manuscript is concise and checks all the right boxes. My only gripe is with the examples.

(Just to throw my unasked-for opinion in the mix, I don't believe that the manuscript would be the best place to publish benchmark results or even extensive comparison with other software, as these are often rapidly changing and highly sensitive to methodology and environment, thus not very reproducible. It's fine if there are benchmarks on the website, where they can be updated frequently but the paper might not be the best venue. Comparison to other software in the manuscript is better limited to differences in the general approach or difference in goals or stating their particular fields of specialisation.)

narnolddd commented 10 months ago

@editorialbot generate pdf

editorialbot commented 10 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

arashbm commented 10 months ago

@narnolddd I don't seem to be able to run from raphtory.plottingutils import global_motif_heatplot from the examples. Is this the API for the next version or am I missing something on my setup?

narnolddd commented 10 months ago

Hi @arashbm , so sorry I should have added a comment earlier, when I regenerated the pdf it was because I was struggling a bit with the package to do it locally (have managed to do it now) and wasn't ready to read. Hope I didn't waste too much of your time with this! The code referenced in the example is at the moment just on a branch which is going to be merged today and will be put into the next release. I also have a reply to both reviews which I will share once that's in. Apologies again for this and thank you for all your time reading/testing the code and the feedback you've given already.

narnolddd commented 9 months ago

Raphtory review response

Hi @arashbm @abhishektiwari Happy New Year and thank you very much for your time and feedback on the paper. Apologies for the delay in getting back to you, there were a few other changes (unrelated to this submission) that needed to be made/fixed in the repository before we could push a release. This has now been done (Raphtory 0.7.0) as well as the requested changes to the manuscript and README. We have addressed the comments point by point below, but in summary have:

Response to comments from Abhishek

I was unable to find GitHub commits from Matt Barnes on Raphtory. Can you please comment on Matt's contribution for this paper and software?

Matt may not have committed directly to Raphtory but has been working on some of the academic/research use cases for the software and his input has been crucial for the design of new features (as is the case for some other authors on the paper).

Please add guidance for Python and Rust version supported. Also specify version requirements for examples either in folder readme or as an inline comment.

Thanks, we have now added the Python and Rust version requirement in the README (>=3.8 and >=1.75 respectively).

I tried many of the examples, and they seem to be outdated and broken (1). For instance, due to unclear guidance on what Python versions are supported, I started with 3.11.4 and have to make several modifications to get NFT Python example working. Opened a few tickets based on examples 2. I would like to see at-least Python LOTR example working.

Apologies for this, they had become out of date and should have been deleted as we had got new versions working elsewhere. We now have one self-contained and comprehensive example (Sociopatterns baboon dataset) for Python.

Small corrections

Thank you for spotting those typos, these have now been fixed.

I am curious how Raphtory compares with graph databases such as arangodb/neo4j/MemGraph? I can see comparison benchmark data and scripts providing data points against MemGraph but no mention in the paper itself how Raphtory stack up against graph databases.

This is definitely something would like to address in a longer-form paper to give it an in-depth treatment, both due to the space resrictions of the JOSS format and because JOSS' scope seemed to be more focused on highlighting features and general usefulness than performance testing.

Response to comments from Arash

The examples are not self-contained. I understand that more involved use cases might be hard to condense to a few lines of code but I think they should still be run-able on their own. For example, it is not immediately clear where enron in example one and global_temporal_three_node_motifs in the third example are imported from. Example three, however, imports local_temporal_three_node_motifs and never uses it.

Thanks for your feedback. We have tried to make them a little more contained -- they are not entirely independent but assuming the user is familiar with Pandas and Matplotlib it should be clearer now where things are coming from:

It would be better if the examples would become more readable. I leave that to the discretion of the authors, but I would recommend smaller output figures and paddings in exchange for larger font sizes. Remember that for someone browsing the paper that might be their first point of contact with the software. It is a chance for you to show its elegance and ease of use.

Thanks, we agree. We have tried to adjust the spacing a bit to make the fonts larger and allow for some gaps between logical sections of the code (balanced against keping the examples self-contained).

narnolddd commented 9 months ago

@editorialbot generate pdf

editorialbot commented 9 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

arashbm commented 8 months ago

Thanks! I'm quite happy with the manuscript and the revisions completely resolve the minor issues I had with the previous version.

Great work!

abhishektiwari commented 8 months ago

@narnolddd Revised manuscript and updates look great. Look forward to Raphtory being used both in academia and industry. Thanks to everyone who has work on the software and paper.

@luizirber Review checklist is now complete from my side. Please let me know if anything else needed.

luizirber commented 8 months ago

Awesome, thanks @arashbm and @abhishektiwari for the fantastic reviews!

luizirber commented 8 months ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

luizirber commented 8 months ago

@narnolddd I posted the post-review checklist, I checked the repo and didn't see the zenodo integration, so can you set that up? More info here: https://docs.github.com/en/repositories/archiving-a-github-repository/referencing-and-citing-content You can also use figshare, or other archival solutions that offer a DOI.

narnolddd commented 8 months ago

Hi @luizirber @arashbm @abhishektiwari thank you so much again for the great reviews and for your time editing this. We have made a Zenodo archive of Raphtory 0.7.0 which is the version we released with our response to the review, here is the link https://zenodo.org/records/10530614 and DOI 10.5281/zenodo.10530613. Is this ok? It's not integrated with the Github repo, we had just recently done a Raphtory release and it looked like we would need to do another one for the integrated one to work. If not we can do another release on the weekend.

luizirber commented 8 months ago

These work, @narnolddd!

luizirber commented 8 months ago

@editorialbot set 10.5281/zenodo.10530613 as archive

editorialbot commented 8 months ago

Done! archive is now 10.5281/zenodo.10530613

luizirber commented 8 months ago

@editorialbot set 0.7.0 as version

editorialbot commented 8 months ago

Done! version is now 0.7.0

narnolddd commented 8 months ago

Thanks @luizirber for that! I did a check of authors; all names and affiliations are correct and in the same order as the Zenodo archive. All authors who have an Orcid ID now have it in their metadata. Both the repo and the archive have the gnu GPL v3 license.

luizirber commented 8 months ago

@editorialbot generate pdf

editorialbot commented 8 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

luizirber commented 8 months ago

@editorialbot check references

editorialbot commented 8 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1137/19M1242252 is OK
- 10.1145/1852658.1852661 is OK
- 10.1209/0295-5075/81/48002 is OK
- 10.1103/physrevlett.110.198701 is OK
- 10.1016/j.future.2019.08.022 is OK
- 10.1016/j.softx.2022.101301 is OK
- 10.1145/3442442.3452052 is OK
- 10.5281/zenodo.7682609 is OK
- 10.6084/m9.figshare.1164194.v14 is OK
- 10.1103/PhysRevE.85.056115 is OK
- 10.1073/pnas.0903215107 is OK
- 10.1063/1.2711640 is OK
- 10.1145/3159652.3159706 is OK
- 10.1038/srep00397 is OK
- 10.1214/18-aoas1176 is OK
- 10.1073/pnas.0800332105 is OK
- 10.1038/s41567-019-0459-y is OK
- 10.1093/oso/9780198805090.001.0001 is OK
- 10.1007/978-3-642-36461-7 is OK
- 10.1142/q0033 is OK
- 10.1145/3479591 is OK
- 10.1145/3018661.3018731 is OK
- 10.1145/3093742.3093913 is OK
- 10.5281/zenodo.8009585 is OK
- 10.1101/2021.03.26.437187 is OK
- 10.21105/joss.05872 is OK

MISSING DOIs

- None

INVALID DOIs

- None
luizirber commented 8 months ago

Hey @narnolddd! The ref check didn't pick up these three cases, some suggestions to improve them:

Hagberg, A., Swart, P., & S Chult, D. (2008). Exploring network structure, dynamics, and function using NetworkX. Los Alamos National Lab.(LANL), Los Alamos, NM (United States)

This one doesn't have a DOI, but has a (probably?) stable URI: https://www.osti.gov/biblio/960616

Yousaf, H., Arnold, N. A., Lambiotte, R., LaRock, T., Clegg, R. G., Zhong, P., Alnaimi, A., & Steer, B. (2023). Non-Markovian paths and cycles in NFT trades. arXiv Preprint arXiv:2303.11181

set this DOI to https://doi.org/10.48550/arXiv.2303.11181

Zhang, W. (2015). Dynamic network analysis in Julia

Again no DOI, but (hopefully) stable URI: https://eprints.maths.manchester.ac.uk/2376/


For 1 and 3 maybe use howpublished like you did with RecallGraph so the stable-ish URI also show in the paper? Would this be an acceptable solution to cite resources without DOIs, @openjournals/dsais-eics ?

luizirber commented 7 months ago

:point_up: pinging @arfon for the question on citing resources without DOIs =]

narnolddd commented 7 months ago

Hi there @luizirber, apologies for the late reply, just got back from holiday. I've added the missing DOI and added a URL to the other two refs as suggested so that a link is visible on the pdf for each citation.

narnolddd commented 7 months ago

Hey @luizirber just checking if you had chance to take a look at the references we've revised? Out of curiosity I took a look at the first few papers on the JOSS landing page and saw some examples of papers with URLs/URIs where a DOI was not possible:

https://joss.theoj.org/papers/10.21105/joss.05566 https://joss.theoj.org/papers/10.21105/joss.06270 https://joss.theoj.org/papers/10.21105/joss.06011

Thanks and have a great weekend!

arfon commented 7 months ago

☝️ pinging @arfon for the question on citing resources without DOIs =]

Sorry I missed this. I think this is fine to move forward @luizirber.

narnolddd commented 6 months ago

Hi @arfon, would it be possible to move this forward? We have tried reaching out to @luizirber on here and on email around 3 weeks ago but he doesn't seem to be around.

luizirber commented 6 months ago

@editorialbot check references

editorialbot commented 6 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1137/19M1242252 is OK
- 10.1145/1852658.1852661 is OK
- 10.1209/0295-5075/81/48002 is OK
- 10.1103/physrevlett.110.198701 is OK
- 10.1016/j.future.2019.08.022 is OK
- 10.48550/arXiv.2303.11181 is OK
- 10.1016/j.softx.2022.101301 is OK
- 10.1145/3442442.3452052 is OK
- 10.5281/zenodo.7682609 is OK
- 10.6084/m9.figshare.1164194.v14 is OK
- 10.1103/PhysRevE.85.056115 is OK
- 10.1073/pnas.0903215107 is OK
- 10.1063/1.2711640 is OK
- 10.1145/3159652.3159706 is OK
- 10.1038/srep00397 is OK
- 10.1214/18-aoas1176 is OK
- 10.1073/pnas.0800332105 is OK
- 10.1038/s41567-019-0459-y is OK
- 10.1093/oso/9780198805090.001.0001 is OK
- 10.1007/978-3-642-36461-7 is OK
- 10.1142/q0033 is OK
- 10.1145/3479591 is OK
- 10.1145/3018661.3018731 is OK
- 10.1145/3093742.3093913 is OK
- 10.5281/zenodo.8009585 is OK
- 10.1101/2021.03.26.437187 is OK
- 10.21105/joss.05872 is OK

MISSING DOIs

- No DOI given, and none found for title: Centralities in complex networks
- No DOI given, and none found for title: Dynamic network analysis in Julia
- No DOI given, and none found for title: Exploring network structure, dynamics, and functio...
- No DOI given, and none found for title: RecallGraph

INVALID DOIs

- None
luizirber commented 6 months ago

@editorialbot generate pdf

editorialbot commented 6 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

luizirber commented 6 months ago

@editorialbot recommend-accept

editorialbot commented 6 months ago
Attempting dry run of processing paper acceptance...
editorialbot commented 6 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1137/19M1242252 is OK
- 10.1145/1852658.1852661 is OK
- 10.1209/0295-5075/81/48002 is OK
- 10.1103/physrevlett.110.198701 is OK
- 10.1016/j.future.2019.08.022 is OK
- 10.48550/arXiv.2303.11181 is OK
- 10.1016/j.softx.2022.101301 is OK
- 10.1145/3442442.3452052 is OK
- 10.5281/zenodo.7682609 is OK
- 10.6084/m9.figshare.1164194.v14 is OK
- 10.1103/PhysRevE.85.056115 is OK
- 10.1073/pnas.0903215107 is OK
- 10.1063/1.2711640 is OK
- 10.1145/3159652.3159706 is OK
- 10.1038/srep00397 is OK
- 10.1214/18-aoas1176 is OK
- 10.1073/pnas.0800332105 is OK
- 10.1038/s41567-019-0459-y is OK
- 10.1093/oso/9780198805090.001.0001 is OK
- 10.1007/978-3-642-36461-7 is OK
- 10.1142/q0033 is OK
- 10.1145/3479591 is OK
- 10.1145/3018661.3018731 is OK
- 10.1145/3093742.3093913 is OK
- 10.5281/zenodo.8009585 is OK
- 10.1101/2021.03.26.437187 is OK
- 10.21105/joss.05872 is OK

MISSING DOIs

- No DOI given, and none found for title: Centralities in complex networks
- No DOI given, and none found for title: Dynamic network analysis in Julia
- No DOI given, and none found for title: Exploring network structure, dynamics, and functio...
- No DOI given, and none found for title: RecallGraph

INVALID DOIs

- None
editorialbot commented 6 months ago

:wave: @openjournals/dsais-eics, this paper is ready to be accepted and published.

Check final proof :point_right::page_facing_up: Download article

If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/5178, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

arfon commented 6 months ago

@narnolddd – could you please merge this PR? https://github.com/Pometry/Raphtory/pull/1551

narnolddd commented 6 months ago

Thanks @arfon , merged!

arfon commented 6 months ago

@editorialbot recommend-accept

editorialbot commented 6 months ago
Attempting dry run of processing paper acceptance...