W3C home > Mailing lists > Public > public-rdf-star@w3.org > May 2021

Re: rdf-star#121 moots "Re: drop referentially opaque semantics in embedded triples"

From: Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu>
Date: Sun, 16 May 2021 12:50:08 +0200
To: James Anderson <anderson.james.1955@gmail.com>, public-rdf-star@w3.org
Message-ID: <e24cffa8-4cde-9891-f3d6-cc35a8b64959@ercim.eu>
James,

On 15/05/2021 23:41, James Anderson wrote:
> good evening;
>
> once a decision is reached on how to compare rdf-star triples[1], will that determination not render the issues concerning referential behaviour moot?

I don't think so. I consider the two issues to be orthogonal.

Regardless of RDF-star, looking at the way sameTerm and the = operator 
are currently defined in SPARQL:

* sameTerm is purely concerned with the syntax (i.e., the terms, which 
is what one would expect considering the name of the function).

* the = operator is more semantic-aware when it comes to literals (42 = 
42.0 is true, and 42 = "foo" is an error rather than false). However, 
when it comes to IRIs (or bnodes, I expect), I don't see any requirement 
to take into account coreference.

In other words, given the following graph

     :superman owl:sameAs :clark.
     :superman :can :fly.

and a SPARQL engine using an entailment regime that supports owl:sameAs, 
the following query still returns false:

     SELECT (:superman = :clark as ?x) {}

This is my reading of the SPARQL spec. I admit that only skimmed some 
parts, but this is also the behavior of 3 implementations that I have 
just tested.

Therefore, going back to RDF-star, I would not be surprised that

     SELECT (<< :superman :can :fly >> = << :clark :can :fly >> as ?x) {}

return false, regardless of the fact that these two embedded triples are 
required or not to denote the same thing by the formal semantics...

> without regard to whether sameness is to be governed by term identity or value equality, in either case, the proposed resolution reads as if the relation is to be determined free of context.
I am not sure what you mean here... But if by "free of context" you mean 
"regardless of the triples stored in the dataset", then I concur. But as 
pointed out above, this is already the case in standard SPARQL.
> on those terms, according to the sense of "referential transparency" which i would think carries over from programming language semantics[2] - and as such, would be one which i would chose to govern my implementation efforts, the embedded triples are referentially transparent.

Maybe we have been a little sloppy in our terminology. A more accurate 
wording of the question might be: "are the constituent terms of an 
embedded triple (i.e., its subject, predicate and object) referentially 
opaque or transparent in the context of that embedded triple?".

Or, in other words: is the denotation of << :s :p :o >> determined

* by the respective denotations of :s, :p and :o (referential transparency),

* or by the lexical form of the terms :s, :p :o (referential opacity)?


> the longer i have witnessed these discussions, the more they have confounded me.
> during the 14.5.2021 call, in particular, where notions which had been discussed in other contexts in relation to n3 were introduced into the discussion, ostensibly in support of the "referential opacity" imperative, i was most confused, as my (mis?)understanding of the n3 situation - from having read the arndt-van-woensel and and berners-lee expositions [3,4], had been the opposite.
>
> so i re-read arndt [3], again.
> as it were, i am left still with the conclusion that, despite the rhetoric, the substance of the argument is that the expressions - in their case the n3 formulae and in the rdf-star case the embedded triples, are necessarily referentially transparent.
> were that not the case, much of their argument would not be necessary and other aspects could not succeed.
> what [3] describes is various ways to construct interpretation contexts and their consequential semantics.
> in all cases, the formulae themselves are transparent: they, themselves, always refer respectively to the same thing.

Yes, but what they refer to is not determined by the denotation of their 
constituent terms.

In other words, under the assumption that :a1 and :a2 denote the same 
thing, the two formulas { :a1 :b :c, :d } and { :a2 :b :c, :d } can 
still be considered distinct.

(I write "can" because, of course, additional rules can still force them 
to denote the same thing... Again, the "referential opacity" stance is 
not /forbidding/ such co-reference, it is just making it /not/ mandatory).

>
> from which perspective, the discussions related to rdf star can never resolve until they shift from the semantics of the triple - which the resolution to #121 will specify, to that of interpretation context(s).
> the current approach - to argue about the one as a surrogate for the other, has yet to succeed.

What you mean exactly by "interpretation context" is not entirely clear 
to me... Am I right in assuming that the notion of "interpretation", as 
defined by the formal semantics, is a close match?

   pa

>
> best regards, from berlin,
> - - -
> [1] : https://github.com/w3c/rdf-star/issues/121
> [2] : https://scholar.google.com/scholar?q=The+Scott-Strachey+Approach+to+Programming+Language+Theory
> [3] : http://ceur-ws.org/Vol-2438/paper6.pdf
> [4] : https://arxiv.org/pdf/0711.1533.pdf
>
>

Received on Sunday, 16 May 2021 10:50:15 UTC

This archive was generated by hypermail 2.4.0 : Sunday, 16 May 2021 10:50:16 UTC