Blulab-Utah / MoonstoneDemo

Demonstration of Moonstone, with Powerpoint tutorial on creating new grammar rules
0 stars 1 forks source link

Does this still work? #1

Open bwang482 opened 3 years ago

bwang482 commented 3 years ago

Hi many thanks for the implementation!

I am keen to use your developed tool for annotating the data I have at hand. However, I have downloaded this repo, clicked on the jar file, and no matter what I click on in the GUI nothing happens at all. Does the jar file still work?

maconway commented 3 years ago

Hi - have you tried running it on the command line with an increased heap size?

leenlp commented 3 years ago

Hello,

Moonstone was never refined as a product for general consumption, so a fair amount of hand editing is required with each new installation. The first thing that needs to be done is to edit the startup parameter file “tsl.properties”, to make sure the parameters with listed file locations are correct for the new installation. File paths on Macs should use the “/“ delimiter, while Windows paths should use “\”. Also please make sure file locations are correct. I believe there is a README file which explains things like this at a high level view.

One think you might try is to run the executable from a terminal or shell app; i.e. open the shell app, change directory to the top folder of the Moonstone distribution and type “java -jar MoonstoneDemo.jar” (whatever the actual jar name is). This will at least display Java error messages which could help in identifying the source of the problem.

On a historical note- I started into phased retirement and left my appointment with the University of Utah Biomedical Informatics group over a year ago. I’m continuing to work on Moonstone, however, and may come up with new and more refined versions in the next couple of years. Anyone who has an interest I welcome to reach out to me from time to time, and I will share what I’m working on and at least rough timelines.

Thanks for your interest in Moonstone!

— Lee Christensen

On May 3, 2021, at 4:32 PM, Bo Wang @.***> wrote:

Hi many thanks for the implementation!

I am keen to use your developed tool for annotating the data I have at hand. However, I have downloaded this repo, clicked on the jar file, and no matter what I click on in the GUI nothing happens at all. Does the jar file still work?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3EOWM2ZVVUYAQBQUKTTL4QATANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Thanks both for your replies!

I have increased heap size but still no difference. I am indeed using the command line to execute the jar file, under the MoonstoneDemo_10_2_2019 directory. The GUI looks still. For example, I can't achieve what slide 4 shows in your "How to train Moonstone" ppt. Actually, no matter which option (except for Exit Rule Builder) under 'Operations' I click on, I see no effect.

The "tsl.properties" is the same as default. Is it not sufficient for the demo?

