Re: Update RDF-star semantics document

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.

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.

[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.

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 11:14:37 UTC