Re: summary un/asserted

On 09/07/2024 16:01, Peter F. Patel-Schneider wrote:
> Here is a proposal that I don't think will go anywhere, and I might not 
> totally believe in, but does connect to the working group's activities.
> 
> THESIS:  embedded triples are not a good solution to the use cases of 
> the working group
> 
> EVIDENCE:
> 
> The use cases of the working group do not use embedded triples directly 
> but instead require a separate resource that is connected to a triple.   
> These separate resources are needed because the information about an 
> embedded triple from one use of it has to be separated from the 
> information from other uses. Otherwise there is a mix-and-match problem, 
> as shown in representing provenance where source from one provenance 
> cannot be combined with time or access from another.  This problem 
> affects the "seminal example", all kinds of provenance, and nearly all 
> uses of embedded triples in the enoding of n-ary predicates.  The need 
> for this extra resource and new linking predicate add to the complexity 
> of just about any use of embedded triples in RDF and require extra 
> shorthands in Turtle to partly hide this complexity from users.
> 
> SOLUTION:
> 
> The solution is to do away with the uniqueness of embedded triples and 
> base the extension of RDF proposed by the working group instead on 
> non-unique occurrences of triples.   If we leave the proposed syntax 
> alone, we get an extension of RDF where
>    << :a :b :c >> :d :e , :f :g .
>    << :a :b :c >> :h :i , :j :k .
> does *not* entail
>    << :a :b :c >> :d :e , :h :i .

Is this different to the "agreed syntax" form << id | s p o >>>

    << _:b1 | :a :b :c >> :d :e , :f :g .
    << _:b2 | :a :b :c >> :h :i , :j :k .

==>

    _:b1 rdf:reifies <<( :a :b :c )>> .
    _:b1 :d :e .
    _:b1 :f :g .

    _:b2 rdf:reifies <<( :a :b :c )>> .
    _:b2 :h :i .
    _:b2 :j :k .

?

> There are problems with this version of occurrences of triples.   
> Without some way of referencing a particular occurrence of a triple it 
> is not possible to represent the above graphs in N-triples and all 
> information about the occurence has to use a shorthand syntax in Turtle, 
> making what used to be a convenience a necessity.   The solution to this 
> problem is to in effect give these resources an identifier, so that a 
> particular occurrence of a triple is no longer "anonymous" and can be 
> referred to.
> 
> The way to do this is to allow IRIs and blank nodes in RDF to also be a 
> triple occurence, with syntax something like (this syntax probably not 
> good at all but you should get the idea)
>    <:x< :a :b :c >> :d :e .
>    <_:x< :a :b :c >> :d :e .
> in both N-triples and Turtle.  This is a varation of a recent syntax 
> proposal but is not just syntax and instead is the extension to the RDF 
> data model to support quoted triples.
> 
> A big problem (and one reason that I don't totally believe this 
> proposal) is using the same IRI or blank node for multiple triple 
> occurrences as in
>    <:x< :a :b :c >> :d :e .
>    <:x< :f :g :h >> :d :e .
> has to be handled by either forbidding it or allowing a node to have 
> multiple triple occurrences.

Agreed

Is this different to the generalized rdf:reifies where
:x reifies the event modelled by triples :a :b :c and :f :g :h (and 
maybe other triples - it's open, not closed).

A simple syntax extension to "agreed syntax" is to allow multiple 
triples after the |

<< :x | :a :b :c . :f :g :h >> :d :e.

(with or without nesting - that's an orthogonal decision)

Extending annotation syntax is harder - not in technical terms but in 
appearance.

The ideas behind annotation syntax is to have the triple in use 
(asserted) then something about the occurrence. The triple itself is 
normal syntax.

There is no grouping of triples in Turtle, only syntactic elements as 
blocks. There are many ways to add that but they all have to address the 
issue of the meaning of a "blocks of triples" aside from its generalized 
reification usage.

At the moment, I think the multiple triple reification is less mature in 
RDF (not in KR) than single triple reification. So leave the facilities 
to do it but be very cautious about "helper" syntax for it because such 
helper syntax is opinionated.

We should leave {} for grouping alone because it is the natural choice 
for graph literals/graph-in-graph.

     Andy

Received on Thursday, 11 July 2024 12:39:24 UTC