Copyright ©2001 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document describes the RDF Test Cases deliverable for the RDF Core Working Group as defined in the WG's Charter.
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 .
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.
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.
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.
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.
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).
The following file name conventions are typically used:
testNNN.rdf
testNNN.nt
errorNNN.rdf
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.
The test cases in the following table have been 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 |
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.
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 */ |
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.
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>
Among the work that needs to be done:
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 |