Re: Update RDF-star semantics document

Dear Enrico,

Even though, I would personally prefer to use RDF-star without the macro (which I am free to do, I know :) ), I think it looks good.  I have two comments:


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 :) )



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?

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)


Kind regards,
Dörthe

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 10:37:16 UTC