Description
The Fluo application that maintains PCJ indices currently creates complex visibility expressions that grow with every join that is part of the SPARQL query.
For example, if you create a PCJ for the following SPARQL:
SELECT ?customer ?worker ?city { ?customer <urn:talksTo> ?worker. ?worker <urn:livesIn> ?city. ?worker <urn:worksAt> <urn:BurgerJoint>. }
And you insert the following Statements:
Statement: "<urn:Alice> <urn:talksTo> <urn:Bob>" Visibility: "u" Statement: "<urn:Bob> <urn:livesIn> <urn:Happyville>" Visibility: "u" Statement: "<urn:Bob> <urn:worksAt> <urn:BurgerJoin>" Visibility: "u"
Then the following result will be exported to the PCJ index:
BindingSet: {{"customer", "urn:Alice"}, {"worker","urn:Bob"}, {"city", "urn:Happyville"} Visibility: "(u&u)&u"
That visibility expression could also be represented as just "u". ColumnVisibility.flatten() calls may be used to iteratively simplify the logical expression, so update the Fluo application to do so before exporting the result.
Attachments
Issue Links
- links to