[ https://issues.apache.org/jira/browse/RYA-147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15471203#comment-15471203 ]
Kevin Chilton edited comment on RYA-147 at 9/7/16 5:19 PM: ----------------------------------------------------------- Because we are not guaranteed any event processing ordering within Fluo, we decided the best way to solve this problem is to shift the burden of ordering outside of the Fluo application. An ADD/DELETE event needs to be tagged with an ordering number. The observer that sees new ADD/DELETE events can then decide if a statement is currently present or absent based on all ADD/DELETE events that have been seen. The statement's value in Accumulo would be this ordered provenance information. Similarly, every binding set would also need to keep track of whether it is present or based on the statements that it is built from. Stopping work on this because I have been re-prioritized, but here's a pull request that has implemented those provenance objects. https://github.com/apache/incubator-rya/pull/86 was (Author: kchilton): Because we are not guaranteed any event processing ordering, we decided the best way to solve this problem is to shift the burden of ordering outside of the Fluo application. An ADD/DELETE event needs to be tagged with an ordering number. The observer that sees new ADD/DELETE events can then decide if a statement is currently present or absent based on all ADD/DELETE events that have been seen. The statement's value in Accumulo would be this ordered provenance information. Similarly, every binding set would also need to keep track of whether it is present or based on the statements that it is built from. Stopping work on this because I have been re-prioritized, but here's a pull request that has implemented those provenance objects. https://github.com/apache/incubator-rya/pull/86 > Fluo PCJ Updater - Delete Statement Support > ------------------------------------------- > > Key: RYA-147 > URL: https://issues.apache.org/jira/browse/RYA-147 > Project: Rya > Issue Type: New Feature > Affects Versions: 3.2.10 > Reporter: Kevin Chilton > Fix For: 3.2.10 > > > The Fluo PCJ Updater application currently only allows you to add new > statements to generated PCJs. We would also like to be able to delete > statements from the end results. > Here is a simple example to illustrate the point. Suppose you are computing > the following SPARQL query as a PCJ: > {code} > SELECT * > WHERE { > ?person <http://worksAt> <http://CoffeeShop> . > } > {code} > And you insert the following Statements: > {code} > { > [<http://Alice>, <http://worksAt>, <http://CoffeeShop>], > [<http://Bob>, <http://worksAt>, <http://CoffeeShop>], > [<http://Charlie>, <http://worksAt>, <http://CoffeeShop>] > } > {code} > The PCJ will result in the following binding sets: > {code} > { > [<http://Alice>], > [<http://Bob>], > [<http://Charlie>] > } > {code} > We should also be able to delete the following statement: > {code} > [<http://Bob>, <http://worksAt>, <http://CoffeeShop>] > {code} > And the PCJ should be updated to contain the following results: > {code} > { > [<http://Alice>], > [<http://Charlie>] > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)