On 09/03/2021 23:12, Marco Neumann wrote:
can RDF-star further be nested?

as in:

<< << << :s :p :o >> :p1 :o1 >> :q :y >> :r :z .

Yes. Arbitrary depth.

Quoting already quoted triples.

    Andy



On Tue, Mar 9, 2021 at 10:08 PM Andy Seaborne <[email protected]> wrote:

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



Reply via email to