On 25/02/2021 17:06, Zak Mc Kracken wrote:
Hi Andy,
thank you again and sorry for my late reply.
On 17/02/2021 10:49, Andy Seaborne wrote:
There is no special support for SPARQL-star like use of another, plain
server.
But, what if the endpoint doesn't support -star syntax? I'd expect a
syntax error.
yes.
Thanks for the clarification.
RDF-star is not exactly the original RDF reification. You can do use
it for the same use cases but not in a simple replacement fashion.
Yes, I read this around. I've also read that there are two different
semantic interpretations (aligning with reified statements or
considering RDF* statements are something different).
Do you mean SA and PG modes?
PG => there is always the target triple.
<<:s :p :o>> :q :z .
means
:s :p :o .
is also in the graph (the link annotated exists).
SA there is not such assumption.
<<:s :p :o>> :q :z .
is one triple.
RDF-star is the latter, the original RDF* parser are the former.
RDF-star means you can have the annotations in one graph and the real
data in another the union the two.
When I think of translating RDF* to/from rdf:Statement, I think it would
be an optional mode, which could be enabled/disabled in a particular
software. But I haven't thought of all the possible practical
implications, for the moment I've in mind annotated relations (
provenance, F-score, pvalue, etc), for which working with RDF* would be
useful but not all the triple stores support it as yet.
but if someone else says
<<:s :p :o >> :validFrom "Saturday" ;
:validTo "Sunday" .
_:b0
rdf:subject :s;
rdf:predicate :p
rdf:object :o;
:validFrom "Monday" ;
:validFrom "Saturday" ;
:validTo "Wednesday" ;
:validTo "Sunday" .
whish is gibberish.
It needs to be:
<<:s :p :o >> :valid [ :from "Monday" ; :to "Wednesday" ] .
<<:s :p :o >> :valid [ :from "Saturday" ; :to "Sunday" ] .
As you say, this doesn't seem to be a problem related to the possible
interpretation of RDF-star statements, <subj> createdOn d1, d2 is likely
inconsistent, no matter if <subj> is a plain URI or a triple. I mean, if
one states <<:s :p :o>> createdOn d1 and then <<:s :p :o>> createdOn d2
(in the same named graph or under the NG union semantics), this should
result in two statements having the same subject triple, or am I missing
something?
Not that I can see.
In full reification there is the possibility of expressing it as:
_:b0
rdf:subject :s;
rdf:predicate :p
rdf:object :o;
:validFrom "Monday" ;
:validFrom "Saturday" ;
_:b1
rdf:subject :s;
rdf:predicate :p
rdf:object :o;
:validTo "Wednesday" ;
:validTo "Sunday" .
Two different "statings" (the action to making a statement).
And a lot of triples.
The other problem with reification is fragile data:
[
rdf:subject :s1;
rdf:subject :s2;
rdf:predicate :p
rdf:object :o .
]
[
rdf:subject :s1;
rdf:object :o .
]
Andy
Marco.