Hi James, I've now re-read your original emails :-) and have some more thoughts about the CasAnnotationViewer. Apologies for longish post.
The CasAnnotationViewer is one of 3 (?) we have in the tooling for UIMA. The other two: One is the CVD - this is less "Annotation" oriented, and more generally "Feature Structure" oriented (not all Feature Structures are subtypes of Annotation). The other is the one that comes with the Cas Editor (and is also used by Ruta, I believe). I haven't crawled through these, so I would welcome others who have to comment on the differences. ----------- The CasAnnotationViewer does a Categorization of Feature Structures (FSs) when showing Annotations. It assigns each annotation a category, which in turn has name and a color, and an "enablement" - the checkbox. The checkbox acts like a filter, selecting a subset of all the categories to show. The specification of these can be also configured by reading a file (see the tools documentation section on the Edit Style Map functions: http://uima.apache.org/d/uimaj-2.4.2/tools.html#ugr.tools.doc_analyzer.configuring; this can specify if category should be hidden, and if it should initially be "checked". The current viewer is designed to be configured by its caller via an API, as well as by the GUI it presents. It supports 3 (!) kinds of categorization: * by type, (the default) * by == begin/end feature values, (the built-in default 2nd categorization) * and by arbitrary (user-supplied code) algorithm. These last 2 are the "entity" display which is by default turned off (but callers can turn it via an API). -------- Your extension wants to do a categorization, based on equal values for a specific feature of one specified type. To make this work, the new categorization needs 2 parameters: the type and the feature. These could, in theory, be provided for by either an API and/or by a GUI. I suspect (but I haven't actually tried it) that if you were to write a small driving application that reads in a CAS, and then calls the CasAnnotationViewer, configuring it to do "Entity" displays, and setting the EntityResolver to be to categorize on equal values of a particular types for a particular feature, that the existing implementation would already do what you want. Of course, you might want to have this parameterized categorization algorithm be also configurable by a GUI at run time. You could use a dialog in the calling class that put up a selection window for picking the type and feature from among the available types / features of the CAS's type system. If the goal is to have existing tooling (which already configures and calls the CasAnnotationViewer) have this new capability, then another kind of design might be one which modified the existing CasAnnotationViewer by a) adding a GUI action to bring up a new window for picking among alternative built-in (parameterized) Categorizers; b) adding your new categorizer c) adding a sub-dialog to allow picking a type and then a feature of that type, for configuring your categorizer. This would then just use the existing custom entity display mode. This approach would also allow making the existing alternative categorizer (which categorizes FSs together which have the same begin and end values), visible. ---------- This approach would also suggest a direction for adding additional kinds of (parameterizable) categorizers, in the future. WDYT? -Marshall On 10/24/2013 4:52 PM, James Zhu (JIRA) wrote: > James Zhu created UIMA-3374: > ------------------------------- > > Summary: A new mode for annotation view based on feature values > Key: UIMA-3374 > URL: https://issues.apache.org/jira/browse/UIMA-3374 > Project: UIMA > Issue Type: Improvement > Components: InternalTools > Affects Versions: 2.5.0SDK > Reporter: James Zhu > Priority: Minor > > > I'd like to propose adding a new "view mode" in the UIMA Annotation Viewer so > that user can pick a specific type of annotations, and then pick a specific > feature, and pick specific feature values available so user can see a subset > of those annotation objects that have the specific feature values. > > > > -- > This message was sent by Atlassian JIRA > (v6.1#6144) >
