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:[email protected]]
Sent: Wednesday, March 19, 2014 4:58 PM
To: [email protected]
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:[email protected]]
> Sent: Wednesday, March 19, 2014 4:09 PM
> To: [email protected]
> 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
> <[email protected]>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:[email protected]]
> > > Sent: Wednesday, March 19, 2014 1:56 PM
> > > To: [email protected]
> > > 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
> >