Re: getSeverity etc. for relation extractor

2014-03-25 Thread Chase Master
Thanks everyone, and sorry for the delayed response.  I tried adding
ddm.setSeverity(degreeOfTextRelation);  as Pei suggested, but I found that
setAttributesFromOriginal is not even being called, but rather, just
mapToMentions.  (It says that "with 3.1 don't need to map to proper mention
type, already creating as proper type"). I am working from the 3.1 tag.
 Should I check out the trunk and see if James' changes help?
Thanks
Chase


On Mon, Mar 24, 2014 at 3:30 PM, Dligach, Dmitriy <
dmitriy.dlig...@childrens.harvard.edu> wrote:

> Hi Everybody,
>
> I wanted to clarify something in connection with this thread of emails:
>
> The relation extractor is a machine learning system. Thus, it is going to
> be pretty hard to reverse engineer it to determine why a specific mistake
> has been made... However, if there is a certain pattern, say, of location_of
> that it cannot seem to handle, it should be fixable by adding more training
> examples that annotate this pattern.
>
> Dima
>
>
>
>
> On Mar 24, 2014, at 15:21, Masanz, James J.  wrote:
>
> > For the text "aneurysm in the middle cerebral artery"
> > 3.1 creates 3 location of relations
> > aneurysm : middle cerebral artery
> > aneurysm : cerebral artery
> > aneurysm : artery
> >
> > trunk also creates  3 location of relations
> > aneurysm : middle cerebral artery
> > aneurysm : cerebral artery
> > aneurysm : artery
> >
> > bodyLocation is not set for the IdentifiedAnnotation for "aneurysm" in
> either case.
> >
> > I've created CTAKES-290
> >
> > That jira issue will not address the fact the relation extractor does
> not create annotations for location of relations in "Rash on arm and leg".
> > I'll leave that determination to someone more familiar with the relation
> extractor
> >
> > -- James
> >
> > -Original Message-
> > From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
> > Sent: Monday, March 24, 2014 12:52 PM
> > To: dev@ctakes.apache.org
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > Hi James, I don't have an exact phrase to use.  We used the location_of
> with a brain aneurysm project, but the corpus is elsewhere now.  However,
> it would tag things such as [aneurysm] : [middle cerebral artery] and
> [aneurysm] : [cerebral artery] - which is different from arm/leg, but an
> example of 2 locations for one entity.
> > 
> > From: Masanz, James J. [masanz.ja...@mayo.edu]
> > Sent: Monday, March 24, 2014 11:05 AM
> > To: 'dev@ctakes.apache.org'
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > I ran  3.1  against "pain in arm and leg" and I get just one location_of
> relation.
> > And again no location_of relations for "rash on arm and leg"
> >
> > Sean, what was the exact phrase you used with the  incubator version?
> (or was that a while ago and lost)
> >
> > -Original Message-
> > From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
> > Sent: Friday, March 21, 2014 3:59 PM
> > To: dev@ctakes.apache.org
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > Hi James,
> >
> > It is starting to resemble a row of falling dominoes ...
> >
> > I ran with an incubator version of the "location of" extractor and it
> did seem to find multiple locations for a single d/d.  Functionality may
> have changed since then.
> >
> > Thanks for all of your attention to this topic.
> >
> > Sean
> >
> > -Original Message-
> > From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> > Sent: Friday, March 21, 2014 4:34 PM
> > To: 'dev@ctakes.apache.org'
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > Running from trunk, I don't get any relations for "Rash on arm and leg"
> :(
> >
> > If I change the text to "pain in arm and leg" I get one
> LocationOfTextRelation annotation with arg1=SignSymptomMention (pain) and
> arg2=AnatomicalSiteMention (arm)
> >
> > Does the relation extractor support creating a 2nd relation involving
> pain - the one between pain and leg (is this just an unfortunate choice of
> example) or does the relation extractor need enhancement before it would
> create mutiple location_of for a single SignSymptomMention or
> DiseaseDisorderMention
> >
> > BTW, I will have to debug the setting of bodyLocation in the code
> because even for "pain in arm", when running from

Re: getSeverity etc. for relation extractor

2014-03-24 Thread Dligach, Dmitriy
Hi Everybody,

I wanted to clarify something in connection with this thread of emails:  

The relation extractor is a machine learning system. Thus, it is going to be 
pretty hard to reverse engineer it to determine why a specific mistake has been 
madeā€¦ However, if there is a certain pattern, say, of location_of that it 
cannot seem to handle, it should be fixable by adding more training examples 
that annotate this pattern.

Dima




On Mar 24, 2014, at 15:21, Masanz, James J.  wrote:

> For the text "aneurysm in the middle cerebral artery"
> 3.1 creates 3 location of relations
> aneurysm : middle cerebral artery
> aneurysm : cerebral artery
> aneurysm : artery
> 
> trunk also creates  3 location of relations
> aneurysm : middle cerebral artery
> aneurysm : cerebral artery
> aneurysm : artery
> 
> bodyLocation is not set for the IdentifiedAnnotation for "aneurysm" in either 
> case.
> 
> I've created CTAKES-290
> 
> That jira issue will not address the fact the relation extractor does not 
> create annotations for location of relations in "Rash on arm and leg".
> I'll leave that determination to someone more familiar with the relation 
> extractor
> 
> -- James
> 
> -Original Message-
> From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu] 
> Sent: Monday, March 24, 2014 12:52 PM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Hi James, I don't have an exact phrase to use.  We used the location_of with 
> a brain aneurysm project, but the corpus is elsewhere now.  However, it would 
> tag things such as [aneurysm] : [middle cerebral artery] and [aneurysm] : 
> [cerebral artery] - which is different from arm/leg, but an example of 2 
> locations for one entity.  
> ____________
> From: Masanz, James J. [masanz.ja...@mayo.edu]
> Sent: Monday, March 24, 2014 11:05 AM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I ran  3.1  against "pain in arm and leg" and I get just one location_of 
> relation.
> And again no location_of relations for "rash on arm and leg"
> 
> Sean, what was the exact phrase you used with the  incubator version? (or was 
> that a while ago and lost)
> 
> -Original Message-
> From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
> Sent: Friday, March 21, 2014 3:59 PM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Hi James,
> 
> It is starting to resemble a row of falling dominoes ...
> 
> I ran with an incubator version of the "location of" extractor and it did 
> seem to find multiple locations for a single d/d.  Functionality may have 
> changed since then.
> 
> Thanks for all of your attention to this topic.
> 
> Sean
> 
> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Friday, March 21, 2014 4:34 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> Running from trunk, I don't get any relations for "Rash on arm and leg" :(
> 
> If I change the text to "pain in arm and leg" I get one 
> LocationOfTextRelation annotation with arg1=SignSymptomMention (pain) and 
> arg2=AnatomicalSiteMention (arm)
> 
> Does the relation extractor support creating a 2nd relation involving pain - 
> the one between pain and leg (is this just an unfortunate choice of example) 
> or does the relation extractor need enhancement before it would create 
> mutiple location_of for a single SignSymptomMention or DiseaseDisorderMention
> 
> BTW, I will have to debug the setting of bodyLocation in the code because 
> even for "pain in arm", when running from trunk, the LocationOfTextRelation 
> annotation is being created, but the bodyLocation within the 
> SignSymptomMention is not being set because the code in 
> TemplateFillerAnnotator expects arg1 and arg2 to be swapped from what they 
> currently are. I'll take a look at what it was in cTAKES 3.1 and find out if 
> this is a bug in TemplateFillerAnnotator or something else.
> 
> -- James
> 
> -Original Message-
> From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
> Sent: Friday, March 21, 2014 12:30 PM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
>> until we have a definite, well-defined need (from a user).
> 
> "Rash on arm and leg"
> 
>> I don't follow what you mean by your item B) below
> 
> [Rash].getLocationRelation() > [Rash : Arm]
> [Rash].getLocation() > [Arm]
> 
&

RE: getSeverity etc. for relation extractor

2014-03-24 Thread Masanz, James J.
For the text "aneurysm in the middle cerebral artery"
3.1 creates 3 location of relations
 aneurysm : middle cerebral artery
 aneurysm : cerebral artery
 aneurysm : artery

trunk also creates  3 location of relations
 aneurysm : middle cerebral artery
 aneurysm : cerebral artery
 aneurysm : artery

bodyLocation is not set for the IdentifiedAnnotation for "aneurysm" in either 
case.

I've created CTAKES-290

That jira issue will not address the fact the relation extractor does not 
create annotations for location of relations in "Rash on arm and leg".
I'll leave that determination to someone more familiar with the relation 
extractor

-- James

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu] 
Sent: Monday, March 24, 2014 12:52 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Hi James, I don't have an exact phrase to use.  We used the location_of with a 
brain aneurysm project, but the corpus is elsewhere now.  However, it would tag 
things such as [aneurysm] : [middle cerebral artery] and [aneurysm] : [cerebral 
artery] - which is different from arm/leg, but an example of 2 locations for 
one entity.  