$ java -jar MoonstoneDemo.jar -Xmx5000m
LOADING TSL KNOWLEDGE ENGINE
StartupParameters.readProperties: RootDir=D:\bo\Tools\MoonstoneDemo\MoonstoneDemo_10_2_2019
FINISHED LOADING KNOWLEDGE ENGINE
Creating ontology (demo)
Missing constant for ":PATIENT_SUBSTANCE_USE:"
Read grammar "DemoGrammar:document-grammar".  Number of rules = 1
Missing constant for ":PRE-NEGATION-WORD:"
Missing constant for ":CONJ:"
Missing constant for ":BUT:"
Missing constant for ":DESIRE:"
Missing constant for ":PLAN:"
Missing constant for ":AFFIRMATIVE_COMMUNICATION:"
Missing constant for ":NEGATIVE_COMMUNICATION:"
Missing constant for ":ALONE:"
Missing constant for ":FRIEND:"
Missing constant for ":USE:"
Missing constant for ":LIVED_AT:"
Missing constant for ":SINGLE_FAMILY_MEMBERS:"
Missing constant for ":MULTI_FAMILY_MEMBERS:"
Missing constant for ":SPOUSE:"
Missing constant for ":NON_SPOUSE_SINGLE_FAMILY_MEMBERS:"
Missing constant for ":NO-ONE:"
substance-action-rule: DUPLICATE RULES
substance-event-rule-2: DUPLICATE RULES
substance-rule: DUPLICATE RULES
alcohol-rule: DUPLICATE RULES
alcohol-abuse-rule: DUPLICATE RULES
tobacco-rule: DUPLICATE RULES
prescription-medication-rule: DUPLICATE RULES
substance-quantity: DUPLICATE RULES
drug-rule: DUPLICATE RULES
Missing constant for ":ABUSE:"
substance-abuse-rule-2: DUPLICATE RULES
substance-dependence-rule: DUPLICATE RULES
substance-withdrawal-rule: DUPLICATE RULES
Read grammar "DemoGrammar:sentence-grammar".  Number of rules = 105
Missing constant for ":INDENTATION:"
Missing constant for ":BULLET:"
Missing constant for ":CONTENT_COLLECTION:"
Missing constant for ":BULLETED_CONTENT:"
Missing constant for ":BULLETED_CONTENT_TABLE:"
Missing constant for ":NON_NEWLINE_WHITESPACE_COLLECTION:"
Missing constant for ":SENTENCE_STRING:"
Missing constant for ":NUMBER_EQUALS_SENTENCE_STRING:"
Missing constant for ":STARTING_SENTENCE_WORD:"
Missing constant for ":STARTING_SENTENCE_STRING:"
Missing constant for ":NON_ALPHA_STRING_CHARACTER_SEQUENCE:"
Missing constant for ":CONTINUATION_SENTENCE_STRING:"
Missing constant for ":WORD:"
Missing constant for ":SENTENCE_DELIMITER:"
Missing constant for ":SENTENCE:"
Missing constant for ":AVPAIR_DELIMITER_STRING:"
Missing constant for ":ATTRIBUTE_VALUE_PAIR:"
Missing constant for ":CONTENT_ITEM:"
Missing constant for ":CONTINUATION_SENTENCE_WORD:"
Missing constant for ":AVPAIR_DELIMITER:"
Missing constant for ":WHITESPACE_COLLECTION:"
Missing constant for ":NON_ALPHA_STRING_CHARACTER:"
Missing constant for ":NON_NEWLINE_WHITESPACE:"
Read grammar "DemoGrammar:structure-grammar".  Number of rules = 37
Read grammar "DemoGrammar:document-grammar".  Number of rules = 1
substance-action-rule: DUPLICATE RULES
substance-event-rule-2: DUPLICATE RULES
substance-rule: DUPLICATE RULES
alcohol-rule: DUPLICATE RULES
alcohol-abuse-rule: DUPLICATE RULES
tobacco-rule: DUPLICATE RULES
prescription-medication-rule: DUPLICATE RULES
substance-quantity: DUPLICATE RULES
drug-rule: DUPLICATE RULES
substance-abuse-rule-2: DUPLICATE RULES
substance-dependence-rule: DUPLICATE RULES
substance-withdrawal-rule: DUPLICATE RULES
Read grammar "DemoGrammar:sentence-grammar".  Number of rules = 105
Read grammar "DemoGrammar:structure-grammar".  Number of rules = 37
bwang482 commented 3 years ago

We really appreciate your help here!

Is Blulab-Utah/VAReadmissionMoonstone the full implementation of Moonstone and this current repo is merely for demo purpose? If so, is it possible to reshare VAReadmissionMoonstone_10_2_2018.jar? Many thanks!

wwchapman commented 3 years ago

Bo, Hoping Lee can help - it would be great to see Moonstone being used by others.

Wendy

On Thu, May 13, 2021 at 9:26 AM Bo Wang @.***> wrote:

We really appreciate your help here!

Is https://github.com/Blulab-Utah/VAReadmissionMoonstone the full implementation of Moonstone and this current repo is merely for demo purpose? If so, is it possible to reshare VAReadmissionMoonstone_10_2_2018.jar ? Many thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-840164091, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5X6MEITBSSZSWI5A3RMYDTNMFBBANCNFSM44BTY5EQ .

leenlp commented 3 years ago

