W3C home > Mailing lists > Public > www-rdf-interest@w3.org > May 2003

RE: container problem

From: Jon Hanna <jon@spin.ie>
Date: Thu, 8 May 2003 12:08:40 +0100
To: <www-rdf-interest@w3.org>
Message-ID: <NDBBLCBLIMDOPKMOPHLHIEMOFBAA.jon@spin.ie>

> I have a problem with the use of a container I cannot
> resolve :-(
>
> I want to describe the elements within a container but
> get the following error message:
>
> Error: {E201} Syntax error when processing start
> element rdf:Description. rdf:Description elements
> generally may only occur to describe an object.[Line =
> 32, Column = 4]
>
> (I know that these elements are 'predicates' and not
> objects but isn't there a way to attach descriptions to
> them ??)
> Any help is greatly appreciated !!

Your problem is a serialisation one, that is your RDF is okay, but your
RDF/XML is buggy.

You placed the rdf:Description element directly inside another
rdf:Description element. This breaks the object/predicate/object alternation
of RDF/XML (what Danbri labelled "striped"). Instead you should either:
1. Place the rdf:Description element directly inside a predicate element,
like you did with dc:date.
2. Place the rdf:Description directly inside the rdf:RDF element, like you
did with the first one.
3. Not use rdf:Description; rdf:Description isn't needed in cases where you
have rdf:Resource attributes on a predicate element, or where you use the
qualified name of an element to state its type (e.g. the rdf:Bag element).

One way to fix the XML is to place the rdf:Description for <#subjects>
outside of the rdf:Description for
<http://expmed.rd.astrazeneca.net/knowledgeobject/KNO1/combrxresp1.rdf>,
another is to not use rdf:Description, but rather place the dc:Description
directly inside the rdf:Bag element. Examples of both of these follow. Note
that while the XML differs the RDF of each is identical:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.0/"
 xmlns:dcq="http://purl.org/dc/qualifiers/1.0/"
 xmlns:azkno="http://expmed.rd.astrazeneca.net/knowledgeobject/">
<rdf:Description

rdf:about="http://expmed.rd.astrazeneca.net/knowledgeobject/KNO1/combrxresp1
.rdf">
 <dc:title>Title here</dc:title>
 <dc:identifier>combrxresp1</dc:identifier>
 <dc:creator>snell_n</dc:creator>
 <dc:date>
  <rdf:Description>
   <dcq:dateScheme>WTN8601</dcq:dateScheme>
   <rdf:value>2003-02-17</rdf:value>
  </rdf:Description>
 </dc:date>
 <dc:subject>
  <rdf:Bag rdf:ID="subjects">
   <rdf:li>BM1</rdf:li>
   <rdf:li>BM2</rdf:li>
   <rdf:li>Ind1</rdf:li>
   <rdf:li>Ind2</rdf:li>
   <rdf:li>Ind3</rdf:li>
   <dc:description>These are in fact keywords</dc:description>
  </rdf:Bag>
 </dc:subject>
 <dc:description>
Text of the KNO here
 </dc:description>
</rdf:Description>
</rdf:RDF>

<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.0/"
 xmlns:dcq="http://purl.org/dc/qualifiers/1.0/"
 xmlns:azkno="http://expmed.rd.astrazeneca.net/knowledgeobject/">
<rdf:Description

rdf:about="http://expmed.rd.astrazeneca.net/knowledgeobject/KNO1/combrxresp1
.rdf">
 <dc:title>Title here</dc:title>
 <dc:identifier>combrxresp1</dc:identifier>
 <dc:creator>snell_n</dc:creator>
 <dc:date>
  <rdf:Description>
   <dcq:dateScheme>WTN8601</dcq:dateScheme>
   <rdf:value>2003-02-17</rdf:value>
  </rdf:Description>
 </dc:date>
 <dc:subject>
  <rdf:Bag rdf:ID="subjects">
   <rdf:li>BM1</rdf:li>
   <rdf:li>BM2</rdf:li>
   <rdf:li>Ind1</rdf:li>
   <rdf:li>Ind2</rdf:li>
   <rdf:li>Ind3</rdf:li>
  </rdf:Bag>
 </dc:subject>
 <dc:description>
Text of the KNO here
 </dc:description>
</rdf:Description>
<rdf:Description rdf:about="#subjects">
 <dc:description>These are in fact keywords</dc:description>
</rdf:Description>
</rdf:RDF>
Received on Thursday, 8 May 2003 07:02:48 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:59 GMT