You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@jena.apache.org by GitBox <gi...@apache.org> on 2022/09/28 13:05:51 UTC

[GitHub] [jena] Aklakan commented on issue #1557: Remove FROM (NAMED) handling from Fuseki

Aklakan commented on issue #1557:
URL: https://github.com/apache/jena/issues/1557#issuecomment-1260883788

   > I don't see why you want to intercept the query - why send the wrong query in the first place?
   
   ### Performance
   
   The performance degradation introduced by using FROM clauses on our large datasets varies from "noticeably slower" via "unbearably slow" to "doesn't work anymore". For example, the aforementioned counting of triples no longer returned results.
   
   It's a certainly an ugly tradeoff  - but between "strictly standard conforming result set but unbearably slow" and "usually same result set (unless there are duplicates in the union'd graphs) in a reasonable amount of time" the latter is the practically relevant one our partners want to see.
   
   ### Upcoming Use Case: Graph Groups
   
   Furthermore, a general requirement we now have in one of our projects is to allow queries need to be able to refer to
   "virtual" graph names in the FROM clause which can be transparently remapped to the physical ones.
   This is essentially Virtuoso's graph groups where FROM (NAMED) clauses can
   be "macro expanded"; e.g. FROM <x> is conceptually turned into `FROM <a> FROM <b> ...`.
   
   It is very easy to implement these kind features on ARQ level. All that would be needed is a way to pass the original dataset graph and dataset descriptions from Fuseki down to ARQ.
   
   Of course things would have to wired up in more sophisticated ways with Fuseki if one wanted to add user-sensitive rules. E.g. when authenticated as user X then graph G maps to (A, B) and as user Y graph G maps to C. But that's not (yet) what we need.
   
   > DynamicDataset work looks reversible.
   
   The wrapped original dataset is not accessible (the "projected" attribute) :( (unless using brittle reflection).
   I would also be fine if unwrapping the orginal Dataset and DatasetDescription via DynamicDatasetGraph was possible.
   
   ```java
   public static class DynamicDatasetGraph extends DatasetGraphReadOnly implements DatasetGraphWrapperView {
       private final DatasetGraph projected;
   
       public DynamicDatasetGraph(DatasetGraph viewDSG, DatasetGraph baseDSG) {
           super(viewDSG, baseDSG.getContext().copy());
           this.projected = baseDSG;
       }
   }
   
   ```
   


-- 
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: issues-unsubscribe@jena.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@jena.apache.org
For additional commands, e-mail: issues-help@jena.apache.org