Re: RDF star and LPGs

On Jul 25, 2024, at 1:22 AM, Thomas Lörtsch <tl@rat.io> wrote:
> 
> Hi Greg, 
> 
> I agree with your concern. However, I'm not sure I fully understand the ramifications of your Example 2, so let me ask an additional question on your last paragraph:
> 
> Would you like to represent a triple without annotation different from the same triple, but with annotation? E.g. would you like that this
> 
>     :s :p :o. 
>     :s :p :o {| :a :b |}. 
> 
> can not be reduced to this
> 
>    :s :p :o {| :a :b |}.  
> 
> ? That would run counter the intuitions of RDF. I think it could be done with my latest proposal, but I'm not sure if it would be a good idea.

I guess it depends on what that Turtle syntax *means* when it gets reduced to actual RDF. Given the current proposal, I don’t think there is any sensible way to avoid this “reduction,” since it is by definition the same thing. But when thinking about LPG interop, this is a sticking point. I think one possible interpretation of those two lines in your first example *from an LPG perspective* would be that there are two edges, one of which has an annotation (ignoring for the moment that if we’re talking about cypher, the annotation object value would probably have to be a literal). That’s why I said on yesterday’s call that these might be differences in the data model that are just fundamentally incompatible and can’t be bridged with the reifier approach.

> And why would you want to dismiss unannotated triples when converting from RDF to LPG? What would then happen to relations like CREATE (a1)-[:TRANSACTION]->(a2) that have no annotations?

Sorry if I was unclear. I didn't mean ”unannotated.” I meant triples that didn’t have a reifier * whether or not there are any annotations attached* it. I think the only sensible mapping of that CREATE would be to both a transaction triple and the creation of a reifier:

:a1 :TRANSACTION :a2 .
:e1 rdf:reifies <<( :a1 :TRANSACTION :a2 )>> .

Thanks,
Greg

Received on Friday, 26 July 2024 14:36:18 UTC