UMLS / query tab / mapping ontology questions

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

UMLS / query tab / mapping ontology questions

Sira-2
Hi,

I have the following scenario.

UMLS metathesaurus has information from MeSH, GO, SNOMED, etc. My
initial concern is looking at MESH and GO. MeSH is part of UMLS. So i
create a project for MeSH ontology on Protege3.1 and load the UMLS tab
plugin to this project space.

1) When i search for a term (e.g.pelvis, etc) in UMLS tab, I find
multiple results, e.g. pelvis as location, as finding, etc according to
where UMLS points 'pelvis' to, whether it is from GO, MESH, SNOMED,
etc. The correspondent node for pelvis from MESH ontology exists under
mesh_A as body_region. How can I link the correspondent node from MeSH
to UMLS?

2) MeSH is a subset of UMLS, would it make sense to create a project
for UMLS and then use prompt tab to map MeSH and UMLS together? If so,
is there such a UMLS ontology file existing somewhere on the web? I
tried looking at umlsks at NIH website, the download for UMLS is in the
form that i do not understand and i don't know if i will be able to
import that to protege3.1. So, is there an owl file for UMLS somewhere?

3) I also try querying MeSH terms in the MeSH protege project, for
example, I know that a node whose rdfs:label 'pelvis' does exist
somewhere under the superclass of MESH_root. So I load the query tab
in, i select the class of "MESH_root" with Slot "rdfs:label" contains
"pelvis". When I click the 'Find' button the search result is always 0.
I've tried a few other test queries that when looking manually, i know
that the search term exists somewhere under the MESH_root but the
search result is always zero regardless to whatever query i try. So i'm
wondering if somehow my protege does not look in subclasses in the
superclass of MESH_root, or, something is going wrong here? the
terminal window does not show any error message, all i know is search
result should not be zero.

sorry that these questioins are kind of long. thank you very much.

Sira


-------------------------------------------------------------------------
To unsubscribe go to http://protege.stanford.edu/community/subscribe.html

Reply | Threaded
Open this post in threaded view
|

[protege-owl] Re: UMLS / query tab / mapping ontology questions

Nigam Shah
>1) When i search for a term (e.g.pelvis, etc) in UMLS tab, I
>find multiple results, e.g. pelvis as location, as finding,
>etc according to where UMLS points 'pelvis' to, whether it is
>from GO, MESH, SNOMED, etc. The correspondent node for pelvis
>from MESH ontology exists under mesh_A as body_region. How can
>I link the correspondent node from MeSH to UMLS?

Hi Sira,

Can you elaborate on what you mean by "link correspondent node from
MeSH to UMLS"? The relationship of that node to other terms in the
UMLS is present in the MRREL table in the UMLS download I think.

>2) MeSH is a subset of UMLS, would it make sense to create a
>project for UMLS and then use prompt tab to map MeSH and UMLS
>together? If so, is there such a UMLS ontology file existing
>somewhere on the web? I tried looking at umlsks at NIH
>website, the download for UMLS is in the form that i do not
>understand and i don't know if i will be able to import that
>to protege3.1. So, is there an owl file for UMLS somewhere?

The entire UMLS metathesarus is about 20GB in size. You cant make an
owl file that big and read it into protege. You can download the UMLS
as tab-delimited text files and then load them in an oracle or mysql
database for querying.

-Nigam.

-------------------------------------------------------------------------
To unsubscribe go to http://protege.stanford.edu/community/subscribe.html

Reply | Threaded
Open this post in threaded view
|

[protege-owl] Re: UMLS / query tab / mapping ontology questions

Nick Drummond
In reply to this post by Sira-2
Siiraa,

The query tab is designed to look for instances of the given class.
So, to search for classes by their values, you have to formulate your
query as:

find members of <METACLASS> where .....

If you are searching on owl classes, then the metaclass needs to be
owl:Class.
This can be made visible in OWL->Preferences->visibility and selecting
owl:Class

This is a nice idea actually - I'd never even tried using the query tab
with OWL (and certainly not classes)

Hope this helps

Nick

[hidden email] wrote:

>
> 3) I also try querying MeSH terms in the MeSH protege project, for
> example, I know that a node whose rdfs:label 'pelvis' does exist
> somewhere under the superclass of MESH_root. So I load the query tab
> in, i select the class of "MESH_root" with Slot "rdfs:label" contains
> "pelvis". When I click the 'Find' button the search result is always
> 0. I've tried a few other test queries that when looking manually, i
> know that the search term exists somewhere under the MESH_root but the
> search result is always zero regardless to whatever query i try. So
> i'm wondering if somehow my protege does not look in subclasses in the
> superclass of MESH_root, or, something is going wrong here? the
> terminal window does not show any error message, all i know is search
> result should not be zero.
>

--

Nick Drummond

