- From: Doerthe Arndt <doerthe.arndt@tu-dresden.de>
- Date: Wed, 13 Mar 2024 12:57:08 +0000
- To: Franconi Enrico <franconi@inf.unibz.it>
- CC: "public-rdf-star-wg@w3.org" <public-rdf-star-wg@w3.org>
- Message-ID: <854BFFA0-55AB-47CE-9CBB-5B522B9E5F95@tu-dresden.de>
Hi Enrico, Am 13.03.2024 um 12:14 schrieb Franconi Enrico <franconi@inf.unibz.it>: On 13 Mar 2024, at 11:37, Doerthe Arndt <doerthe.arndt@tu-dresden.de> wrote: 1. Strictly speaking, in your grammar each triple of the form identifier_i rdf:reifies tripleTerm needs to be *directly* followed by a triple (subject predicate identifier_i) or (identifier_i predicate object)) Is that on purpose? (I think that is a minor remark, I was just curious :) ) Yes, it is needed if you want this grammar to capture exactly the macro expansion. It basically says that “edge” triples re not allowed to be alone. As you pointed out in the other mail. The problem is that :id rdf:reifies <(:a :b :c)>. :f :g :h. :id :p :o. is not allowed. It gets even worse. Instead of :id rdf:reifies <(:a :b _:c)>. :id rdf:reifies <(:a :b :c)>. :id :p :o. we would have to write :id rdf:reifies <(:a :b _:c)>. :id :p :o. :id rdf:reifies <(:a :b :c)>. :id :p :o. and that is counter-intuitive (and I guess hard to realize in practice as I'd expect that many implementations remove duplicates) 2. If we have the syntactic macro and no semantic conditions added, then RDF-reasoning will produce graphs which do not follow the macro, namely you’d derive rdf:reifies a rdf:Predicate. Do you see that as a problem? This example shows that we have to give some thought about axiomatic triples, which are meant to talk about the meta-model of RDF. In presence of a well-formedness notion in the data model (e.g., for reification or for lists), it seems that such well-formedness should not apply to the meta-model. It is not just axiomatic. As I(rdf:reifies)\in IR, the triple follows from the first semantic condition of RDF (https://www.w3.org/TR/rdf11-mt/#rdf-interpretations). But I think I get your point: this is not crucial. [Full disclosure and rant which hopefully nobody will comment on: I have always been strongly against expressing meta-models in a modelling language (such as in RDF, in UML, in SVBR, etc), since this is completely meaningless, useless, and not really helping.] Now, that I think about it, even simple entailment does: :id rdf:reifies <(:a :b :c)>. :id :p :o. simply entails :id rdf:reifies _:x. :id rdf:reifies <(:a :b :c)>. :id :p :o. What is your opinion on that? (I am not sure myself, the question is meant to be open) Very useful observation. This clearly makes semantic sense, and it definitely makes sense in the unrestricted RDF 1.2. However, this introduces a handle (the _:x bnode) that could be used to “talk” about a triple term, which is something we do not want in the well-formed fragment. As a matter of fact, this entailment does not comply to the grammar of well-formedness, and this is somehow “correct”. Note that this problem does not arise in the presence of just the macro: <<:id | :a :b :c >> :p :o. simply entails <<_:b | :a :b :c >> :p :o. which is just fine. So, the problem is the explicit existence of a representative of a triple term, which, in my opinion, should not happen in the well-formed fragment. Of course, it is OK in the unrestricted RDF 1.2. I get your point, so the idea would be to always stay in the macro. I am not fully convinced yet, but I will think about it… Kind regards, Dörthe P.S. Your latest solution is in my opinion indeed too radical. (But I already started to create tricky examples if you want to go there ;) ) cheers —e. Am 13.03.2024 um 08:20 schrieb Franconi Enrico <franconi@inf.unibz.it>: On 12 Mar 2024, at 23:09, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote: This is ambiguous as the nor can be given a wide scope. "An RDF graph which does not contain any triple term nor any rdf:reifies triple but for the ones coming from the expansion of the macro for triple reification is called reification well-formed." Better would be "An RDF graph where the only triple terms are objects of triples with predicate rdf:reifies." This is unambiguous, but more liberal as it allows objects of rdf:reifies triples to be anything. I don't think that the liberalization causes any problems. Nope, you would allow, e.g., isolated “edge” triple. If you want to define well-formedness by a syntactic restriction and not via the macro expansion, then my document gives the exact grammar at the end; there is no need of other definitions. graph ::= (triple | (identifier_i rdf:reifies tripleTerm (subject predicate identifier_i) | (identifier_i predicate object)))* triple ::= subject predicate object subject ::= iri | BlankNode predicate ::= iri object ::= iri | BlankNode | literal tripleTerm ::= triple identifier ::= iri | BlankNode iri ::= any_iri_but_rdf:reifies (Note: syntactic categories adorned with equal subscripts in the grammar above enforce a non-context-free equality condition on the respective tokens.) I don’t see any purpose to have a well-formedness which is not capturing exactly the macro expansion, which is the only way we give meaning to reification. —e.
Received on Wednesday, 13 March 2024 12:57:21 UTC