Hello, Bo. I left a number of GitHub versions of Moonstone around. It sounds like you got an earlier one that was only for demo purposes, with a flimsy tutorial and just a couple of grammar rules to illustrate how Moonstone is supposed to work. I wrote this originally for other members of my team, trying to get them to play with Moonstone and give me feedback.

I’m guessing your aim is to use Moonstone for something useful, in which case I can put you in possession of a version trained on some useful data having to do with social risk factors, activities of daily living and so forth. Not complete by any means, but it produced some encouraging results.

If it’s all right, I’ll place a copy on Dropbox and send you a link tomorrow. We can continue to talk through problems if you encounter them.

Thanks,

Lee

On May 12, 2021, at 10:59 PM, wwchapman @.***> wrote:

Bo, Hoping Lee can help - it would be great to see Moonstone being used by others.

Wendy

On Thu, May 13, 2021 at 9:26 AM Bo Wang @.***> wrote:

We really appreciate your help here!

Is https://github.com/Blulab-Utah/VAReadmissionMoonstone the full implementation of Moonstone and this current repo is merely for demo purpose? If so, is it possible to reshare VAReadmissionMoonstone_10_2_2018.jar ? Many thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-840164091, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5X6MEITBSSZSWI5A3RMYDTNMFBBANCNFSM44BTY5EQ .

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-840298376, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3BE7H7NJ3ZYJW2WCFTTNNMCJANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Yes, we want to use Moonstone to extract social risk factor information from EHRs. It'd be great if you can share the trained version. Thank you very much Lee!

leenlp commented 3 years ago

Hi again,

I took a little longer to prepare a later, trained version of Moonstone than I had anticipated. I apologize for that.

I have shared a DropBox folder with you, for which you should be getting an email. I’ve never used the GitHub comment email before, so it may go out to everyone on the list. Anyways, it contains an executable jar file and should start up when you double click on it (it takes about a minute to load). However, I would recommend using a terminal or shell with the java -jar command, just in case there are Java errors.

Thanks, and let me know how it goes.

— Lee

On May 14, 2021, at 9:39 AM, Bo Wang @.***> wrote:

Yes, we want to use Moonstone to extract social risk factor information from EHRs. It'd be great if you can share the trained version. Thank you very much Lee!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-841321808, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3D275ZIYU3P54NZC4TTNU74JANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Thanks very much @leenlp !

I haven't received the email. Can you please send it to _removed_?

leenlp commented 3 years ago

Done. Not sure why it didn’t go out, but I’ve never had troubles sharing Dropbox files with private emails.

Let me know if there are more problems.

— Lee

On May 17, 2021, at 7:19 PM, Bo Wang @.***> wrote:

Thanks very much @leenlp https://github.com/leenlp !

I haven't received the email. Can you please send it to @. @.>?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-842750277, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3FYXL4WMV3RTIQY4GTTOG6AZANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Many thanks for sharing @leenlp !

I am now able to extract social risk information of a single example sentence using the GUI. I am however unable to perform batch processing (i.e. annotating a corpus of documents) using "Projects -> Analyze Corpus - Output EHost XML". Would it be possible to have a quick chat whenever you're free? I am keen to understand the output as well, so it can be better integrated into our workflow. Thanks again!!

leenlp commented 3 years ago

Hi-

Please be sure to select Projects-> Analyze Corpus - Output Ehost XML (AMI/RO1), not the Readmission version. If the problem is an inability to find the patient reports, then the easiest way to fix that without having to change startup parameters will be to copy the text folder to the top level of the Moonstone distribution, with the name “corpus” (that name has special meaning to the annotation tool- EHost- that was used in training Moonstone). The properties file (“tsl.properties”) I added points to a folder named “corpus” within the distribution, containing fifteen MTSamples reports.

The results are stored in the XML format used by EHost- that may be a headache for you. I never created a way to output results in any more directly accessible format.

