Aklakan commented on PR #3184:
URL: https://github.com/apache/jena/pull/3184#issuecomment-3296893725

   DatasetGraph can play a dual role:
   
   * Domain API
   * Endpoint (something that can be connected to)
   
   In `jena-rdfconnection`, with `RDFLink.connect(dsg)` there exists already an 
API that could be extended to handle accessor indirection: `connect()` could 
use a registry of `Function<DatesetGraph, RDFLink>` linkProviders to establish 
an appropriate link to the dataset graph.
   
   The same goes for `QueryExec.dataset()` and `UpdateExec.dataset()` - so 
these methods could return a Query/UpdateExecBuilder based on a registry of 
providers. But instead of having 2 additional ARQ-level provider registries, I 
think they should rely on the RDFLink-level one.
   
   I am not too fond of the proposed dispatcher/interception system because it 
only intercepts query/update execution but not on the connection process 
itself. So I am indeed thinking about moving the interception to a higher level.
   
   The main aspects I am pondering over are:
   * RDFLink is in `jena-connection` - links so far don't exist on ARQ level.
   * For the sake of tracking update / query executions, a simple 
"Query/ExecPostProcessor" registry with conceptually a list of 
`Function<QueryExec, QueryExec>`would be sufficient. `{Query, 
Update}ExecBuilder{Dataset, HTTP}` could natively support a post processor 
registry - no interceptors needed.
   * I realized that for transaction-capable dataset, Fuseki processes updates 
in a streaming way via an `UpdateSink`. This is pretty cool, but it currently 
goes directly to the DatasetGraph API and thus bypasses `UpdateExecBuilder`, 
does not even create an `UpdateExec`, ad thus cannot yet be tracked. I think 
this streaming API needs to be added to the `UpdateExecBuilder`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to