http://www.cs.man.ac.uk/~drummond/ <http://www.cs.man.ac.uk/%7Edrummond/>
-------------------------------------------------------------------------
To unsubscribe go to http://protege.stanford.edu/community/subscribe.html

Reply | Threaded
Open this post in threaded view
|

[protege-owl] Re: UMLS / query tab / mapping ontology questions

Sira-2
Dear Nick,

Could you please elaborate more on the query
"find members of <METACLASS> where ..."

I conceptually understand the line you explained, but can this be
achieved through protege query tab?

I have just done as suggested by making visibility of owl:class. Then,
on query tab, I select class "owl:class" slot "rdfs:label" contains
string "pelvis".

The search never returns any results (this is performed on MESH
ontology), but gives me the following message on terminal window:



INFO: Load time for file:\H:\MeSH\mesh.pprj = 49 sec (project) + 31 sec (ui)
java.lang.ClassCastException
        at
edu.stanford.smi.protegex.queries_tab.toolbox.StringSlotValueWidget.t
estString(Unknown Source)
        at
edu.stanford.smi.protegex.queries_tab.toolbox.StringSlotValueWidget.t
estString(Unknown Source)
        at
edu.stanford.smi.protegex.queries_tab.toolbox.StringSlotValueWidget.s
earch(Unknown Source)
        at
edu.stanford.smi.protegex.queries_tab.SearchWidget.search(Unknown Sou
rce)
        at
edu.stanford.smi.protegex.queries_tab.SearchWidget.search(Unknown Sou
rce)
        at
edu.stanford.smi.protegex.queries_tab.MatchInstances.search(Unknown S
ource)
        at
edu.stanford.smi.protegex.queries_tab.QueriesTab.doSearch(Unknown Sou
rce)
        at
edu.stanford.smi.protegex.queries_tab.QueriesTab.access$500(Unknown S
ource)
        at
edu.stanford.smi.protegex.queries_tab.QueriesTab$6.actionPerformed(Un
known Source)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknow
n Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)


What have I mistaken here? Thank you very much.

Sira




Quoting Nick Drummond <[hidden email]>:

> Siiraa,
>
> The query tab is designed to look for instances of the given class.
> So, to search for classes by their values, you have to formulate your
> query as:
>
> find members of <METACLASS> where .....
>
> If you are searching on owl classes, then the metaclass needs to be
> owl:Class.
> This can be made visible in OWL->Preferences->visibility and
> selecting owl:Class
>
> This is a nice idea actually - I'd never even tried using the query
> tab with OWL (and certainly not classes)
>
> Hope this helps
>
> Nick
>
> [hidden email] wrote:
>
>>
>> 3) I also try querying MeSH terms in the MeSH protege project, for
>> example, I know that a node whose rdfs:label 'pelvis' does exist
>> somewhere under the superclass of MESH_root. So I load the query tab
>> in, i select the class of "MESH_root" with Slot "rdfs:label"
>> contains "pelvis". When I click the 'Find' button the search result
>> is always 0. I've tried a few other test queries that when looking
>> manually, i know that the search term exists somewhere under the
>> MESH_root but the search result is always zero regardless to
>> whatever query i try. So i'm wondering if somehow my protege does
>> not look in subclasses in the superclass of MESH_root, or, something
>> is going wrong here? the terminal window does not show any error
>> message, all i know is search result should not be zero.
>>
>
> --
>
> Nick Drummond
>
> http://www.cs.man.ac.uk/~drummond/ <http://www.cs.man.ac.uk/%7Edrummond/>
> -------------------------------------------------------------------------
> To unsubscribe go to http://protege.stanford.edu/community/subscribe.html
>
>
>
>


-------------------------------------------------------------------------
To unsubscribe go to http://protege.stanford.edu/community/subscribe.html

Reply | Threaded
Open this post in threaded view
|

[protege-owl] Re: UMLS / query tab / mapping ontology questions

Nick Drummond
Sira,

I think what you've done should be correct - this is an OWL ontology right?
I've put a screenshot up from protege3.2 build 243 of this working [1].
I've forwarded this to someone from Stanford to see if they have any ideas.

Alternatively, if you are just looking for datatype annotation property
values (such as labels) you can add them into the search synonyms for
the OWL plugin (OWL->preferences->Searching ... add property - eg
rdfs:label) Searches in the Classes/props/inds tabs will match on this
property as well as the name (and any alternative browser slot you have
set). See [2].

Cheers

Nick

[1] http://www.cs.man.ac.uk/~drummond/protege-owl/querytab.png
[2] http://www.cs.man.ac.uk/~drummond/protege-owl/search-obert.png

[hidden email] wrote:

