There are two variants around: RDF* and RDF-star.
RDF* is the original work by Olaf and <<:s :p :o>> means
the triple :s :p :o is asserted as well.
That has permissions implications.
RDF-star is the name the active community (including Olaf) is giving to
its work (1) to make it search able and (2) it's different.
<<:s :p :o>> does not imply anything about the existence of :s :p :o .
https://github.com/apache/jena/pull/951
is RDF-star (only).
There are various reasons why RDF-star is the way it is, including being
able to separate the target data from the triples about the data (e.g.
wikidata).
In RDF-star, you can "say anything about anything" - including triples
that are not asserted in the graph or otherwise don't exist.
For permissions, one approach is that only asserted triples matter. No
need to filter inside a <<>>. So you can make assertions about things
you don't have access to : they don't exist as asserted from your POV.
No difference.
But if it is what you want, it is a recursive analysis of the statement.
The matcher in PR#951 is recursive.
Don't forget:
<< << :s :p :o >> :q :y >> :r :z .
> Without a way to distinguish the
> RDF-*Node from a regular resource
Model:
RDFNode.isStmtResource()
Graph:
Node.isTripleTerm()
Andy
On 09/03/2021 16:24, Claude Warren wrote:
Greetings,
RDF-* seems like it may cause problems for permissions.
From what I have seen we take a statement and convert that to a node where
the label is the statement (or the triple?). But there does not seem to be
a way to differentiate the RDF-* edge nodes from other Nodes.
My question arises around the following:
Let's say there are 2 statements in the model
(s,p,o) and (x,y, (s,p,o)) where the (x,y,(s,p,o)) is an RDF-* statement
about (s,p,o).
If a user does not have access to see (s,p,o) they probably should not be
able to see (x,y,(s,p,o)) either. Without a way to distinguish the
RDF-*Node from a regular resource I can't do the filtering.
>
The best I can
hope for is that the SecuritEngine implementation can, but I expect that
will have problems too.
Does anyone with RDF-* background see a way around this?
Claude
Andy