openjournals / joss-reviews

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

[REVIEW]: sfctools - A toolbox for stock-flow consistent, agent-based models #4980

Closed editorialbot closed 1 year ago

editorialbot commented 1 year ago

Submitting author: !--author-handle-->@fuadlabgit<!--end-author-handle-- (Thomas Baldauf) Repository: https://gitlab.com/dlr-ve/esy/sfctools/framework/ Branch with paper.md (empty if default branch): paper Version: joss_final Editor: !--editor-->@sbenthall<!--end-editor-- Reviewers: @npalmer-professional, @alanlujan91 Archive: 10.5281/zenodo.8118870

Status

status

Status badge code:

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

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

@npalmer-professional & @alanlujan91, 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 @sbenthall 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 @alanlujan91

📝 Checklist for @npalmer-professional

editorialbot commented 1 year 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 1 year ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.36 s (400.1 files/s, 64172.1 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          88           4348           3261           9102
Qt                               7             43              0           3753
TeX                              2             70              0            558
reStructuredText                29            521            743            382
Markdown                         7             81              0            135
YAML                             9             26             12            123
TOML                             1              6              4             36
DOS Batch                        1              8              1             26
make                             1              4              7              9
-------------------------------------------------------------------------------
SUM:                           145           5107           4028          14124
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 1 year ago

Wordcount for paper.md is 1365

editorialbot commented 1 year ago

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

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

OK DOIs

- 10.21105/joss.03065 is OK

MISSING DOIs

- 10.2139/ssrn.305080 may be a valid DOI for title: Agent-based computational economics: Growing economies from the bottom up
- 10.1016/j.erss.2018.10.021 may be a valid DOI for title: Agent-based modelling and socio-technical energy transitions: A systematic literature review
- 10.1007/s43253-022-00071-w may be a valid DOI for title: Why do we need agent-based macroeconomics?
- 10.2139/ssrn.2664125 may be a valid DOI for title: Agent based-stock flow consistent macroeconomics: Towards a benchmark model
- 10.2139/ssrn.2741107 may be a valid DOI for title: Making visible “the invisible hand”: The mission of social simulation
- 10.1111/joes.12221 may be a valid DOI for title: Stock-Flow Consistent macroeconomic models: a survey
- 10.1093/cje/beu021 may be a valid DOI for title: Post-Keynesian stock-flow-consistent modelling: a survey

INVALID DOIs

- None
sbenthall commented 1 year ago

👋🏼 @fuadlabgit @alanlujan91 @npalmer-professional this is the review thread for the paper. All of our communications will happen here from now on.

As a reviewer, the first step is to create a checklist for your review by entering

@editorialbot generate my checklist

as the top of a new comment in this thread.

These checklists contain the JOSS requirements. As you go over the submission, please check any items that you feel have been satisfied. The first comment in this thread also contains links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews#4980 so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

We aim for reviews to be completed within about 2-4 weeks. Please let me know if any of you require some more time. We can also use EditorialBot (our bot) to set automatic reminders if you know you'll be away for a known period of time.

Please feel free to ping me (@sbenthall) if you have any questions/concerns.

alanlujan91 commented 1 year ago

Review checklist for @alanlujan91

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

sbenthall commented 1 year ago

Ping @npalmer-professional is there anything I can do to help you get started with your review? Please don't hesitate to reach out to me on this thread, or by email if you prefer.

fuadlabgit commented 1 year ago

Dear @sbenthall and @npalmer-professional, belated happy new year and thank you so much for keeping the review process up. In the meantime, The code has been cleaned up and developed a bit further.

Therefore, I have merged back the development branch 'spotykach' to the paper branch. This should make the review a little easier (slightly cleaner code) and also includes some more tests. In order to distinguish the originally submitted version, I have created a tag in the paper branch. The original version is joss-initial-submission and the new version is tagged joss-pre-review. Hope this helps you.

In case the extent of the framework exceeds the capacities of the reviewer, I am also willing to discuss cutting parts off the repository for a more lightweight review.

All the best, Thomas

oliviaguest commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

sbenthall commented 1 year ago

@fuadlabgit I believe that it is just fine that you merged in progress during the review period, since reviews at JOSS are potentially interactive. It sounds like you've made some good improvements and unless I hear an objection from the reviewers, I'll trust that didn't create a problem in terms of scope.

npalmer-professional commented 1 year ago

Review checklist for @npalmer-professional

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

alanlujan91 commented 1 year ago

Reproducibility/Functionality/Performance: https://gitlab.com/dlr-ve/esy/sfctools/framework/-/issues/15

Having a hard time reproducing the paper example to test out functionality and performance.

alanlujan91 commented 1 year ago

State of the field: Brief discussion of other software (1 sentence). More in depth discussion might be needed. Quick search also brought up https://github.com/AB-CE/abce and https://github.com/salesforce/ai-economist. Are these unrelated?

fuadlabgit commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

editorialbot commented 1 year ago

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

editorialbot commented 1 year ago

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

fuadlabgit commented 1 year ago

State of the field: Brief discussion of other software (1 sentence). More in depth discussion might be needed. Quick search also brought up https://github.com/AB-CE/abce and https://github.com/salesforce/ai-economist. Are these unrelated?

@alanlujan91 , thank you so much for reviewing this part! Indeed, it would be valuable to mention more frameworks. I have added an additional sentence to the paragraph, and have created a table for comparison. Also, I have added a reference to Abar et al. (2017) for a detailed review. If there are any more suggestions for citations concerning ABM comparison papers, I will be happy to add them there. It might be that the table makes the paper too long and bulky. Therefore, please indicate your preference about if and where to put table 1.

fuadlabgit commented 1 year ago

Reproducibility/Functionality/Performance: https://gitlab.com/dlr-ve/esy/sfctools/framework/-/issues/15

Having a hard time reproducing the paper example to test out functionality and performance.

@alanlujan91 thank you for testing the example. Improvements have been made about the reproducability and description of the paper example. See the issue page in Gitlab and my answers therein. You might need to run pip install --upgrade sfctools to get the latest version before running the example file. I have replaced the numerical values with sympy expressions "x" and "d" in order to get a result which is not too confusing and which better reflects the paper example. However, symbolic expressions are only supported in the latest version of sfctools.

sbenthall commented 1 year ago

@npalmer-professional Any updates on this?

fuadlabgit commented 1 year ago

Dear @npalmer-professional, thank you so much for reviewing and for your interest in the project! I will try to give some answers / further explanations about the points left open (see comments below)

Review checklist for @npalmer-professional

Conflict of interest

  • [x] I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • [x] Repository: Is the source code for this software available at the https://gitlab.com/dlr-ve/esy/sfctools/framework/?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Contribution and authorship: Has the submitting author (@fuadlabgit) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • [ ] Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • [ ] Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.

There is no data involved in the framework, as it represents a general modeling framework, rather than a specific calibrated model.

  • [ ] Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.

Please have a look at the responses to alanlujan91 from March 2023. The paper example should be running and replicating exactly the transactions-flow table given in the paper.

Functionality

  • [ ] Installation: Does installation proceed as outlined in the documentation?

Here, I want to point out to the documentation page. There is a readthedocs page available here https://sfctools-framework.readthedocs.io/en/latest/ The installation is explained under 'getting started' https://sfctools-framework.readthedocs.io/en/latest/doc_intro/installation.html

  • [ ] Functionality: Have the functional claims of the software been confirmed?
  • [ ] Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

We do not explicitly claim performance gains, but point out methodological gains from using framework vs. other frameworks/methods such as programming models in MS Excel (as sometimes done in the field).

Documentation

  • [ ] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [ ] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.

Sfctools is registerd at Pypi, see https://pypi.org/project/sfctools/

  • [ ] Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).

