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]