From: Masanz, James J. [masanz.ja...@mayo.edu]
Sent: Monday, March 24, 2014 11:05 AM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

I ran  3.1  against "pain in arm and leg" and I get just one location_of 
relation.
And again no location_of relations for "rash on arm and leg"

Sean, what was the exact phrase you used with the  incubator version? (or was 
that a while ago and lost)

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
Sent: Friday, March 21, 2014 3:59 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Hi James,

It is starting to resemble a row of falling dominoes ...

I ran with an incubator version of the "location of" extractor and it did seem 
to find multiple locations for a single d/d.  Functionality may have changed 
since then.

Thanks for all of your attention to this topic.

Sean

-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
Sent: Friday, March 21, 2014 4:34 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Running from trunk, I don't get any relations for "Rash on arm and leg" :(

If I change the text to "pain in arm and leg" I get one LocationOfTextRelation 
annotation with arg1=SignSymptomMention (pain) and arg2=AnatomicalSiteMention 
(arm)

Does the relation extractor support creating a 2nd relation involving pain - 
the one between pain and leg (is this just an unfortunate choice of example) or 
does the relation extractor need enhancement before it would create mutiple 
location_of for a single SignSymptomMention or DiseaseDisorderMention

BTW, I will have to debug the setting of bodyLocation in the code because even 
for "pain in arm", when running from trunk, the LocationOfTextRelation 
annotation is being created, but the bodyLocation within the SignSymptomMention 
is not being set because the code in TemplateFillerAnnotator expects arg1 and 
arg2 to be swapped from what they currently are. I'll take a look at what it 
was in cTAKES 3.1 and find out if this is a bug in TemplateFillerAnnotator or 
something else.

-- James

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
Sent: Friday, March 21, 2014 12:30 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

> until we have a definite, well-defined need (from a user).

"Rash on arm and leg"

>  I don't follow what you mean by your item B) below

[Rash].getLocationRelation() > [Rash : Arm]
[Rash].getLocation() > [Arm]



-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
Sent: Friday, March 21, 2014 12:58 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user).

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-

RE: getSeverity etc. for relation extractor

2014-03-24 Thread Finan, Sean
Hi James, I don't have an exact phrase to use.  We used the location_of with a 
brain aneurysm project, but the corpus is elsewhere now.  However, it would tag 
things such as [aneurysm] : [middle cerebral artery] and [aneurysm] : [cerebral 
artery] - which is different from arm/leg, but an example of 2 locations for 
one entity.  

From: Masanz, James J. [masanz.ja...@mayo.edu]
Sent: Monday, March 24, 2014 11:05 AM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

I ran  3.1  against "pain in arm and leg" and I get just one location_of 
relation.
And again no location_of relations for "rash on arm and leg"

Sean, what was the exact phrase you used with the  incubator version? (or was 
that a while ago and lost)

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
Sent: Friday, March 21, 2014 3:59 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Hi James,

It is starting to resemble a row of falling dominoes ...

I ran with an incubator version of the "location of" extractor and it did seem 
to find multiple locations for a single d/d.  Functionality may have changed 
since then.

Thanks for all of your attention to this topic.

Sean

-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
Sent: Friday, March 21, 2014 4:34 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Running from trunk, I don't get any relations for "Rash on arm and leg" :(

If I change the text to "pain in arm and leg" I get one LocationOfTextRelation 
annotation with arg1=SignSymptomMention (pain) and arg2=AnatomicalSiteMention 
(arm)

Does the relation extractor support creating a 2nd relation involving pain - 
the one between pain and leg (is this just an unfortunate choice of example) or 
does the relation extractor need enhancement before it would create mutiple 
location_of for a single SignSymptomMention or DiseaseDisorderMention

BTW, I will have to debug the setting of bodyLocation in the code because even 
for "pain in arm", when running from trunk, the LocationOfTextRelation 
annotation is being created, but the bodyLocation within the SignSymptomMention 
is not being set because the code in TemplateFillerAnnotator expects arg1 and 
arg2 to be swapped from what they currently are. I'll take a look at what it 
was in cTAKES 3.1 and find out if this is a bug in TemplateFillerAnnotator or 
something else.

-- James

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
Sent: Friday, March 21, 2014 12:30 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

> until we have a definite, well-defined need (from a user).

"Rash on arm and leg"

>  I don't follow what you mean by your item B) below

[Rash].getLocationRelation() > [Rash : Arm]
[Rash].getLocation() > [Arm]



-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
Sent: Friday, March 21, 2014 12:58 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user).

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
Sent: Thursday, March 20, 2014 2:03 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation?
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others thi

RE: getSeverity etc. for relation extractor

2014-03-24 Thread Masanz, James J.
I ran  3.1  against "pain in arm and leg" and I get just one location_of 
relation. 
And again no location_of relations for "rash on arm and leg"

