Re: Referential transparency and opacity


On 10/02/2022 09:45, Anthony Moretti wrote:
> I'm aware there are still semantics issues, but if they're potentially 
> resolvable would it be possible to support both referentially 
> transparent and referentially opaque statements by using a different 
> syntax for each? So, I guess, something like:
>
>     Referentially transparent statement:
> << S R O >>
>
>     Referentially opaque statement:
> <<" S R O ">>

Here is a proposed alternative syntax :

     Referentially opaque statement:

     << S P O >>

     Referentially transparent statement:

     [ :transparentStatementOf << S P O >> ]

You would need to define the semantics of :transparentStatementOf 
accordingly. This could be done by

1) making it an owl:InverseFunctionalProperty, so that

     X :transparentStatementOf << S P O >>.
     Y :transparentStatementOf << S P O >>.

entails that X and Y are one and the same thing.

2) making it a transparency-enabling property 
(https://www.w3.org/2021/12/rdf-star.html#selective-ref-transparency), 
so that

     X :transparentStatementOf << S P O >>.
     S owl:sameAs S'.
     P owl:sameAs P'.
     O owl:sameAs O'.

entails

     X :transparentStatementOf << S' P' O' >>.

So, to the question "would it be possible to support both referentially 
transparent and referentially opaque statements", I would answer "yes, 
using the current specification of RDF-star" -- and the appropriate 
semantic extensions.


>
> With one usage rule:
>
>     Transparent statements can only be nested in transparent statements.
>
> The rule means that once the <<" ">> delimiters are used everything 
> inside, no matter how deeply nested, is also referentially opaque, 
> which keeps things composable.
>
> Just asking because I saw Thomas' email 
> <https://lists.w3.org/Archives/Public/public-rdf-star/2021May/0023.html> about 
> the topic.
>
> Regards
> Anthony

Received on Thursday, 10 February 2022 11:43:22 UTC