+1 I have to agree that this is a nice simplification of the jena complexity. It would be nice to know why they were created in the first place, just to ensure that those issues are accounted for. However, I don't see any reason not to do this and several reasons to proceed.
Claude On Mon, Sep 3, 2012 at 6:33 PM, Andy Seaborne <[email protected]> wrote: > As part of wanting to tidy up and reduce the "core" of Jena, I'd like to > propose we > > Remove BulkUpdateHandler interface > Migrate it's few useful operation to Graph. > > Start to provide reification with "standard" only. > graph.QueryHandler only used to support reification. > > > == BulkUpdateHandler > > The two implementations I know of are > > SimpleBulkUpdateHandler > UpdateHandlerSDB > > A few of it's operations are useful but most turn into nothing but loops > to call add(Triple)/delete(Triple). > > Event handling details each operation kind but, as far as I can see, this > becomes individual calls to an "addedStatement"/"**removedStatement" at > the Model level i.e. the different between adding by array or list or > iterator gets lost. > > The useful operations are: > add(Graph) > delete(Graph) > removeAll() > remove(s,p,o) > > and the slightly bizarre: > > add(Graph, withReifications) > delete(Graph, withReifications) > > (see below about reification) > > and the less useful (because they don't relate to the way the storage > might properly batch changes - the provider shouldn't decide the batch > boundaries) which turn into add(Triple)/delete(Triple) > > add(Triple []) > add( List<Triple>) > add( Iterator<Triple>) > delete(Triple []) > delete( List<Triple>) > delete( Iterator<Triple>) > > The only calls to these "add" operations are from ARP which batches it's > changes into units of 1000, but not a whole parser run. As the > SimpleBulkUpdate handler turns these into single calls, nothing gained. > > My proposal is that the useful operations are moved to Graph, the code for > the withReifications forms migrate to the only callers in ModelCom. > > UpdateHandlerSDB: > > This only uses the UpdateHandler interface to wrap the calls in > start/finish bulk update to implicitly increase the scope of bulk updates. > But it isn't > > == Reification > > The intent is to only support the default standard eventually. > > Standard can be provided by code, with no retained state (partial > reificiations). TDB and SDB do not support anything except "standard". > > This leads to .... > > (graph.)QueryHandler: > It's main use is with reification. I think we can remove it when > reification is replaced by a straight code implications. > > Andy > > See also JENA-189 > -- I like: Like Like - The likeliest place on the web<http://like-like.xenei.com> Identity: https://www.identify.nu/[email protected] LinkedIn: http://www.linkedin.com/in/claudewarren