The output files are stored to the folder listed with the parameter “ResultsOutputDirectory”. I realize the current parameter lists the folder name “MoonstoneDartmouthResults”- that doesn’t hurt anything, but I should have called it something that didn’t actually reference our previous work. I will add an adjusted tsl.properties file to the DB folder.

I know this is a lot to take in. I’m happy to set up a zoom meeting to walk through the things you need to know. Please let me know when you might be available next week.

Thanks,

Lee

On May 18, 2021, at 10:13 AM, Bo Wang @.***> wrote:

Many thanks for sharing @leenlp https://github.com/leenlp !

I am afraid it is still not working for me. Would it be possible to have a quick chat online whenever you're free, please? It would be really useful. I might be just completely missing something obvious here.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-843314383, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3BLL4QSEJNXELPYYF3TOKG4BANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Thanks @leenlp !

What is the correct input data format? I have set both TextInputDirectory and ResultsOutputDirectory to my input and output folders under directory MoonstoneDemo_5_17_2021_BO_WANG. Below is the error I am getting but I think it maybe due the incorrect input format.

Read grammar "AMIR01Grammar:sentence-grammar".  Number of rules = 2017
Processing [0]: examples.txt...(261 milliseconds)
ReadmissionGeneralEHostAnnotation Done.  File count=1
Seconds=0,Minutes=0
WBManager: Reading Documents...
WBManager: Reading Primary Annotations...
WBManager: Reading Secondary Annotations...
WBManager: Initializing Workbench...
Annotation file count=0
WARNING:  Missing annotation events
java.lang.NullPointerException: Cannot invoke "java.util.List.sort(java.util.Comparator)" because "list" is null
    at java.base/java.util.Collections.sort(Collections.java:179)
    at workbench.api.analysis.Analysis.getAllDocuments(Analysis.java:654)
    at workbench.api.gui.DocumentSelectionPanel.<init>(DocumentSelectionPanel.java:118)
    at workbench.api.gui.WBGUI.initializeGraphics(WBGUI.java:158)
    at workbench.api.gui.WBGUI.<init>(WBGUI.java:96)
    at edu.utah.blulab.evaluationworkbenchmanager.EvaluationWorkbenchManager.loadWBGUI(EvaluationWorkbenchManager.java:140)
    at edu.utah.blulab.evaluationworkbenchmanager.EvaluationWorkbenchManager.doTest(EvaluationWorkbenchManager.java:349)
    at moonstone.rulebuilder.MoonstoneRuleInterface.startupWorkbench(MoonstoneRuleInterface.java:666)
    at moonstone.rulebuilder.MoonstoneRuleInterface.actionPerformed(MoonstoneRuleInterface.java:909)
    at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
    at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
    at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
    at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
    at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1022)
    at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157)
    at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1066)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
    at java.desktop/java.awt.Component.processEvent(Component.java:6382)
    at java.desktop/java.awt.Container.processEvent(Container.java:2264)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4934)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4563)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4504)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
bwang482 commented 3 years ago

If the problem is an inability to find the patient reports, then the easiest way to fix that without having to change startup parameters will be to copy the text folder to the top level of the Moonstone distribution, with the name “corpus” (that name has special meaning to the annotation tool- EHost- that was used in training Moonstone). The properties file (“tsl.properties”) I added points to a folder named “corpus” within the distribution, containing fifteen MTSamples reports.

I have added a subfolder, named "corpus", in my INPUT folder now, i.e. MoonstoneDemo_5_17_2021_BO_WANG/INPUT/corpus, and the example sentences are in MoonstoneDemo_5_17_2021_BO_WANG/INPUT/corpus/example.txt. My sentences are simply separated by a newline and 4 whitespace (since it prompted and asked for the number of spaces for newline trigger).

Processing [0]: examples.txt...(47 milliseconds)
ReadmissionGeneralEHostAnnotation Done.  File count=1
Seconds=0,Minutes=0
WBManager: Reading Documents...
WBManager: Reading Primary Annotations...
WBManager: Reading Secondary Annotations...
WBManager: Initializing Workbench...
Annotation file count=0
WARNING:  Missing annotation events

