At some point I had started a project to create an XSLT style of CAS transformer, to do all of the annotation based transformations (rather than data oriented stuff that looks at the text itself). I can look and see what shape that is in but I haven't had much luck in getting code donations past management/legal in the past. At any rate this would in general be a very useful project. I also would like to see Marshall's suggestion of having a feature-name alias mapping be part of the framework itself, somewhat similar to the Sofa Name Mapping capability that is already there.
-----Original Message----- From: Michael Baessler [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 13, 2008 11:09 AM To: [email protected] Subject: Annotation Mapping Annotator Is there some interest/need in the UIMA community to have an annotation mapping annotator? I think some of you might know the issue that different UIMA components work on different annotations and type systems. A mapping annotator component could be used to translate the annotations between these different requirements. E.g. we have a tokenizer component at the beginning of the analysis flow that produces example.Token annotations with a POS feature set. Later in the flow have a component that needs that information, but expects an example.Noun annotation. Unfortunately there is no way to configure both components to produce or read different annotation types, so in that case we need a mapping. Tokenizer creates: example.Token (2,8) POS = NN Mapping annotator translates this to: example.Noun (2,8) posTag = NN If there is a need for such a component we can reuse some of the code developed for the UIMA SimpleServer. The SimpleServer has a mapping syntax with additional filtering as shown below. The mapping for the example above looks like: <type name="example.Token" outputTag="example.Noun"> <filters> <filter featurePath="POS" operator="=" value="NN" /> </filters> <outputs> <output featurePath="pos" outputAttribute="posTag"/> </outputs> </type> Any feedback/comments for such a component? Are there any implementations available? -- Michael