Sean, what was the exact phrase you used with the  incubator version? (or was 
that a while ago and lost)

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu] 
Sent: Friday, March 21, 2014 3:59 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Hi James,

It is starting to resemble a row of falling dominoes ...

I ran with an incubator version of the "location of" extractor and it did seem 
to find multiple locations for a single d/d.  Functionality may have changed 
since then.

Thanks for all of your attention to this topic.

Sean

-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu] 
Sent: Friday, March 21, 2014 4:34 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Running from trunk, I don't get any relations for "Rash on arm and leg" :(

If I change the text to "pain in arm and leg" I get one LocationOfTextRelation 
annotation with arg1=SignSymptomMention (pain) and arg2=AnatomicalSiteMention 
(arm)

Does the relation extractor support creating a 2nd relation involving pain - 
the one between pain and leg (is this just an unfortunate choice of example) or 
does the relation extractor need enhancement before it would create mutiple 
location_of for a single SignSymptomMention or DiseaseDisorderMention

BTW, I will have to debug the setting of bodyLocation in the code because even 
for "pain in arm", when running from trunk, the LocationOfTextRelation 
annotation is being created, but the bodyLocation within the SignSymptomMention 
is not being set because the code in TemplateFillerAnnotator expects arg1 and 
arg2 to be swapped from what they currently are. I'll take a look at what it 
was in cTAKES 3.1 and find out if this is a bug in TemplateFillerAnnotator or 
something else.

-- James

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
Sent: Friday, March 21, 2014 12:30 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

> until we have a definite, well-defined need (from a user).

"Rash on arm and leg"

>  I don't follow what you mean by your item B) below

[Rash].getLocationRelation() > [Rash : Arm]
[Rash].getLocation() > [Arm]



-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
Sent: Friday, March 21, 2014 12:58 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user). 

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
Sent: Thursday, March 20, 2014 2:03 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation? 
 
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others think?
--Pei

> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Thursday, March 20, 2014 2:50 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I saw the jira was assigned to me and had a few minutes so I 
> implemented a fix and committed.
> It was more than just the one line.
> The name of the index in which the binary text relations has changed 
> (now separate indexes instead of one for all binary text relations) so 

RE: getSeverity etc. for relation extractor

2014-03-21 Thread Finan, Sean
Hi James,

It is starting to resemble a row of falling dominoes ...

I ran with an incubator version of the "location of" extractor and it did seem 
to find multiple locations for a single d/d.  Functionality may have changed 
since then.

Thanks for all of your attention to this topic.

Sean

-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu] 
Sent: Friday, March 21, 2014 4:34 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Running from trunk, I don't get any relations for "Rash on arm and leg" :(

If I change the text to "pain in arm and leg" I get one LocationOfTextRelation 
annotation with arg1=SignSymptomMention (pain) and arg2=AnatomicalSiteMention 
(arm)

Does the relation extractor support creating a 2nd relation involving pain - 
the one between pain and leg (is this just an unfortunate choice of example) or 
does the relation extractor need enhancement before it would create mutiple 
location_of for a single SignSymptomMention or DiseaseDisorderMention

BTW, I will have to debug the setting of bodyLocation in the code because even 
for "pain in arm", when running from trunk, the LocationOfTextRelation 
annotation is being created, but the bodyLocation within the SignSymptomMention 
is not being set because the code in TemplateFillerAnnotator expects arg1 and 
arg2 to be swapped from what they currently are. I'll take a look at what it 
was in cTAKES 3.1 and find out if this is a bug in TemplateFillerAnnotator or 
something else.

-- James

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu]
Sent: Friday, March 21, 2014 12:30 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

> until we have a definite, well-defined need (from a user).

"Rash on arm and leg"

>  I don't follow what you mean by your item B) below

[Rash].getLocationRelation() > [Rash : Arm]
[Rash].getLocation() > [Arm]



-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
Sent: Friday, March 21, 2014 12:58 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user). 

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
Sent: Thursday, March 20, 2014 2:03 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation? 
 
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others think?
--Pei

> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Thursday, March 20, 2014 2:50 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I saw the jira was assigned to me and had a few minutes so I 
> implemented a fix and committed.
> It was more than just the one line.
> The name of the index in which the binary text relations has changed 
> (now separate indexes instead of one for all binary text relations) so 
> I had to change which index was searched.
> 
> -----Original Message-----
> From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
> Sent: Thursday, March 20, 2014 9:28 AM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Thanks for confirm James.  It seem like a bug...
> Chase,
> if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works 
> for you, I can commit the changes in

RE: getSeverity etc. for relation extractor

2014-03-21 Thread Masanz, James J.
Running from trunk, I don't get any relations for "Rash on arm and leg" :(

If I change the text to "pain in arm and leg" I get one LocationOfTextRelation 
annotation
with arg1=SignSymptomMention (pain)
and arg2=AnatomicalSiteMention (arm)

Does the relation extractor support creating a 2nd relation involving pain - 
the one between pain and leg (is this just an unfortunate choice of example) or 
does the relation extractor need enhancement before it would create mutiple 
location_of for a single SignSymptomMention or DiseaseDisorderMention

BTW, I will have to debug the setting of bodyLocation in the code because even 
for "pain in arm", when running from trunk, the LocationOfTextRelation 
annotation is being created, but the bodyLocation within the SignSymptomMention 
is not being set because the code in TemplateFillerAnnotator expects arg1 and 
arg2 to be swapped from what they currently are. I'll take a look at what it 
was in cTAKES 3.1 and find out if this is a bug in TemplateFillerAnnotator or 
something else.

-- James

-Original Message-
From: Finan, Sean [mailto:sean.fi...@childrens.harvard.edu] 
Sent: Friday, March 21, 2014 12:30 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

> until we have a definite, well-defined need (from a user).

"Rash on arm and leg"

>  I don't follow what you mean by your item B) below

[Rash].getLocationRelation() > [Rash : Arm]
[Rash].getLocation() > [Arm]



-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu] 
Sent: Friday, March 21, 2014 12:58 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user). 

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
Sent: Thursday, March 20, 2014 2:03 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation? 
 
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others think?
--Pei

> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Thursday, March 20, 2014 2:50 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I saw the jira was assigned to me and had a few minutes so I 
> implemented a fix and committed.
> It was more than just the one line.
> The name of the index in which the binary text relations has changed 
> (now separate indexes instead of one for all binary text relations) so 
> I had to change which index was searched.
> 
> -Original Message-----
> From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
> Sent: Thursday, March 20, 2014 9:28 AM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Thanks for confirm James.  It seem like a bug...
> Chase,
> if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works 
> for you, I can commit the changes in trunk.
> 
> Which also brings up some interesting points:
> 1) Should we populate IdentifiedAnnotation.severity() and 
> bodylocationof() Directly in RelationExtractorAnnotator instead of the 
> template filler?
> It would seem more intuitive and faster than iterating through the 
> relations afterwards again.
> 2)Chase brought up a good point, should we add some of the commonly 
> used components to the defaultpipeline?  (DrugNER, RelationExtractor, 
> TemplateFiller)?  Seems easier to

