Abstract

This document is a specification for a vocabulary to represent Content in RDF. This vocabulary is intended to provide a flexible framework within different usage scenarios to semantically represent any type of content, be it on the Web or in local storage media. For example, it can be used by Web accessibility evaluation tools to record a representation of the assessed Web content in an Evaluation And Report Language (EARL) 1.0 Schema evaluation report. The document contains introductory information on its usage and some examples.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This First Public Working Draft of the Representing Content in RDF document was published on 8 September 2008 by the Evaluation and Repair Tools Working Group (ERT WG). It presents an RDF approach for recording different representations of content on the Web or in local storage media. This document is part of the W3C Evaluation And Report Language (EARL). It is expected to be published as a W3C Working Group Note after further review and refinement.

The RDF terms defined by this document can be used to extend the Evaluation And Report Language (EARL) 1.0 Schema, but can also be used separately to record different representations of content for any purpose. For example it can be used together with the HTTP Vocabulary in RDF to describe Web content that has been retrieved from a server using specific HTTP headers. The Working Group believes that this document is fairly stable despite being a first public working draft. The group encourages feedback about the approach, as well as about the completeness and maturity of this document by developers and researchers who have interest in representing content in RDF format. Feedback from the W3C Quality Assurance Interest Group, the W3C Semantic Web Interest Group, and the Protocol for Web Description Resources Working Group is particularly welcome. Please send comments on this document by 29 September 2008 to the public mailing list of the working group public-wai-ert@w3.org. The archives of the working group mailing list are publicly available.

Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. The group does not expect this document to become a W3C Recommendation. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.


Table of Contents

  1. Introduction
  2. Vocabulary usage: classes and properties
  3. Usage scenarios
  4. Extensions to the vocabulary

Appendices

  1. Schema in RDF/XML
  2. Vocabulary Terms
  3. Mapping between DOM and Content-in-RDF properties
  4. Document Changes
  5. References

1. Introduction

This document is the specification for a vocabulary to represent Content in RDF. There is a wide variety of scenarios (see section below) where a representation of any type of content, either on the Web or in any local storage media, is necessary. This specification provides an RDF application that allows to present semantically such content. The vocabulary is built in a flexible manner, thus there are no limitations known at the time of writing this specification. It also provides opportunities for extensions to match particular needs of its users.

This document assumes the following background knowledge:

Although the concepts of the Semantic Web are simple, their abstraction with RDF is known to bring difficulties to beginners. It is recommended to read carefully the aforementioned references and other tutorials found on the Web. It must be also borne in mind that RDF is primarily targeted to be machine processable, and therefore, some of its expressions are not very intuitive for developers used to work with XML only. The examples will be serialized using the abbreviated RDF/XML notation.

The keywords must, required, recommended, should, may, and optional are used in accordance with [RFC2119].

1.1. Namespaces

Table 1 presents the namespaces typically used by this vocabulary (rdfs and owl namespaces are normally only used in the schema). The core namespace has the URI http://www.w3.org/2007/content# and the prefix cnt. The prefix notation presents the typical conventions used in the Web and in this document to denote a given namespace, and can be freely modified.

Table 1: Representing Content in RDF namespaces.
Namespace prefix Namespace URI Description
cnt http://www.w3.org/2007/content# The default namespace for Representing Content in RDF.
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# Default RDF namespace [RDF].
rdfs http://www.w3.org/2000/01/rdf-schema# Default RDF schema namespace [RDFS].
owl http://www.w3.org/2002/07/owl# Default OWL namespace [OWL].

1.2. Use cases

As stated earlier, this framework is designed in an open way to facilitate different implementation scenarios. The origin of the application comes from vocabularies describing testing scenarios like EARL [EARL]. Typical applications could be:

This list is not exclusive and several other scenarios could be developed.

2. Vocabulary usage: classes and properties

This section presents a description of the classes and properties of this RDF vocabulary. We present every class together with its properties and subclasses. We also include whenever relevant short snippets and examples.

