- From: Pierre-Antoine Champin <pierre-antoine@w3.org>
- Date: Wed, 8 Jan 2025 11:42:44 +0100
- To: Doerthe Arndt <doerthe.arndt@tu-dresden.de>, Franconi Enrico <franconi@inf.unibz.it>
- Cc: RDF-star Working Group <public-rdf-star-wg@w3.org>
- Message-ID: <fc1733af-21be-4b24-b66a-584a5860898b@w3.org>
Dear Dörthe, Enrico,
On 07/01/2025 18:10, Doerthe Arndt wrote:
> Dear Pierre-Antoine,
>
>> Am 07.01.2025 um 17:01 schrieb Pierre-Antoine Champin
>> <pierre-antoine@w3.org>:
>>
>> My 2 ¢ about
>> https://github.com/w3c/rdf-star-wg/wiki/RDF-star-%22liberal-baseline%22#rdf-semantics
>>
>> - for the sake of homogeneity, I would keep only reif1 and reif2 in
>> RDF Semantics,
>> and push reif3 in RDFS Sedmantics (which would simply mean to add
>> the axiomatic triple rdf:reifies rdfs:range rdf:Proposition . This is
>> for the sake of regularity. I don't think that RDF semantics has any
>> "range-like" entailment for the moment.
>
> I personally agree with you, but where to put that rule als depends on
> what we want in general. There is the possibility to make rdf:reifies
> some kind of „special“ predicate for which we derive that the subject
> is always a rdf:Proposition even when occurring nested. I really do
> not want to have something like that for all domain declarations. So,
> if we want to make that the subject of rdf:reifies is always a
> rdf:Proposition regardless of it occurring nested or not, then it
> should be done like that. Whether we want that is of course a
> different question.
Agreed. I should have been clearer: in my opinion, the condition on
RDF-interpretation should rather be
⏩ |<x, [I+A](rdf:Proposition)> ∈ IEXT([I+A](rdf:type))|
if |x ∈ dom(RE)| ⏪️
without the additonal "or if |∃ y . <y,x> ∈ IEXT([I+A](rdf:reifies))|",
and therefore reif3 would be moot.
Instead, I would add the latter condition in RDFS as the axiomatic
triple 'rdf:reifies rdfs:range rdf:Proposition', which would have the
same consequence (in RDFS).
But I will not die on that hill...
>>
>> - regarding the distinction between "if S contains" and "if the
>> triple structure appears in S", I think I would prefer to keep "if S
>> contains" for all entailment patterns. What happens in a triple term
>> stays in a triple term. People may want to talk about non-sensical
>> triples, and any inference transpiring from triple terms may make
>> this inconsistent.
On 07/01/2025 17:11, Franconi Enrico wrote:
> This should not be the reason to not have metamodelling inference
> within nested triple terms.
> After all, we are here ONLY talking about what is a proposition, what
> is a class, what is a resource.
> By disallowing metamodelling inferences within nested triples, uris
> used within nested triples, for example, are not going to be of type
> rdf:resource; etc.
> It is impossible to have nonsensical in metamodelling inferences
> within nested triple terms; only the presence or not of inferred
> metamodelling statements.
> The discussion should be at this level: are you happy by not having
> these metamodelling inferences within nested triple terms?
> —e.
IIUC, your arguments are in the same line as Dörthe's below.
On 07/01/2025 18:10, Doerthe Arndt wrote:
> I understand your concern and lean towards your opinion. However, I
> try argue against that following the arguments I understood them from
> our semantics meeting:
>
> Being a proposition or not could be seen as some kind of syntactical
> statement.
>
>
> I try to make a comparison with predicates.
>
> If we state a simple triple
>
> :s :p :o.
>
> We can derive with rdf entailment that
>
> :p a rdf:Property.
>
> Now, the question is, should we also derive from
>
> :a :b <<( :s :p :o)>>.
>
> that
>
> :p a rdf:Property. ?
>
> Note that the semantics as it is does that, because RE has IR x IP x
> IR as domain (and not IR x IR x IR). We would somehow make the
> assumption that even though the quoted triple could be wrong, it is
> syntactically correct (whatever that means).
That's a very good point.
And I stand corrected: /some/ entailment patterns need to be extended to
"if the triple structure appears in S" to be consistent with the
conditions on interpretations.
>
> If we follow the same line of argumentation, we could say that from
>
> :a :b <<( :s :p <<( :x :y :z )>>)>>.
>
> We can still derive that
>
> <<( :x :y :z )>> a rdf:Proposition.
Agreed.
>
> We again assume all statements to be syntactically correct (note that
> „syntactically correct“ is a horrible naming, maybe „structural
> semantics“?).
>
>
> From another angle: if we go RDFS, do we want to have entailment rules
> which lead from
>
> :s :p <<( :x :y :z )>>.
>
> to
>
> :x a rdfs:Resource. ?
Following the same reasoning as above for rdf:Property, I would say "yes":
IEXT(rdfs:Resource) = IR, and the interpretation of <<( :x :y :z )>> is
on IR×IP×IR,
this makes :x an rdfs:Resource (as well as :z, for that matter).
>
> If so, would the step from
>
> :a :b <<( :s :p <<( :x :y :z )>>)>>.
>
> to
>
> <<( :x :y :z )>> a rdf:Proposition.
>
> be similar? Maybe we should add some entailment of that kind to RDFS
> instead of RDF?
RDFS will be tricky, because some entailment patterns will need to be
extended to nested triples (e.g. rdfs4a
<https://www.w3.org/TR/rdf12-semantics/#dfn-rdfs4a> and rdfs4b
<https://www.w3.org/TR/rdf12-semantics/#dfn-rdfs4b>), but others won't
(e.g. rdfs5 <https://www.w3.org/TR/rdf12-semantics/#dfn-rdfs5>).
Note also that rdfD1 <https://www.w3.org/TR/rdf12-semantics/#dfn-rdfd1>
will be tricky, as we can not simply replace "if S contains" with "if
the triple structure appears in S". More precisely, I believe that
:s :p << :t :q "foo"^^xsd:string >>.
would entail
:s :p << :t :q _:b >>.
_:b a xsd:string.
But naively replacing "if S contains" with "if the triple structure
appears in S" in rdfD1, the entailment pattern would yield
:t :q _:b.
_:b a xsd:string.
which is wrong...
pa
>
>
> I did not make up my mind yet, how I see these propositions. What do
> the others think?
>
> Kind regards,
> Dörthe
>
>
>
>
>
>
>> pa
>>
>>
>> On 07/01/2025 16:16, Franconi Enrico wrote:
>>> On 7 Jan 2025, at 15:44, Doerthe Arndt <doerthe.arndt@tu-dresden.de>
>>> wrote:
>>>
>>>> I noticed that you used the wording "if the triple structure
>>>> appears in S“ for the conditions.
>>>> From your e-mail I assume that „triple structure appears in“ is not
>>>> the same as the original „S contains“ we have for the other
>>>> patterns and that you changed the wording to deal with nesting.
>>>
>>> Correct.
>>>
>>>> I think we need to be very clear what this means and that we
>>>> include nesting here.
>>>
>>> Sure.
>>>
>>>> Here we also come to the question you raised in the mail. So, from
>>>> your point of view you would always want to have this „triple
>>>> structure appears in“ notion? Or would you want to have some
>>>> distinction between „triple structure appears in“ vs „triple is
>>>> element of S“? Where else would we need the first notion?
>>>
>>> I want to hear comments from other people about how to define
>>> these metamodelling properties (about which, as I have been
>>> abundantly made clear, I couldn’t care less 😀).
>>> For elegance and symmetry, I am tempted to have the „triple
>>> structure appears in“ notion.
>>> However, please note the following example:
>>>
>>> :john :believes _:r1 .
>>> _:r1 rdf:reifies <<(:paul rdf:type :canadian)>> .
>>> /currently/ does NOT rdfs entail
>>> :canadian rdf:type rdfs:class .
>>> :paul rdf:type rdfs:resource .
>>>
>>>
>>> That is, metamodelling entailments within /nested/ triple terms do
>>> not currently hold.
>>> So, either we change *_all_* the RDF/RDFS entailments to hold also
>>> in /nested/ triple terms (rather impactful), or we allow for
>>> entailments only at top level.
>>> The above example suggests that we should allow for entailments only
>>> at top level (and so I have to revert to the previous version of the
>>> semantics).
>>> What do you (and anybody else) think?
>>>
>>>> According to the semantics as you have it at the moment, we would
>>>> need „triple structure appears in“ for both current RDF entailment
>>>> patterns, right?
>>>
>>> Yes.
>>>
>>> —e.
>>>
>>>
>>>>> Am 02.01.2025 um 17:29 schrieb Franconi Enrico
>>>>> <franconi@inf.unibz.it>:
>>>>>
>>>>> At the last Semantics TF we discussed about the RDF semantics of
>>>>> the liberal baseline.
>>>>> In the current version of the document:
>>>>> https://github.com/w3c/rdf-star-wg/wiki/RDF-star-%22liberal-baseline%22#rdf-semantics
>>>>> the two discussed restrictions of RDF semantics are formalised:
>>>>>
>>>>> * triple terms, appearing in triples or in triple terms, are of
>>>>> type /rdf:proposition/;
>>>>> * objects of the property /rdf:reifies/, appearing in triples or
>>>>> in triple terms, are of type /rdf:proposition/.
>>>>>
>>>>> We may decide to have both restrictions, any of them, or none.
>>>>> Let’s open the general discussion :-)
>>>>> —e.
>>>>>
>>>>>> On 13 Dec 2024, at 18:20, Franconi Enrico <franconi@inf.unibz.it>
>>>>>> wrote:
>>>>>>
>>>>>> Today the Semantics TF met, and we agree to submit to the working
>>>>>> group a proposal for a /liberal baseline./
>>>>>> It is summarised in
>>>>>> <https://github.com/w3c/rdf-star-wg/wiki/RDF-star-%22liberal-baseline%22>,
>>>>>> to be discussed (and voted?) at the first focussed meeting in 2025.
>>>>>> Basically, there will be a no syntactic restriction in using both
>>>>>> /rdf:reifies/ and /triple terms/.
>>>>>> Reification is sanctioned only if it makes use of the property
>>>>>> /rdf:reifies/ or any of its subproperties; the subject of
>>>>>> /rdf:reifies/ is called a /reifier/.
>>>>>> /Triple terms/ would be always of type /rdf:Proposition/, and the
>>>>>> range of /rdf:reifies/ would be /rdf:Proposition/.
>>>
>>>
>
Received on Wednesday, 8 January 2025 10:42:47 UTC