Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REVIEW]: ICAT: The Interactive Corpus Analysis Tool #6873

Open
editorialbot opened this issue Jun 11, 2024 · 28 comments
Open

[REVIEW]: ICAT: The Interactive Corpus Analysis Tool #6873

editorialbot opened this issue Jun 11, 2024 · 28 comments
Assignees
Labels
review Track: 5 (DSAIS) Data Science, Artificial Intelligence, and Machine Learning

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Jun 11, 2024

Submitting author: @WarmCyan (Nathan Martindale)
Repository: https://github.com/ORNL/icat
Branch with paper.md (empty if default branch):
Version: v0.7.2
Editor: @JBorrow
Reviewers: @SamHames, @jhagerer
Archive: Pending

Status

status

Status badge code:

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

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

@SamHames & @jhagerer, 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 @JBorrow 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 @SamHames

@editorialbot
Copy link
Collaborator Author

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
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.90  T=0.14 s (1023.5 files/s, 314809.1 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
HTML                            37           6489            182          18202
SVG                              6              6              6           4476
Python                          22           1051           1446           3640
Jupyter Notebook                14              0           3223            951
CSS                              6            185             42            842
JavaScript                       8            123            183            778
reStructuredText                34            485            943            276
Markdown                         5            102              0            183
YAML                             5              9             12            139
TeX                              1             12              0            138
make                             2             16              9             54
DOS Batch                        1              8              1             26
Bourne Shell                     1              8             10             20
JSON                             1              0              0              8
TOML                             1              1              0              8
-------------------------------------------------------------------------------
SUM:                           144           8495           6057          29741
-------------------------------------------------------------------------------

Commit count by author:

   136	Martindale, Nathan
     2	Nathan Martindale

@editorialbot
Copy link
Collaborator Author

Paper file info:

📄 Wordcount for paper.md is 1543

✅ The paper includes a Statement of need section

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1145/3185517 is OK
- 10.1145/3593013.3594087 is OK
- 10.1609/aimag.v35i4.2513 is OK
- 10.1109/TAMD.2010.2051030 is OK
- 10.1145/3241379 is OK
- 10.1145/604045.604056 is OK

MISSING DOIs

- No DOI given, and none found for title: Machine Teaching: A New Paradigm for Building Mach...
- No DOI given, and none found for title: Panel: The powerful data exploration & web app fra...
- No DOI given, and none found for title: ipyvuetify: Jupyter widgets based on vuetify UI co...
- No DOI given, and none found for title: Scikit-learn: Machine Learning in Python

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

License info:

✅ License found: BSD 3-Clause "New" or "Revised" License (Valid open source OSI approved license)

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@JBorrow
Copy link

JBorrow commented Jun 11, 2024

Hi @WarmCyan! Would you please be able to address the missing DOIs in the references?

@SamHames
Copy link

SamHames commented Jun 15, 2024

Review checklist for @SamHames

Conflict of interest

  • 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

  • Repository: Is the source code for this software available at the https://github.com/ORNL/icat?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@WarmCyan) 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.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • 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.)

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.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • 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?
  • 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?

@WarmCyan
Copy link

Hello @JBorrow! I've added DOIs for all except ipyvuetify, I couldn't find anything for that one

@WarmCyan
Copy link

@SamHames thanks for agreeing to review this! Just so you're aware if you start playing with the software soon, there's a couple weird issues going on right now with dependencies that I'm still trying to resolve, if you run into problems during setup I'm tracking them over here: ORNL/icat#44

@jhrinv
Copy link

jhrinv commented Jun 22, 2024

Hi all, I am in contact with the authors. They have been actively working to fix some issues in the repository (broken package dependencies die to updates). I'll investigate the fixes and latest end of next week. I provide my checklist here then too. Thanks for your patience.

@jhagerer
Copy link

jhagerer commented Jul 7, 2024

Review checklist for @jhagerer (-> still in process!!!)

Conflict of interest

  • 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

  • Repository: Is the source code for this software available at the https://github.com/ORNL/icat?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@WarmCyan) 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.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • 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.)

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.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • 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?
  • 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?

@jhagerer
Copy link

jhagerer commented Jul 7, 2024

This review is still in process. Issues with the code repository still have to be analyzed and fixed, see ORNL/icat#44.

@JBorrow
Copy link

JBorrow commented Aug 14, 2024

Hi all, just checking in that the responses to the review items are progressing?

@WarmCyan
Copy link

Hey @JBorrow! We've determined in ORNL/icat#44 that ICAT doesn't run in vscode (which is somewhat expected/outside of what I'm trying to support.) I'm not sure if @jhagerer has had a chance to take a look at it since, but I'm waiting to see if it runs correctly for him in Jupyter Lab.

@jhagerer
Copy link

jhagerer commented Aug 20, 2024

@WarmCyan I got icat running successfully. However, it looks honestly not fully usable, since I cannot recognize the text on the right, and also the illustration could be improved:

image

As you see, I used Jupyter Notebook and Jupyter Lab. Both look not ideal, even though both are recommended in the official documentation. What is your comment on that with regards to usability and correct display?

Further, I think it would be good to give a hint somewhere in the documentation that Visual Studio Jupyter code cells should not be used. Last but not least, I would recommend an advanced example that does not require transformers with a CUDA/NVIDIA hardware, but maybe something more lightweight but still reasonable and computationally efficient, e.g., word2vec.

I am giving this advice, since I would really like to use and understand this tool, but I would be afraid that users might experience unnecessarily difficult entry barriers, which would undermine the efforts already made by the authors.

@WarmCyan
Copy link

@jhagerer yeah this is a good point, I didn't do due diligence in making sure it looks right in light mode as well, and that certainly has a huge impact on usability. The jarring mismatch of colors and inability to read the text should be fixable by checking for light/dark theme and adjusting interface coloring accordingly. To address the scrolling/crampedness of the jupyter notebook cells, I'll add a check for notebook vs lab and auto-scale components to make sure they fit.

I've opened an issue to track this here: ORNL/icat#45 and will try to make both of these changes within the next week or two.

@WarmCyan
Copy link

That's also a good point about an additional example notebook that doesn't need transformers to run, I've opened an issue for it here: ORNL/icat#46

@jhagerer
Copy link

jhagerer commented Oct 6, 2024

I can confirm that the authors addressed my feedback. Now it is my job to try out the tools and go through its documentation in order to finish the peer review.

@JBorrow
Copy link

JBorrow commented Oct 6, 2024

Excellent! Let me know if there is anything else any of you need, or if there are any further questions.

@JBorrow
Copy link

JBorrow commented Oct 21, 2024

Hi @SamHames and @jhagerer, checking in to see if there's anything you need to progress the review?

@jhagerer
Copy link

jhagerer commented Nov 3, 2024

@JBorrow My problem is that for several months now, I am reading the documentation and try to make the best out of it. However, I have to say that the documentation does not enable me to use the tool.

Previously, the problem was that no UI would be visible after following the documentation. Then, there was no example which could be executed without GPU. Now, I cannot figure out how to seed a model and how to trigger a round of predictions in the interface. The documentation does not say anything about this: https://ornl.github.io/icat/stable/user/interface.html.

My gut feeling is that my experience should not be the problem. But maybe another reviewer should check if it is difficult for them too? For me this is very time consuming, and I keep having problem making anything work here.

@WarmCyan
Copy link

WarmCyan commented Nov 4, 2024

@jhagerer sorry we keep running into difficulties with this, I know that can be frustrating. The seeding/prediction process is discussed in the docs here: https://ornl.github.io/icat/stable/user/concepts.html#labelling (basically you have to click the 'I'/'U' labelling buttons on at least 10 instances, and then it will automatically start making predictions)

@JBorrow
Copy link

JBorrow commented Nov 6, 2024

@jhagerer that is very unfortunate; would you be able to point me to issues that you've raised in the target repository and I can take a look? Sometimes different hardware and software environments are hard to mesh, though of course at JOSS we aim for the software that we accept to be widely useable.

I have just attempted the homepage documentation example and I was able to successfully get a UI on my M2 Macbook Pro:

Screenshot 2024-11-06 at 1 06 29 PM

However, @WarmCyan, it would definitely be better if there was some information along with this example that tells you what to do with it? Even if there is some simple takeaway point from this simple example about how the UI works. Right now I just have a square of points in the middle of a giant circle, and it's not clear where to go from there at all.

@WarmCyan
Copy link

WarmCyan commented Nov 6, 2024

@JBorrow that's a good suggestion, I'll work on adding some better intro information to the notebooks.

@JBorrow
Copy link

JBorrow commented Nov 25, 2024

Hi folks, just wondering what we need to get unblocked here: @jhagerer I understand that you were facing some problems getting set up. Were you able to successfully raise issues against the target package and have them be resolved?

@SamHames
Copy link

First of all, apologies for the long delay in this - I've had some health issues to deal with.

Second of all, it's great to see more tools in this space - we need more of them and to be able to get them into people's hands.

That being said though, I think there's a bit of work still to happen. I can confirm that I could work through the documentation and the paper and was able to at least successfully run the software - I have some minor suggestions that I'll raise separately over the next couple of days against the software repository.

I think overall though I'm running into the same issue as @jhagerer - even though I can get the software to run and I (think) I can start using it for what I think is the intended purpose, there's some documentation missing about the intended workflow as the UI doesn't provide much scaffolding about "what next". As an example, the documentation states that 10 instances need to be labelled first, but omits that both interesting/uninteresting labels need to be provided - it would have saved me a bit of time if there was some signposting in the UI about what's left to do before the model is "seeded". Having got the model to a seeded point though, I'm not actually sure what I should be doing next.

To really be able to evaluate the paper and the software I need an end-to-end example of how to use it: how do I go step by step from an input dataset to an actual output?

My other related issue is that I think the paper/literature cited and the purpose of this tool don't quite hang together for me. The citations draw heavily on the interactive machine learning literature, but the tool itself appears much more focused on exploration and selection from a specific dataset (eg. "The ICAT workflow trains a simple binary classification model to separate "uninteresting" from "interesting" entries in an initially unlabeled dataset"). Is the intended output of this tool the machine learning model itself, or is the output the filtered dataset, in which case the IML approach is an implementation detail?

@WarmCyan
Copy link

WarmCyan commented Dec 2, 2024

Thanks for the feedback @SamHames, and best wishes!

it would have saved me a bit of time if there was some signposting in the UI about what's left to do before the model is "seeded"

That's a good point, I'll add some status indicators for the underlying model to make next logical actions more clear

Is the intended output of this tool the machine learning model itself, or is the output the filtered dataset

The intent was really either/both. In principle, as you're building up the model trying to explore and filter down a particular dataset, at the end you have both the filtered dataset as well as a model that can then be used on more data or similar problems down the line. (User-provided labels are separately stored in the model class from the active dataset, so you can trade out datasets and the model will still take all previously labeled data into account.)

Definitely heard though, getting a pretty strong signal from everyone that it's not clear how exactly to use this/where to go with it once it's running. I'm out on travel next week, but I'll make some time this week and when I get back to put together a start-to-finish example or two for going through the process on one dataset and then maybe applying the model on another. I'll ping here once that's ready!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review Track: 5 (DSAIS) Data Science, Artificial Intelligence, and Machine Learning
Projects
None yet
Development

No branches or pull requests

6 participants