2.1. Content class

The Content class is an over arching class with no properties. It is recommended always to use one of its subclasses. A resource of type Content represents any content that could be found on the Web, in an Intranet or in local storage media, for example. There is no restriction within the vocabulary scope on what can be represented with this class: textual content, binary files (e.g., images or movies), XML files, etc.

There are three subclasses from the Content class: Base64Content, TextContent and XMLContent.

2.2. Base64Content class

The Base64Content class is a subclass of the Content class. A resource of type Base64Content represents Base64 encoded binary content (as defined by [RFC2045]) and can be used for any type of content, although its more typical use case is for binary files.

The following property may appear in resources of type Base64Content (with a maximum cardinality of 1):

characterEncoding
If the byte sequence was created from a given character sequence this property can be used to store the character encoding that was applied to create the byte sequence.

The following property must appear in resources of type Base64Content:

bytes
Character string representing the Base64 encoded byte sequence of the given content.

Example 2.1: This example displays the representation of the W3C logo as a Base64Content resource. (Note: due to its length, the encoded string has been chunked until {...}.)

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#">

  <cnt:Base64Content rdf:about="http://www.w3.org/Icons/w3c_home.png">
    <cnt:bytes>77+9UE5HDQoaCgAAAA1JSERSAAAASAAAADAIAwAAAO+{...}</cnt:bytes>
  </cnt:Base64Content>

</rdf:RDF>

2.3. TextContent class

The TextContent class is a subclass of the Content class. A resource of type TextContent represents any type of textual content.

The following property may appear in resources of type TextContent (with a maximum cardinality of 1):

characterEncoding
If the character sequence was created from a given byte sequence this property can be used to store the character encoding that was applied to create the character sequence.

The following property must appear in resources of type TextContent:

chars
Character string representing the character sequence of the given content.

Example 2.2: The following example represents a CSS file as a TextContent resource.

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#">

  <cnt:TextContent rdf:about="http://example.org/example.css">
    <cnt:characterEncoding>UTF-8</cnt:characterEncoding>
    <cnt:chars>body {
  color: #000;
  background: #fff
}
h1 {
  font-size: 1.6em
}
h2 {
  font-size: 1.3em
}</cnt:chars>
  </cnt:TextContent>

</rdf:RDF>

2.4. XMLContent class

The XMLContent class is a subclass of the Content class. A resource of type XMLContent represents XML content.

The following properties may appear in resources of type XMLContent (with a maximum cardinality of 1):

characterEncoding
If the parser's input character stream was created from a given byte stream this property can be used to store the character encoding that was applied to create the character stream. Note: This is the used character encoding, not the one declared in an XML declaration.
xmlDecl
Property pointing to an XMLDecl resource representing the XML declaration.
xmlLeadingMisc
Property representing as an XML Literal the part of the XML (comments and processing instructions) following the XML declaration and preceding the document type declaration if there is one.
doctypeDecl
Property pointing to a DoctypeDecl resource representing the document type declaration.

The following property must appear in resources of type XMLContent:

xmlRest
Property representing as an XML Literal It contains comments, processing instructions and the root element.

Example 2.3: The XHTML page with the following source code:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>The title</title>
  </head>
  <body>
    <p>Some paragraph.</p>
  </body>
</html>

could be represented as this XMLContent resource.

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#">

  <cnt:XMLContent rdf:about="http://example.org/example203.html">
    <cnt:xmlRest rdf:parseType="Literal"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>The title</title>
  </head>
  <body>
    <p>Some paragraph.</p>
  </body>
</html>
</cnt:xmlRest>
  </cnt:XMLContent>

</rdf:RDF>

For the use of xmlDecl, xmlLeadingMisc and doctypeDecl see 2.7. A practical example.

2.5. XMLDecl class

A resource of type XMLDecl represents an XML declaration. This class is normally used in conjunction with the XMLContent class, when the corresponding XML file has an XML declaration. The resources are linked via the xmlDecl property.

