Re: RDF lists/arrays and n-ary relations [was Re: OWL and RDF lists]

On 28 Sep 2022, at 07:42, Patrick J. Hayes <phayes@ihmc.org<mailto:phayes@ihmc.org>> wrote:

Small but important clarification: currently RDF lists do NOT give "closedness",

Sure they do, if you use the vocabulary properly.

:thislist rdf:first :A .
:thislist rdf:rest :x1 .
:x1 rdf:first :B .
:x1 rdf:rest :x2 .
:x2 rdf:first :C .
:x2 rdf:rest rdf:nil .

tells you that :thislist is exactly ( :A :B :C ), with three items. You can't express this kind of 'closedness' with the container vocabulary because it provides no way to say 'and no more'.

You would need a (non-first-order) fixpoint semantics to state ‘and no more’ if you use the list vocabulary.

Now, of course RDF does not impose 'proper' usage of the collection vocabulary, because it imposes hardly any syntactic restrictions of how any vocabulary is used. But you can define a semantic extension of RDF which does impose this, and indeed the specs mention this possibility explicitly.

I don’t believe that this potential semantic extension would be desirable for RDF. In addition to the argument by Pat at the end of his latest message, there is a crucial semantic aspect to consider: proper list semantics would introduce some form of implicit negation to the language. For example the graph for the list (:A)
:thislist rdf:first :A .
:thislist rdf:rest :rdf:nil .
states, among other things, that the interpretation of :thislist is different in any model from the interpretation of :A. This may hamper any extension of RDF which relies on the assumption that in RDF it is not possible to state (in)equality, e.g., the extension of RDF with owl:same-as.

cheers
—e.

Received on Wednesday, 28 September 2022 14:55:45 UTC