RE: getSeverity etc. for relation extractor

2014-03-21 Thread Finan, Sean
> until we have a definite, well-defined need (from a user).

"Rash on arm and leg"

>  I don't follow what you mean by your item B) below

[Rash].getLocationRelation() > [Rash : Arm]
[Rash].getLocation() > [Arm]



-Original Message-
From: Masanz, James J. [mailto:masanz.ja...@mayo.edu] 
Sent: Friday, March 21, 2014 12:58 PM
To: 'dev@ctakes.apache.org'
Subject: RE: getSeverity etc. for relation extractor

Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user). 

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
Sent: Thursday, March 20, 2014 2:03 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation? 
 
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others think?
--Pei

> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Thursday, March 20, 2014 2:50 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I saw the jira was assigned to me and had a few minutes so I 
> implemented a fix and committed.
> It was more than just the one line.
> The name of the index in which the binary text relations has changed 
> (now separate indexes instead of one for all binary text relations) so 
> I had to change which index was searched.
> 
> -Original Message-
> From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
> Sent: Thursday, March 20, 2014 9:28 AM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Thanks for confirm James.  It seem like a bug...
> Chase,
> if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works 
> for you, I can commit the changes in trunk.
> 
> Which also brings up some interesting points:
> 1) Should we populate IdentifiedAnnotation.severity() and 
> bodylocationof() Directly in RelationExtractorAnnotator instead of the 
> template filler?
> It would seem more intuitive and faster than iterating through the 
> relations afterwards again.
> 2)Chase brought up a good point, should we add some of the commonly 
> used components to the defaultpipeline?  (DrugNER, RelationExtractor, 
> TemplateFiller)?  Seems easier to get onboard I think.
> 
> --Pei
> 
> 
> > -Original Message-
> > From: Chen, Pei
> > Sent: Wednesday, March 19, 2014 5:58 PM
> > To: dev@ctakes.apache.org
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > Chase,
> > I am not sure why or the reasoning behind this, but it might explain 
> > why Severity is null for your DiseaseDisorderMention example:
> > Line 319 in TemplateFillerAnnotator.java:
> >
> > If I'm reading this logic correctly, it will only populate severity for
> > SignSymptomMention   Can't think of why not to populate it if it exists 
> > in
> > the BinaryTextRelations-
> > have you tried adding: ddm.setSeverity(degreeOfTextRelation); 
> > instead of logging the error ???
> >
> > if (eventMention instanceof
> > DiseaseDisorderMention) {
> > DiseaseDisorderMention ddm =
> > (DiseaseDisorderMention) eventMention;
> > logger.error("Need to implement attr
> for " + relation + " for
> > DiseaseDisorderMention");
> > } 

RE: getSeverity etc. for relation extractor

2014-03-21 Thread Masanz, James J.
Yes, if there is more than one severity or location relation for a given 
identified annotation, currently the template filler does just take the last 
severity and or last location.

I suggest not changing the type system to allow a list (FSArray), or at least 
holding off until we have a definite, well-defined need (from a user). 

I think instead, ideally, we would make the template filler smarter at picking 
which severity / which location  when there is more than one for the given 
identified annotation. Therefore I'd rather not make it a list now, when in the 
long run I think it should be a single value. And in the meantime if someone 
has a need, they can look through the relations.

Pei, I don't follow what you mean by your item B) below

-- James

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu] 
Sent: Thursday, March 20, 2014 2:03 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation? 
 
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others think?
--Pei

> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Thursday, March 20, 2014 2:50 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I saw the jira was assigned to me and had a few minutes so I implemented a
> fix and committed.
> It was more than just the one line.
> The name of the index in which the binary text relations has changed (now
> separate indexes instead of one for all binary text relations) so I had to
> change which index was searched.
> 
> -Original Message-
> From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
> Sent: Thursday, March 20, 2014 9:28 AM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Thanks for confirm James.  It seem like a bug...
> Chase,
> if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works for
> you, I can commit the changes in trunk.
> 
> Which also brings up some interesting points:
> 1) Should we populate IdentifiedAnnotation.severity() and bodylocationof()
> Directly in RelationExtractorAnnotator instead of the template filler?
> It would seem more intuitive and faster than iterating through the relations
> afterwards again.
> 2)Chase brought up a good point, should we add some of the commonly
> used components to the defaultpipeline?  (DrugNER, RelationExtractor,
> TemplateFiller)?  Seems easier to get onboard I think.
> 
> --Pei
> 
> 
> > -Original Message-
> > From: Chen, Pei
> > Sent: Wednesday, March 19, 2014 5:58 PM
> > To: dev@ctakes.apache.org
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > Chase,
> > I am not sure why or the reasoning behind this, but it might explain
> > why Severity is null for your DiseaseDisorderMention example:
> > Line 319 in TemplateFillerAnnotator.java:
> >
> > If I'm reading this logic correctly, it will only populate severity for
> > SignSymptomMention   Can't think of why not to populate it if it exists 
> > in
> > the BinaryTextRelations-
> > have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead
> > of logging the error ???
> >
> > if (eventMention instanceof
> > DiseaseDisorderMention) {
> > DiseaseDisorderMention ddm =
> > (DiseaseDisorderMention) eventMention;
> > logger.error("Need to implement attr
> for " + relation + " for
> > DiseaseDisorderMention");
> > } else if (eventMention instanceof
> > SignSymptomMention) {
> > SignSymptomMention ssm =
> > (SignSymptomMention) eventMention;
> >
> > ssm.setSeverity(degreeOfTextRelation);
> >
> > Would you mind opening a Jira attach a patch/test if it works for you?
> > -Pei
> >
> > > -Original Message-
> > > From: Chase Master [mailto:chasemast...@gmail.c

RE: getSeverity etc. for relation extractor

2014-03-20 Thread Chen, Pei
Awesome!
Thanks James...

On Sean's point about many-to-one relationships.  I think the current type 
system only supports 1 degree_of and severity_of for each IdentifiedAnnotation? 
 
Does the TemplateFiller component currently just take the last one in the list 
currently?
Should we modify the type system to support this in the future- something like 
the below?
A) Support many-to-one
B) Separate out getting the relations and getting the actual identified 
annotations.

One suggestion would be:
IdentifiedAnnotation.getBodyLocations(): FSArray
IdentifiedAnnotation.getBodyLocationRelations(): FSArray
IdentifiedAnnotation.getSeverity(): FSArray
IdentifiedAnnotation.getSeverityRelations(): FSArray

What do others think?
--Pei

> -Original Message-
> From: Masanz, James J. [mailto:masanz.ja...@mayo.edu]
> Sent: Thursday, March 20, 2014 2:50 PM
> To: 'dev@ctakes.apache.org'
> Subject: RE: getSeverity etc. for relation extractor
> 
> I saw the jira was assigned to me and had a few minutes so I implemented a
> fix and committed.
> It was more than just the one line.
> The name of the index in which the binary text relations has changed (now
> separate indexes instead of one for all binary text relations) so I had to
> change which index was searched.
> 
> -Original Message-
> From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu]
> Sent: Thursday, March 20, 2014 9:28 AM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Thanks for confirm James.  It seem like a bug...
> Chase,
> if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works for
> you, I can commit the changes in trunk.
> 
> Which also brings up some interesting points:
> 1) Should we populate IdentifiedAnnotation.severity() and bodylocationof()
> Directly in RelationExtractorAnnotator instead of the template filler?
> It would seem more intuitive and faster than iterating through the relations
> afterwards again.
> 2)Chase brought up a good point, should we add some of the commonly
> used components to the defaultpipeline?  (DrugNER, RelationExtractor,
> TemplateFiller)?  Seems easier to get onboard I think.
> 
> --Pei
> 
> 
> > -Original Message-----
> > From: Chen, Pei
> > Sent: Wednesday, March 19, 2014 5:58 PM
> > To: dev@ctakes.apache.org
> > Subject: RE: getSeverity etc. for relation extractor
> >
> > Chase,
> > I am not sure why or the reasoning behind this, but it might explain
> > why Severity is null for your DiseaseDisorderMention example:
> > Line 319 in TemplateFillerAnnotator.java:
> >
> > If I'm reading this logic correctly, it will only populate severity for
> > SignSymptomMention   Can't think of why not to populate it if it exists 
> > in
> > the BinaryTextRelations-
> > have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead
> > of logging the error ???
> >
> > if (eventMention instanceof
> > DiseaseDisorderMention) {
> > DiseaseDisorderMention ddm =
> > (DiseaseDisorderMention) eventMention;
> > logger.error("Need to implement attr
> for " + relation + " for
> > DiseaseDisorderMention");
> > } else if (eventMention instanceof
> > SignSymptomMention) {
> > SignSymptomMention ssm =
> > (SignSymptomMention) eventMention;
> >
> >     ssm.setSeverity(degreeOfTextRelation);
> >
> > Would you mind opening a Jira attach a patch/test if it works for you?
> > -Pei
> >
> > > -Original Message-
> > > From: Chase Master [mailto:chasemast...@gmail.com]
> > > Sent: Wednesday, March 19, 2014 4:09 PM
> > > To: dev@ctakes.apache.org
> > > Subject: Re: getSeverity etc. for relation extractor
> > >
> > > Thanks,
> > > I tried using the AggregateTemplateFiller.xml from the
> > > template-filler module, and I specified the relation extractor
> > > pipeline that I was using before from the relation-extractor project
> > > (there is also a different one in the template-filler project called
> > > "RelationExtractorAggregateWithoutOrangeBook").  However, I don't
> > > see a difference, the severity is still null.
> > >
> > > Just wondering - is there some reason that the TemplateFiller is not
> > > included by default?  It seems confusing that there are getters for
> > > properties that aren't set in general ...even when one runs the
> > > default clinic

RE: getSeverity etc. for relation extractor

2014-03-20 Thread Masanz, James J.
I saw the jira was assigned to me and had a few minutes so I implemented a fix 
and committed.
It was more than just the one line.
The name of the index in which the binary text relations has changed (now 
separate indexes instead of one for all binary text relations) so I had to 
change which index was searched.

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu] 
Sent: Thursday, March 20, 2014 9:28 AM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Thanks for confirm James.  It seem like a bug...
Chase,
if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works for you, 
I can commit the changes in trunk. 

Which also brings up some interesting points:
1) Should we populate IdentifiedAnnotation.severity() and bodylocationof() 
Directly in RelationExtractorAnnotator instead of the template filler?  
It would seem more intuitive and faster than iterating through the relations 
afterwards again.
2)Chase brought up a good point, should we add some of the commonly used 
components to the defaultpipeline?  (DrugNER, RelationExtractor, 
TemplateFiller)?  Seems easier to get onboard I think.

--Pei


> -Original Message-
> From: Chen, Pei
> Sent: Wednesday, March 19, 2014 5:58 PM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Chase,
> I am not sure why or the reasoning behind this, but it might explain why
> Severity is null for your DiseaseDisorderMention example:
> Line 319 in TemplateFillerAnnotator.java:
> 
> If I'm reading this logic correctly, it will only populate severity for
> SignSymptomMention   Can't think of why not to populate it if it exists in
> the BinaryTextRelations-
> have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead of
> logging the error ???
> 
>   if (eventMention instanceof
> DiseaseDisorderMention) {
>   DiseaseDisorderMention ddm =
> (DiseaseDisorderMention) eventMention;
>   logger.error("Need to implement attr
> for " + relation + " for DiseaseDisorderMention");
>   } else if (eventMention instanceof
> SignSymptomMention) {
>   SignSymptomMention ssm =
> (SignSymptomMention) eventMention;
> 
>   ssm.setSeverity(degreeOfTextRelation);
> 
> Would you mind opening a Jira attach a patch/test if it works for you?
> -Pei
> 
> > -Original Message-
> > From: Chase Master [mailto:chasemast...@gmail.com]
> > Sent: Wednesday, March 19, 2014 4:09 PM
> > To: dev@ctakes.apache.org
> > Subject: Re: getSeverity etc. for relation extractor
> >
> > Thanks,
> > I tried using the AggregateTemplateFiller.xml from the template-filler
> > module, and I specified the relation extractor pipeline that I was
> > using before from the relation-extractor project (there is also a
> > different one in the template-filler project called
> > "RelationExtractorAggregateWithoutOrangeBook").  However, I don't see
> > a difference, the severity is still null.
> >
> > Just wondering - is there some reason that the TemplateFiller is not
> > included by default?  It seems confusing that there are getters for
> > properties that aren't set in general ...even when one runs the
> > default clinical pipeline instead of the RelationExtractorAggregate,
> > these getters are there, but there are no relations.
> >
> >
> > Thanks
> > Chase
> >
> >
> > On Wed, Mar 19, 2014 at 1:04 PM, Chen, Pei
> > wrote:
> >
> > > If I remember correctly, I think those attributes were set in
> > > IdentifiedAnnotation via:
> > > ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.
> > > xm
> > > l
> > > One can look at the logic in:
> > > org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]
> > >
> > > Have you tried added that to the pipeline?
> > >
> > > [1]
> > > http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-filler/
> > > sr
> > > c/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnnot
> > > at
> > > or.java
> > >
> > > --Pei
> > >
> > > > -Original Message-
> > > > From: Chase Master [mailto:chasemast...@gmail.com]
> > > > Sent: Wednesday, March 19, 2014 1:56 PM
> > > > To: dev@ctakes.apache.org
> > > > Subject: getSeverity etc. for relation extractor
> > > >
> > > > Hi,
> > > >
> >

RE: getSeverity etc. for relation extractor

2014-03-20 Thread Finan, Sean
 > 1) Should we populate IdentifiedAnnotation.severity() and bodylocationof() 
 > Directly in RelationExtractorAnnotator instead of the template filler?  
  One minor issue might be the fact that multiple relations of the same type 
