first pass parseType="Literal" text for primer

4.5 parseType="Literal"

The RDF/XML syntax is designed to make it easy for the values of
properties to be fragments of XML.  Whilst this feature is may be used
with arbritary fragments of XML, it was designed specifically to enable
the values of properties to be rich text represented as XML markup.

For example, A publisher might maintain RDF meta data that includes the
titles of books and articles.  Whilst such titles are often just simple
strings of characters, this is not always the case.  The titles of books
on mathematics may contain mathematical formulae, that could be
represented using MathML [@@REF].  Titles may include HTML markup.

For example  [@@complete namespaces etc]:

  <rdf:Description>
    <dc:title rdf:parseType="Literal">  <!-- @@spelling? -->
      <span xml:lang="en">
        The <em>&lt;br /&gt;</em> Element Considered Harmful.
      </span>
    </dc:title>
  </rdf:Description>

describes a graph containing one triple:

  _:a <dc:title> " \
      <span xml:lang="en" xmlns:dc="@@"> \ 
        The <em>&lt;br /&gt;</em> Element Considered Harmful. \
      </span>"^^rdf:XMLLiteral .  # @@ needs checking

The rdf:parseType="Literal" attribute in the RDF/XML indicates that all
the XML within the <dc:title> element is an XML fragment that is the
value of the dc:title property.

The value of the property is a typed literal, whose datatype,
rdf:XMLLiteral is defined by RDF, specifically to represent fragments of
XML.  The XML fragment is canonicalized according to the XML Exclusive
Canonicalization recommendation [@@ref].  This causes declarations of
used namespaces to be added to the fragment, the escaping of reserved
characters such as '<', '>' and '&', and possibly, the re-ordering of
attributes.  Contextual attributes, such as xml:lang and xml:base are
not inherited from the RDF/XML document, and, if required, must, as
shown in the example, be explicitly specified in the XML fragment.

This example illustrates that designers should take care when designing
RDF data.  In cases where the value of a property may sometimes contain
rich text and sometimes not, the designer should either use
rdf:parseType="Literal" throughout, or design the application to handle
both plain literals and rdf:XMLLiteral's.

Received on Monday, 21 July 2003 13:23:52 UTC