RE: declaredAs

I'm wondering then about the consistency of the semantics,
If:
>	<rdf:Description rdf:about="#foo"/>
>and
>	<rdf:Description rdf:ID="foo"/>
>Produce exactly the same node.

Then what is the semantic for:
	<rdf:Description rdf:ID='x' rdf:about="#foo"/>
?

Discussion
==========
If 	<rdf:Description rdf:ID='x' rdf:about="#foo"/>
is equivalent to
	<rdf:Statement rdf:ID='x'>
	   <rdf:subject rdf:resource="#foo"/>
	</rdf:Statement>
Then it seems consistent to say that
	<rdf:Description rdf:about="#foo"/>
is equivalent to
	<rdf:Statement>
	   <rdf:subject rdf:resource="#foo"/>
	</rdf:Statement>
while
	<rdf:Description rdf:ID="foo"/>
is equivalent to
	<rdf:Statement rdf:ID='foo'>
	   <rdf:subject rdf:resource="#foo"/>
	</rdf:Statement>
It seems to me that conceptually an Assertion and Declaration are subclasses of
Statement, an Assertion fully disjoint with respect to Declaration.  Further,
that a Declaration is a Statement whose object-property 'subject' predicate is
constrained to equal the text-property 'rdf:ID' predicate. This leads to

	<rdf:Description rdf:about="#foo"/>
is equivalent to
	<rdf:Statement>
	   <rdf:type rdf:resource='Assertion'/>
	   <rdf:subject rdf:resource="#foo"/>
	</rdf:Statement>
while
	<rdf:Description rdf:ID="foo"/>
is equivalent to
	<rdf:Statement rdf:ID='foo'>
	   <rdf:type rdf:resource='Declaration'/>
	   <rdf:subject rdf:resource="#foo"/>
	</rdf:Statement>

Chiefly for reason of this proof, I am surprised that you think these two
properties (ID & about) represent "syntactic sugar" because then you're saying
that they are sameAs one another -- and why in the world would the spec have
these two properties in the first place, and not indicate that they are
syntactic sugar?  My thinking is that, to the contrary, a given document may
have only one declaration for a thing, but can have as many assertions about it
as they care to have, so it's important to have both properties.

Am I way-off the deep end here? Thanks in advance.
John

>-----Original Message-----
>From: Bijan Parsia [mailto:bparsia@cs.man.ac.uk]
>Sent: Thursday, August 09, 2007 11:07 AM
>To: John McClure
>Cc: Owl Dev
>Subject: Re: declaredAs
>
>
>On 9 Aug 2007, at 18:56, John McClure wrote:
>
>> Sorry to interrupt this fascinating conversation but I have a related
>> question... if I can speak in XML for a moment...
>>
>> Are not assertions indicated by rdf:about, and declarations by rdf:ID?
>
>No.
>
>> I have
>> the understanding that the 'best practice' trend has been to make
>> all statements
>> to be rdf:about some subject, with an rdf:ID declaration of the
>> subject treated
>> as, if you will, a virtual axiom.
>
>rdf:ID is best understood as syntactic sugar for rdf:about. It has no
>effect in the model.
>
>	<rdf:Description rdf:about="#foo"/>
>
>and
>	<rdf:Description rdf:ID="foo"/>
>
>Produce exactly the same node. So:
>	<rdf:Description rdf:about="#foo">
>		<bar><rdf:Description rdf:ID="foo"/></bar>
>	<rdf:Desecription>
>
>and
>	<rdf:Description rdf:ID="foo">
>		<bar><rdf:Description rdf:about="#foo"/></bar>
>	<rdf:Desecription>
>
>State exactly the same thing (assuming namespaces blah bal hblah)
>	ns:foo :bar ns:foo.
>
>If you combined both those fragments into a single document you'd get
>a parse error because of the restriction on IDs, but that has no
>significant consequence at all. It's a bad constraint too, because it
>*looks* like it should be significant. It really really really isn't.
>
>> Given this, I don't understand the need for a
>> new predicate that distinguishes between assertive & declarative
>> axioms.
>>
>> <Class rdf:about='yourClass'/>	<!-- an assertion -->
>> <Class rdf:ID='myClass'>		<!-- a declaration-->
>>   <subClassOf rdf:resource='yourClass'/>
>> </Class>
>>
>> I don't know how to express this distinction in the triples syntax
>> so common to
>> the postings..
>
>Yeah, that exactly doesn't do anything :) It's a wart.
>
>Cheers,
>Bijan.

Received on Thursday, 9 August 2007 21:09:08 UTC