The output doesn't have any annotations:


<?xml version="1.0" encoding="UTF-8"?>
<annotations textSource="examples.txt">
</annotations>
bwang482 commented 3 years ago

The results are stored in the XML format used by EHost- that may be a headache for you. I never created a way to output results in any more directly accessible format.

That's fine. I will write a script to extract relevant information from the XML formatted output files.

I know this is a lot to take in. I’m happy to set up a zoom meeting to walk through the things you need to know. Please let me know when you might be available next week.

Thank you very much @leenlp ! I am free anytime this week and anytime next week apart from Tuesday morning, Wednesday 12-13:00 and Thursday 15-16:00. It'd be really helpful to chat! (and my email is _removed_)

leenlp commented 3 years ago

Hi Bo,

I am not not sure what is wrong. Have you tried using just the samples I provided? You can do that by just starting up Moonstone and selecting the corpus processing menu item.

One thing- in the past, all the reports Moonstone has encountered have been ascii files with names ending in “.txt”. I wonder if that makes a difference.

I’ve uploaded a new copy FYI. You can just download it, start it and try it as is- that should parse the example files. There is no need to adjust the “number of spaces” parameter or change the documents in any ways. That parameter dealt with some extreme examples I was seeing from one project site.

I could meet next Thursday 5/27 at 15:00. Would you send a zoom invite?

Thanks,

Lee

On May 19, 2021, at 11:11 AM, Bo Wang @.***> wrote:

If the problem is an inability to find the patient reports, then the easiest way to fix that without having to change startup parameters will be to copy the text folder to the top level of the Moonstone distribution, with the name “corpus” (that name has special meaning to the annotation tool- EHost- that was used in training Moonstone). The properties file (“tsl.properties”) I added points to a folder named “corpus” within the distribution, containing fifteen MTSamples reports.

I have added a subfolder, named "corpus", in my INPUT folder now, i.e. MoonstoneDemo_5_17_2021_BO_WANG/INPUT/corpus, and the example sentences are in MoonstoneDemo_5_17_2021_BO_WANG/INPUT/corpus/example.txt. My sentences are simply separated by a newline and 4 whitespace (since it prompted and asked for the number of spaces for newline trigger).

Processing [0]: examples.txt...(47 milliseconds) ReadmissionGeneralEHostAnnotation Done. File count=1 Seconds=0,Minutes=0 WBManager: Reading Documents... WBManager: Reading Primary Annotations... WBManager: Reading Secondary Annotations... WBManager: Initializing Workbench... Annotation file count=0 WARNING: Missing annotation events The output doesn't have any annotations:

<?xml version="1.0" encoding="UTF-8"?>

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-844302087, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3FSPH7HZP5JSR7SCKLTOPWMFANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Thanks very much @leenlp ! Any time other than Tuesday morning, Wednesday 12-13 and Thursday 15-16:00, I can do. So are you free any other time? What's your email address?

bwang482 commented 3 years ago

I’ve uploaded a new copy FYI. You can just download it, start it and try it as is- that should parse the example files. There is no need to adjust the “number of spaces” parameter or change the documents in any ways. That parameter dealt with some extreme examples I was seeing from one project site.

Do you mean you have updated your Dropbox share? I have a quick look at the updated tsl.properties. It has TextInputDirectory=corpus which confuses me. corpus doesn't look like a folder name to me as there is no corpus in MoonstoneDemo_5_17_2021_BO_WANG. What is it then? I mean the only corpus folders are way down in the annotator training directory, e.g. MoonstoneDemo_5_17_2021_BO_WANG/AMI_NLP_R01/Annotation/MTSamplesAnnotatorTraining/Intra\ Site\ Adjudication\ Sets/Training1/Tiffany/workspace/corpus.

Can I not have my input data anywhere else?

bwang482 commented 3 years ago

