Re: voting against use of rdf:ReificationProperty

Am 4. September 2024 20:56:27 MESZ schrieb Gregory Williams <greg@evilfunhouse.com>:
>
>
>> On Sep 3, 2024, at 3:07 AM, Thomas Lörtsch <tl@rat.io> wrote:
>> 
>> Hi Greg,
>> 
>> 
>> you can’t use triple terms in RDF 1.1, but you can reify reifications via triple terms in RDF-star, e.g.
>>     
>>     :r rdf:reifies <<( :s :p :o )>> ;
>>        :a :b .
>>     :q rdf:reifies <<( :r rdf:reifies <<( :s :p :o )>>  )>> ;
>>        :c :d .
>> 
>> Doesn’t that solve your problem?
>
>I honestly don’t know. I’m just trying to work through examples that seem like they struggle to fit into the proposed approach. As I show below, I don't think it’s obvious that the two approaches are at odds with each other (though the resulting interactions might prove difficult, as you point out).
>
>
>> And we probably should actively discourage mixing RDF standard reification and RDF-star reification, because not only does it make the property rdf:object an instance of class rdf:ReificationProperty (which is not thaaat problematic IMHO), but in addition to that the subject of an RDF standard reification becomes also an occurrence of the triple term in object position, and that seems pretty unwelcome to me. 
>
>I think my biggest concern is that (as the SPIN example shows) this ins’t just about standard reification – it’s about any modeling that wants to destructure a triple and talk about its components (the object in particular).
>
>> E.g.:
>> 
>>     :r rdf:reifies <<( :s :p :o )>> .
>>     :t a rdf:Statement ;
>>        rdf:subject :r ;
>>        rdf:predicate rdf:reifies ;
>>        rdf:object <<( :s :p :o )>> .
>> 
>> :t is now both a reification of ':r rdf:reifies <<( :s :p :o )>> .' (because of RDF 1.1 standard reification) and '<<( :s :p :o )>> ' (because rdf:object also acts as an RDF-star reification property).
>
>Yes, I see. Although it’s not clear to me whether or not :t *should* reify both. I can sort of twist myself into thinking that it should.

I don't think it necessarily should. There may well be use cases where you want to refer to the triple term in the object position without also creating and refering to some kind of reification -  like in the SPIN example you gave. It seems that that's not possible under the current arrangement. That feels like a problem. 

Maybe we should give up the idea of an entailed rdf:ReificationProperty class and instead say:
- either use the predefined property rdf:reifies
- or some subproperty thereof
- or use the RDF standard reification vocab and have no occurrence created
- or be on your own and be sure you know what you're doing

However, that sounds like a lot of options, and provides neither guarantees through constraints nor guidance through inference.

>And I don’t think this is restricted to RDF 1.1 reification – if you ignored that entirely and tried to use our new approach to model a reifier for statements (say for a data provenance use-case where each reifier explicitly reifies one and only one “statement” – leaving aside for now that it might entail more than that), then I think you might end up with something very similar to the above, just not in the rdf: namespace. And also perhaps having a second rdf:reifies statement:
>
>    :r rdf:reifies <<( :s :p :o )>> .
>    :t a ex:Statement ;
>       rdf:reifies <<( :r rdf:reifies <<( :s :p :o )>> )>>
>       ex:subject :r ;
>       ex:predicate rdf:reifies ;
>       ex:object <<( :s :p :o )>> .

:t describes the statement twice. You could just annotate the individual parts via ex:subject/predicate/object, e. g. :

    :r rdf:reifies <<( :s :p :o )>> .
    :t a ex:Statement ;
       rdf:reifies <<( :r rdf:reifies <<( :s :p :o )>> )>>
       ex:subject [a ex:OccurrenceIdentifier] ;
       ex:object  [a ex:TripleTerm] .

You don't have to describe them _again_, or do you? I admit that that's essentially the same question as on the top of this mail.

>(Maybe you’d want to also use an opaque string to store the original triple for which provenance is being stored, 

Yes, but that's an orthogonal issue. 

>but all of that feels beside the point that the use of both ex:object and rdf:reifies on :t seems strange and may have some unexpected consequences.)


Best, 
Thomas 

>thanks,
>.greg
>
>

Received on Thursday, 5 September 2024 14:49:12 UTC