Philip Ogren wrote:
Is there any simple way to ask for the token 3 to the left of my current token? I can't find anything that is built into the default annotation index, and so I have defined an index for this in the descriptor file. In order to do this I define a feature in my token type that keeps track of the index of each token and create an FSIndex on that feature. I can then use the FSIndex as follows:

FSIndex fsIndex = jCas.getFSIndexRepository().getIndex("my.token.place.index");

       MyToken targetAnnotation = new MyToken(jCas);

targetAnnotation.setIndex(targetIndex); //target index is the index of the token I want to find

       return fsIndex.find(targetAnnotation);

Does this make sense? It works - but I just want to make sure that I am not creating extra work for myself. I actually have several types that I want to be able to access this way and so I've created a super-type that has the 'index' feature. This allows me to create a set of utility methods that I can use for retrieving e.g. tokens, sentences, constituents, etc. at a specific index or relative to other annotations of the same type. The only challenge is making sure I retrieve (and manage) the appropriate index when one of these methods is called.

Any advice here is appreciated.

Thanks,
Philip

This approach is fine, if you need that kind of functionality.  I've
seen it used elsewhere.

--Thilo

Reply via email to