The following properties may appear in resources of type XMLDecl:

xmlEncoding
Property representing the character encoding specified in the XML declaration.
xmlStandalone
Property representing the standalone document declaration.

The following property must appear in resources of type XMLDecl:

xmlVersion
Property representing the XML version specified in the XML declaration.

Example 2.4: A typical XML declaration:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

Can be expressed as the following XMLDecl resource:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#">

  <cnt:XMLDecl rdf:ID="xmld0">
    <cnt:xmlStandalone>no</cnt:xmlStandalone>
    <cnt:xmlEncoding>UTF-8</cnt:xmlEncoding>
    <cnt:xmlVersion>1.0</cnt:xmlVersion>
  </cnt:XMLDecl>

</rdf:RDF>

2.6. DoctypeDecl class

A resource of type DoctypeDecl represents a document type declaration. Likewise XMLDecl, this class is normally used in conjunction with the XMLContent class, when the corresponding XML file has a document type declaration. The resources are linked via the doctypeDecl property.

The following properties may appear in resources of type DoctypeDecl:

publicId
Property representing the formal public identifier.
systemId
Property representing the system identifier.
internalSubset
Property representing the internal subset.

The following property must appear in resources of type DoctypeDecl:

doctypeName
Property representing the document type name.

Example 2.5: A typical XHTML 1.0 Strict document type declaration:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

could be represented as the following DoctypeDecl resource:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#">

  <cnt:DoctypeDecl rdf:ID="dtd0">
    <cnt:systemId>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</cnt:systemId>
    <cnt:publicId>-//W3C//DTD XHTML 1.0 Strict//EN</cnt:publicId>
    <cnt:doctypeName>html</cnt:doctypeName>
  </cnt:DoctypeDecl>

</rdf:RDF>

2.7. A practical example

To understand the versatility of the vocabulary, let us assume we have a given XHTML page containing an XML declaration, a comment preceding a document type declaration and some XHTML elements.

Example 2.6: A typical XHTML page.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!-- this is a comment -->
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <title>The title</title>
  </head>
  <body>
    <p>Some paragraph.</p>
  </body>
</html>

This page could be represented as simple TextContent:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#">

  <cnt:TextContent rdf:about="http://example.org/example207.html">
    <cnt:chars>&lt;?xml version="1.0" encoding="UTF-8" standalone="no" ?&gt;
&lt;!-- this is a comment --&gt;
&lt;!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
  &lt;head&gt;
    &lt;title&gt;The title&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;p&gt;Some paragraph.&lt;/p&gt;
  &lt;/body&gt;
&lt;/html&gt;</cnt:chars>
  </cnt:TextContent>

</rdf:RDF>

or likewise as XMLContent. The information from the XML declaration is modelled as an XMLDecl resource and refered to from the XMLContent resource by the xmlDecl property. As the comment <!-- this is a comment --> precedes the document type declaration a xmlLeadingMisc property is created with its object literal containing the comment. The document type declaration is modelled as a DoctypeDecl resource and refered to from the XMLContent resource by the doctypeDecl property.

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cnt="http://www.w3.org/2007/content#"
    xml:base="http://example.org/example208.html">

  <cnt:DoctypeDecl rdf:ID="dtd0">
    <cnt:systemId>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</cnt:systemId>
    <cnt:publicId>-//W3C//DTD XHTML 1.0 Strict//EN</cnt:publicId>
    <cnt:doctypeName>html</cnt:doctypeName>
  </cnt:DoctypeDecl>

  <cnt:XMLDecl rdf:ID="xmld0">
    <cnt:xmlStandalone>no</cnt:xmlStandalone>
    <cnt:xmlEncoding>UTF-8</cnt:xmlEncoding>
    <cnt:xmlVersion>1.0</cnt:xmlVersion>
  </cnt:XMLDecl>

  <cnt:XMLContent rdf:about="#">
    <cnt:xmlLeadingMisc rdf:parseType="Literal"><!-- this is a comment --></cnt:xmlLeadingMisc>
    <cnt:doctypeDecl rdf:resource="#dtd0" />
    <cnt:xmlDecl rdf:resource="#xmld0" />
    <cnt:xmlRest rdf:parseType="Literal"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>The title</title>
  </head>
  <body>
    <p>Some paragraph.</p>
  </body>
