W3C

RDF Test Cases

W3C Working Draft 12 September 2001

This version:
http://www.w3.org/TR/2001/WD-rdf-testcases-20010912/
Latest Public Version:
http://www.w3.org/TR/rdf-testcases/
Previous Version:
None.
Editors:
Art Barstow, W3C <barstow@w3.org>
Dave Beckett, ILRT, University of Bristol <dave.beckett@bristol.ac.uk>


Abstract

This document describes the RDF Test Cases deliverable for the RDF Core Working Group as defined in the WG's Charter.

Status of this Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This is a Working Draft of the RDF Core Working Group , for review by W3C members and other interested parties. This document has been produced as part of the Semantic Web Activity , and may eventually be advanced toward W3C Recommendation status.

Being a Working Draft document, this specification may be updated, replaced, or obsoleted by other documents at any time. The test cases described and referred to in this document may also be updated, replaced or obsoleted at an any time. It is therefore inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C working drafts can be found at http://www.w3.org/TR/ .

This draft document will be considered by the W3C and its members according to W3C process. This document is made public for the purpose of receiving comments that inform the W3C membership and staff on issues likely to affect the implementation, acceptance, and adoption of RDF.

Comments should be sent to www-rdf-comments@w3.org . This is the preferred method of providing feedback. Public comments and their responses can be accessed at http://lists.w3.org/Archives/Public/www-rdf-comments/ . Alternatively, if you do not wish your comments to be made public, you can send your comments to w3t-semweb-review@w3.org .


Table of Contents


1. Introduction

One of the deliverables specified in Charter of the RDF Core Working Group is: a set of machine-processable test cases corresponding to technical issues addressed by the WG. This document describes the test cases that will fullfill (when the test cases are completed) that deliverable but it does not contain the test cases themselves. The test case are available at http://www.w3.org/2000/10/rdf-tests/rdfcore/.

The RDF Interest Group and other members of the RDF community have identified issues/ambiguities in the [RDFMS] Specification and the [RDFSchema] Candidate Recommendation. These issues have been collected and categorized in the RDF Issue Tracking document. The RDF Core Working Group uses this issue list to guide its work. The issues list is a working document; it is updated as new issues are identified. It is updated as the Working Group makes decisions as documented in the Attention Developers section of the document.

1.1. Scope

A comprehensive and complete test suite for RDF should cover all of the rules in the Formal Grammar for RDF. The Working Group, however, is not chartered to deliver such a test suite but rather to create test cases for the issues the Working Group addresses (when applicable). Although the Working Group will not create test cases for some grammar rules (e.g. rule [6.1]), if such test cases are donated to the W3C the Consortium may add such test cases to this set of test cases.

1.2. RDF Errata

The RDF Errata documents known errors in [RDFMS]. Since errata are considered normative changes to a W3C Specification and Working Group decisions are not normative until a specification is a W3C Recommendation, none of the decisions made by the RDF Core Working Group have (to date) been reflected in the errata.

2. Test Cases

The Test Case Repository is located at http://www.w3.org/2000/10/rdf-tests/rdfcore/. Each directory in the repository is devoted to a single issue. Most directories have a name that is identical to the related issue in the RDF Issue Tracking document. For example, the directory rdf-ns-prefix-confusion is identical to the rdf-ns-prefix-confusion issue. In the other cases, the directory does not have an associated issue in the issue list (e.g. amp-in-url). If a directory is empty, then no test cases have been created for the issue.

2.1. Organization

Each test case is defined in RDF/XML. The expected result is defined using the [N-Ttriples] syntax. [N-Triples]is a line-based, plain text format for representing a RDF triple. Each RDF/XML file that contains valid RDF has an associated [N-Triples] file. The contents of the [N-Triples] files have been reviewed by the RDF Core Working Group and are considered authoritative (subject to the warnings provided in Status of this Document).

2.2. Naming Conventions

The following file name conventions are typically used:


where NNN is an integer starting with 001. The expected results or [N-Triples] file for a RDF/XML file will have the same number. For example, the [N-Triples] file for RDF/XML file test001.rdf will be test001.nt. Error files contain illegal RDF thus they do not have a corresponding [N-Triples] file.

2.3. Approved Test Cases

The test cases in the following table have been approved.

Issue Test Case Directory
No issue. amp-in-url
rdf-containers-syntax-vs-schema rdf-containers-syntax-vs-schema
rdf-ns-prefix-confusion rdf-ns-prefix-confusion
rdfms-aboutEach-on-object rdfms-aboutEach-on-object
rdfms-abouteach rdfms-abouteach
rdfms-empty-property-elements rdfms-empty-property-elements
rdfms-nested-bagIDs rdfms-nested-bagIDs
rdfms-propElt-id-with-dr rdfms-propElt-id-with-dr

2.4. Test Cases Not Approved

The test cases in the following table have NOT been approved.

Issue Test Case Directory
rdfms-difference-between-ID-and-about rdfms-difference-between-ID-and-about

3. N-Triples

N-Triples is a line-based, plain text format for encoding an RDF graph. It was designed to be a fixed subset of N3[N3][N3-Primer] and hence N3 tools such as cwm, n-triples2kif.pl and Euler can be used to read and process it. cwm can output this format when invoked as "cwm -ntriples".

It is recommended, but not required, that N-Triples content is stored in files with an '.nt' suffix to distinguish them from N3.