Sorry for bombarding you with comments. I have downloaded your new update and added a corpus just under MoonstoneDemo_5_17_2021_BO_WANG and it seems to be working now.

A second interface pops on the screen: https://ibb.co/1z2fhVw. Should I do do anything on this window? I have selected "Write Mentions to File" and had Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "workbench.api.constraint.ConstraintMatch.writeSpreadsheetFileVisible()" because the return value of "workbench.api.analysis.Analysis.getSelectedConstraintMatch()" is null.

leenlp commented 3 years ago

I’m sorry, Bo, for the confusion. Could you please delete your copy of MoonstoneDemo_5_17_2021_BO_WANG entirely, then download MoonstoneDemo_5_19_2021_BO_WANG from the dropbox folder? You shouldn’t have to adjust anything inside the 5_19 distribution folder- just startup up Moonstone and invoke the menu command. I’d like to get to a known state before trying new things.

I believe next week’s zoom meeting will clear a lot up. If this next step doesn’t work, I’d suggest we wait until we can meet rather than trying to fix things through email.

I’m sorry for the grief you’ve going through now! Part of the difficulty is that I never refined Moonstone for general use. I have much more functionality I wanted to add. It’s still under development with some new projects, and I hope to have time to make it much more user friendly in the process.

Honestly, I consider Moonstone a nice start to some good ideas, but nowhere near where I want it to be. That’s why it’s still in an experimental form.

Thanks for your patience!

Lee

On May 19, 2021, at 4:52 PM, Bo Wang @.***> wrote:

Have you tried using just the samples I provided? You can do that by just starting up Moonstone and selecting the corpus processing menu item.

I have for example moved MoonstoneDemo_5_17_2021_BO_WANG/AMI_NLP_R01/Annotation/MTSamplesAnnotatorTraining/Intra\ Site\ Adjudication\ Sets/Training1/Tiffany/workspace/corpus to the MoonstoneDemo_5_17_2021_BO_WANG parent directory, and changed TextInputDirectory=corpus. This is what I am getting:

Processing [0]: 458.txt...java.lang.NullPointerException: Cannot invoke "workbench.api.gui.WBGUI.getAnalysis()" because the return value of "moonstone.rulebuilder.MoonstoneRuleInterface.getWorkbench()" is null at moonstone.io.ehost.MoonstoneEHostXML.extractKTSimpleInstances(MoonstoneEHostXML.java:424) at moonstone.io.ehost.MoonstoneEHostXML.extractAnnotations(MoonstoneEHostXML.java:376) at moonstone.io.ehost.MoonstoneEHostXML.toXML(MoonstoneEHostXML.java:356) at moonstone.io.ehost.MoonstoneEHostXML.readmissionGenerateEHostAnnotationsNestedDirectories(MoonstoneEHostXML.java:250) at moonstone.io.ehost.MoonstoneEHostXML.generateEHostAnnotationsNested(MoonstoneEHostXML.java:47) at moonstone.rulebuilder.MoonstoneRuleInterface.testEHostMultiReportAnalysisAMIR01(MoonstoneRuleInterface.java:1299) at moonstone.rulebuilder.MoonstoneRuleInterface.actionPerformed(MoonstoneRuleInterface.java:904) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1022) at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1066) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6382) at java.desktop/java.awt.Container.processEvent(Container.java:2264) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4934) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4563) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4504) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Processing [1]: 303.txt...(559 milliseconds) Processing [2]: 2188.txt...java.lang.NullPointerException: Cannot invoke "workbench.api.gui.WBGUI.getAnalysis()" because the return value of "moonstone.rulebuilder.MoonstoneRuleInterface.getWorkbench()" is null at moonstone.io.ehost.MoonstoneEHostXML.extractKTSimpleInstances(MoonstoneEHostXML.java:424) at moonstone.io.ehost.MoonstoneEHostXML.extractAnnotations(MoonstoneEHostXML.java:376) at moonstone.io.ehost.MoonstoneEHostXML.toXML(MoonstoneEHostXML.java:356) at moonstone.io.ehost.MoonstoneEHostXML.readmissionGenerateEHostAnnotationsNestedDirectories(MoonstoneEHostXML.java:250) at moonstone.io.ehost.MoonstoneEHostXML.generateEHostAnnotationsNested(MoonstoneEHostXML.java:47) at moonstone.rulebuilder.MoonstoneRuleInterface.testEHostMultiReportAnalysisAMIR01(MoonstoneRuleInterface.java:1299) at moonstone.rulebuilder.MoonstoneRuleInterface.actionPerformed(MoonstoneRuleInterface.java:904) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1022) at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1066) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6382) at java.desktop/java.awt.Container.processEvent(Container.java:2264) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4934) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4563) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4504) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ... ... ... ... — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-844549964, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3DB26ODQTC6VMOWF4LTOQ6LPANCNFSM44BTY5EQ.

