Re: Different properties related to well-formedness

> On Apr 23, 2024, at 7:50 AM, Olaf Hartig <> wrote:
> Hi all,
> It occurs to me that the notion of well-formedness that the group
> strives for has more facets than just the decision of whether
> rdf:reifies is many-to-many or many-to-one, and I think it would be
> useful for us to be able to discuss and to decide about these facets
> independent of one another. Therefore, I have created the following
> document in which I define different syntactic properties that an RDF
> graph with triple terms may possess, where each of these properties
> corresponds to one of the facets that I see. The important point is
> that these properties are completely orthogonal, and we can decide
> which of them we include as the properties required for well-
> formedness.

I think we can make a restriction in the abstract (and concrete) syntaxes, that a subject may not be a triple term; this is the current DRAFT definition in the various RDF syntaxes. The would seem to simplify the well-formedness restrictions.

In Reifier Minimality, you say that some members believe in a restriction that (s, rdf:reifies, (s', p', o') ) requires that s not be the object of other triples. ("without any other triple that talks about s”). This is one I haven’t heard come up before, or I was not paying attention. If we want triples of the form :s :p << :id | :s’ :p’ :o’ >> we would then be allowing :s :p :id . :id rdf:reifies <<(:s’ :p’ :o’)>> ., which I think has been a primary use case. I think the potential restriction might be that there can only be one triple with the subject :s and object rdf:reifies (with object implicitly a triple term).

If this is the case, then it needs to be discussed in the light of reasonable RDFS entailments, such as D-entailments. But even for somthing like rdfD1, what is the expected entailment for :s rdf:reifies <<(:s’ :p’ “123”^^xsd:integer)>>? If the following is not expected, what is?

:s rdf:reifies <<(:s’ :p’ “123”^^xsd:integer)>>, <<(:s’ :p’ _:nnn)>>, <<(:_nnn rdf:type xsd:integer )>> .

Alternatively a rule may create a new blank node to be the subject of those entailed triples:

:s rdf:reifies <<(:s’ :p’ “123”^^xsd:integer)>> .
_:b0 rdf:reifies <<(:s’ :p’ _:nnn)>> .
_:b1 rdf:reifies <<(_:nnn rdf:type xsd:integer)>> .

But, that doesn’t seem to useful or intuitive.

Another possibility I thought we had rejected is that triple terms are opaque.

I think that discussions about many-to-many don’t properly consider how entailments work.


> Best,
> Olaf

Received on Tuesday, 23 April 2024 20:58:22 UTC