- From: Gregory Williams <greg@evilfunhouse.com>
- Date: Sun, 1 Sep 2024 14:09:06 -0700
- To: Franconi Enrico <franconi@inf.unibz.it>
- Cc: William Van Woensel <william.vanwoensel@gmail.com>, RDF-star WG <public-rdf-star-wg@w3.org>
- Message-Id: <A580C45F-14E4-48D5-8D20-2D2DEC94DA09@evilfunhouse.com>
> On Sep 1, 2024, at 9:00 AM, Franconi Enrico <franconi@inf.unibz.it> wrote: > > On 1 Sep 2024, at 15:28, William Van Woensel <william.vanwoensel@gmail.com> wrote: >> >>> I think an example using foaf:name is obvious that there’s a modeling issue. I wonder what you think of my example about trying to mix in use of RDF 1.0 reification, though? If you end up with two statements like: >>> >>> _:a rdf:object <<( :s2 :p2 :o2 )>> . >>> _:b rdf:object “William” . >>> >>> Would you agree that we can’t really say anything about whether there’s a modeling issue in the larger dataset? >> >> I would say that it still depends on the dataset author (and, anyone using the dataset and its inferences). They will see "rdf:object" appearing as a ReificationProperty, and may have a problem with that, or not. If they happen to work with RDFS 1.1, then _:a and _:b would be flagged <https://www.w3.org/TR/rdf11-mt/#rdfs-interpretations> as as rdf:Statements, i.e., using the "old" reification properties. This may help with pointing out a problem, or not; it would certainly be against the properties' intended usage, and for me it would certainly point out a modeling issue. Btw, if it breaks the system they are using (i.e., if that system also supports the old way of reification), then they will more likely have a problem with it; and may want to rethink their approach (or, turn off backwards compatibility in the system :-). > > I fully agree with William. > Obviously the authors of the graph decided to use a standardised property such as "rdf:object” — which has an impact on entailment, namely that _:a and _:b are a rdf:statement — in a different standardised context, which entails that "rdf:object” is a rdf:reificationProperty. I’m not sure I follow the reasoning here, and perhaps I’ve been too terse in my example in previous messages. When you say "in a different standardised context,” what do you mean? I’m imagining a case where somebody wants to use RDF 1.0-style reification because they want to specifically make "statements about statements”. If they were to to model two different statements using the existing vocabulary for reification, they might get something like this: # original two statements <s> <p> “o” . <x> <y> <<( <a> <b> <c> )>> . # reification of those statements _:a a rdf:Statement . _:a rdf:subject <s> . _:a rdf:predicate <p> . _:a rdf:object "o" . _:b a rdf:Statement . _:b rdf:subject <x> . _:b rdf:predicate <y> . _:b rdf:object <<( <a> <b> <c> )>> . # whatever "statements about those statements" the user wanted: _:a <q> "some annotation" . _:b <q> "some other annotation" . I think this is perfectly reasonable, and I’m trying to understand what the reificationProperty proposal means for this example (or what value it brings). We would see that in this case `rdf:object rdf:type rdf:reificationProperty` (in addition to other entailments), and I’m not sure what (if any) impact that might have on the rest of the data. > They have to live with the consequences, unless they realise by looking at the entailments that there is a mistake in their model: as William says, both cases are fine, in the sense that it is up to the authors to think about which one makes sense in their context. I don’t think there is any "mistake in their model” here, which suggests to me that at least in some cases it is reasonable to have a property whose range includes both triple terms *and* non-triple terms. I’m interested here less in whether “both cases are fine,” and more in whether “both cases AT THE SAME TIME are fine” (and therefore whether it’s even right to talk about “WHICH one makes sense in their context”). thanks, .greg
Received on Sunday, 1 September 2024 21:09:22 UTC