Re: drop referentially opaque semantics in embedded triples

An excellent description of the problems with referential opacity in
embedded triples.   I agree wholeheartedly.  I particularly like the
detailed investigation into the use cases.

I also note that referential opacity works poorly for the annotation
syntax (PG mode).  With referential opacity

:elizabeth :spouse :richard {| :count 2 |} .

does not entail

:elizabeth :spouse :richard {| :count 02 |} .

which I take to be completely unexpected.

(I purposefully picked an example that did not need any external
identity relationship.)

With this observation I would put use cases 3.1, 3.3, 3.4, 3.5, 3.6,
3,8, 3.9, 3.13, and 3.15 decidedly in the referential transparency


PS:  On a technical note, with the new semantics switching between
various versions of transparent and opaque is simply a matter of
changing the triples added when eliminating an embedded triple
(described in Section 6.1).

PPS: On a further technical note, with the new semantics it is possible
to have transparent semantics for some embedded triples and opaque
semantics for other embedded triples - all that is needed is variations
on the syntax that result in different generated triples.  Whether this
is a good idea is a different matter.

Received on Friday, 7 May 2021 12:53:08 UTC