Re: provenance of multiple triples all at once in RDF-star

> On 16. Dec 2023, at 15:21, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote:
> 
> I dispute this equivalence.

And yet your original example:

>> On 16. Dec 2023, at 01:02, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote:
>> 
>> The comment below by Olaf caused me to realize that RDF-star already allows consolidation of provenance, as follows:
>> 
>> << s p o >> prov:provenance :p1 .
>> << s2 p2 o2 >> prov:provenance :p1 .
>> :p1 prov:source :nyt ;
>>    prov:date "2023" ;
>>    prov:strength 1.0 .   # It's the New York Times, after all!


made the case for grouping statements with the same annotations. But instead of taking the detour that you propose, people might start to build graphs on their own, like
 
    ( << :s :p :o >> ,
      << :s1 :p1 :o1 >> ) prov:source :nyt ;
                          prov:date "2023" ;
                          prov:strength 1.0 .

which reasonably well look like graphs. 

One may then declare that "it has no semantics" or lament that it has the wrong semantics, because it isn’t meant to be a list and nobody can dispute that. But grouping triples very clearly has a semantics. All those statements have something in common, which makes them a set of statements characterized by that commonality. Which is not less meaning than if they were represented as an actual graph. 
Of course, it would be much clearer if the syntactic construct those users turned to - in their pain, in the moment of need - wasn’t encumbered by a list semantics, ordered and all that. How much less fuss, how much more formally valid semantics if they just had a proper syntax at their disposal to describe a simple set of triples, a graph.

The semantically inclined might even define a new container type and go for 

    [ a rdfxyz:Set ;
      rdf:_1 << :s :p :o >> ,
      rdf:_2 << :s1 :p1 :o1 >> ] prov:source :nyt ;
                                 prov:date "2023" ;
                                 prov:strength 1.0 .

Now we have a set (albeit without proper syntactic support) and all the horrible problems that you seem to forsee. In other words: you lose in practice, we all lose in practice, and the semantics rigor that you're championing leads directly to more unsound triples, pretty informal ad-hoc semantics and syntactically daring hacks. 

And for what? Because an agreed upon semantics for subgraph entailment across graphs hasn’t been formalized yet - something that logicians understandably would like to have, but that practical applications have been able to live without so far quite well (see named graphs). And I see no indication that such a formalization will surface anytime soon, or that it even is actively worked on (at least as far as I’m aware of, at least outside of the N3 user group). Do you really find it a reasonable proposition that everybody should wait for that extra feature to be finished and ready for production before we can use the basic functionality?

IIRC you were in the RDF 1.1 WG actively opposing the introduction of a vocabulary to express graph naming semantics on demand - the possibility laid out at the end of the group’s note on the semantics of datasets - right? Was that for the same reason - that subgraph entailment across graphs isn’t properly specified yet? And if yes: how many more decades...?


Thomas



> 
> In :a :b << :s :p :o >> . :a :b << :s1 :p1 :o1 >> . there are two separate :b links from :a to two different triples.   In :a :b { :s :p :o . :s1 :p1 :o1 . } there is only one :b link from :a and it is to something that is not a triple.
> 
> Perhaps some extension of some version of RDF might want to infer the second from the first but at the RDF graph level there is a fundamental difference.
> 
> peter
> 
> 
> 
> On 12/16/23 01:26, Niklas Lindström wrote:
>> Yes! And if we invert the relationship, as Andy has shown, to talk
>> about the occurrence, things really start to fall into place. We
>> talked about that at the end of the Semantics TF telecon (and looked
>> quickly at an example in IRC). That is, this:
>>     :occurrence rdf:occurrenceOf << :s1 :p1 :o1 >> .
>>     :occurrence rdf:occurrenceOf << :s2 :p2 :o2 >> .
>> ... is a named occurrence of a graph! That is, a graph term in Notation 3:
>>     :occurrence rdf:occurrenceOf { :s1 :p1 :o1, :o2 } .
>> can, conversely, be represented in RDF-star by the triples above.
> 

Received on Sunday, 17 December 2023 23:43:38 UTC