</html></cnt:xmlRest>
  </cnt:XMLContent>

</rdf:RDF>

3. Usage scenarios

We have identified some situations to make clear when to create which type of content resources. The following are only recommendations and are non-normative:

4. Extensions to the vocabulary

The vocabulary provides a framework that allows the representation of any type of content. Of course, there are many possibilities for extensions that will allow the inclusion of additional metadata, like, e.g., that included in some multimedia formats. Typical scenarios for extensions could be:

However, at the point of writing this specification, the Working Group has decided to provide the basic framework that will support the immediate needs of vocabularies using this specification like EARL [EARL], leaving the room open for further extensions as new use cases are presented to us.

Appendix A: Schema in RDF/XML

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://www.w3.org/2007/content#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xml:base="http://www.w3.org/2007/content">
  <owl:Ontology rdf:about="">
    <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Copyright © 2008 World Wide Web Consortium</owl:versionInfo>
  </owl:Ontology>

  <!-- Classes -->
  <rdfs:Class rdf:ID="Base64Content">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
        <owl:onProperty>
          <rdf:Property rdf:about="#bytes"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#characterEncoding"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:label xml:lang="en">Base64 content</rdfs:label>
    <rdfs:comment xml:lang="en">The base64 encoded content (can be used for all types of content)</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Content"/>
  </rdfs:Class>

  <rdfs:Class rdf:about="#Content">
    <rdfs:label xml:lang="en">Content</rdfs:label>
    <rdfs:comment xml:lang="en">The message body content</rdfs:comment>
  </rdfs:Class>

  <rdfs:Class rdf:ID="DoctypeDecl">
    <rdfs:label xml:lang="en">Document type declaration</rdfs:label>
    <rdfs:comment xml:lang="en">The document type declaration</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#doctypeName"/>
        </owl:onProperty>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#internalSubset"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#publicId"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#systemId"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdfs:Class rdf:ID="TextContent">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
        <owl:onProperty>
          <rdf:Property rdf:about="#chars"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#characterEncoding"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:label xml:lang="en">Text content</rdfs:label>
    <rdfs:comment xml:lang="en">The text content (can be used for non-XML-wellformed text resources)</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Content"/>
  </rdfs:Class>

  <rdfs:Class rdf:ID="XMLContent">
    <rdfs:label xml:lang="en">XML content</rdfs:label>
    <rdfs:comment xml:lang="en">The XML content (can be used for XML-wellformed resource)</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Content"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#characterEncoding"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#xmlDecl"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#doctypeDecl"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#xmlLeadingMisc"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#xmlRest"/>
        </owl:onProperty>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdfs:Class rdf:ID="XMLDecl">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
        <owl:onProperty>
          <rdf:Property rdf:about="#xmlVersion"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:comment xml:lang="en">The XML declaration</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#xmlEncoding"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <rdf:Property rdf:about="#xmlStandalone"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:label xml:lang="en">XML declaration</rdfs:label>
  </rdfs:Class>

  <!-- Properties -->
  <rdf:Property rdf:about="#bytes">
    <rdfs:label xml:lang="en">Base64 encoded byte sequence</rdfs:label>
    <rdfs:comment xml:lang="en">The Base64 encoded byte sequence of the content</rdfs:comment>
    <rdfs:domain rdf:resource="#Base64Content"/>
  </rdf:Property>
  <rdf:Property rdf:about="#characterEncoding">
    <rdfs:label xml:lang="en">Character encoding</rdfs:label>
    <rdfs:comment xml:lang="en">The character encoding used create a character sequence from a byte
    sequence or vice versa</rdfs:comment>
  </rdf:Property>
  <rdf:Property rdf:about="#chars">
    <rdfs:comment xml:lang="en">The character sequence of the content</rdfs:comment>
    <rdfs:domain rdf:resource="#TextContent"/>
    <rdfs:label xml:lang="en">Character sequence</rdfs:label>
  </rdf:Property>
  <rdf:Property rdf:about="#doctypeDecl">
    <rdfs:label xml:lang="en">Document type declaration</rdfs:label>
    <rdfs:comment xml:lang="en">The document type declaration</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLContent"/>
    <rdfs:range rdf:resource="#DoctypeDecl"/>
  </rdf:Property>
  <rdf:Property rdf:about="#doctypeName">
    <rdfs:label xml:lang="en">Document type name</rdfs:label>
    <rdfs:comment xml:lang="en">The document type name</rdfs:comment>
    <rdfs:domain rdf:resource="#DoctypeDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
  <rdf:Property rdf:about="#internalSubset">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The internal subset of the DTD</rdfs:comment>
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Internal DTD subset</rdfs:label>
    <rdfs:domain rdf:resource="#DoctypeDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
  <rdf:Property rdf:about="#publicId">
    <rdfs:label xml:lang="en">Public ID</rdfs:label>
    <rdfs:comment xml:lang="en">The document type declarations's public identifier</rdfs:comment>
    <rdfs:domain rdf:resource="#DoctypeDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
  <rdf:Property rdf:about="#systemId">
    <rdfs:label xml:lang="en">System ID</rdfs:label>
    <rdfs:comment xml:lang="en">The document type declarations's system identifier (typed: xsd:anyURI)</rdfs:comment>
    <rdfs:domain rdf:resource="#DoctypeDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
  <rdf:Property rdf:about="#xmlDecl">
    <rdfs:label xml:lang="en">XML declaration</rdfs:label>
    <rdfs:comment xml:lang="en">The XML declaration</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLContent"/>
    <rdfs:range rdf:resource="#XMLDecl"/>
  </rdf:Property>
  <rdf:Property rdf:about="#xmlEncoding">
    <rdfs:label xml:lang="en">XML character encoding</rdfs:label>
    <rdfs:comment xml:lang="en">The XML character encoding</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
  <rdf:Property rdf:about="#xmlLeadingMisc">
    <rdfs:label xml:lang="en">XML leading misc</rdfs:label>
    <rdfs:comment xml:lang="en">The XML content preceding the document type declaration</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLContent"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#XMLLiteral"/>
  </rdf:Property>
  <rdf:Property rdf:about="#xmlRest">
    <rdfs:label xml:lang="en">XML rest</rdfs:label>
    <rdfs:comment xml:lang="en">The XML content following the document type declaration</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLContent"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#XMLLiteral"/>
  </rdf:Property>
  <rdf:Property rdf:about="#xmlStandalone">
    <rdfs:label xml:lang="en">XML standalone document declaration</rdfs:label>
    <rdfs:comment xml:lang="en">The XML standalone document declaration</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
  <rdf:Property rdf:about="#xmlVersion">
    <rdfs:label xml:lang="en">XML version</rdfs:label>
    <rdfs:comment xml:lang="en">The XML version</rdfs:comment>
    <rdfs:domain rdf:resource="#XMLDecl"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  </rdf:Property>
