Re: Revisiting RDF-star semantics (was Re: Why is the RDF-star working group standardising RDF 1.2 and SPARQL 1.2?)

> On 1. Feb 2023, at 18:30, Doerthe Arndt <doerthe.arndt@tu-dresden.de> wrote:
> 
> Dear Thomas,
> 
>> Am 01.02.2023 um 17:27 schrieb Thomas Lörtsch <tl@rat.io>:
>> 
>>> 
>>> On 1. Feb 2023, at 17:00, Doerthe Arndt <doerthe.arndt@tu-dresden.de> wrote:
>>> 
>>> Dear Thomas,
>>> 
>>> Of course I remember the discussions and would like to keep this new edition efficient (but of course without ignoring you).
>> 
>> It would be more efficient if my concerns were taken a bit more serious. For example I hear about the benefits of referentially opaque triples, but I get no response to my repeated lament that the proposed semantics is all but ignored in practice. I hear mentions of TEP again and again, but I never get a response to my critique that nobody uses that mechanism. So, yes, I think I have good reason to feel ignored.
>> 
>>> So, before we get back to the more contraversial discussion about referential opacity: What is your take on the blank nodes?
>> 
>> It is questionable that this piecemeal approach will lead to a compelling design overall, but I’ll do my best to answer your question.
> 
> See it as an exercise to convince me step by step ;)

While the problem is complex - and adding referential opacity to the already complex problem of statement annotation surely doesn’t help make it more manageable - it has to be seen as a whole. Referentially transparent blank nodes in referentially opaque triples may have some neat properties when regarded in isolation, but the overall picture is still a disaster. What do you make of the lack of adoption, of evangelism even? What do you make of the fact that the proposed semantics makes every spec-abiding semwebber's life much harder for the benefit of some rather obscure niche use cases? How do you propose to deal with the fact that nobody will be able to trust any incoming quoted triple that it applied the semantics properly and carefully? These are questions that have to be answered when proposing a web standard. It is a tedious enough exercise to make you aware of that, step by step, hopefully.

>>> I guess you would want them to be transparent?  Because here I had the idea that there was a consensus and I would like to start with the few agreements we had. 
>> 
>> I think referentially transparent blank nodes in referentially opaque embedded triples are beside the point. They seem to require a lot of effort from the semantics, but they achieve very little, as the other statements containing said blank node are not captured. Thus the meaning of the blank node is not fully captured. Then why spend so much energy on syntactic fidelity of the embedded triple in the first place? 
> 
> Just a short comment: If the semantics manages to keep the connection between different quoted blank nodes and  plain blank nodes then you will still be able to interpret the graph as you propose. You would still enforce everyone to keep the blank node connections as they were stated.  

I’m approaching the problem from a different angle: if the whole quoted triple is referentially transparent, then of course the blank nodes it contains are too - in that respect we arrive at the same result, which does indeed seem desirable enough. 

However defining the IRIs in the quoted triple as referentially opaque adds complexity to serve a purpose: versioning and explainable AI have been brought forward as use cases that require to represent the statement in syntactic fidelity. Those use cases however would also profit from a more complete representation of the blank node, i.e. all the statements in which it occurs at the moment - the version, the state of reasoning - that the quoted triple aims to represent. Such a more complete representation is much better achieved through a Concise Bounded Description, and in that case again a graph literal is sufficient - no black blank node magic needed. 

Overall the design is much clearer, because it separates concerns that only in special cases overlap. The CG design to the contrary bakes the two concerns into one construct and asks everybody to add some extra statement(s) to disambiguate what it has just mixed up.

> In my opinion, the scoping of the blank node and referential opacity are two separated issues which both need to be resolved.  Going back to your example:
> 
>     << _:x :buys :Car >>                      
>         :source _:x .
> 
> Could mean (a) that according to some source x that same x bought a car, or (b) according to some source x  that some (potentially different) y bought a car. 

That is not quite my example (assuming you refer to [0]) and I’m afraid I’m not following what point you would like to make.

> But I do understand that for you the question about referential opacity is far more important and should be resolved first. 

Yes, that is correct. And I’m afraid that for referentially opaque quoted triples I would probably prefer opaque blank nodes too, just because they are less involved. But again, I consider the whole approach misguided, if not even harmful.

>> I think the design stems from the desire to shoehorn N3 formulas into embedded triples and this is one of the issues showing how that approach fails. See [0] for a more complete take on blank nodes, especially how graph literals capturing the full meaning of a blank node as Concise Bound Description could achieve a much higher degree of fidelity and, IMO, practical usefulness.
> 
> For the record: in N3 quoted blank nodes are local. So, that argument does not count here. 

It does because, as I noted before, even the Superman example from Pierre-Antoine's Lotico-talk can’t get its job done without emulating formulas through multiple quoted triples, there grouped in a list. And to make that hack work, blank nodes have to be referentially transparent.

> And: in N3 you have ways to get from your quoted formulas to plain formulas even with referential opacity. But of course that is because N3 already comes with rules, that makes it easier to share the intended semantics. So that is somewhat different…

I know formulas in N3 as being referentially opaque (and it took me some time to realize that - the syntax is not very intuitive in that respect). So how is a plain formula encoded? Note also that graph literals can be used to the exact same effect, and I would welcome that. I can also imagine implementations of closed lists or sets of OWL axioms encoded as graph literals and an expanding/unfolding mechanism that makes them available in the graph, albeit read only. Lots of possibilities from a very simple and intuitive primitive.

Thomas


[0] https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Feb/0002.html

> Kind regards,
> Dörthe
> 
> 
>> 
>> 
>> [0] https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Feb/0002.html
> 

Received on Wednesday, 1 February 2023 22:23:27 UTC