This extension to the CAS interface provides APIs to enable
tracking of CAS operations by component and APIs to access
the logged information.
When journaling is enabled, the following information related to CAS
operations will be logged:
1) Calling sequence of component As.
2) For each AE, a list of newly created feature structures (FSs) and a list of changes to pre-existing FSs.
3) For each AE, a list of added, deleted, and reindexed FSs in each index repository.
The Journal class obtained from the CAS provides accessed to the above information.
Although this initial proposal is based on the requirements for provenance tracking
as described here, the APIs are intended to be general and support any application that wants
to visualize or track CAS operations.
The proposed extension to the CAS interface and the new Journal interface are shown below:
Issues that needs discussion:
1) use of FS ids as a handle to FeatureStructure objects.
The proposed APIs return arrays of FS ids. Currently there are only LowLevelCAS APIs to
get a FeatureStructure object from a FS id.
2) should Journaling be enabled via a global setting ?