</rdf:RDF>

Appendix B: Vocabulary Terms

The following terms are defined by this specification:

Classes

Classes in the Representing Content in RDF namespace.
Class name Label Allowable types Required properties Optional properties
cnt:Base64Content Base64 encoded binary content cnt:bytes cnt:characterEncoding
cnt:Content Content cnt:Base64Content, cnt:TextContent, cnt:XMLContent
cnt:DoctypeDecl Document type declaration cnt:doctypeName cnt:publicId, cnt:systemId, cnt:internalSubset
cnt:TextContent Textual content cnt:chars cnt:characterEncoding
cnt:XMLContent XML content cnt:xmlRest cnt:characterEncoding, cnt:xmlLeadingMisc, cnt:doctypeDecl
cnt:XMLDecl XML declaration cnt:xmlVersion cnt:xmlEncoding, cnt:xmlStandalone

Properties

Properties in the Representing Content in RDF namespace.
Property name Label Domain Range Restriction
cnt:bytes Bytes cnt:Base64Content Literal Exactly one per cnt:Base64Content
cnt:characterEncoding Character encoding Literal At most one per cnt:Base64Content, cnt:TextContent or cnt:XMLContent
cnt:chars Characters cnt:TextContent Literal Exactly one per cnt:TextContent
cnt:doctypeDecl Document type declaration cnt:XMLContent cnt:DoctypeDecl At most one per cnt:XMLContent
cnt:doctypeName Document type name cnt:DoctypeDecl Literal Exactly one per cnt:DoctypeDecl
cnt:internalSubset Internal subset cnt:DoctypeDecl Literal At most one per cnt:DoctypeDecl
cnt:publicId Formal public identifier cnt:DoctypeDecl Literal At most one per cnt:DoctypeDecl
cnt:systemId System identifier cnt:DoctypeDecl Literal At most one per cnt:DoctypeDecl
cnt:xmlDecl XML declaration cnt:XMLContent cnt:XMLDecl At most one per cnt:XMLContent
cnt:xmlEncoding XML character encoding cnt:XMLDecl Literal At most one per cnt:XMLDecl
cnt:xmlLeadingMisc XML preceding the document type declaration cnt:XMLContent XML Literal At most one per cnt:XMLContent
cnt:xmlRest XML following the document type declaration cnt:XMLContent XML Literal Exactly one per cnt:XMLContent
cnt:xmlStandalone XML standalone document declaration cnt:XMLDecl Literal At most one per cnt:XMLDecl
cnt:xmlVersion XML version cnt:XMLDecl Literal Exactly one per cnt:XMLDecl

