W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > October 2002

rdf:first/rest/nil/List: syntax-only at the RDF level

From: Dan Connolly <connolly@w3.org>
Date: 25 Oct 2002 11:53:45 -0500
To: w3c-rdfcore-wg@w3.org
Message-Id: <1035564826.23979.431.camel@dirk>

The rdf:collection stuff was decided 31May
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002May/0159.html
but that record doesn't show the "there are no interesting
entailments around rdf:first/rest" comment that I thought
I made and I thought we agreed to.

Jeremy remembers it that way, though...
"My understanding was that RDF Core agreed to provide the List syntax,
and 
the List vocabulary (rdf:List, rdf:first, rdf:next rdf:nil); but not to 
provide any (formal) semantics for these terms."
http://lists.w3.org/Archives/Public/www-webont-wg/2002Oct/0138.html

Today I took an action to clarify by way of test case and
to explain why this is OK...

Consider this conjecture:

  eg:myBrothers rdf:first eg:paul.
  eg:paul eg:hairColor "brown".
  eg:myBrothers rdf:first eg:jon.
  eg:jon eg:height "tallish".

==?==>
  _:somebody eg:hairColor "brown".
  _:somebody eg:height "tallish".

I don't want that entailment to be justified by the RDF
nor RDFS MTs; we have a bunch of code (Jeremy
enumerated some stuff, plus there's cwm, Euler,
Jan's graph matcher, ...) that implements
rdf simple entailment now, and that code would be
invalidated by such a change.

Likewise this one:

  eg:s eg:p eg:o.

==?==>

  _:something rdf:first eg:s.

Now... webont's use of first/rest would seem to need these.
But it doesn't. I agree that it needs
this:

  eg:C1 owl:intersectionOf _:these.
  _:these rdf:first eg:A.
  _:these rdf:first eg:B.
==>
  eg:A owl:sameAs eg:B.
  eg:A owl:sameClassAs eg:B.

As I proposed[23Oct] to WebOnt, this follows because
the range of owl:intersectionOf is a class, owl:List,
which is specified to have maxCardinality 1 for rdf:first
and rdf:rest.

Hmm... this seems straightforward, but maybe it's worth working
out the details... (yes, found one bug: I was
saying cardinality, but I meant maxCardinality... fixed that...).
OK, worked out the details:

http://www.w3.org/2000/10/swap/test/list/listlayerP.n3
http://www.w3.org/2000/10/swap/test/list/listlayerC.n3

Jos, I was gonna test that with Euler to show the proof,
but my Euler installation seems to have fallen apart.
Would you mind?

Ah; another detail: we'll need owl:NilList ala:

	owl:NilList owl:oneOf (rdf:nil);
		rdfs:subClassOf [ owl:onProperty rdf:first;
			owl:maxCardinality "0"],
			[ owl:onProperty rdf:rest;
			owl:maxCardinality "0"].

And the stuff about all lists existing will just
have to be a constraint on all owl interpretations
that you invoke whenever you invoke any owl properties.

Now at one point, I think Brian phrased my action as explaining
why this syntax-only position wouldn't expose us to the
risk that PatH observed, which is that folks out there would specify
conflicting semantics for rdf:first/rest/nil. I don't
claim this risk is eliminated; only that it's manageable.
Yes, somebody could write a document that claimed something
has two different rdf:first's... the RDF spec would
say "oh; really? interesting". The WebOnt spec wouldn't
mind unless you had said that thing was an owl:List;
then it would say "no, you have contradicted yourself".
And if you said that rdf:nil had an rdf:first, then
you wouldn't have to explicitly point to owl at
all in order to be inconsistent with it; i.e. if
your document says rdf:nil contains something,
and mix it with any owl stuff, you'll get
a contradiction. (more technically: if you
appeal to the webont spec to justify any conclusions
from such a document, your argument won't hold much water because
it will rest on contradictory premises.)


But I think this is just life in the semantic web;
ther RDF spec also says "oh, really? interesting"
to claims such as
	ex:x rdf:type ex:C1.
	ex:x rdf:type ex:C2.
	ex:C1 owl:disjointFrom ex:C2.



So Jan/Jeremy/Jos, if you agree, please add the two tests
above to our test collection (or just say you agree and
maybe I'll find time to add them).

PatH, if you agree, please whack the relevant stuff
out of the RDF model theory, and please help me advocate
this position in WebOnt.

The schema spec should perhaps note the non-entailment.

I'm not aware of what the impact on the concepts spec
should be.

I don't think this affects the syntax spec at all.

I wouldn't expect the primer to go into this sort
of detail about lists, but I haven't checked
lately.


[23Oct] Re: SEM: List's
From: Dan Connolly (connolly@w3.org)
Date: Wed, Oct 23 2002
http://lists.w3.org/Archives/Public/www-webont-wg/2002Oct/0159.html

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Friday, 25 October 2002 12:53:34 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:52:31 EDT