The Internet Media Type / MIME Type of N-Triples is text/plain and the character encoding is 7-bit US-ASCII.

3.1. Extended Backus-Naur Form (EBNF) Grammar

An N-Triples document is a sequence of US-ASCII characters and is defined by the ntripleDoc grammar term below. Parsing it results in a sequence of RDF statements formed from the subject, predicate and object terms. The meaning of these terms are defined either in [RDFMS] or is ongoing work as part of the RDF Core WG activity.

This EBNF is the notation used in XML 1.0 second edition

ntripleDoc ::= line*  
line ::= ws* (comment | triple) ? eoln  
comment ::= '#' (character - ( cr | lf ) )*  
triple ::= subject ws+ predicate ws+ object ws* '.' ws*  
subject ::= uriref | bNode  
predicate ::= uriref  
object ::= uriref | bNode | literal  
uriref ::= '<' absoluteURI '>'  
bNode ::= '_:' name  
literal ::= '"' string '"'  
ws ::= space | tab  
eoln ::= cr | lf | cr lf  
space ::= #x20 /* US-ASCII space - decimal 32 */  
cr ::= #xD /* US-ASCII carriage return - decimal 13 */  
lf ::= #xA /* US-ASCII linefeed - decimal 10 */  
tab ::= #x9 /* US-ASCII horizontal tab - decimal 9 */  
string ::= character* with escapes as defined in section Strings  
name ::= [A-Za-z][A-Za-z0-9]*  
absoluteURI ::= ( character - ( '<' | '>' | space ) )+ with escapes as defined in section Strings  
character ::= [#x20-#x7E] /* US-ASCII space to decimal 127 */

3.2 Strings

N-Triples strings are sequences of US-ASCII character productions encoding [Unicode] character strings. The characters outside the US-ASCII range are made available by \-escape sequences as follows:

Escape
sequence
Encodes Unicode character
\\ Backslash character (decimal 92, #x5c)
\" Double quote (decimal 34, #x22)
\n Linefeed (decimal 10, #xA) - lf character
\r Carriage return (decimal 13, #xD) - cr character
\t Horizontal tab (decimal 9, #x9) - tab character
\uxxxx Hexadecimal digits xxxx encoding character
[#x0-#x8],[#xB#xC],[#xE-#x1F],[#x7F-#xFFFF]

For absoluteURI, also #20 (space), #3C ('<') and #3E ('>').

\Uxxxxxxxx Hexadecimal digitsxxxxxxxx encoding character
[[#x10000-#xFFFFFFFF]

This is based on a subset of the allowed escapes in [N3] which is in turn based on Python string literals. It is a subset since not all that complexity is needed or required and for example, the \ before real newlines (cr or lf) could not be allowed since that would break the line-basis of N-Triples.

This escaping satisfies the [Charmod] section Reference Processing Model on making the full Unicode character range available to applications and providing only one way to escape any character.

It is recommended but not required that the resulting Unicode character string be made available to applications in UTF-8 encoding.

3.3. Example

The following N-Triples file:

<http://www.w3.org/2001/08/rdf-test/>  <http://purl.org/dc/elements/1.1/creator>    "Dave Beckett" .
<http://www.w3.org/2001/08/rdf-test/>  <http://purl.org/dc/elements/1.1/creator>    "Art Barstow" .
<http://www.w3.org/2001/08/rdf-test/>  <http://purl.org/dc/elements/1.1/publisher>  _:a .
_:a                                    <http://purl.org/dc/elements/1.1/title>      "World Wide Web Consortium" .
_:a                                    <http://purl.org/dc/elements/1.1/source>     <http://www.w3.org/> .

represents the same RDF graph as the following RDF/XML:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://www.w3.org/2001/08/rdf-test/">
    <dc:creator>Art Barstow</dc:creator>
    <dc:creator>Dave Beckett</dc:creator>
    <dc:publisher>
      <rdf:Description>
        <dc:title>World Wide Web Consortium</dc:title>
        <dc:source rdf:resource="http://www.w3.org/"/>
      </rdf:Description>
    </dc:publisher>
  </rdf:Description>
</rdf:RDF>

Appendices


Appendix A: Future Work

Among the work that needs to be done:

Appendix B: Contributors

The following Working Group members have directly contributed to this document and/or contributed test cases.

Art Barstow W3C
Dave Beckett ILRT, University of Bristol
Dan Connolly W3C
Jos DeRoo AGFA
Jan Grant ILRT, University of Bristol
Brian McBride Hewlett-Packard
Aaron Swartz HWG

References

Normative References

[RDFMS]
Ora Lassila, Ralph R. Swick (editors), Resource Description Framework (RDF) Model and Syntax Specification, 22 February 1999.
[RDFSchema]
Dan Brickley, R.V. Guha (editors), Resource Description Framework (RDF) Schema Specification 1.0, 27 March 2000 (W3C Candidate Recommendation).
[Unicode]
The Unicode Standard, Version 3.0, Addison Wesley, Reading MA, 2000, ISBN: 0-201-61633-5
[Charmod]
Character Model for the World Wide Web, W3C Working Draft, 26 January 2001.

Non-normative References

[N3]
Tim Berners-Lee, Notation 3
[N3-Primer]
Tim Berners-Lee, Primer: Getting into RDF & Semantic Web using N3