can (and most likely will be) created for a single Identified Annotation.  
Somehow a "best of" would need to be arrived upon for storage in the IA.

> 2)Chase brought up a good point, should we add some of the commonly used 
> components to the defaultpipeline?  (DrugNER, RelationExtractor, 
> TemplateFiller)? 
  One minor issue might be speed.  The longer a new user has to wait for 
results the less they will enjoy their first cTakes experience.  If a user 
doesn't know what they are getting and how to use it then the fruits of that 
additional runtime are wasted upon them.

I dislike clutter, but until it is easier to pick and choose components perhaps 
we could have an "ExpertPipeline" with a fully fleshed-out workflow.  It would 
be great if (instead of cut and paste) it referenced the default desc and then 
added the -more advanced- items to the end.  It is just a thought.

Sean

> -Original Message-
> From: Chen, Pei
> Sent: Wednesday, March 19, 2014 5:58 PM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Chase,
> I am not sure why or the reasoning behind this, but it might explain 
> why Severity is null for your DiseaseDisorderMention example:
> Line 319 in TemplateFillerAnnotator.java:
> 
> If I'm reading this logic correctly, it will only populate severity for
> SignSymptomMention   Can't think of why not to populate it if it exists in
> the BinaryTextRelations-
> have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead 
> of logging the error ???
> 
>   if (eventMention instanceof
> DiseaseDisorderMention) {
>   DiseaseDisorderMention ddm =
> (DiseaseDisorderMention) eventMention;
>   logger.error("Need to implement attr 
> for " + relation + " for 
> DiseaseDisorderMention");
>   } else if (eventMention instanceof
> SignSymptomMention) {
>   SignSymptomMention ssm =
> (SignSymptomMention) eventMention;
> 
>   ssm.setSeverity(degreeOfTextRelation);
> 
> Would you mind opening a Jira attach a patch/test if it works for you?
> -Pei
> 
> > -Original Message-----
> > From: Chase Master [mailto:chasemast...@gmail.com]
> > Sent: Wednesday, March 19, 2014 4:09 PM
> > To: dev@ctakes.apache.org
> > Subject: Re: getSeverity etc. for relation extractor
> >
> > Thanks,
> > I tried using the AggregateTemplateFiller.xml from the 
> > template-filler module, and I specified the relation extractor 
> > pipeline that I was using before from the relation-extractor project 
> > (there is also a different one in the template-filler project called 
> > "RelationExtractorAggregateWithoutOrangeBook").  However, I don't 
> > see a difference, the severity is still null.
> >
> > Just wondering - is there some reason that the TemplateFiller is not 
> > included by default?  It seems confusing that there are getters for 
> > properties that aren't set in general ...even when one runs the 
> > default clinical pipeline instead of the RelationExtractorAggregate, 
> > these getters are there, but there are no relations.
> >
> >
> > Thanks
> > Chase
> >
> >
> > On Wed, Mar 19, 2014 at 1:04 PM, Chen, Pei
> > wrote:
> >
> > > If I remember correctly, I think those attributes were set in 
> > > IdentifiedAnnotation via:
> > > ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.
> > > xm
> > > l
> > > One can look at the logic in:
> > > org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]
> > >
> > > Have you tried added that to the pipeline?
> > >
> > > [1]
> > > http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-fille
> > > r/
> > > sr
> > > c/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnn
> > > ot
> > > at
> > > or.java
> > >
> > > --Pei
> > >
> > > > -Original Message-
> > > > From: Chase Master [mailto:chasemast...@gmail.com]
> > > > Sent: Wednesday, March 19, 2014 1:56 PM
> > > > To: dev@ctakes.apache.org
> > > > Subject: getSeverity etc. for relation extractor
> > > >
> > 

RE: getSeverity etc. for relation extractor

2014-03-20 Thread Chen, Pei
Thanks for confirm James.  It seem like a bug...
Chase,
if you confirm if adding ddm.setSeverity(degreeOfTextRelation);  works for you, 
I can commit the changes in trunk. 

Which also brings up some interesting points:
1) Should we populate IdentifiedAnnotation.severity() and bodylocationof() 
Directly in RelationExtractorAnnotator instead of the template filler?  
It would seem more intuitive and faster than iterating through the relations 
afterwards again.
2)Chase brought up a good point, should we add some of the commonly used 
components to the defaultpipeline?  (DrugNER, RelationExtractor, 
TemplateFiller)?  Seems easier to get onboard I think.

--Pei