The examples are placed under sfctools/examples and are also included in the API documentation: https://sfctools-framework.readthedocs.io/en/latest/doc_api_examples/examples_framework.html

  • [ ] Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?

An overview of the core modules is given here https://sfctools-framework.readthedocs.io/en/latest/doc_software/structure.html We tried to split the functionality into three pillars, 'Automation and parameters', 'Bottom-Up Tools' and 'Data Structrures'.

  • [ ] Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?

The gitlab repository uses automated tests within its CI pipeline. You can check the pipeline history at https://gitlab.com/dlr-ve/esy/sfctools/framework/-/pipelines I have added also a minimal GUI test, which tests if the paper example can be automatically reconstructed by clicking some buttons without errors.

  • [ ] Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • [ ] Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • [ ] A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • [ ] State of the field: Do the authors describe how this software compares to other commonly-used packages?

The 'Context and Scope' page of the documentation aims at giving a glimpse into the state of the field, different perspectives of modeling etc. and also gives 14 references. Further, a table has been added to the paper to show a comparison of sfctools to other modeling frameworks used in the community. See https://sfctools-framework.readthedocs.io/en/latest/doc_software/software.html

  • [ ] Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • [ ] References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?
fuadlabgit commented 1 year ago

Hello everyone, are there any updates on the review? Are there any open questions I can help with? Thank you so much in advance!

alanlujan91 commented 1 year ago

I have reviewed the code for reproducibility and the changes to the paper.

fuadlabgit commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.2139/ssrn.305080 is OK
- 10.1016/j.erss.2018.10.021 is OK
- 10.1007/s43253-022-00071-w is OK
- 10.2139/ssrn.2664125 is OK
- 10.21105/joss.03065 is OK
- 10.2139/ssrn.2741107 is OK
- 10.1111/joes.12221 is OK
- 10.1093/cje/beu021 is OK

