I can definitely take a look, but Aaron would also be a good person if its mostly using Accumulo backed Rya. You're touching core Rya classes so the more eyes the better!
On Tue, Dec 4, 2018 at 10:14 AM Boris Pelakh <[email protected]> wrote: > Thanks, Puja, that's very helpful. I am making the changes in a forked > repo, would I assign pull requests to you once I am finished? > > Boris Pelakh > Ontologist, Developer, Software Architect > [email protected] > +1-321-243-3804 > > > -----Original Message----- > From: Puja Valiyil <[email protected]> > Sent: Tuesday, December 4, 2018 10:12 AM > To: [email protected] > Subject: Re: Dataset not applied to queries > > Hi Boris, > The execution of the query plan is done by the ParallelEvaluationStrategy: > > https://github.com/apache/incubator-rya/blob/master/sail/src/main/java/org/apache/rya/rdftriplestore/evaluation/ParallelEvaluationStrategyImpl.java > > It looks like whoever did the rdf4j upgrade updated that class to take the > dataset object in its constructor, but it doesn't seem to be used anywhere > in query evaluation. That would be the class to modify, but I'm still not > clear on what the changes would look like since I'm not familiar with what > the contract is supposed to be. > > > > On Tue, Dec 4, 2018 at 9:45 AM Boris Pelakh <[email protected] > > > wrote: > > > So, a /sparql?query=SELECT...WHERE...&default-graph-uri=my-named-graph > > is logically equivalent to > > > > SELECT ... > > FROM <my-named-graph> > > WHERE ... > > > > (overriding whatever FROM/FROM NAMED clauses actually specified in the > > query) I looked at > > org.apache.rya.rdftriplestore.RdfCloudTripleStoreConnection.evaluateIn > > ternal(), and the dataset containing the overriding graph names is > > passed in, but does not seem to be honored, i.e if I have the > > following data: > > > > ns:g1 { ns:p1 ns:pred ns:o1 } > > ns:g2 { ns:p2 ns:pred ns:o2 } > > > > and I execute 'SELECT COUNT(?s) where { ?s ns:pred ?o }' with > > default-graph-uri set to ns:g1, I expect to get 1, but I get 2. > > > > I am assuming that there is someplace where the TupleExpr passed to > > evaluateInternal gets transformed into a scan pattern for Accumulo, > > after the right index (spo/ops/pso) is identified. If I remember > > correctly, S/P/O is used the the row ID, and the graph is the column > > name (or family?). So the dataset should modify the scan filter if > applied correctly. > > > > Boris Pelakh > > Ontologist, Developer, Software Architect > > [email protected] > > +1-321-243-3804 > > > > > > -----Original Message----- > > From: Puja Valiyil <[email protected]> > > Sent: Tuesday, December 4, 2018 9:31 AM > > To: [email protected] > > Subject: Re: Dataset not applied to queries > > > > Hi Boris, > > Unfortunately I'm not very familiar with that method -- can you > > provide some more details into exactly what its supposed to do? > > All of the connectors for implementing the sail api are in the > > rya.sail, and the main classes to look at are RdfCloudTripleStore, > > RyaSailRepository, and RdfCloudTripleStoreConnection. All of these > > classes all extend abstract implementations SAIL provides out of the > > box, so typically the way you extend them to do more stuff is to look > > at the Sail implementation and customize it for Rya's data structures. > > If you need any help or want to bounce any implementation ideas off of > > anyone, please send out an email over the dev list. Just let us know > > how we can help! > > Thanks, > > Puja > > > > > > On Tue, Dec 4, 2018 at 9:19 AM Boris Pelakh > > <[email protected] > > > > > wrote: > > > > > I am in the process of implementing a SPARQL 1.1-compliant endpoint > > > for web.rya so that Rya can be used as a federated repository with > > > RDF4J workbench. > > > > > > > > > > > > One of requirements is to be able to pass default-graph-uri and > > > named-graph-uri filters external to the query to override the graph > > > filter in the query itself (see > > > https://www.w3.org/TR/sparql11-protocol/#query-operation). > > > > > > > > > > > > In the sail API this is accomplished by setting the dataset on the > > > query object (see > > > http://docs.rdf4j.org/javadoc/2.2/org/eclipse/rdf4j/query/Operation. > > > ht ml#setDataset-org.eclipse.rdf4j.query.Dataset-), > > > but that setting does not seem to be honored by the Rya SAIL > > > implementation. Any ideas on where I can start digging to correct this? > > > > > > > > > > > > (I have also tried wrapping the Rya repository connection in a > > > ContextAwareConnection and setting readContexts, but the effect is > > > the same). > > > > > > > > > > > > *Boris Pelakh* > > > > > > *Ontologist, Developer, Software Architect* > > > > > > *[email protected] <[email protected]>* > > > > > > *+1-321-243-3804* > > > > > > [image: SemanticArtsLogo] > > > > > > > > > > > >