leenlp commented 3 years ago

Hi Bo-

That second window is called the Evaluation Workbench. Some of the functions are out-of-date and may return errors if you try to use them. I think it will be easiest if I explain and demonstrate its uses when we meet next week, if that is all right.

Sorry for bombarding you with comments.

No problem!!

Thanks,

Lee

On May 19, 2021, at 5:00 PM, Bo Wang @.***> wrote:

Sorry for bombarding you with comments. I have downloaded your new update and added a corpus just under MoonstoneDemo_5_17_2021_BO_WANG and it seems to be working now.

A second interface pops on the screen: https://ibb.co/1z2fhVw https://ibb.co/1z2fhVw. Should I do do anything on this window? I have selected "Write Mentions to File" and had Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "workbench.api.constraint.ConstraintMatch.writeSpreadsheetFileVisible()" because the return value of "workbench.api.analysis.Analysis.getSelectedConstraintMatch()" is null.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-844552827, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3AMPDOMLJYFIGOZAIDTOQ7HVANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

I really appreciate your help here @leenlp ! It's great there is a publicly available tool for extracting social risk information from EHRs, which would be really useful for us!

So when are you free next week? I can do anytime except Tuesday morning and Thursday 15-16:00 unfortunately. Which email address should I contact you to?

bwang482 commented 3 years ago

Hi @leenlp , just wondering when are you free next week and what's your email address to contact? Thanks.

leenlp commented 3 years ago

Hi Bo,

By any chance could you meet at 3 pm MT? I rather than risk becoming an expert at Zoom, I usually let others set up the meeting, unless I have to. :)

My email address is @. @.>.

Thanks. I hope we can meet next week.

— Lee

On May 23, 2021, at 12:33 PM, Bo Wang @.***> wrote:

Hi @leenlp https://github.com/leenlp , just wondering when are you free next week and what's your email address to contact? Thanks.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-846605811, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3DSV6KETIHPA2R4BNLTPFDAZANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Thanks @leenlp ! Do you mean today at 3pm MT? I'd prefer during the weekdays if possible. I can't see your email address. Would you please drop me an email at _removed_?

leenlp commented 3 years ago

No, sorry- I meant this coming Thursday, 5/27 at 3 pm MT. I’m working on several things at once here. Sorry for the confusion!

On May 23, 2021, at 1:09 PM, Bo Wang @.***> wrote:

Thanks @leenlp https://github.com/leenlp ! Do you mean today at 3pm MT? I'd prefer during the weekdays if possible. I can't see your email address. Would you please drop me an email at @. @.>?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blulab-Utah/MoonstoneDemo/issues/1#issuecomment-846610139, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHZB3FQICXSYTOJUMNBV7DTPFHE7ANCNFSM44BTY5EQ.

bwang482 commented 3 years ago

Thanks @leenlp !

Yes, I can do this coming Thursday, 5/27 at 3 pm MT. If you give me your email (or send an email to _removed_) I will arrange the meeting for Thursday. Thanks again.