Re: getSeverity etc. for relation extractor
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
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
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
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
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
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
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
> 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
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
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
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
> 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
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
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
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
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
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