Appendix C: Mapping between DOM and Content-in-RDF properties

DOM property Content-in-RDF property
Document.xmlVersion xmlVersion
Document.xmlEncoding xmlEncoding
Document.xmlStandalone xmlStandalone
Document.doctype doctypeDecl
DocumentType.name doctypeName
DocumentType.publicId publicId
DocumentType.systemId systemId
DocumentType.internalSubset internalSubset

Appendix D: Document Changes

Since the 23 June editorial draft, only minor editorial changes have happened. Since the 20 February 2008 editorial draft, this document has changed as follows:

Appendix E: References

[EARL]
Evaluation and Report Language (EARL) 1.0 Schema. W3C Working Draft 23 March 2007.
http://www.w3.org/TR/EARL10/
[RDF]
Resource Description Framework (RDF) Model and Syntax Specification. W3C Recommendation, 22 February 1999.
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/
[RDF-PRIMER]
RDF Primer. W3C Recommendation, 10 February 2004.
http://www.w3.org/TR/rdf-primer/
[RDFS]
RDF Vocabulary Description Language 1.0: RDF Schema. W3C Recommendation 10 February 2004.
http://www.w3.org/TR/rdf-schema/
[RDF-XML]
RDF/XML Syntax Specification (Revised). W3C Recommendation 10 February 2004.
http://www.w3.org/TR/rdf-syntax-grammar/
[RFC2119]
Request for Comments: 2119. Key words for use in RFCs to Indicate Requirement Levels, March 1997 (IETF).
http://www.ietf.org/rfc/rfc2119.txt
[RFC2045]
Request for Comments: 2045. Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, November 1996 (IETF).
http://www.ietf.org/rfc/rfc2045.txt
[OWL]
OWL Web Ontology Language Overview. W3C Recommendation 10 February 2004 .
http://www.w3.org/TR/owl-features/
[XML]
Extensible Markup Language (XML) 1.0 (Fourth Edition). W3C Recommendation 16 August 2006, edited in place 29 September 2006.
http://www.w3.org/TR/xml/