No problem, glad you got it working and glad to hear someone is trying
it out.
Tim


On 01/29/2016 01:35 PM, Geise, Brandon D. wrote:
> Sorry for the trouble.  I rebuilt the graph database and it seems to pass the 
> Junit test now.
>
> -----Original Message-----
> From: Miller, Timothy [mailto:[email protected]] 
> Sent: Friday, January 29, 2016 1:16 PM
> To: [email protected]
> Subject: Re: umls graph api
>
> I don't have 2015AA downloaded but I'll try to get it and see if I can 
> reproduce. Before the test fails, do you see output from the other tests
> like:
>
> Ancestor (hypernym) is: C1304819
> Ancestor (hypernym) is: C0346629
> Ancestor (hypernym) is: C0009375
> Ancestor (hypernym) is: C0009373
> Ancestor (hypernym) is: C0006826
> ... (many more lines like this)
>
> If so, it could be that it is indexing correctly but my test is 2015AB 
> specific somehow.
>
> Tim
>
>
> On 01/29/2016 01:12 PM, Geise, Brandon D. wrote:
>> java.lang.AssertionError
>>      at org.junit.Assert.fail(Assert.java:92)
>>      at org.junit.Assert.assertTrue(Assert.java:43)
>>      at org.junit.Assert.assertTrue(Assert.java:54)
>>      at TestGraphFunctions.testHypernyms(TestGraphFunctions.java:38)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>      at java.lang.reflect.Method.invoke(Unknown Source)
>>      at 
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
>>      at 
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>      at 
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
>>      at 
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
>>      at 
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
>>      at 
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
>>      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>>      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
>>      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
>>      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
>>      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
>>      at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
>>      at 
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
>>      at 
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>>      at 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
>>      at 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
>>      at 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
>>      at 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTest
>> Runner.java:192)
>>
>> -----Original Message-----
>> From: Miller, Timothy [mailto:[email protected]]
>> Sent: Friday, January 29, 2016 1:09 PM
>> To: [email protected]
>> Subject: Re: umls graph api
>>
>> I was using 2015AB. Can you copy/paste the error trace that junit gives you?
>> Thanks
>> Tim
>>
>>
>> On 01/29/2016 01:04 PM, Geise, Brandon D. wrote:
>>> Very cool.
>>>
>>> I started going through your instructions.  Everything seemed to be working 
>>> except for the GraphFunction Junit test fails on the first assertion.  I'm 
>>> using 2015AA and it doesn't appear that the isa relationship holds true, 
>>> unless I messed something up.  What UMLS version did you test with?
>>>
>>> Thanks,
>>> Brandon
>>>
>>> -----Original Message-----
>>> From: Miller, Timothy [mailto:[email protected]]
>>> Sent: Tuesday, January 26, 2016 2:59 PM
>>> To: [email protected]
>>> Subject: umls graph api
>>>
>>> I've been working on some code for easy querying of the UMLS relation graph 
>>> that I think might be useful in ctakes. The repo is here:
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_tmill
>>> s_umls-2Dgraph-2Dapi&d=BQIFAg&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCo
>>> ppxeFU&r=Heup-IbsIg9Q1TPOylpP9FE4GTK-OqdTDRRNQXipowRLRjx0ibQrHEo8uYx6
>>> 674h&m=VF6tEMHRXUuomFk3Rma04eOozJC4amQHvm7PfAsXqvw&s=J_kg_cPwEhOWJIDI
>>> 06-lORddJf83jmbb_I-MwkC_3Zg&e=
>>>
>>> If you point it at your umls download you can build the db in about 5 
>>> minutes (45 MB). Then the API has a class GraphFunctions with the following 
>>> methods:
>>>
>>>   public static List<String> getHypernyms(String cui);
>>>   public static List<String> getHyponyms(String cui);
>>>   public static boolean isa(String cui1, String cui2);
>>>
>>> These make use of just the "isa" relation in the MRREL file, and 
>>> could tell you, for example, that
>>>
>>> isa("C0007102",  "C3662248") is true (colon cancer is a finding) but that 
>>> isa("C3662248", "C0007102") is not true.
>>>
>>> If people find it useful enough we may wish to add it to ctakes and perhaps 
>>> we could redistribute this view of the UMLS subject to the same username 
>>> checking we do now for the dictionary. We may wish to include other 
>>> relations and ontologies as well -- right now just SNOMED. But this is the 
>>> skeleton and I think with this starting point adding new capabilities will 
>>> be pretty easy.
>>>
>>> Tim
>>>
>>>
>>>
>>> IMPORTANT WARNING: The information in this message (and the documents 
>>> attached to it, if any) is confidential and may be legally privileged. It 
>>> is intended solely for the addressee. Access to this message by anyone else 
>>> is unauthorized. If you are not the intended recipient, any disclosure, 
>>> copying, distribution or any action taken, or omitted to be taken, in 
>>> reliance on it is prohibited and may be unlawful. If you have received this 
>>> message in error, please delete all electronic copies of this message (and 
>>> the documents attached to it, if any), destroy any hard copies you may have 
>>> created and notify me immediately by replying to this email. Thank you.
>>>
>>> Geisinger Health System utilizes an encryption process to safeguard 
>>> Protected Health Information and other confidential data contained in 
>>> external e-mail messages. If email is encrypted, the recipient will receive 
>>> an e-mail instructing them to sign on to the Geisinger Health System Secure 
>>> E-mail Message Center to retrieve the encrypted e-mail.
>>>
>>
>
>

Reply via email to