Re: 2 Questions on Syntax

tony_hammond@harcourt.com wrote:
> 1. RDF container syntax.

I agree with Eric Hellman.  You are missing the property for which the
top-level rdf:Seq is the value.

Also, rdf:parseType='Resource' can sometimes help, but in your example,
there is no advantage.  rdf:parseType='Resource' is helpful when there are
properties that can't be easily abbreviated into an rdf:Description, for
example:

<rdf:li>
  <rdf:Description>
   <foo bar="1" bletch="2"/>
   <text>Some gigantic piece of text ... </text>
  </rdf:Description>
</rdf:li>

vs.

<rdf:li rdf:parseType='Resource'>
  <foo bar="1" bletch="2"/>
  <text>Some gigantic piece of text ... </text>
</rdf:li>

In your example, all the properties "fit" into the rdf:Description, so
rdf:parseType doesn't buy you much if anything.

[GRUMBLE ON]
Why oh why wasn't rdf:li made equivalent to the productions for
propertyElt?  The lack of symmetry between the two forms makes for much
exceptional code in my serializer.  Why can't I write:

	<rdf:li foo="1" bar="2"/>
or
	<rdf:li rdf:resource="url" foo="1" bar="2"/>

I can't see any ambiguity that would be introduced if this syntax was
allowed.
[GRUMBLE OFF]


> 2. If I want to include a description about the RDF metadata itself, do I have
> something like below where the first statement is about the RDF itself and the
> following statements are about the external resources that the RDF is
> describing.
> 
> <rdf:Description about="" s:P .../>
> <rdf:Description about="uri" s:P1 ...>
> ...
> </Description>

I don't think that does what you want.  If you look at the model (directed
graphs) generated by those statements, there is no linkage between the
metadata and the statements about the metadata.  The RDF processor doesn't
know that "current resource" and statements about "uri" are related, unless
you tell it explicitly.

I don't think bagID can be used to identify the metadata as the resource
being described, since the bagID identifies the "virtual" Bag that contains
the reified statements of the metadata, which are only indirectly associated
with the original statements.

To tell the RDF processor what you want, you need to link the statements
about the metadata to the metadata.  You can do this by putting the RDF
serialization of the metadata in an external resource, and refer to it with
a URL. Alternatively, you can use an inline resource as a wrapper, but then
you have to introduce a property that makes the linkage:

<rdf:Description rdf:ID="Wrapper" s:P ... >
 <rdf:value>
  <rdf:Description rdf:about="uri" s:P1 ...>
  ...
  </rdf:Description>
 </rdf:value>
</rdf:Description>

The introduction of the "rdf:value" property is unfortunate and unorthodox,
but necessary. I can't think of any other way to link the statements about
the metadata to the metadata.

Perry

Received on Wednesday, 1 March 2000 16:56:51 UTC