> -Original Message-
> From: Chen, Pei
> Sent: Wednesday, March 19, 2014 5:58 PM
> To: dev@ctakes.apache.org
> Subject: RE: getSeverity etc. for relation extractor
> 
> Chase,
> I am not sure why or the reasoning behind this, but it might explain why
> Severity is null for your DiseaseDisorderMention example:
> Line 319 in TemplateFillerAnnotator.java:
> 
> If I'm reading this logic correctly, it will only populate severity for
> SignSymptomMention   Can't think of why not to populate it if it exists in
> the BinaryTextRelations-
> have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead of
> logging the error ???
> 
>   if (eventMention instanceof
> DiseaseDisorderMention) {
>   DiseaseDisorderMention ddm =
> (DiseaseDisorderMention) eventMention;
>   logger.error("Need to implement attr
> for " + relation + " for DiseaseDisorderMention");
>   } else if (eventMention instanceof
> SignSymptomMention) {
>   SignSymptomMention ssm =
> (SignSymptomMention) eventMention;
> 
>   ssm.setSeverity(degreeOfTextRelation);
> 
> Would you mind opening a Jira attach a patch/test if it works for you?
> -Pei
> 
> > -Original Message-
> > From: Chase Master [mailto:chasemast...@gmail.com]
> > Sent: Wednesday, March 19, 2014 4:09 PM
> > To: dev@ctakes.apache.org
> > Subject: Re: getSeverity etc. for relation extractor
> >
> > Thanks,
> > I tried using the AggregateTemplateFiller.xml from the template-filler
> > module, and I specified the relation extractor pipeline that I was
> > using before from the relation-extractor project (there is also a
> > different one in the template-filler project called
> > "RelationExtractorAggregateWithoutOrangeBook").  However, I don't see
> > a difference, the severity is still null.
> >
> > Just wondering - is there some reason that the TemplateFiller is not
> > included by default?  It seems confusing that there are getters for
> > properties that aren't set in general ...even when one runs the
> > default clinical pipeline instead of the RelationExtractorAggregate,
> > these getters are there, but there are no relations.
> >
> >
> > Thanks
> > Chase
> >
> >
> > On Wed, Mar 19, 2014 at 1:04 PM, Chen, Pei
> > wrote:
> >
> > > If I remember correctly, I think those attributes were set in
> > > IdentifiedAnnotation via:
> > > ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.
> > > xm
> > > l
> > > One can look at the logic in:
> > > org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]
> > >
> > > Have you tried added that to the pipeline?
> > >
> > > [1]
> > > http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-filler/
> > > sr
> > > c/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnnot
> > > at
> > > or.java
> > >
> > > --Pei
> > >
> > > > -Original Message-
> > > > From: Chase Master [mailto:chasemast...@gmail.com]
> > > > Sent: Wednesday, March 19, 2014 1:56 PM
> > > > To: dev@ctakes.apache.org
> > > > Subject: getSeverity etc. for relation extractor
> > > >
> > > > Hi,
> > > >
> > > > I am trying to output the relations associated with
> > > DiseaseDisorderMentions
> > > > and other types.  But I want to start by iterating over
> > > > DiseaseDisorderMention, not BinaryTextRelations since I want to be
> > > > sure
> > > to
> > > > find them all, even if they have no associated relation.
> > > >
> > > > I always get null when using any of the getters like
> > > > "getSeverity()".  I
> > > am
> > > > using the example text "He had a slight fracture in the proximal
> > > > right
> > > fibula".
> > > > When I iterate over BinaryTextRelations, I see the following valid
> > > values:
> > > > BinaryTextRelation slightFracture = iterator.next();
> > > > slightFracture.getArg1().getArgument().getCoveredText() is "fracture"
> > > > slightFracture.getArg2().getArgument().getCoveredText() is "slight".
> > > > However, for the "fracture" DiseaseDisorderMention, getSeverity()
> > > > is
> > > null.
> > > >  If it wasn't, I would then grab
> > > > disease.getSeverity().getArg1().getArgument().getCoveredText(), or
> > > > for Arg2.
> > > >
> > > > Thanks,
> > > > Chase
> > >


RE: getSeverity etc. for relation extractor

2014-03-19 Thread Masanz, James J.
Offhand, I don't recall why it ended up the way it did.

I see a comment at line 303 indicating that at one point at least severity was 
expected for DiseaseDisorder
// degree_of is aka severity, which applies to 
SignSymptomMention/SignSymptom and DiseaseDisorder

Not sure if there was a change after that comment was written, or if it is 
simply a bug that it wasn't implemented on line 321

-Original Message-
From: Chen, Pei [mailto:pei.c...@childrens.harvard.edu] 
Sent: Wednesday, March 19, 2014 4:58 PM
To: dev@ctakes.apache.org
Subject: RE: getSeverity etc. for relation extractor

Chase,
I am not sure why or the reasoning behind this, but it might explain why 
Severity is null for your DiseaseDisorderMention example:
Line 319 in TemplateFillerAnnotator.java:

If I'm reading this logic correctly, it will only populate severity for 
SignSymptomMention   Can't think of why not to populate it if it exists in 
the BinaryTextRelations- 
have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead of 
logging the error ???

if (eventMention instanceof 
DiseaseDisorderMention) {
DiseaseDisorderMention ddm = 
(DiseaseDisorderMention) eventMention;
logger.error("Need to implement attr 
for " + relation + " for DiseaseDisorderMention"); 
} else if (eventMention instanceof 
SignSymptomMention) {
SignSymptomMention ssm = 
(SignSymptomMention) eventMention;
ssm.setSeverity(degreeOfTextRelation);

Would you mind opening a Jira attach a patch/test if it works for you?
-Pei

> -Original Message-
> From: Chase Master [mailto:chasemast...@gmail.com]
> Sent: Wednesday, March 19, 2014 4:09 PM
> To: dev@ctakes.apache.org
> Subject: Re: getSeverity etc. for relation extractor
> 
> Thanks,
> I tried using the AggregateTemplateFiller.xml from the template-filler
> module, and I specified the relation extractor pipeline that I was using 
> before
> from the relation-extractor project (there is also a different one in the
> template-filler project called
> "RelationExtractorAggregateWithoutOrangeBook").  However, I don't see a
> difference, the severity is still null.
> 
> Just wondering - is there some reason that the TemplateFiller is not included
> by default?  It seems confusing that there are getters for properties that
> aren't set in general ...even when one runs the default clinical pipeline
> instead of the RelationExtractorAggregate, these getters are there, but there
> are no relations.
> 
> 
> Thanks
> Chase
> 
> 
> On Wed, Mar 19, 2014 at 1:04 PM, Chen, Pei
> wrote:
> 
> > If I remember correctly, I think those attributes were set in
> > IdentifiedAnnotation via:
> > ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.xm
> > l
> > One can look at the logic in:
> > org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]
> >
> > Have you tried added that to the pipeline?
> >
> > [1]
> > http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-filler/sr
> > c/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnnotat
> > or.java
> >
> > --Pei
> >
> > > -Original Message-
> > > From: Chase Master [mailto:chasemast...@gmail.com]
> > > Sent: Wednesday, March 19, 2014 1:56 PM
> > > To: dev@ctakes.apache.org
> > > Subject: getSeverity etc. for relation extractor
> > >
> > > Hi,
> > >
> > > I am trying to output the relations associated with
> > DiseaseDisorderMentions
> > > and other types.  But I want to start by iterating over
> > > DiseaseDisorderMention, not BinaryTextRelations since I want to be
> > > sure
> > to
> > > find them all, even if they have no associated relation.
> > >
> > > I always get null when using any of the getters like
> > > "getSeverity()".  I
> > am
> > > using the example text "He had a slight fracture in the proximal
> > > right
> > fibula".
> > > When I iterate over BinaryTextRelations, I see the following valid
> > values:
> > > BinaryTextRelation slightFracture = iterator.next();
> > > slightFracture.getArg1().getArgument().getCoveredText() is "fracture"
> > > slightFracture.getArg2().getArgument().getCoveredText() is "slight".
> > > However, for the "fracture" DiseaseDisorderMention, getSeverity() is
> > null.
> > >  If it wasn't, I would then grab
> > > disease.getSeverity().getArg1().getArgument().getCoveredText(), or
> > > for Arg2.
> > >
> > > Thanks,
> > > Chase
> >


RE: getSeverity etc. for relation extractor

2014-03-19 Thread Chen, Pei
Chase,
I am not sure why or the reasoning behind this, but it might explain why 
Severity is null for your DiseaseDisorderMention example:
Line 319 in TemplateFillerAnnotator.java:

If I'm reading this logic correctly, it will only populate severity for 
SignSymptomMention   Can't think of why not to populate it if it exists in 
the BinaryTextRelations- 
have you tried adding: ddm.setSeverity(degreeOfTextRelation); instead of 
logging the error ???

if (eventMention instanceof 
DiseaseDisorderMention) {
DiseaseDisorderMention ddm = 
(DiseaseDisorderMention) eventMention;
logger.error("Need to implement attr 
for " + relation + " for DiseaseDisorderMention"); 
} else if (eventMention instanceof 
SignSymptomMention) {
SignSymptomMention ssm = 
(SignSymptomMention) eventMention;
ssm.setSeverity(degreeOfTextRelation);

Would you mind opening a Jira attach a patch/test if it works for you?
-Pei

> -Original Message-
> From: Chase Master [mailto:chasemast...@gmail.com]
> Sent: Wednesday, March 19, 2014 4:09 PM
> To: dev@ctakes.apache.org
> Subject: Re: getSeverity etc. for relation extractor
> 
> Thanks,
> I tried using the AggregateTemplateFiller.xml from the template-filler
> module, and I specified the relation extractor pipeline that I was using 
> before
> from the relation-extractor project (there is also a different one in the
> template-filler project called
> "RelationExtractorAggregateWithoutOrangeBook").  However, I don't see a
> difference, the severity is still null.
> 
> Just wondering - is there some reason that the TemplateFiller is not included
> by default?  It seems confusing that there are getters for properties that
> aren't set in general ...even when one runs the default clinical pipeline
> instead of the RelationExtractorAggregate, these getters are there, but there
> are no relations.
> 
> 
> Thanks
> Chase
> 
> 
> On Wed, Mar 19, 2014 at 1:04 PM, Chen, Pei
> wrote:
> 
> > If I remember correctly, I think those attributes were set in
> > IdentifiedAnnotation via:
> > ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.xm
> > l
> > One can look at the logic in:
> > org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]
> >
> > Have you tried added that to the pipeline?
> >
> > [1]
> > http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-filler/sr
> > c/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnnotat
> > or.java
> >
> > --Pei
> >
> > > -Original Message-
> > > From: Chase Master [mailto:chasemast...@gmail.com]
> > > Sent: Wednesday, March 19, 2014 1:56 PM
> > > To: dev@ctakes.apache.org
> > > Subject: getSeverity etc. for relation extractor
> > >
> > > Hi,
> > >
> > > I am trying to output the relations associated with
> > DiseaseDisorderMentions
> > > and other types.  But I want to start by iterating over
> > > DiseaseDisorderMention, not BinaryTextRelations since I want to be
> > > sure
> > to
> > > find them all, even if they have no associated relation.
> > >
> > > I always get null when using any of the getters like
> > > "getSeverity()".  I
> > am
> > > using the example text "He had a slight fracture in the proximal
> > > right
> > fibula".
> > > When I iterate over BinaryTextRelations, I see the following valid
> > values:
> > > BinaryTextRelation slightFracture = iterator.next();
> > > slightFracture.getArg1().getArgument().getCoveredText() is "fracture"
> > > slightFracture.getArg2().getArgument().getCoveredText() is "slight".
> > > However, for the "fracture" DiseaseDisorderMention, getSeverity() is
> > null.
> > >  If it wasn't, I would then grab
> > > disease.getSeverity().getArg1().getArgument().getCoveredText(), or
> > > for Arg2.
> > >
> > > Thanks,
> > > Chase
> >


Re: getSeverity etc. for relation extractor

2014-03-19 Thread Chase Master
Thanks,
I tried using the AggregateTemplateFiller.xml from the template-filler
module, and I specified the relation extractor pipeline that I was using
before from the relation-extractor project (there is also a different one
in the template-filler project called
"RelationExtractorAggregateWithoutOrangeBook").  However, I don't see a
difference, the severity is still null.

Just wondering - is there some reason that the TemplateFiller is not
included by default?  It seems confusing that there are getters for
properties that aren't set in general ...even when one runs the default
clinical pipeline instead of the RelationExtractorAggregate, these getters
are there, but there are no relations.


Thanks
Chase


On Wed, Mar 19, 2014 at 1:04 PM, Chen, Pei
wrote:

> If I remember correctly, I think those attributes were set in
> IdentifiedAnnotation via:
> ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.xml
> One can look at the logic in:
> org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]
>
> Have you tried added that to the pipeline?
>
> [1]
> http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-filler/src/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnnotator.java
>
> --Pei
>
> > -Original Message-
> > From: Chase Master [mailto:chasemast...@gmail.com]
> > Sent: Wednesday, March 19, 2014 1:56 PM
> > To: dev@ctakes.apache.org
> > Subject: getSeverity etc. for relation extractor
> >
> > Hi,
> >
> > I am trying to output the relations associated with
> DiseaseDisorderMentions
> > and other types.  But I want to start by iterating over
> > DiseaseDisorderMention, not BinaryTextRelations since I want to be sure
> to
> > find them all, even if they have no associated relation.
> >
> > I always get null when using any of the getters like "getSeverity()".  I
> am
> > using the example text "He had a slight fracture in the proximal right
> fibula".
> > When I iterate over BinaryTextRelations, I see the following valid
> values:
> > BinaryTextRelation slightFracture = iterator.next();
> > slightFracture.getArg1().getArgument().getCoveredText() is "fracture"
> > slightFracture.getArg2().getArgument().getCoveredText() is "slight".
> > However, for the "fracture" DiseaseDisorderMention, getSeverity() is
> null.
> >  If it wasn't, I would then grab
> > disease.getSeverity().getArg1().getArgument().getCoveredText(), or for
> > Arg2.
> >
> > Thanks,
> > Chase
>


RE: getSeverity etc. for relation extractor

2014-03-19 Thread Chen, Pei
If I remember correctly, I think those attributes were set in 
IdentifiedAnnotation via:
ctakes-template-filler/desc/analysis_engine/TemplateFillerAnnotator.xml
One can look at the logic in:
org.apache.ctakes.template.filler.ae.TemplateFillerAnnotator [1]

Have you tried added that to the pipeline?

[1] 
http://svn.apache.org/repos/asf/ctakes/trunk/ctakes-template-filler/src/main/java/org/apache/ctakes/template/filler/ae/TemplateFillerAnnotator.java

--Pei

> -Original Message-
> From: Chase Master [mailto:chasemast...@gmail.com]
> Sent: Wednesday, March 19, 2014 1:56 PM
> To: dev@ctakes.apache.org
> Subject: getSeverity etc. for relation extractor
> 
> Hi,
> 
> I am trying to output the relations associated with DiseaseDisorderMentions
> and other types.  But I want to start by iterating over
> DiseaseDisorderMention, not BinaryTextRelations since I want to be sure to
> find them all, even if they have no associated relation.
> 
> I always get null when using any of the getters like "getSeverity()".  I am
> using the example text "He had a slight fracture in the proximal right 
> fibula".
> When I iterate over BinaryTextRelations, I see the following valid values:
> BinaryTextRelation slightFracture = iterator.next();
> slightFracture.getArg1().getArgument().getCoveredText() is "fracture"
> slightFracture.getArg2().getArgument().getCoveredText() is "slight".
> However, for the "fracture" DiseaseDisorderMention, getSeverity() is null.
>  If it wasn't, I would then grab
> disease.getSeverity().getArg1().getArgument().getCoveredText(), or for
> Arg2.
> 
> Thanks,
> Chase