Re: Basic machinery for annotations

> On 30. Aug 2024, at 15:39, Niklas Lindström <lindstream@gmail.com> wrote:
> 
> Hi Thomas,
> 
> On Thu, Aug 15, 2024 at 5:50 PM Niklas Lindström <lindstream@gmail.com> wrote:
>> 
>> Hi Thomas,
>> 
>> This is where I think we see things quite differently:
>> 
>>> Also the annotation syntax doesn’t roundtrip reliably
>>> 
>>>    IN
>>>    << :s :p :o >> :src :A .
>>>    :s :p :o {| :src :B |} .
>>> 
>>>    OUT
>>>    :s :p :o {| :src :A |} .
>>>    :s :p :o {| :src :B |} .
>>> 
>>> There goes support for unasserted statements.
>> 
>> I see no problem with the data here, apart from redundancy in the
>> representations making them appear rather odd. But those two forms
>> mean the same.
>> 
>> The most terse form would be:
>> 
>>    :s :p :o {| :src :A |} {| :src :B |} .
>> 
>> And all forms mean:
>> 
>>    :s :p :o .
>> 
>>    _:r1 rdf:reifies <<( :s :p :o )>> .
>>    _:r1 :src :A .
>> 
>>    _:r2 rdf:reifies <<( :s :p :o )>> .
>>    _:r2 :src :B .
>> 
>> A very basic (or streaming "best-effort") Turtle serializer may very
>> well end up with:
>> 
>>    << :s :p :o ~ _:r1 >> .
>>    :s :p :o .
>>    _:r2 :src :B .
>>    << :s :p :o ~ _:r2 >> .
>>     _:r1 :src :A .
>> 
>> Or some permutation thereof. That is perfectly valid and well-formed.
>> Not *pretty*, of course, and a pretty-printer requires some more
>> resources (memory/indexing).
> 
> I've understood you are worried about the annotation syntax somehow
> not being roundtrippable. I wrote the above some weeks ago to shed
> some more light on what the issue is. Do you have any questions or
> disagreements with the above?

Sorry, I may have forgot to reply.

Yes, I disagree. I believe that I didn’t invent that example

   << :s :p :o >> :src :A .
   :s :p :o {| :src :B |} .

but that it was used before by others to illustrate how one could either just annotate or annotate and state a statement. The syntax certainly gives that impression.

So saying that there is no problem here because "apart from redundancy in the
representations making them appear rather odd. But those two forms
mean the same." kinda just ignores the problem, or even calls it a feature, not a bug. You are certainly right that they map to the same N-Triples - which is exactly my point: they shouldn’t!

IMO there are two possible solutions:
- dump the annotation syntax
- or map it to a different property, like rdfs:states.
Obviously, I favor the latter.

Thomas


> Best regards,
> Niklas
> 
>> Best regards,
>> Niklas
> 

Received on Friday, 30 August 2024 15:45:20 UTC