> Dear Nick,
>
> Could you please elaborate more on the query
> "find members of <METACLASS> where ..."
>
> I conceptually understand the line you explained, but can this be
> achieved through protege query tab?
>
> I have just done as suggested by making visibility of owl:class. Then,
> on query tab, I select class "owl:class" slot "rdfs:label" contains
> string "pelvis".
>
> The search never returns any results (this is performed on MESH
> ontology), but gives me the following message on terminal window:
>
>
>
> INFO: Load time for file:\H:\MeSH\mesh.pprj = 49 sec (project) + 31
> sec (ui)
> java.lang.ClassCastException
>        at
> edu.stanford.smi.protegex.queries_tab.toolbox.StringSlotValueWidget.t
> estString(Unknown Source)
>        at
> edu.stanford.smi.protegex.queries_tab.toolbox.StringSlotValueWidget.t
> estString(Unknown Source)
>        at
> edu.stanford.smi.protegex.queries_tab.toolbox.StringSlotValueWidget.s
> earch(Unknown Source)
>        at
> edu.stanford.smi.protegex.queries_tab.SearchWidget.search(Unknown Sou
> rce)
>        at
> edu.stanford.smi.protegex.queries_tab.SearchWidget.search(Unknown Sou
> rce)
>        at
> edu.stanford.smi.protegex.queries_tab.MatchInstances.search(Unknown S
> ource)
>        at
> edu.stanford.smi.protegex.queries_tab.QueriesTab.doSearch(Unknown Sou
> rce)
>        at
> edu.stanford.smi.protegex.queries_tab.QueriesTab.access$500(Unknown S
> ource)
>        at
> edu.stanford.smi.protegex.queries_tab.QueriesTab$6.actionPerformed(Un
> known Source)
>        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
>        at
> javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknow
> n Source)
>        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
> Source)
>        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
>        at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
> ce)
>        at java.awt.Component.processMouseEvent(Unknown Source)
>        at java.awt.Component.processEvent(Unknown Source)
>        at java.awt.Container.processEvent(Unknown Source)
>        at java.awt.Component.dispatchEventImpl(Unknown Source)
>        at java.awt.Container.dispatchEventImpl(Unknown Source)
>        at java.awt.Component.dispatchEvent(Unknown Source)
>        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown
> Source)
>        at java.awt.LightweightDispatcher.processMouseEvent(Unknown
> Source)
>        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>        at java.awt.Container.dispatchEventImpl(Unknown Source)
>        at java.awt.Window.dispatchEventImpl(Unknown Source)
>        at java.awt.Component.dispatchEvent(Unknown Source)
>        at java.awt.EventQueue.dispatchEvent(Unknown Source)
>        at
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
>
>        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
> Source)
>        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>        at java.awt.EventDispatchThread.run(Unknown Source)
>
>
> What have I mistaken here? Thank you very much.
>
> Sira
>
>
>
>
> Quoting Nick Drummond <[hidden email]>:
>
>> Siiraa,
>>
>> The query tab is designed to look for instances of the given class.
>> So, to search for classes by their values, you have to formulate your
>> query as:
>>
>> find members of <METACLASS> where .....
>>
>> If you are searching on owl classes, then the metaclass needs to be
>> owl:Class.
>> This can be made visible in OWL->Preferences->visibility and
>> selecting owl:Class
>>
>> This is a nice idea actually - I'd never even tried using the query
>> tab with OWL (and certainly not classes)
>>
>> Hope this helps
>>
>> Nick
>>
>> [hidden email] wrote:
>>
>>>
>>> 3) I also try querying MeSH terms in the MeSH protege project, for
>>> example, I know that a node whose rdfs:label 'pelvis' does exist
>>> somewhere under the superclass of MESH_root. So I load the query tab
>>> in, i select the class of "MESH_root" with Slot "rdfs:label"
>>> contains "pelvis". When I click the 'Find' button the search result
>>> is always 0. I've tried a few other test queries that when looking
>>> manually, i know that the search term exists somewhere under the
>>> MESH_root but the search result is always zero regardless to
>>> whatever query i try. So i'm wondering if somehow my protege does
>>> not look in subclasses in the superclass of MESH_root, or, something
>>> is going wrong here? the terminal window does not show any error
>>> message, all i know is search result should not be zero.
>>>
>>
>> --
>>
>> Nick Drummond
>>
>> http://www.cs.man.ac.uk/~drummond/ 
>> <http://www.cs.man.ac.uk/%7Edrummond/>
>> -------------------------------------------------------------------------
>>
>> To unsubscribe go to
>> http://protege.stanford.edu/community/subscribe.html
>>
>>
>>
>>
>
>
> -------------------------------------------------------------------------
> To unsubscribe go to http://protege.stanford.edu/community/subscribe.html
>
>

--

Nick Drummond

http://www.cs.man.ac.uk/~drummond/ <http://www.cs.man.ac.uk/%7Edrummond/>
-------------------------------------------------------------------------
To unsubscribe go to http://protege.stanford.edu/community/subscribe.html