MISSING DOIs

- 10.1016/j.cosrev.2017.03.001 may be a valid DOI for title: Agent Based Modelling and Simulation tools: A review of the state-of-art software

INVALID DOIs

- None
fuadlabgit commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.2139/ssrn.305080 is OK
- 10.1016/j.erss.2018.10.021 is OK
- 10.1007/s43253-022-00071-w is OK
- 10.2139/ssrn.2664125 is OK
- 10.21105/joss.03065 is OK
- 10.1016/j.cosrev.2017.03.001 is OK
- 10.2139/ssrn.2741107 is OK
- 10.1111/joes.12221 is OK
- 10.1093/cje/beu021 is OK

MISSING DOIs

- None

INVALID DOIs

- None
fuadlabgit commented 1 year ago

I have fixed the missing DOIs in the paper.

fuadlabgit commented 1 year ago

Dear @npalmer-professional, I would like to kindly inquire you about the review status. I understand that the review is a demanding task and can also be time-consuming. Thank you also for your contributions made so far, which I appreciate very much.

fuadlabgit commented 1 year ago

Hello all, are we still on track with this review? @npalmer-professional @sbenthall

sbenthall commented 1 year ago

@fuadlabgit I have been in touch with @npalmer-professional by email and he has told me he will have this review done by this week. I apologize for the delay.

npalmer-professional commented 1 year ago

I have reviewed the paper. I have a few minor comments, but these are minor, not substantial, and I do not think they should hold up the paper.

The comments are outlined in these issues, and are about the examples:

As you will see, all these issues are very minor and can be fixed quickly.

Everything else looks to be in order. In fact I may use this framework myself at some point for a model I've been thinking on from time to time.

npalmer-professional commented 1 year ago

The 'Context and Scope' page of the documentation aims at giving a glimpse into the state of the field, different perspectives of modeling etc. and also gives 14 references. Further, a table has been added to the paper to show a comparison of sfctools to other modeling frameworks used in the community. See https://sfctools-framework.readthedocs.io/en/latest/doc_software/software.html

The table in the paper was a nice touch, by the way, and I appreciated it as it let me quickly compare to some other models I am familiar with.

fuadlabgit commented 1 year ago

I have reviewed the paper. I have a few minor comments, but these are minor, not substantial, and I do not think they should hold up the paper.

The comments are outlined in these issues, and are about the examples:

As you will see, all these issues are very minor and can be fixed quickly.

Everything else looks to be in order. In fact I may use this framework myself at some point for a model I've been thinking on from time to time.

Thank you so much for the reply and the very constructive feedback on the API examples. I have worked on the issues now. details are given as comments to the issues in git.

I also added the expected output of the paper example to the corresponding documentation page, see https://sfctools-framework.readthedocs.io/en/latest/doc_gui_examples/example_paper.html

fuadlabgit commented 1 year ago

The 'Context and Scope' page of the documentation aims at giving a glimpse into the state of the field, different perspectives of modeling etc. and also gives 14 references. Further, a table has been added to the paper to show a comparison of sfctools to other modeling frameworks used in the community. See https://sfctools-framework.readthedocs.io/en/latest/doc_software/software.html

The table in the paper was a nice touch, by the way, and I appreciated it as it let me quickly compare to some other models I am familiar with.

Thank you very much for the positive feedback!

sbenthall commented 1 year ago

I see that the submission has passed both reviewer checklists. Many thanks to @alanlujan91 and @npalmer-professional for your reviews!

sbenthall commented 1 year ago

@editorialbot generate pdf

sbenthall commented 1 year ago

@editorialbot check references

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

OK DOIs

- 10.2139/ssrn.305080 is OK
- 10.1016/j.erss.2018.10.021 is OK
- 10.1007/s43253-022-00071-w is OK
- 10.2139/ssrn.2664125 is OK
- 10.21105/joss.03065 is OK
- 10.1016/j.cosrev.2017.03.001 is OK
- 10.2139/ssrn.2741107 is OK
- 10.1111/joes.12221 is OK
- 10.1093/cje/beu021 is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 1 year ago

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

sbenthall commented 1 year ago

@fuadlabgit We are getting to the final stages. Thanks for your patience.

Can you please:

alanlujan91 commented 1 year ago

@fuadlabgit I was looking at the article proof quickly and noticed the following

image
fuadlabgit commented 1 year ago

Thanks for the hint. I have corrected the typo in "Economics" and capitalized "Generic" in all cells.

fuadlabgit commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

fuadlabgit commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

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

fuadlabgit commented 1 year ago

@editorialbot generate pdf